Skip to content
CityParquet is v0.1.0-draft — the specification is still changing.
Esc
↑↓navigate↵open⌘Jpreview
On this page

Specification & file format

What CityParquet is, the parts its specification consists of, and where each is defined.

CityParquet is a columnar encoding of the CityGML conceptual model in Apache Parquet. A city model becomes a directory of Parquet files, one row per city object, that can be queried in place on object storage — by feature type, attribute, level of detail, bounding box and 3D geometry — while keeping what is needed to reconstruct the source model. Every file is a standard Parquet file, and where the geometry allows it is also GeoParquet, so footprints open in ordinary GIS tools.

This is version 0.1.0-draft of the specification. Points still undecided are marked 🟡 and link to the open questions. The reasoning behind each rule is in the design decisions.

What the specification consists of

A package is a directory: one object table per CityGML module, optional sidecar files for shared resources, and a STAC Item describing the whole. Each object table stores the geometry of every level of detail in its own WKB column, beside a struct carrying the semantics WKB cannot hold. The pages below define each part, in the order a reader meets them.

Last updated on October 12, 2026

Was this page helpful?