PortWatch (IMF / University of Oxford)
Repository: IMF Research Department & Oxford Martin Programme (OxMarTrans) URL: https://portwatch.imf.org/ ArcGIS Hub: https://portwatch-imf-dataviz.hub.arcgis.com/ License: IMF terms — free for non-commercial/research use Update cadence: Weekly (Tuesdays 9 AM ET) Time series: January 1, 2019 to present
What This Dataset Is
Real-time global maritime trade monitoring derived from AIS (Automatic Identification System) satellite tracking of ~90,000 ships. Provides daily port call counts, import/export volume estimates (metric tons), and chokepoint transit data for 1,985 ports and 28 chokepoints worldwide.
The underlying methodology converts AIS vessel positions into economically meaningful trade indicators by tracking vessel entries/exits from port polygons and measuring draft changes to estimate cargo volumes.
Datasets
1. Daily Port Activity Data v2
ArcGIS Item ID: 959214444157458aad969389b3ebe1a0
Granularity: One row per port per day
Coverage: 1,985 ports
| Field | Type | Description |
|---|---|---|
ObjectID | Integer | ArcGIS row ID |
portid | String | PortWatch port identifier (join key) |
portname | String | Port name |
date | Date | Observation date |
portcalls | Integer | Total daily port calls (all vessel types) |
portcalls_cargo | Integer | Daily port calls by cargo vessels |
portcalls_tanker | Integer | Daily port calls by tanker vessels |
import | Double | Total estimated import volume (metric tons) |
import_cargo | Double | Import volume from cargo vessels (MT) |
import_tanker | Double | Import volume from tanker vessels (MT) |
export | Double | Total estimated export volume (metric tons) |
export_cargo | Double | Export volume from cargo vessels (MT) |
export_tanker | Double | Export volume from tanker vessels (MT) |
geometry | Point | Port location (lat/lon) |
2. Ports (Reference Table)
ArcGIS Item ID: acc668d199d1472abaaf2467133d4ca4
Granularity: One row per port (static)
Coverage: ~1,854 ports
| Field | Type | Description |
|---|---|---|
portid | String | PortWatch port identifier (join key) |
portname | String | Port name |
country | String | Country name |
vessel_count_total | Integer | Total vessel count (reference metric) |
vessel_count_container | Integer | Container vessel count |
vessel_count_dry_bulk | Integer | Dry bulk vessel count |
vessel_count_general_cargo | Integer | General cargo vessel count |
vessel_count_RoRo | Integer | Roll-on/roll-off vessel count |
vessel_count_tanker | Integer | Tanker vessel count |
industry_top1 | String | Top industry served |
industry_top2 | String | Second industry |
industry_top3 | String | Third industry |
share_country_maritime_import | Double | Port's share of country maritime imports |
share_country_maritime_export | Double | Port's share of country maritime exports |
geometry | Point | Port location (lat/lon) |
3. Daily Chokepoint Transit Calls
ArcGIS Item ID: 42132aa4e2fc4d41bdaf9a445f688931
Granularity: One row per chokepoint per day
Coverage: 28 chokepoints (Suez Canal, Panama Canal, Strait of Hormuz, Bab el-Mandeb, Cape of Good Hope, Strait of Malacca, etc.)
| Field | Type | Description |
|---|---|---|
portname | String | Chokepoint name |
date | Date | Observation date |
n_cargo | Integer | Daily transit calls by cargo vessels |
n_tanker | Integer | Daily transit calls by tanker vessels |
n_total | Integer | Total daily transit calls |
capacity | Double | Estimated transit trade volume (metric tons) |
geometry | Point | Chokepoint location |
4. Chokepoints (Reference Table)
ArcGIS Item ID: fa9a5800b0ee4855af8b2944ab1e07af
Coverage: 24-28 chokepoints — metadata including location and descriptive attributes.
Access Methods
ArcGIS REST API (No Authentication)
Step 1: Get item metadata
GET https://www.arcgis.com/sharing/rest/content/items/{ITEM_ID}?f=json
--> Extract the `url` field to get the FeatureServer URL
Step 2: Query FeatureServer
GET {FeatureServer_URL}/0/query?where=1=1&outFields=*&f=geojson
Step 3: Filter
?where=portid='MOMBASA'
&outFields=portid,portname,date,portcalls,import,export
&resultRecordCount=100
&resultOffset=0
&orderByFields=date DESC
&f=json
Download Formats
CSV, GeoJSON, KML, Shapefile, GeoTIFF, PNG — available from each dataset page on the ArcGIS Hub.
Search API
https://portwatch.imf.org/api/search/definition/
Methodology
- Port calls — counted when a vessel's AIS signal enters and exits a port polygon (boundaries defined via DBSCAN spatial clustering on historical AIS positions)
- Import/export volumes — estimated by measuring vessel draft changes before/after port call, multiplied by deadweight tonnage. Draft decrease = offloading (import); draft increase = loading (export)
- Cargo/tanker split — based on AIS vessel type classification codes
- Source papers: IMF WP/20/57 (Cerdeiro et al. 2020), IMF WP/25/93 (2025)
Key Limitations for Automation
- Maritime only — no land transport or aviation
- Large vessels only — AIS tracking misses smaller vessels and informal trade
- Modelled volumes — trade estimates are derived from draft changes, not customs data
- Port-centric — aggregated to port level; no vessel-level data exposed
- No official data dictionary — field names were reconstructed from analysis notebooks and should be confirmed via FeatureServer metadata queries
Integration Notes
- Join to OPSIS: Match PortWatch port IDs to OPSIS port geometries for combined maritime trade + infrastructure resilience
- Join to World Bank: Country names enable linking port volumes to WDI indicators (container traffic TEU:
IS.SHP.GOOD.TU) - Join to IATI/DAC: Port disruption data can contextualise transport ODA investment decisions
- Red Sea Monitoring example: The datapartnership/red-sea-monitoring project demonstrates full integration patterns using these datasets