Skip to content
Back to skills

Parquet Raster

ASecurity

"Review and reason about the alpha Parquet Raster proposal: root

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

Security analysis

A100/100

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

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill parquet-raster --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Parquet Raster?

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

Security grade badge for Parquet Raster
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-parquet-raster/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-parquet-raster)

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: parquet-raster
description: "Review and reason about the alpha Parquet Raster proposal: root
  raster structs, paired GeoParquet geometry/geography columns, affine
  georeferencing, bands, storage location, CRS, and proposal limits."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Parquet Raster (alpha proposal)

## Status and scope

Treat this skill as an **alpha proposal review aid**, not as stable GeoParquet
vector support. The proposal describes raster values in Parquet and relies on
GeoParquet/Parquet geometry or geography types for a paired spatial reference
column. It is suitable for schema review, metadata interpretation, and safe
out-db URI inspection. It is not a claim that a file is interoperable, nor a
replacement for a production raster reader or validator.

Use this skill when a task mentions a proposed Parquet Raster column or needs to
interpret its raster metadata. For vector metadata, vector validity, or stable
GeoParquet questions, follow [validate-geoparquet](../validate-geoparquet/SKILL.md)
instead.

## Operating procedure

1. **Check proposal metadata and locate the raster column.** Record the
   file-level `version`, `primary_column`, and `columns` metadata before
   interpretation; missing or unknown values are unresolved proposal metadata,
   not evidence of a default version. Confirm that each raster column is a
   root-level Parquet `struct`. Its struct contains the raster value fields
   described in [the bundled proposal notes](references/raster-proposal.md),
   including required affine parameters, dimensions, and `bands`.
2. **Resolve the paired spatial column.** Find a top-level `Geometry` or
   `Geography` column. The raster column's column metadata must name it in the
   required `geometry` field. A missing, nested, mistyped, or mismatched pair
   is an alpha proposal issue; do not silently substitute another vector
   column.
3. **Interpret georeferencing.** Apply the center-of-cell affine equations
   below using zero-based `col` from the left and `row` from the top. Preserve
   the source values and units; do not assume north-up, square pixels, or a
   particular axis order.
4. **Inspect bands.** Decode the band flags and `pixtype` before interpreting
   `nodata`, `length`, or `data`. For in-db bands, expect row-major pixel bytes.
   For out-db bands, review the URI and band number without dereferencing it.
5. **Check CRS representation.** `crs` is optional UTF-8 text. Recognize the
   proposal's `srid:value` and `projjson:value` conventions, but do not invent
   a CRS when it is absent or malformed.
6. **Report proposal limits.** Label conclusions as proposal-level and record
   ambiguities or unsupported behavior. Do not promote this skill's result to
   stable vector compliance.

For a cell at zero-based column `col` and row `row`, the proposal gives:

```text
world_x = ip_x + (col + 0.5) * scale_x + (row + 0.5) * skew_x
world_y = ip_y + (col + 0.5) * skew_y + (row + 0.5) * scale_y
```

The proposal describes `width` as the pixel width and `height` as the pixel
height; therefore use `0 <= col < width` and `0 <= row < height`. Keep two
alpha wording conflicts visible: one prose sentence says grids have `width`
rows and `height` columns, and the field table/equations describe `ip_x` and
`ip_y` like a corner origin while another paragraph calls them the upper-left
cell center. Apply the published equation when calculating, but do not claim
these descriptions are reconciled.

## Required review observations

A useful review should be able to state:

- whether the file-level `version`, `primary_column`, and `columns` metadata is
  present and internally referable, while preserving unknown version/schema
  details as unresolved;
- which root-level struct is the raster column and which top-level geometry or
  geography column it names;
- whether all required affine fields and `INT32` dimensions are present, while
  treating validation of numerical suitability as an explicit review decision;
- the pixel coordinate convention and the resulting world coordinate for any
  requested cell;
- each band's `isOffline`, `hasNodataValue`, `isAllNodata`, `isGZIPPed`,
  `pixtype`, `nodata`, `length`, and `data` interpretation;
- whether bytes are in-db or the band is out-db, and whether an out-db URI uses
  an allowed `file://`, `http://`, or `https://` scheme;
- the CRS text and whether it follows the `srid:` or `projjson:` convention;
- which observations are proposal-supported, ambiguous, unverified, or out of
  scope.

## Safety and non-goals

- Never fetch, open, authenticate to, or resolve an out-db URI during a review.
  An `https://` URI can be checked syntactically and reported as an external
  dependency without network access.
- Do not treat `isAllNodata` as proof of content: the proposal calls it a dirty
  flag and says it is set properly by an implementation operation. If it is
  true, report the flag and its provenance; do not scan external data.
- Do not infer pixel values from `nodata` unless `hasNodataValue` is true.
- Do not assume a missing `crs` means a default CRS.
- Do not create a raster validator, fixture, decoder, or network fetcher for
  this skill. No such validator or fixture is part of this alpha proposal
  bundle.
- Do not use this skill to answer vector questions; route those to
  [validate-geoparquet](../validate-geoparquet/SKILL.md).

## References and troubleshooting

- [Raster proposal notes](references/raster-proposal.md) summarize the source
  contract, field encodings, equations, and known limitations.
- [Troubleshooting](references/troubleshooting.md) gives bounded recovery steps
  for common review failures, including malformed schema/metadata, band
  length/flag ambiguity, a missing paired column, and a remote out-db band.

When reporting a result, include the inspected schema/metadata facts, the
proposal interpretation used, any source ambiguity, and the actions explicitly
not taken (such as fetching a URI).

Files in this skill

  • SKILL.md5.9 KB
  • references/raster-proposal.md6.4 KB
  • references/troubleshooting.md5.5 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.