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

Data formats for exchanging and manipulating 3D city models: Keep it simple

Hugo Ledoux
December 07, 2021
410

Data formats for exchanging and manipulating 3D city models: Keep it simple

Keynote given at the DTCC Day 2021

https://dtcc.chalmers.se/

Hugo Ledoux

December 07, 2021
Tweet

Transcript

  1. Hugo Ledoux


    Data formats for exchanging and
    manipulating 3D city models:


    keep it simple
    Digital Twin Cities Centre Day


    2021-12-07
    Delft University of Technology

    View Slide

  2. Topic of my talk: which format should we use?
    2
    .obj ?


    .gml ?


    .json ?


    .shp ?


    .stl ?
    3D city models of


    large area
    with textures with semantics
    with attributes

    View Slide

  3. We want to process and exchange the information
    3
    • ideally directly on the web


    • with several different software


    • AutoCAD, GIS, Blender, Rhino, etc
    solar potential
    shadow
    analysis
    bomb detonation
    wind turbulence
    spatial planning

    View Slide

  4. What are our options?
    4
    OBJ/STL/PLY


    COLLADA
    glTF + b3dm
    CityGML


    LandInfra + InfraGML
    CityJSON
    { ✅ very simple


    ✅ used for 30y+ in computer graphics + engineering


    ✅ zillions of software


    ❌ no semantics, no complex geometry, no attributes
    ✅ for visualisation on the web


    ✅ great software support


    🤨 simple-ish (binary)


    ❌ no semantics, no complex geometry
    ✅ OGC standards since 2008/2016


    ✅ do everything!


    ✅ *seem* perfect


    🤨 is it the case in practice?
    🚀 what I propose, more details in a few slides

    View Slide

  5. 5
    International standard (from OGC) for representing
    and storing 3D city models

    View Slide

  6. CityGML files are very complex
    6
    • files are deeply nested


    • aims at solving many problems


    • many “points of entry”


    • many di
    ff
    ways to do one thing

    View Slide

  7. Consequence #1: almost no File/Open CityGML
    7

    View Slide

  8. “GML madness”: how many ways to store a simple square?
    8
    25 different
    ways

    View Slide

  9. Consequence #2: people will not download your files
    9
    -Raphaël Bovier, from his presentation at the 3D city modelling Workshop, Nordic
    Cooperation in the
    fi
    elds of Spatial Data and Land Administration (2021-09-29)

    View Slide

  10. Consequence #3: no web support
    10
    No known JavaScript
    parser for CityGML files!?

    View Slide

  11. “But my CityGML dataset is on the web!?”
    11

    View Slide

  12. Consequence #4: developers/users will not use your format
    12
    GML 3.2.2 specs


    (427 pages)
    GeoJSON specs


    (28 pages )

    View Slide

  13. Consequence #5: scientists in other communities are not involved
    13
    • CFD/simulation community == OBJ/STL


    • Computer Graphics == OBJ/STL


    • Other communities have scientists involved in the
    ecosystem

    View Slide

  14. Consequence #6: alienate potential users (eg students)
    14
    When learning about semantic
    3D city models
    Trying to read a CityGML file


    with Python

    View Slide

  15. Shouldn’t we apply the Rule of Least Power?
    15

    View Slide

  16. View Slide

  17. CityJSON v1.1
    17
    • community standard


    • compliant with CityGML v3.0


    • subset of CityGML (~90% of features)


    • software for full conversion CityGML <-> CityJSON


    • several software support CityJSON
    new!
    new!

    View Slide

  18. Same information as CityGML, but in JSON format
    18
    {


    "type": “CityJSON",


    "version": “1.1”,


    "metadata": {


    "referenceSystem": "https://www.opengis.net/def/crs/EPSG/0/7415",


    },


    "CityObjects": {


    "id-1": {


    "type": "Building",


    "attributes": {


    "measuredHeight": 22.3,


    "roofType": "gable",


    "owner": “Elvis Presley"


    },


    "geometry": [


    {


    "type": "MultiSurface",


    "boundaries": [


    [[0, 3, 2, 1]], [[4, 5, 6, 7]], [[0, 1, 5, 4]]


    ]


    }


    ]


    }


    },


    "vertices": [


    [23.1, 2321.2, 11.0],


    [111.1, 321.1, 12.0],


    ...


    ],


    "appearance": {


    "materials": [],


    "textures":[],


    "vertices-texture": []


    }


    }


    human-readable file


    computers prefer this over XML


    web prefers this over XML


    ~6X compacter than CityGML

    View Slide

  19. Python parsing is very easy
    19

    View Slide

  20. Compression of files: Zürich LoD2 buildings
    20
    CityGML = 3.0GB


    (but 1GB of spaces/CRs/tabs!)
    CityJSON = 292MB

    View Slide

  21. CityJSON can be easily parsed with JavaScript
    21
    Developed by MSc
    students

    View Slide

  22. CityJSON is “ready” for machine learning
    22
    new!

    View Slide

  23. 3D BAG: all 10M+ buildings in the Netherlands
    23
    https://3dbag.nl

    View Slide

  24. LoD 2.2

    reconstruction
    3D BAG is based on open datasets
    24
    Point cloud
    (AHN3)
    Footprint (BAG)
    +
    X 10,000,000


    100% automatic

    View Slide

  25. 25

    View Slide

  26. Downloads in different formats
    26
    Stats October/November


    (~158k downloads; ~2.6k/day)


    CityJSON 72%


    OBJ 16%


    GPKG 11%


    PostgreSQL <1%

    View Slide

  27. thank you.
    [email protected]


    3d.bk.tudelft.nl/hledoux
    Hugo Ledoux
    https://cityjson.org
    https://3dbag.nl

    View Slide