Import in Versioned Mode

Primary page: /parcels/upload/

Supported Files

  • ZIP Shapefile (.zip containing matching .shp/.shx/.dbf/.prj)
  • GeoPackage (.gpkg)

GeoJSON and KML are download/export formats only. They are not accepted as parcel geometry imports.

CRS Requirements

  • The source layer must declare a projected CRS with known linear units.
  • The CRS does not need to match PARCEL_STORAGE_SRID; GDAL/PROJ must provide a valid transformation to it.
  • The server records the declared source CRS and resulting storage CRS, then transforms geometry directly to the storage CRS before authoritative validation, workflow use, or persistence.
  • Missing, ambiguous, geographic/angular, unknown-unit, and non-transformable CRS input is rejected. The application never guesses a CRS.
  • WGS84 remains limited to browser-map display and GeoJSON/KML export.

Import Flow

  1. Upload file.
  2. System analyzes features and shows preview.
  3. Review matched and new records.
  4. Choose decision:
  5. keep_existing: keep matched active parcels unchanged, insert only new parcel IDs.
  6. replace_matched: create new active versions for matched editable parcels.
  7. cancel: mark upload as cancelled.
  8. Set Effective At timestamp (optional, defaults to now).
  9. Apply and review upload status summary.

How Versioning Works During Import

Matching is done on active rows by dataset + parcel_id.

When you apply replace_matched:

  • current active row is superseded (record_status = superseded, valid_to = effective_at)
  • new row is inserted as the active version (record_status = active, valid_from = effective_at)
  • parcel logical identity (parcel_uid) is preserved across versions

When no active match exists for an incoming parcel_id, a new active parcel row is created.

Important Notes

  • replace_matched only updates rows you are allowed to edit. Non-editable matches are kept.
  • parcel_id is required in source data; records missing it are invalid.
  • Geometry is normalized to valid polygons during analysis.
  • Import status/audit metadata records source and storage CRS identifiers.
  • Skipped/invalid rows are counted in upload status.