Skip to content
Back to skills

Distribute Geoparquet

ASecurity

"Plan and produce a distribution-ready GeoParquet publication using

  • 247 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 8, 2026
datarailsfrontendperformance

Security analysis

A100/100

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

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill distribute-geoparquet --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Distribute Geoparquet?

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

Security grade badge for Distribute Geoparquet
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-distribute-geoparquet/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-distribute-geoparquet)

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: distribute-geoparquet
description: "Plan and produce a distribution-ready GeoParquet publication using
  evidence-backed compression, spatial ordering, row-group, partitioning,
  compatibility, STAC, and frontend-access choices; route file-level metadata
  and data checks to validate-geoparquet."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Distribute GeoParquet

Use this sub-skill when a user is planning a public or internal GeoParquet
release, choosing a writer, designing a partitioned distribution, or diagnosing
spatial-access performance. It is a planning and recipe skill: it does **not**
install, bundle, invoke, or claim to verify GDAL/OGR, DuckDB, `geoparquet-io`
(`gpio`), Sedona, Spark, cloud storage, or frontend readers.

For concrete file metadata, schema, native-type, `geo`-metadata, CRS, bbox,
compression, and data-validity checks, route to
[`../validate-geoparquet/SKILL.md`](../validate-geoparquet/SKILL.md). Ask the
user to probe the installed tool and version before selecting a command. Keep
the tool/version output and any validation report as evidence; do not infer
support from a command name alone.

## Routing workflow

1. Establish the publication target: one file or a dataset, approximate size
   and row count, object-store layout, query shapes, frontend versus analytic
   access, expected readers, and whether old GeoParquet readers must work.
2. Choose the format target. Prefer native GeoParquet 2.0 when the complete
   reader set supports Parquet `GEOMETRY`/`GEOGRAPHY` and geospatial statistics.
   Choose GeoParquet 1.1 with the bbox covering when compatibility with a wider
   or older reader population is more important. Do not describe GDAL's native
   type-only output as conformant GeoParquet 2.0; see
   [`references/tool-recipes.md`](references/tool-recipes.md).
3. Plan physical layout: spatial ordering, row groups, and—normally for data
   above roughly 2 GB—spatial partitioning. Tune the plan to feature size and
   access patterns, not just row counts.
4. Plan publication metadata: STAC Collection/Items, media type
   `application/vnd.apache.parquet`, stable object URLs, and reader/browser
   access constraints.
5. Hand the plan and candidate writer recipe to the user. Require them to
   install/probe the external tools and then use
   [`../validate-geoparquet/SKILL.md`](../validate-geoparquet/SKILL.md) on the
   resulting files. If a required tool or reader capability is unknown, mark
   it unresolved rather than claiming success.

For detailed recommendations, read
[`references/distribution-recommendations.md`](references/distribution-recommendations.md).
For copyable commands and code, read
[`references/tool-recipes.md`](references/tool-recipes.md). For failure modes,
read [`references/troubleshooting.md`](references/troubleshooting.md).

## Decision guardrails

- Use ZSTD, normally level 15 or higher. Levels 17–22 can take substantially
  longer for less than roughly one percent additional size reduction; choose
  based on publishing time and benchmark evidence.
- Spatial ordering is a prerequisite for useful row-group bbox pruning. A
  valid bbox or native geometry statistic does not make unsorted data fast.
- Start with 50,000–150,000 rows per row group. If byte sizing is available,
  target about 128–256 MiB per group, reducing row counts for wide or complex
  features. Frontend bbox access often needs smaller groups than full scans.
- Partition spatially, rather than only by arbitrary attributes, when the
  dataset is larger than about 2 GB or selective spatial reads dominate. KD
  trees, grids, geohash/S2/H3/A5 cells, and administrative boundaries are
  alternatives with different balance and overlap trade-offs.
- A single file can serve analytics and a frontend, but row-group size is a
  compromise: small groups reduce irrelevant network transfer for bbox reads;
  too many groups increase metadata and full-scan overhead. Consider separate
  distributions when the workloads conflict.
- STAC describes the published asset; it is not a substitute for GeoParquet
  metadata or validation. Use the Parquet media type and describe partition
  extents with Items.
- `.parquet` and `application/vnd.apache.parquet` are the interoperable file
  extension and media type. Avoid presenting `.geoparquet` as the default.

## Synthetic planning cases

- **10 GB public data with old-reader compatibility:** probe the actual reader
  matrix first. If old readers do not reliably understand native Parquet
  geospatial types, select a GeoParquet 1.1 distribution with bbox covering,
  ZSTD level 15, spatial ordering, 100,000-row (or byte-sized) row groups, and
  spatial partitions. Publish a STAC Collection with per-partition Items. Only
  choose 2.0 as the public canonical distribution when the old-reader gate is
  explicitly cleared; a second 2.0 distribution may be preferable to silently
  sacrificing compatibility.
- **Slow bbox query from unsorted data and oversized row groups:** do not first
  add arbitrary indexes or claim the bbox metadata is broken. Confirm ordering
  and inspect row-group sizing with the validation skill, then rewrite with
  spatial ordering and smaller groups (for example 100,000 rows as a starting
  point, or a byte target around 128–256 MiB). Repartition if the dataset is
  large. Re-run the same selective query and metadata/data checks; retain both
  before/after observations.

## References

- [Distribution recommendations](references/distribution-recommendations.md)
- [Tool recipes and version caveats](references/tool-recipes.md)
- [Troubleshooting and synthetic cases](references/troubleshooting.md)
- [Metadata and data validation router](../validate-geoparquet/SKILL.md)

Files in this skill

  • SKILL.md5.7 KB
  • references/distribution-recommendations.md8.8 KB
  • references/tool-recipes.md9.9 KB
  • references/troubleshooting.md8.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.