К основному содержанию
скилл CX Codex

spatial — скилл для Claude Code: что делает и как установить

Скилл помогает анализировать географические координаты, границы и файлы GeoJSON или GeoParquet через DuckDB, а также искать объекты в Overture Maps.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add duckdb/duckdb-skills --skill spatial -a claude-code
Открыть на GitHub

Что делает spatial

Скилл подключает расширение spatial для DuckDB и выполняет геопространственные запросы через Bash. Если локальных файлов нет, агент подтягивает данные об улицах, зданиях и местах напрямую из открытых датасетов Overture Maps на S3 без ключей API.

Под капотом инструмент генерирует SQL-запросы с функциями ST_Contains, ST_Read и ST_Distance_Spheroid, а также может строить гексагональную сетку H3. При работе с Overture Maps обязательно используется фильтрация по bbox до вызова функций, чтобы читать Parquet без скачивания всего массива данных.

Для правильных расчётов скилл выставляет geometry_always_xy = true, иначе координаты перепутаются местами. Для работы нужен установленный в системе DuckDB. Если бинарник отсутствует, потребуется сначала поставить сам DuckDB.

Какие задачи решает

  • рассчитать реальное расстояние между координатами на эллипсоиде WGS84
  • найти здания или объекты инфраструктуры через Overture Maps
  • проверить попадание точек в полигоны через ST_Contains
  • конвертировать треки GPX или Shapefile в формат GeoJSON

Примеры запросов агенту

  • Найди ближайшие кафе в заданном полигоне через Overture Maps
  • Проверь, какие точки из файла deliveries.csv попадают в границы zones.geojson
  • Экспортируй полигоны из parcels.gpkg в GeoParquet с помощью DuckDB

Как установить spatial

1Через Skills CLI (Vercel)

npx skills add duckdb/duckdb-skills --skill spatial -a claude-code

2Вручную: положить файлы

~/.claude/skills/spatial/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/spatial/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о spatial

Как установить spatial в Claude Code?

Выполните команду npx skills add duckdb/duckdb-skills --skill spatial -a claude-code.

Откуда скилл берёт данные о зданиях и дорогах, если нет своих файлов?

Агент обращается к открытым датасетам Overture Maps в хранилище S3 через модуль httpfs. Для таких запросов не нужны ключи API.

Почему для вычисления расстояний нужен тип POINT_2D?

Функция ST_Distance_Spheroid требует именно POINT_2D на эллипсоиде WGS84. Геометрия из Overture Maps имеет тип GEOMETRY('OGC:CRS84'), поэтому координаты извлекаются через ST_Point(ST_X(geometry), ST_Y(geometry))::POINT_2D.

Исходный текст

SKILL.md · MIT
---
name: spatial
description: >
  Answer questions about spatial data using DuckDB. Use when the user mentions locations,
  coordinates, lat/lng, distances, maps, addresses, "near", "within", "closest", geographic
  names, or spatial file formats (GeoJSON, Shapefile, GeoPackage, GPX, GeoParquet). Also
  triggers when the user wants to find places, buildings, or roads — Overture Maps provides
  free global data on S3 with zero API keys. Handles spatial joins, distance calculations,
  containment checks, density analysis, and format conversions for geographic data.
argument-hint: <question or file> [additional context]
allowed-tools: Bash
---

You are answering spatial questions using DuckDB's spatial extension and, when needed, Overture Maps as a free global data source.

Question or file: `$0`
Additional context: `${1:-}`

## Step 1 — Understand what the user needs

Classify the question:

| Pattern | Data source | Key functions |
|---------|-------------|---------------|
| "Find X near Y" (no user file) | Overture Maps on S3 | `ST_Distance_Spheroid`, bbox filtering |
| "How far between A and B" | Geocode or user data | `ST_Distance_Spheroid` |
| "Which points fall inside polygons" | User files | `ST_Contains` |
| "Analyze this GeoJSON/Shapefile/GPX" | User file | `ST_Read`, measurement functions |
| "Show density/hotspots" | User or Overture data | H3 hex binning |
| "Convert to GeoJSON/GeoPackage" | User file | `COPY TO (FORMAT GDAL)` |
| "Count buildings/roads in area" | Overture Maps | bbox filtering + aggregation |

