Skip to content

Io 3dbag Cityjson

Real-geometry 3DBAG slice stored as a single monolithic CityJSON file. Baseline for sequential I/O, parser throughput, and whole-document memory behavior.

Case

  • id: io_3dbag_cityjson
  • layer: workload
  • family: io
  • artifact_mode: acquired
  • source_kind: real-geometry
  • representation: cityjson
  • path: cases/workloads/io_3dbag_cityjson

Files

  • acquisition: cases/workloads/io_3dbag_cityjson/acquisition.json

Source JSON

case.json

{
  "artifact_mode": "acquired",
  "artifact_paths": {
    "acquisition": "cases/workloads/io_3dbag_cityjson/acquisition.json"
  },
  "assertions": [
    "object_count_preserved",
    "bbox_stable"
  ],
  "cityjson_version": "2.0",
  "description": "Real-geometry 3DBAG slice stored as a single monolithic CityJSON file. Baseline for sequential I/O, parser throughput, and whole-document memory behavior.",
  "family": "io",
  "geometry_kind": "real-preserved",
  "id": "io_3dbag_cityjson",
  "layer": "workload",
  "representation": "cityjson",
  "source_kind": "real-geometry",
  "version": 2
}

invariants.json

{
  "checks": [
    {
      "description": "The number of objects remains stable on parse and serialize.",
      "id": "object_count_preserved"
    },
    {
      "description": "The bounding box remains stable across the I/O path.",
      "id": "bbox_stable"
    }
  ],
  "id": "io_3dbag_cityjson",
  "kind": "positive",
  "version": 1
}

acquisition.json

{
  "dataset": "3DBAG",
  "id": "io_3dbag_cityjson",
  "license": "Use the upstream 3DBAG license terms until the corpus release metadata is published.",
  "notes": "Monolithic real-geometry 3DBAG case stored as a whole CityJSON file. It is acquired by the shared corpus repo and consumed directly by downstream benchmarks.",
  "outputs": [
    {
      "byte_size": null,
      "checksum": null,
      "derivation": "acquired",
      "path": "artifacts/acquired/3dbag/v20250903/10-758-50.city.json",
      "producer": "upstream",
      "published": true,
      "representation": "cityjson",
      "validation_role": "canonical"
    },
    {
      "byte_size": null,
      "checksum": null,
      "derivation": "exported",
      "derived_from": [
        "artifacts/acquired/3dbag/v20250903/10-758-50.city.json"
      ],
      "path": "artifacts/acquired/3dbag/v20250903/10-758-50.cjarrow",
      "producer": "cityjson-lib",
      "published": true,
      "representation": "cityjson-arrow",
      "validation_role": "benchmark-only"
    },
    {
      "byte_size": null,
      "checksum": null,
      "derivation": "exported",
      "derived_from": [
        "artifacts/acquired/3dbag/v20250903/10-758-50.city.json"
      ],
      "path": "artifacts/acquired/3dbag/v20250903/10-758-50.cjparquet",
      "producer": "cityjson-lib",
      "published": true,
      "representation": "cityjson-parquet",
      "validation_role": "benchmark-only"
    }
  ],
  "owner": "cjindex",
  "preprocessing": [
    "Run the shared 3DBAG acquisition script in cityjson-corpus.",
    "Reuse the published raw CityJSON file for JSON read and write benchmarking.",
    "Export a sibling live cityjson-arrow stream file for Arrow-to-memory and memory-to-Arrow benchmarking.",
    "Export a sibling cityjson-parquet package file for package-to-memory and memory-to-package benchmarking."
  ],
  "reference": "Use `just acquire-3dbag` in cityjson-corpus to materialize the raw slice and native cityjson-arrow/cityjson-parquet artifacts.",
  "selector": "Pinned 3DBAG release metadata is captured by the shared acquisition script.",
  "status": "published",
  "upstream_url": "https://data.3dbag.nl/v20250903/",
  "upstream_version": "2025.09.03",
  "version": 2
}