Skip to content
Agentmart
Submit a tool

catalog-map

Map schema.org / GeoSPARQL catalog geography from SPARQL JSON: latitude/ longitude scatter, schema:box, asWKT, optional 110m coastlines, and client-side…

Skill by earthcube

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/earthcube-catalog-map

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Map schema.org / GeoSPARQL catalog geography from SPARQL JSON: latitude/ longitude scatter, schema:box, asWKT, optional 110m coastlines, and client-side haversine "near" filter. Use when the user wants a map of datasets or sites, or points within N km of a lat/lon. Triggers: map, lat/lon, bounding box, WKT, coastline, nearby, haversine, /skill:catalog-map. Not for: QLever geof:distance / spatialSearch, depth histograms, parquet.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/catalog-map

What's inside

Skill name
catalog-map
Description
Map schema.org / GeoSPARQL catalog geography from SPARQL JSON: latitude/ longitude scatter, schema:box, asWKT, optional 110m coastlines, and client-side haversine "near" filter. Use when the user wants a map of datasets or sites, or points within N km of a lat/lon. Triggers: map, lat/lon, bounding box, WKT, coastline, nearby, haversine, /skill:catalog-map. Not for: QLever geof:distance / spatialSearch, depth histograms, parquet.
License
Apache-2.0
Compatibility
python3, uv, matplotlib (decoder-pi pyproject.toml)
Metadata
project: decoder-pi · version: 1.0
Instructions
59 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (10)

  • SKILL.md
  • README.md · assets/
  • ne_110m_coastline.geojson · assets/
  • boxes.json · fixtures/
  • latlon.json · fixtures/
  • wkt.json · fixtures/
  • boxes.rq · queries/
  • latlon.rq · queries/
  • wkt.rq · queries/
  • map.py · scripts/

SKILL.md (first lines)

# Catalog map

Plot **spatial fields already in the graph**. Equirectangular matplotlib PNG
with bundled Natural Earth 110m coastlines (public domain). Distance is
**haversine in the client**, not GeoSPARQL — works on Oxigraph and QLever.

## Agent workflow

1. Confirm `--endpoint` or SPARQL JSON.
2. Choose `points`, `boxes`, `wkt`, or `near` (`--lat --lon --km`).
3. Run from the **decoder-pi repo root**.
4. Report PNG path and how many geometries plotted vs skipped.

`schema:box` has two live formats; the CLI parses both:

- space: `minLat minLon maxLat maxLon` (EMODNet / deepoceans)
- comma: `lat,lon lat,lon` (neon4cast / ecoforecast)

WKT is treated as lon/lat (GeoSPARQL). Huge geometries are truncated.

## CLI

```bash
uv run python skills/catalog-map/scripts/map.py points \
  --endpoint URL --limit 4000 -o runs/points.png

uv run python skills/catalog-map/scripts/map.py boxes \
  --endpoint URL --limit 300 -o runs/boxes.png

uv run python skills/catalog-map/scripts/map.py wkt \
  --endpoint URL --limit 80 -o runs/wkt.png

uv run python skills/catalog-map/scripts/map.py points \
  --from-json /tmp/latlon.json -o runs/points.png

uv run python skills/catalog-map/scripts/map.py near \
  --from-json /tmp/latlon.json --lat 32 --lon -88 --km 400 -o runs/near.png

# skip coastlines
uv run python skills/catalog-map/scripts/map.py points --no-coastlines --endpoint URL
```

| Mode | Query | Geometry |
|---|---|---|
| `points` | `queries/latlon.rq` | scatter + coastlines |
| `boxes` | `queries/boxes.rq` | rectangles |
| `wkt` | `queries/wkt.rq` | MULTIPOINT scatter, POLYGON outline |
| `near` | same lat/lon JSON | haversine radius around `--lat --lon --km` |

`--coastlines` is on by default; `--no-coastlines` turns it off.

## Do not

- Use QLever `spatialSearch:` or `geof:distance` (not portable to Oxigraph)
- Fetch remote coastline/raster tiles
- Treat empty SPARQL as an empty ocean of zeros
- Plot forecast parquet series (use `forecast-parquet`)

From earthcube/decoder-pi, Apache-2.0.

More from earthcube/decoder-pi

Signals

Stars
0
Forks
0
Open issues
5
Last commit (this folder)
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.0
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from earthcube

Cite this page

catalog-map skill. Agent Mart. https://agentmart.dev/skills/earthcube-catalog-map (last updated 2026-10-24)