CoolFace
Datasetpublic

Anitrovic/openwateratlas-spots-climate-species-routes

OpenWaterAtlas — Spots × Climate × Species × Routes Version 1.0.0 · 2026-06-12 · CC-BY 4.0 · 1,005,290 rows across 8 configs An integrated open dataset joining 2,928 dive, kitesurf, surf and freedive spots to: daily climate aggregates (wind, air temperature, precipitation) at each spot, marine species occurrences (OBIS + GBIF, terrestrial-noise filtered) at each spot, the global direct-route airline graph (OpenFlights, 34,876 non-stop pairs). This is the structured-data layer… See the full description on the dataset page: https://huggingface.co/datasets/Anitrovic/openwateratlas-spots-climate-species-routes.

sourceHugging Facecc-by-4.0updated 4mo agoView on Hugging Face
0likes149downloads
Dataset Card

OpenWaterAtlas — Spots × Climate × Species × Routes

Version 1.0.0 · 2026-06-12 · CC-BY 4.0 · 1,005,290 rows across 8 configs

An integrated open dataset joining 2,928 dive, kitesurf, surf and freedive spots to:

  • —daily climate aggregates (wind, air temperature, precipitation) at each spot,
  • —marine species occurrences (OBIS + GBIF, terrestrial-noise filtered) at each spot,
  • —the global direct-route airline graph (OpenFlights, 34,876 non-stop pairs).

This is the structured-data layer behind openwateratlas.com. The companion citable archive is on Zenodo:

  • —Versioned DOI (v1.0.0): https://doi.org/10.5281/zenodo.20668393
  • —Concept DOI (latest): https://doi.org/10.5281/zenodo.20668392

Why this dataset exists

Every individual upstream source — OBIS, GBIF, OpenFlights, NOAA, Open-Meteo, Copernicus — is already open. The join is not. To answer a question like

"which dive sites are reachable on a direct flight from Lisbon in months when the water is ≥ 21 °C, and have manta-ray observations in the last five years?"

you would otherwise need to re-implement spot polygons, run 5 km-radius queries against OBIS and GBIF, dedupe OpenFlights, and re-derive monthly SST means. We publish the join itself so that work doesn't have to be repeated, and so downstream research and journalism can cite a single source.

Quickstart

python
from datasets import load_dataset

# Load any config by name:
spots          = load_dataset("Anitrovic/openwateratlas-spots-climate-species-routes", "spots", split="train")
species_obs    = load_dataset("Anitrovic/openwateratlas-spots-climate-species-routes", "species_observations", split="train")
daily_climate  = load_dataset("Anitrovic/openwateratlas-spots-climate-species-routes", "daily_climate", split="train")
routes         = load_dataset("Anitrovic/openwateratlas-spots-climate-species-routes", "airport_routes", split="train")

print(spots[0])
# {'id': 3270, 'slug': 'al-boom-diving', 'country_code': 'AE', ...}

Configs

ConfigRowsColsDescription
countries648ISO-3166 codes, slug, English name, centroid lat/lon
spots2,92821Spot table: activity (dive/kite/surf/freedive), coords, water-temp range, depth, difficulty, MPA flag, best months
airports4,5637IATA reference (name, city, country, lat/lon)
airport_routes34,8764Direct non-stop airline route pairs from OpenFlights (CC-BY 3.0)
daily_climate749,56810Per-spot, per-day-of-year wind / air-temp / precipitation percentiles (Open-Meteo + ERA5)
monthly_climate24,5767Same data aggregated by month
species_observations112,54819OBIS + GBIF marine occurrences within 5 km of each spot
species_by_spot63,16311Aggregation: one row per (spot × species) with observation count, first / last year

All coordinates are WGS 84 (EPSG:4326), longitude in lon, latitude in lat. Dates are ISO 8601. Booleans are True/False (parquet preserves bool type).

Methodology — short version

Full methodology: <https://openwateratlas.com/en/methodology/>.

Spots

2,928 named, human-curated dive / kite / surf / freedive sites ingested from OpenStreetMap sport=* nodes, operator site lists (PADI, SSI, NAUI, EFR, regional federations), and author-contributed sites with verification. Water-temperature range derived from NOAA Coral Reef Watch + Copernicus Marine reanalysis at the closest 0.05 ° grid cell.

Climate

For each spot, daily climatology queried from Open-Meteo Archive API at the spot's exact coordinates. The day-of-year aggregate is built from a five-year window (2019–2023) of hourly ERA5 observations. We report the 25th, 50th, 75th and 90th percentiles of wind speed (knots).

Species observations

OBIS v3 occurrence API (CC-BY 4.0; ~18 K records) + GBIF occurrence API with basisOfRecord=HUMAN_OBSERVATION (CC0/CC-BY; ~95 K records after noise filtering). Each spot queried with a 5 km radius. A family-level terrestrial blacklist was applied to drop GBIF noise (~76 K records / 40 %): Helicidae, Achatinidae (land snails), Coenobitidae, Gecarcinidae (land crabs), Porcellionidae, Oniscidae, Armadillidiidae (land isopods).

Airport routes

OpenFlights routes.dat (CC-BY 3.0, accessed 2024) deduplicated to 34,876 distinct (source_iata, dest_iata) pairs from the ~67 K original.

What we did NOT include

  • —Real-time SST, wave, wind or visibility. All values are climatological aggregates. For nowcasts go to NOAA / Copernicus / Open-Meteo directly.
  • —Operator / dive-shop coordinates — held separately on openwateratlas.com.
  • —Photos — kept within upstream licences (Pexels, iNaturalist, Wikimedia).

How to cite

When you use this dataset, please cite all of the following. The CC-BY 4.0 licence requires it.

Primary attribution:

Nitrovic, A. (2026). OpenWaterAtlas Spot–Climate–Species–Routes Dataset (v1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.20668393

BibTeX:

bibtex
@dataset{nitrovic_2026_owa_dataset,
  author    = {Nitrovic, Alex},
  title     = {OpenWaterAtlas Spot--Climate--Species--Routes Dataset},
  version   = {1.0.0},
  year      = {2026},
  month     = jun,
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.20668393},
  url       = {https://doi.org/10.5281/zenodo.20668393}
}

Upstream sources you must also cite (CC-BY 4.0 attribution chain):

  • —OBIS — <https://obis.org/> (CC-BY 4.0)
  • —GBIF — <https://www.gbif.org/> (CC0 / CC-BY per record)
  • —OpenFlights — <https://openflights.org/data.html> (CC-BY 3.0)
  • —NOAA Coral Reef Watch — <https://coralreefwatch.noaa.gov/>
  • —Open-Meteo — <https://open-meteo.com/>
  • —Copernicus Marine Service — <https://marine.copernicus.eu/>
  • —OpenStreetMap — <https://www.openstreetmap.org/> (ODbL)

License

The bundle as a whole is CC-BY 4.0. The redistribution includes material under different but compatible licences (CC-BY 3.0 for OpenFlights, CC-BY 4.0 for OBIS, CC0/CC-BY for GBIF per record). Downstream redistribution must credit OpenWaterAtlas and the upstream sources.

Contact

  • —Author: Alex Nitrovic, OpenWaterAtlas founder
  • —Email: support@openwateratlas.com
  • —Corrections / data quality: same email or <https://github.com/openwateratlas/data-issues>