Modelled ship traffic and at-berth emissions near a waterfront address
ship_exposure21 fieldsNot in the demo
Available with: bought bundle or agreed plan (all fields) · Pricing
What this does not say
Quoted verbatim from the section’s warnings field, exactly as the API returns it. They are not translated: a translation would show something other than what your response actually contains.
- An estimate, not an air-quality or noise measurement: vessel-hours count distinct (ship, clock hour) pairs of AIS positions in 250 m cells whose centre lies within 500 m or 1 km of the address over the last 365 days, by AIS ship type (passenger 60-69, cargo 70-79, tanker 80-89, fishing 30, tug and service 31-32 and 50-59, other). AIS coverage depends on what has been collected from Kystdatahuset; small craft without AIS are not counted.
- berth_nox_index_kg is indicative, from stated assumptions because the ship register has no engine power: hours at berth of ships of at least 5 000 GT at the nearest port within 2 km x auxiliary power (0.10 kW per GT for passenger and cruise ships, 0.02 kW per GT for others) x 10 g NOx per kWh (order of magnitude for IMO Tier II auxiliary engines; IMO Fourth GHG Study 2020, EMEP/EEA Guidebook 2023). Shore power is not known and not deducted. cruise_calls_365d counts calls by passenger ships of at least 10 000 GT or a ship type naming cruise.
- Only addresses within 1 km of recorded AIS traffic have a record; no record means no vessel traffic was recorded within 1 km, which inland is the expected answer. validation compares AIS vessel-hours around each port with Kystverket's port-call register and is null until both are populated.
- Straight-line EPSG:25833 distances from the address point to the feature; not travel distance. Source features are imported as published, with their own accuracy and update cadence; updated_at is our import time.
Fields
4 of 21 fields are value fields — the ones that decide whether a record actually says anything. The rest are context: identifiers, codes and timestamps.
| Field | Type | Role |
|---|---|---|
| feature_id | string | null | context |
| label | string | null | context |
| municipality_code | string | null | context |
| updated_at | string | null | context |
| vessel_hours_500m | integer | null (t) | value |
| vessel_hours_1km | integer | null | value |
| vessel_hours_500m_by_type | object | null | context |
| vessel_hours_1km_by_type | object | null | context |
| nearest_port | string | null | context |
| nearest_port_distance_m | integer | null (m) | context |
| port_calls_365d | integer | null | context |
| cruise_calls_365d | integer | null | value |
| large_ship_hours_at_berth_365d | number | null | context |
| berth_nox_index_kg | number | null | value |
| period_from | string | null | context |
| period_to | string | null | context |
| method | string | null | context |
| method_version | string | null | context |
| assumptions | object | null | context |
| inputs | array<object> | null | context |
| validation | object | null | context |
Fetch this section
Send the key in the X-API-Key header. The section can be fetched with the rest of the address, or on its own with pagination.
curl --fail-with-body --silent --show-error \ -H "X-API-Key: $APPROACH_API_KEY" \ 'https://api.approach.no/api/v1/addresses/285717643?include=ship_exposure' # paginated, one section at a time curl --fail-with-body --silent --show-error \ -H "X-API-Key: $APPROACH_API_KEY" \ 'https://api.approach.no/api/v1/addresses/285717643/sections/ship_exposure?limit=25'
Why it cannot be tried here
This section is not part of the public demo projection. That is a licensing and privacy decision, not a sign the data is missing: it is served to customers granted the section.