OGC API — Processes · process

index-geojson

Index GeoJSON features into the DGGS — a web view of GET /api/processes/index-geojson.

Index every Feature of an inline GeoJSON FeatureCollection: one content-addressed zoneSet per feature covering its footprint x height x time extent. Height/time come from the feature's own properties under caller-supplied property NAMES (schemas vary), falling back to static defaults; features resolvable by neither are skipped with an actionable warning in the results. Re-submitting identical inputs returns the prior result without re-execution.

Inputs

NameType DefaultDescription
geojson Inline FeatureCollection (or single Feature).
dggrs Identifier of the discrete global grid reference system to index into or query against.
collectionId Stable, meaningful id for the resulting dataset collection (e.g. 'wyoming-wells-2026'), addressable at /collections/{collectionId} and its /items and /dggs sub-resources. Re-indexing under the same id updates that collection rather than creating a new one. Must match [A-Za-z0-9._~-]{1,128} and must not be a DGGRS-instance id. Defaults to the job id when omitted.
resolution
feature_id_property Name of the feature property carrying the feature's identity. When absent, the GeoJSON 'id' member is used, then common keys (OBJECTID, id, fid, parcel_id, GEOID), then the position.
format How to read the geojson input: 'geojson' accepts GeoJSON and JSON-FG documents (JSON-FG 'place' plus declared coordRefSys are normalised to CRS84; 'time' lifts to properties and auto-wires the *_property inputs); 'csv' parses delimited text with coordinate columns.
crs CRS of CSV coordinates (e.g. EPSG:5070); ignored for GeoJSON, which is CRS84 by definition, unless the document declares a JSON-FG coordRefSys.
x_column Explicit CSV coordinate column; auto-detected (lon/lat, x/y, easting/northing) when absent.
y_column
retain_features If true, store each indexed feature's full geometry and properties in the feature store, so the dataset collection is queryable as an OGC API - Features feature collection (/collections/{id}/items). Writes are idempotent: an identical re-submission is a no-op, a changed feature is versioned with provenance.
prune If true, re-indexing an existing collectionId REPLACES the collection: index entries (and retained features) present before but absent from this submission are removed, so a shrunk or changed dataset leaves no orphans. Persisting features are kept (membership-based, not a full rewrite). Applied only on a clean pass — if any feature is skipped or a retained feature fails to write, pruning is deferred. Default false keeps the additive behaviour.
features_per_task Batch size for the per-feature parallel fan-out: features are indexed as parallel Celery tasks (one task per this many features), so a multi-feature dataset does not index one feature at a time. Omit for automatic batching (one feature per task, auto-grouped only past HYPLICA_MAX_FEATURE_TASKS so the broker is not swamped by very large collections). Worker scale-up follows the compute available (KEDA on the indexing queue).
index_criteria Zone membership over the feature's 4D region: 'overlapping' keeps any zone any part of which intersects the region; 'centre-inside' keeps zones whose centroid lies inside it; 'contained' keeps zones wholly inside it. Temporal semantics are deterministic overlap: an instant yields its single zone; a range wholly inside one zone's temporal extent yields that zone; a larger or partial range yields every zone with an overlapping temporal extent.
footprint 'sampled' (default): HyPlica zones are ECEF-axis-aligned 4D hypercubes, so the feature is made a 4D object (2D geometry extrudes by its min/max height properties or the execute defaults, and gains its temporal extent the same way) and its OWN points — vertices, arc-length-resampled boundaries, and interior points of the 4D volume, all at a fraction of the zone edge — are tested by array point-in-zone membership to saturation; cost scales with the feature, never the bounding box, and a single-resolution compressed zoneSet is produced directly. 'packed': the engine's hierarchical zone packing (the method behind ZoneCrypt's building-scale footprints) derives the cover by descending the zone tree — whole coarse cells inside, refinement only along the boundary — then expands to a single-resolution zone set at the requested level (an OPTION for large covers, not the default; single-level indexing is generally more efficient and packing does not change query performance). Falls back to native branches past HYPLICA_EXPAND_CAP. 'branched': the same packing kept as native multi-level branches (coarse interior + refined boundary) for progressive drill-down and very large covers. 'exact': Polygon/MultiPolygon features are refined to their true horizontal footprint (conservative cover; boundary zones included). Non-polygonal geometries and candidate sets above HYPLICA_REFINE_CAP store the bbox cover, with a per-feature note. 'bbox': conservative AABB cover for every feature.
height_datum Datum of ALL heights in this request (feature properties and static defaults alike). 'AMSL' (aliases msl/orthometric) converts to ellipsoidal via the geoid model before indexing: h_ell = H_amsl + N(lon,lat), N evaluated at each feature's horizontal centre.
geoid_model Geoid model name (file stem in HYPLICA_GEOID_DIR or the bundled fallback). Default: best available, preferring egm2008 > egm96. Regional models (e.g. GEOID18 for CONUS) are selected the same way.
height_min_property Name of the feature property holding min height (m).
height_max_property Name of the feature property holding max height (m).
time_min_property Name of the feature property holding min time (RFC 3339 or POSIX).
time_max_property Name of the feature property holding max time (RFC 3339 or POSIX).
min_height Static default when the property is absent/unnamed.
max_height
min_time
max_time

Outputs

NameType
results
warnings
indexed
skipped
zonesTotal
retainedTotal