Upgrade to Pro — share decks privately, control downloads, hide ads and more …

(CityJSON == CityGML) && (CityGML == CityJSON)

Hugo Ledoux
October 03, 2023

(CityJSON == CityGML) && (CityGML == CityJSON)

Slides of a talk I gave at the "Geonovum sessie over 3D" on 2023-10-03 in Amersfoort, the Netherldands.

https://www.geonovum.nl/over-geonovum/agenda/3-oktober-3d-wat-is-er-wat-kies-je-en-wat-kan-er-straks-nog-meer

Hugo Ledoux

October 03, 2023
Tweet

More Decks by Hugo Ledoux

Other Decks in Research

Transcript

  1. (CityJSON == CityGML) && (CityGML == CityJSON) Geonovum sessie over

    3D Amersfoort 2023-10-03 Hugo Ledoux TUDelft
  2. (CityJSON == CityGML) && (CityGML == CityJSON) Geonovum sessie over

    3D Amersfoort 2023-10-03 Hugo Ledoux TUDelft Full disclosure: I started CityJSON and I’m still an editor
  3. 2 International standard (from OGC) for representing and storing semantic

    3D city models v1.0 in 2008 v2.0 in 2012 v3.0 in 2021 & 2023
  4. 4 Data model == UML Encoding == XML or JSON

    or … { "type": “CityJSON", "version": “2.0”, "transform": { "scale": [1.0, 1.0, 1.0], "translate": [0.0, 0.0, 0.0] }, "metadata": { "referenceSystem": "https://www.opengis.net/def/crs/EPSG/0/7415" }, "CityObjects": { "id-1": { "type": "Building", "attributes": { "measuredHeight": 22.3, "owner": “Elvis Presley" }, "geometry": [ { "type": “MultiSurface", "lod": “2.1", "boundaries": [ [[0, 3, 2, 1]], [[4, 5, 6, 7]], [[0, 1, 5, 4]] ] } ] } }, "vertices": [ [231, 2321, 11], [1111, 321, 12], ... ], "appearance": { "materials": [], "textures":[] } }
  5. CityGML v3.0 5 • Adds interior of buildings (rooms, storeys,

    etc) • no more LoD4 • Adds point clouds, versioning, etc. • Revamp of the ADE mechanism Data model released in 2021
  6. CityGML-XML v3.0 6 XML encoding released in June 2023 •

    No software support at the moment: FME will **not** work • Except citygml4j (from the main CityGML developer)
  7. CityGML files are very complex 7 • files are deeply

    nested, and large • many “points of entry” • many di ff ways to do one thing ➡ few software packages correctly read/write CityGML-XML ➡ no parsers in JavaScript ➡ I personally get 😩 each time I get a new file it makes the life of developers very unpleasant
  8. CityGML files are very complex 7 • files are deeply

    nested, and large • many “points of entry” • many di ff ways to do one thing ➡ few software packages correctly read/write CityGML-XML ➡ no parsers in JavaScript ➡ I personally get 😩 each time I get a new file it makes the life of developers very unpleasant
  9. CityJSON v2.0 implements most of CityGML data model 9 •

    all core modules of CityGML data model v3.0 are mapped 💪 • Subset of CityGML core (~97% of features) • Modules not supported is on purpose (to keep it simple)
  10. GIS specialists do not all use/have FME: Python parsing is

    very easy 10 CityJSON makes developers happy (and thus productive)
  11. Compression of files: Zürich LoD2 buildings 12 CityGML-XML v2.0 =

    3.0GB (but 1GB of spaces/CRs/tabs!) CityJSON v2.0 = 292MB Compression == 7.1X
  12. Compression of files: Zürich LoD2 buildings 12 CityGML-XML v2.0 =

    3.0GB (but 1GB of spaces/CRs/tabs!) CityJSON v2.0 = 292MB Compression == 7.1X
  13. CityJSON support in software 13 Good list of software Most

    are open-source Many written by students at TUDelft
  14. citygml4j + citygml-tools 15 full conversion CityGML <-> CityJSON •

    Supports CityGML-XML v3.0 • Bidirectional conversion • Open-source
  15. Certainly it can’t be that simple? Indeed, there are 2

    caveats 17 #1. ADEs != Extensions #2. CityGML modules not supported in CityJSON