协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
parquet-raster【开发与工程】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.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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 instead.
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,
including required affine parameters, dimensions, and bands.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.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.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.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.For a cell at zero-based column col and row row, the proposal gives:
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.
A useful review should be able to state:
version, primary_column, and columns metadata is
present and internally referable, while preserving unknown version/schema
details as unresolved;INT32 dimensions are present, while
treating validation of numerical suitability as an explicit review decision;isOffline, hasNodataValue, isAllNodata, isGZIPPed,
pixtype, nodata, length, and data interpretation;file://, http://, or https:// scheme;srid: or projjson: convention;https:// URI can be checked syntactically and reported as an external
dependency without network access.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.nodata unless hasNodataValue is true.crs means a default CRS.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).