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
| Name | Type | Default | Description |
|---|---|---|---|
| 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
| Name | Type |
|---|---|
| results | |
| warnings | |
| indexed | |
| skipped | |
| zonesTotal | |
| retainedTotal |
API
GET /api/processes/index-geojson
POST …/execution
Open in Swagger UI
Execution is asynchronous (returns a job to poll) and requires a token — see the documentation. Track runs under OGC API — Jobs.