# geo-data-engineering

Помогает агенту собрать геоданные из OSM, STAC или Overture, привести их в рабочий вид и не потерять строки по дороге.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 35
- Автор: Muhammed Enes Duran
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/muend/geoai-skills/tree/HEAD/skills/geo-data-engineering/SKILL.md
- Обновлён: 2026-10-17
- HTML: https://affpapa.org/nevibecode/skills/geo-data-engineering

## Что делает

Скилл включается на этапе, где геоданные надо получить, починить или прогнать через повторяемый конвейер. Он держит под рукой таблицу форматов: GeoParquet для аналитического обмена, GeoPackage для настольного ГИС, FlatGeobuf для потокового чтения, COG для растров, Zarr или NetCDF для многомерных данных. Shapefile остаётся только для случаев, когда его требует старый инструмент, потому что имена колонок обрезаются, а кодировка ломается.

Внутри есть playbook по источникам: небольшие выгрузки OpenStreetMap через `osmnx`, крупные — Geofabrik PBF плюс `pyrosm` или `osmium`, здания и места в масштабе — Overture Maps с запросами через DuckDB spatial. Происхождение данных скилл велит фиксировать в `DATA_SOURCES.md`: адрес источника, параметры запроса, дату и лицензию. Слой CRS разбирается отдельно — храните в EPSG:4326 или исходной системе, а анализируйте в проекции под охват, например через `gdf.estimate_utm_crs()`. Для точности ниже метра нужны гриды преобразования, иначе сдвиг датума уедет незаметно.

Стандартная гигиеническая чистка — `scripts/clean_vector.py` или его функция `clean_vector()`: убирает пустые и NULL-геометрии, чинит невалидные через `make_valid`, устраивает дедупликацию, перепроецирует и печатает отчёт о количестве. Отчёт и есть главный смысл: молчаливая потеря фич становится видимой. Данные, которые не влезают в RAM, скилл советует гнать через DuckDB spatial поверх GeoParquet или `dask-geopandas`, а растры читать окнами, а не целиком.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add muend/geoai-skills --skill geo-data-engineering -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/geo-data-engineering/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/geo-data-engineering/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add muend/geoai-skills --skill geo-data-engineering -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/geo-data-engineering/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add muend/geoai-skills --skill geo-data-engineering -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/geo-data-engineering/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install muend/geoai-skills geo-data-engineering
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/geo-data-engineering/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add muend/geoai-skills --skill geo-data-engineering -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/muend/geoai-skills --path skills/geo-data-engineering
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/geo-data-engineering/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add muend/geoai-skills --skill geo-data-engineering -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/muend/geoai-skills/tree/HEAD/skills/geo-data-engineering/SKILL.md

## Когда брать
- собрать выгрузку OpenStreetMap и отфильтровать её по значениям тегов
- перевести векторный слой в GeoParquet без потери CRS
- починить невалидные геометрии и посчитать, сколько фич пропало
- прогнать соединение таблиц, которое не влезает в память одной машиной
- записать происхождение данных так, чтобы выгрузку можно было повторить

## Примеры запросов агенту
- Скачай здания из Overture для моего региона и сохрани в GeoParquet
- Почисти `buildings.geojson` через `clean_vector.py` и покажи отчёт по потерям
- Перепроецируй слой в местную UTM-зону перед подсчётом площадей

## Похожие
- [xlsx](https://affpapa.org/nevibecode/skills/xlsx.md) — скилл · 187223 установки
- [google-agents-cli-observability](https://affpapa.org/nevibecode/skills/google-agents-cli-observability.md) — скилл · 511300 установок
- [caveman-evidence-review](https://affpapa.org/nevibecode/skills/caveman-evidence-review.md) — скилл · 104500 установок
- [migration](https://affpapa.org/nevibecode/skills/migration.md) — скилл · 103900 установок
- [performance-optimization](https://affpapa.org/nevibecode/skills/performance-optimization.md) — скилл · 65200 установок
- [supabase](https://affpapa.org/nevibecode/skills/supabase.md) — скилл · 8 установок

Из того же набора: [muend/geoai-skills](https://affpapa.org/nevibecode/by/muend/geoai-skills.md) — 6 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
