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
600

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 full-size 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 full-size 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 full-size 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 full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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


    (427 pages)
    GeoJSON specs


    (28 pages )

    View full-size 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 full-size 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 full-size slide

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

    View full-size slide

  16. 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 full-size slide

  17. 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 full-size slide

  18. Python parsing is very easy
    19

    View full-size slide

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


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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  23. LoD 2.2

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


    100% automatic

    View full-size slide

  24. Downloads in different formats
    26
    Stats October/November


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


    CityJSON 72%


    OBJ 16%


    GPKG 11%


    PostgreSQL <1%

    View full-size slide

  25. thank you.
    [email protected]


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

    View full-size slide