Awesome-claude-skills odp-stac-api
Search for ocean data, marine datasets, and geospatial collections from Hub Ocean / Ocean Data Platform (ODP) using the STAC API
install
source · Clone the upstream repo
git clone https://github.com/joevstaas/awesome-claude-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/joevstaas/awesome-claude-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/odp-stac-api" ~/.claude/skills/joevstaas-awesome-claude-skills-odp-stac-api && rm -rf "$T"
manifest:
skills/odp-stac-api/SKILL.mdsource content
ODP STAC API Skill
Use this skill when the user wants to search for ocean data, marine datasets, or geospatial collections from Hub Ocean / Ocean Data Platform (ODP).
Overview
The ODP STAC API provides access to ocean and marine datasets following the SpatioTemporal Asset Catalog (STAC) specification. It allows searching for data collections and individual dataset items with spatial and temporal filters.
Base URL:
https://api.hubocean.earth/api/stac
Key Concepts: Collections vs Items
| Concept | Description | Endpoint |
|---|---|---|
| Collection | A dataset category containing multiple items. Has metadata like title, description, spatial/temporal extent, and keywords. Think of it as a "folder" of related data. | |
| Item | An individual geospatial record within a collection. Contains specific geometry, timestamps, and links to actual data assets. Think of it as a single "file" or observation. | |
Quick Reference
- Want to browse available datasets? → List Collections
- Want to find specific data points/observations? → Search Items within a Collection
Endpoints
1. Root Catalog
curl -X GET "https://api.hubocean.earth/api/stac"
2. List All Collections
curl -X GET "https://api.hubocean.earth/api/stac/collections"
With pagination:
curl -X GET "https://api.hubocean.earth/api/stac/collections?offset=0&limit=10"
3. Get Single Collection
curl -X GET "https://api.hubocean.earth/api/stac/collections/{collection-id}"
4. Search Items
curl -X POST "https://api.hubocean.earth/api/stac/search" \ -H "Content-Type: application/json" \ -d '{ "collections": ["collection-uuid"], "bbox": [minLon, minLat, maxLon, maxLat], "datetime": "start/end", "limit": 10 }'
Search Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
| array | Collection UUIDs to search within | |
| array | Specific item UUIDs to retrieve | |
| array | Bounding box [minLon, minLat, maxLon, maxLat] | (Oslo Fjord area) |
| object | GeoJSON geometry for spatial queries | |
| string | ISO 8601 time range | |
| integer | Max results (default varies) | |
| integer | Skip N results for pagination | |
Example Queries
List All Available Collections
curl -s "https://api.hubocean.earth/api/stac/collections" | jq '.collections[] | {id, title, description}'
Search for Items in Norwegian Waters (2023)
curl -X POST "https://api.hubocean.earth/api/stac/search" \ -H "Content-Type: application/json" \ -d '{ "bbox": [3, 57, 31, 71], "datetime": "2023-01-01T00:00:00Z/2023-12-31T23:59:59Z", "limit": 50 }'
Search Echosounder Data in Southern Ocean
curl -X POST "https://api.hubocean.earth/api/stac/search" \ -H "Content-Type: application/json" \ -d '{ "collections": ["7c61c869-a7c1-4f1c-900e-34636ee3392a"], "bbox": [-180, -90, 180, -60], "limit": 100 }'
Get Items Near Oslo Fjord
curl -X POST "https://api.hubocean.earth/api/stac/search" \ -H "Content-Type: application/json" \ -d '{ "intersects": { "type": "Polygon", "coordinates": [[[10.2, 59.0], [10.9, 59.0], [10.9, 59.5], [10.2, 59.5], [10.2, 59.0]]] }, "limit": 50 }'
Known Collections
| Collection ID | Name | Description |
|---|---|---|
| Aker BioMarine EK60/EK80 Echosounder | Echosounder data from Southern Ocean krill fishing missions (10+ years) |
| (check API for current list) | Aker BP Metocean Data | Wind, waves, currents from Norwegian Continental Shelf (2021+) |
Note: Collections may be added or removed. Always query
for the current list./stac/collections
Response Structure
Collection Response
{ "id": "uuid", "title": "Dataset Name", "description": "What this dataset contains", "license": "ODC-BY-1.0", "extent": { "spatial": {"bbox": [[-180, -90, 180, 90]]}, "temporal": {"interval": [["2021-01-01T00:00:00Z", null]]} }, "keywords": ["oceanography", "marine", ...], "links": [...] }
Item Response (from search)
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "id": "item-uuid", "geometry": {"type": "Point", "coordinates": [10.7, 59.9]}, "properties": { "datetime": "2023-06-15T12:00:00Z", ... }, "links": [...], "assets": {...} } ] }
Common Bounding Boxes
| Area | Bbox |
|---|---|
| Oslo Fjord | |
| Norwegian Coast | |
| North Sea | |
| Southern Ocean | |
| Global | |
Tips for Claude Desktop Usage
- First, list collections to see what data is available
- Note collection IDs - you need these UUIDs to search for items
- Use bbox for regional searches - faster than global queries
- Add datetime filters to narrow results to relevant time periods
- Check the
array in responses for data download URLslinks
Related Resources
- STAC Specification: https://stacspec.org/
- Hub Ocean Data Catalog UI: https://app.hubocean.earth/catalog
- API Documentation: https://docs.hubocean.earth/stac-api/