Skip to content
Back to skills

Core Data Model

ASecurity

"Use when working with GeoPandas GeoSeries and GeoDataFrame

  • 247 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 8, 2026
toolspythonbashtestingapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill core-data-model --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Core Data Model?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Core Data Model
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-core-data-model/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-core-data-model)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: core-data-model
description: "Use when working with GeoPandas GeoSeries and GeoDataFrame
  objects, geometry columns, CRS metadata, Shapely-backed geometry arrays, and
  spatial-index basics."
disable-model-invocation: true
metadata:
  disco-role: operating
license: BSD 3-Clause
---

# Core Data Model

Use this sub-skill when the task is about creating, inspecting, repairing, or transforming GeoPandas objects before any file I/O, spatial analysis, map rendering, or testing-specific assertion work.

## Read First

- [API reference](references/api-reference.md): verified signatures and object rules for `GeoSeries`, `GeoDataFrame`, geometry columns, CRS, coordinate access, and spatial index basics.
- [Workflows](references/workflows.md): practical recipes for construction, active geometry repair, CRS assignment/reprojection, missing/empty geometry checks, and pandas interoperability.
- [Troubleshooting](references/troubleshooting.md): symptoms and fixes for missing active geometry, wrong CRS, metric operation misuse, invalid or missing geometries, and pandas conversions.
- [validate_geodataframe.py](scripts/validate_geodataframe.py): safe helper that builds or reads a tiny GeoDataFrame and reports geometry column, CRS, bounds, empty/missing geometry, and optional spatial-index status.

## Route Here When

- The user asks how to build a `GeoDataFrame` or `GeoSeries` from Shapely objects, WKT/WKB, x/y coordinates, features, or tabular data.
- The task mentions `geometry`, active geometry column, `set_geometry`, `rename_geometry`, `active_geometry_name`, or pandas operations that lost geometry semantics.
- The task involves `.crs`, `set_crs`, `to_crs`, `estimate_utm_crs`, EPSG codes, or deciding whether coordinates need assignment versus transformation.
- The question is about missing/empty geometries, `isna()`, `is_empty`, bounds, coordinate extraction, geometry dtype, or when operations return pandas versus GeoPandas objects.
- The task asks for spatial index basics such as `.sindex`, `has_sindex`, valid predicates, or why a spatial operation is slow.

## Route Elsewhere

- Use `../io-formats/SKILL.md` for `read_file`, `to_file`, GeoJSON, WKB/WKT persistence, Arrow/Parquet/Feather, or PostGIS.
- Use `../spatial-operations/SKILL.md` for joins, overlays, clips, dissolves, unary/binary geometry analysis, nearest searches, and predicate selection.
- Use `../mapping-geocoding/SKILL.md` for `.plot()`, `.explore()`, folium, matplotlib, geocoding, or map classification.
- Use `../validation-testing/SKILL.md` for `geopandas.testing` assertions or focused native test commands.

## Default Operating Rules

1. Confirm the object type and active geometry column before applying GeoPandas methods.
2. Inspect `.crs` on all layers. Use `set_crs()` only to attach known metadata; use `to_crs()` to reproject coordinates.
3. For distance, area, buffer, nearest, or metric thresholds, prefer a projected CRS with suitable linear units.
4. Treat `None`/missing geometries separately from empty Shapely geometries.
5. When pandas operations strip GeoPandas metadata, rebuild with `GeoDataFrame(df, geometry=..., crs=...)` or call `set_geometry()` deliberately.
6. Use spatial index as an optimization or query surface, not as a replacement for exact Shapely predicates.

## Minimal Checks

Run from this sub-skill directory or any other current working directory:

```bash
python scripts/validate_geodataframe.py --default-fixture --build-sindex
```

Expected high-level signal: the report names the active geometry column, CRS, row count, total bounds, missing and empty geometry counts, and whether a spatial index could be built.

## Handoff to Other Workflows

- After constructing or repairing objects, move to `spatial-operations` for analysis or `io-formats` for persistence.
- Before maps or real geocoding, move to `mapping-geocoding` and check optional dependencies.
- When the result must be asserted in code review or tests, move to `validation-testing`.

Files in this skill

  • SKILL.md3.9 KB
  • references/api-reference.md5.1 KB
  • references/troubleshooting.md2.6 KB
  • references/workflows.md3.5 KB
  • scripts/validate_geodataframe.py5.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.