---
name: emodnet-human-activities-ingestion
description: "How to get EMODnet Human Activities data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Query an EMODnet Human Activities vessel-density raster into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/emodnet-human-activities
Provider: https://emodnet.ec.europa.eu/en/human-activities
Checked against the provider's documentation: 2026-11-04

## Access
- No account or key. The WMS GetFeatureInfo endpoint returns JSON over HTTPS.

## Request
```bash
curl -g 'https://ows.emodnet-humanactivities.eu/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&LAYERS=vesseldensity_allavg&QUERY_LAYERS=vesseldensity_allavg&CRS=EPSG:4326&BBOX=50.8,1.2,51.2,1.6&WIDTH=256&HEIGHT=256&I=128&J=128&INFO_FORMAT=application/json'
```

## Format
GeoJSON FeatureCollection with one feature per queried pixel; properties.GRAY_INDEX carries the raster's vessel-density value for that point.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""EMODnet Human Activities vessel-density raster, one point -> pandas -> Parquet. No key."""
import requests
import pandas as pd

URL = "https://ows.emodnet-humanactivities.eu/wms"
params = {
    "SERVICE": "WMS", "VERSION": "1.3.0", "REQUEST": "GetFeatureInfo",
    "LAYERS": "vesseldensity_allavg", "QUERY_LAYERS": "vesseldensity_allavg",
    "CRS": "EPSG:4326", "BBOX": "50.8,1.2,51.2,1.6", "WIDTH": 256, "HEIGHT": 256,
    "I": 128, "J": 128, "INFO_FORMAT": "application/json",
}
r = requests.get(URL, params=params, timeout=60)
r.raise_for_status()
feat = r.json()["features"][0]
df = pd.DataFrame([{"layer": "vesseldensity_allavg", "lon": 1.4, "lat": 51.0, **feat["properties"]}])
df.to_parquet("emodnet_vessel_density_point.parquet", index=False)
print("vessel density (GRAY_INDEX) at Dover Strait point:", feat["properties"]["GRAY_INDEX"])
```
Run by us on 2026-11-04 (python 3.13.5 | pandas 3.0.6 | pyarrow 26.0.1 | requests 2.34.2). Result: vessel density (GRAY_INDEX) at Dover Strait point: 1.724800944328308

## Limits
- Rate limits: Not stated.
- GetFeatureInfo returns one pixel per request; bulk extraction needs the WCS coverage endpoint or a downloaded GeoTIFF instead.

## Quirks
- Query parameters with [] or repeated keys need an unencoded request (curl -g).
- GRAY_INDEX units follow the queried layer, for example "Number of routes per square km per month" for the density layers listed on the product page.
- Separate layers exist per vessel type and per month/annual average (for example vesseldensity_01avg for January).

## Terms and attribution
- "Data are free and free of any restrictions, in such a way as to ensure their use from a multitude of stakeholders."
- No specific reuse licence or terms page was stated for Human Activities on the pages checked.
- Terms page: https://emodnet.ec.europa.eu/en/human-activities

## Sources
- https://emodnet.ec.europa.eu/en/human-activities: "Data are free and free of any restrictions, in such a way as to ensure their use from a multitude of stakeholders, such as companies, policy makers, researchers, students, spatial planners, etc."
- https://emodnet.ec.europa.eu/en/emodnet-web-service-documentation: "This document has links to all web services that allow you to search, visualise and download EMODnet data and data products."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