If the question involves real-world places, POIs, buildings, roads, or boundaries and the user hasn't provided a file, use **Overture Maps** — read `references/overture.md` for S3 paths and schema.

For spatial function syntax, read `references/functions.md`.

## Step 2 — Write and run the query

Always start with:
```sql
LOAD spatial;
SET geometry_always_xy = true;
```

Add extensions as needed:
- Overture/remote data: `LOAD httpfs; CREATE SECRET (TYPE S3, PROVIDER config, REGION 'us-west-2');`
- H3 hex binning: `INSTALL h3 FROM community; LOAD h3;`

### Key principles

**bbox filtering first** — When querying Overture, always filter on `bbox.xmin/xmax/ymin/ymax` before any spatial function. This uses Parquet predicate pushdown and avoids downloading the full dataset.

**Always set `geometry_always_xy = true`** — This ensures all spatial functions interpret coordinates as longitude, latitude (the standard for Overture, GeoJSON, and most data sources). Without it, spheroid functions assume latitude first and return wrong results.

**Use spheroid functions for real-world distances** — `ST_Distance_Spheroid` returns meters on the WGS84 ellipsoid. Plain `ST_Distance` uses planar coordinates and gives meaningless results for lat/lng. **Important:** spheroid functions (`ST_Distance_Spheroid`, `ST_Area_Spheroid`, etc.) require `POINT_2D` inputs, not generic `GEOMETRY`. Overture geometry columns are typed `GEOMETRY('OGC:CRS84')` and cannot be cast directly. Extract coordinates first:
```sql
ST_Point(ST_X(geometry), ST_Y(geometry))::POINT_2D
```

**CSV with lat/lng needs conversion** — `ST_Point(longitude, latitude)` (longitude first). This is the most common gotcha.

Run the query in a single bash call:

```bash
duckdb -c "
LOAD spatial;
<ADDITIONAL_SETUP>
<YOUR_QUERY>
"
```

## Step 3 — Present results

- For tabular results: show the data directly
- For spatial results: consider exporting to GeoJSON for visualization (`COPY TO 'result.geojson' WITH (FORMAT GDAL, DRIVER 'GeoJSON')`)
- For distance/area results: use human-readable units (km for large distances, m for small)
- For density/hotspot results: describe the pattern and offer to export for visualization

If the query fails:
- **`duckdb: command not found`** → delegate to `/duckdb-skills:install-duckdb`
- **Missing extension** → `INSTALL spatial; LOAD spatial;` or `INSTALL h3 FROM community; LOAD h3;`
- **S3 access denied** → suggest checking AWS credentials
- **No results with Overture** → widen the bbox, check the category spelling, or try a broader search

© duckdb · MIT · duckdb/duckdb-skills

Похожие скиллы

Все скиллы по теме «Данные и базы» →
tooluniverse-spatial-omics-analysis mims-harvard Скилл для анализа пространственной омики: связывает списки генов SVGs и контекст ткани с базами данных, путями и терапевтическими мишенями. CX Codex +1 360установок strategy-compare marketcalls Сравнивает несколько торговых стратегий или направлений на одном символе и строит таблицу метрик рядом. Пригодится, когда нужно выбрать, что тестировать дальше. CX Codex +1 2 300установок datapackage catalyst-cooperative Скилл читает дескриптор Frictionless Data Package и отвечает, какие таблицы и колонки есть в датасете, как его загрузить и о чём предупреждает метадата. CX Codex +1 2 100установок mapbox-data-visualization-patterns mapbox Готовые шаблоны визуализации данных на картах Mapbox для Claude Code: картограммы, тепловые слои и 3D-модели. Пригодится при отрисовке статистики и плотности точек. CX Codex +1 2 100установок setup marketcalls Разворачивает виртуальное окружение Python для тестирования торговых стратегий на VectorBT и OpenAlgo. Настраивает зависимости, папки и файл .env. CX Codex +1 2 000установок geomaster K-Dense-AI Помогает вести геопространственные исследования: работать со спутниковыми снимками, векторными и растровыми данными, CRS и пространственной статистикой. CX Codex +1 1 900установок

Из того же набора6

Спонсоры проекта

Компании, которые помогают держать аналитику открытой