95
FME & CityGML How to Easily Read and Write CityGML Data Using FME March 27, 2013

How to Easily Read and Write CityGML Data Using FME

Embed Size (px)

DESCRIPTION

CityGML has the potential to broaden the amount and quality of spatial data that is available for use in 3D modelling software. Across the globe, an increasing number of cities and companies are building virtual 3D city models for use in various areas including urban planning, disaster management, navigation and environmental simulations. Learn how FME can help you easily convert, restructure, integrate and distribute this CityGML data to use and share in more than 300 different formats.

Citation preview

Page 1: How to Easily Read and Write CityGML Data Using FME

FME & CityGML

How to Easily Read and Write CityGML Data Using FME

March 27, 2013

Page 2: How to Easily Read and Write CityGML Data Using FME

Who Are We?

Dave CampanasProduct SpecialistSafe Software

Dean HintzSenior AnalystSafe Software

Page 3: How to Easily Read and Write CityGML Data Using FME

Questions are Encouraged!

This morning’s Q&A Support:

Steve MacCabeProfessional Services Safe Software

Page 4: How to Easily Read and Write CityGML Data Using FME
Page 5: How to Easily Read and Write CityGML Data Using FME

Agenda

CityGML Overview FME & 3D: concepts and formats CityGML characteristics, structure and zoom levels

FME & CityGML Reading / Writing Workflows Demos

Example projectsAdditional topics / what’s newChallenges, considerations, resources

Page 6: How to Easily Read and Write CityGML Data Using FME

Powering The Flow of Spatial Data

Page 7: How to Easily Read and Write CityGML Data Using FME

FME Capabilities

Transform Data to Use and Share

Convert spatial data between hundreds of formats

Transform spatial data into the

precise data model you need

Integrate multiple different data types into a single data model

Share spatial data with people where, when and how they need it

Page 8: How to Easily Read and Write CityGML Data Using FME

Translation

FME supports reading from a wide array of data formats and types 300+ formats, with more added each year CAD, GIS, raster, database, web, non-spatial, 3D

Page 9: How to Easily Read and Write CityGML Data Using FME

Transformation

Move data between formats and systems Restructure data models and schemas

Geometry Attributes Coordinate systems and projections

Example Derive new attribute values or construct geometry

PointConnectortransformer

Page 10: How to Easily Read and Write CityGML Data Using FME

Getting started page:

http://fme.ly/GetStarted

Attend a weekly FME Desktop overview webinar:

http://fme.ly/WeeklyIntro

New to FME?

Page 11: How to Easily Read and Write CityGML Data Using FME

Current FME 3D Formats

Page 12: How to Easily Read and Write CityGML Data Using FME

• Adobe 3D PDF• LAS / LAZ• Autodesk 3ds• AutoCAD Civil 3D• AutoCAD DWG/DXF/RealDWG• Bentley Microstation• CityGML 2.0, ADEs• COLLADA• DirectX X File• Esri ArcGIS Layer• Esri Geodatabase• Free File Geodatabase API

• Esri Shape• Google SketchUp, KML• IFC• LandXML• Oracle Spatial Object• Oracle Spatial Point Cloud• Point Cloud XYZ• Pointools POD• Presagis Openflight• VRML• Wavefront OBJ

• XML / GML• NetCDF

3D Formats

CAD VECTOR RASTER DATABASE BIM/3D WEB POINT CLOUD

Page 13: How to Easily Read and Write CityGML Data Using FME

Poll: Which 3D formats do you currently work with?

Page 14: How to Easily Read and Write CityGML Data Using FME

FME Tools for Tackling 3D

Format translation Database loading and extraction GML, XML and web service support Schema mapping Geometry model conversion (e.g. solid to mesh) Geometry transformation Geometry validation Complex geometry support, hierarchical Reprojection, geo-referencing, vertical datums

Page 15: How to Easily Read and Write CityGML Data Using FME

Turn This…

Page 16: How to Easily Read and Write CityGML Data Using FME

…Into This

Page 17: How to Easily Read and Write CityGML Data Using FME

Google Sketchup

Page 18: How to Easily Read and Write CityGML Data Using FME

IFC: Industry Foundation Classes

Page 20: How to Easily Read and Write CityGML Data Using FME

Texture placement

Page 21: How to Easily Read and Write CityGML Data Using FME
Page 22: How to Easily Read and Write CityGML Data Using FME

CityGML: Motivation

An increasing number of cities and companies are building virtual 3D city models

Different application areas: E.g. Urban planning, disaster management,

navigation, environmental simulations Graphical or geometric models are limited to

visualisation purposes Growing need for Semantic Models to satisfy:

thematic queries, analysis, spatial data mining Reusability -> costs reduction

Page 23: How to Easily Read and Write CityGML Data Using FME

CityGML: Motivation

(C) by T.H. Kolbe

Page 24: How to Easily Read and Write CityGML Data Using FME

CityGML: What is it?

CityGML is a data model and exchange format for virtual 3d city models

Modeling of all relevant parts of the virtual city according to their semantics, geometry, topology and appearance

GML 3 application schema (XML based) CityGML 1.0 is OGC Standard since 2008 Latest version is 2.0 approved in spring 2012

Page 25: How to Easily Read and Write CityGML Data Using FME

CityGML | Characteristics

Modularisation (Thematic Model) Buildings, Roads, CityFurniture,…

Coherence of semantics and geometry Explicit relations between semantic objects and

their geometrical representation (B-Rep)

Semantic objecte.g. Building

Corresponding geometrye.g. Solid

…(C) by T.H. Kolbe

Page 26: How to Easily Read and Write CityGML Data Using FME

CityGML | Characteristics

Multi-Scale Modelling [Level of Detail] From landscape to interior model

LOD 0 – Regional model

LOD 1 – City model

LOD 2 – City model with roof structure

LOD 3 – Detailed architecture

LOD 4 – Interior Model

Source: slide from: Christian Dahmen, conterra

Page 27: How to Easily Read and Write CityGML Data Using FME

CityGML | Characteristics

External References Refer to external data sources containing additional

data

Appearance (Textures)

Application Domain Extensions (ADE) E.g. NoiseADE

Generic city objects and attributes

Source: slide from: Christian Dahmen, conterra

Page 28: How to Easily Read and Write CityGML Data Using FME

Thematic modules

Building

CityFurnitureRelief

Transportation

Vegetation WaterBody

Tunnel

Bridge

CityObjectGroup

© KIT – Karlsruher Institute of Technology

Page 29: How to Easily Read and Write CityGML Data Using FME

Read and Write CityGML up to version 2.0 CityGML v1.0.0

Support for any arbitrary ADE (new) E.g. Dutch IMGeo ADE, Noise ADE

FME supports All thematic modules Level of Detail (LoD 0-4) Generic objects and attributes Non-spatial data / metadata

FME's support for CityGML

Page 30: How to Easily Read and Write CityGML Data Using FME

FME Support for CityGML

Page 31: How to Easily Read and Write CityGML Data Using FME

FME Support for CityGML: Best On the Planet!

Page 32: How to Easily Read and Write CityGML Data Using FME

CityGML | Building Example

<citymodel> <cityObjectMember> <Building gml:id="104167"> <gml:name>A house</gml:name> <boundedBy> <GroundSurface gml:id="8b7970ee"> <lod2MultiSurface> <gml:Polygon> <gml:exterior> <gml:LinearRing> <gml:posList>3477350.98 5551112.32 … gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </lod2MultiSurface> </GroundSurface> </boundedBy> <boundedBy> <RoofSurface gml:id="fme-gen-4c”>

…</citymodel>

Page 33: How to Easily Read and Write CityGML Data Using FME

Zoom levels at work

Remember, this is still a single, hierarchical geometry.

Page 34: How to Easily Read and Write CityGML Data Using FME

34

Comparison: Sketchup - Simple

Page 35: How to Easily Read and Write CityGML Data Using FME

35

Comparison: IFC - Complex

Page 36: How to Easily Read and Write CityGML Data Using FME

36

Comparison: CityGML – Just Right

Page 37: How to Easily Read and Write CityGML Data Using FME

Parameters Reader Driven by

CityGML Schema Additonal ADE Schema

File(s) Ignore

xsi:schemaLocation Include Only Feature

Types in Dataset

Reading CityGML

Page 38: How to Easily Read and Write CityGML Data Using FME

One FME Feature Type per CityGML class (object)

Reading CityGML

Page 39: How to Easily Read and Write CityGML Data Using FME

Building in LoD 1, 2, and 3

Reading CityGML

© KIT – Karlsruher Institute of Technology

Page 40: How to Easily Read and Write CityGML Data Using FME

CityGML Inspection and Reading

1. CityGML in XML editor

2. LOD1,2,3 examples

3. CityGML themes

4. CityGML geometry structure

Page 41: How to Easily Read and Write CityGML Data Using FME

41

Riverside Building: LOD2

Page 42: How to Easily Read and Write CityGML Data Using FME

42

Riverside Building: LOD3

Page 43: How to Easily Read and Write CityGML Data Using FME

43

Bridge LOD1

© 3D Pilot NL data, www.geonovum.nl/3d

Page 44: How to Easily Read and Write CityGML Data Using FME

44

Bridge: LOD3

© 3D Pilot NL data, www.geonovum.nl/3d

Page 45: How to Easily Read and Write CityGML Data Using FME

Typical CityGML Workflows

Data Inspection and Evaluation CityGML model generation Creating LODs 3D data generation from 2D

2.5D draping 3D extrusion

Database loading BIM to GIS Export to client formats (PDF / KML)

Page 46: How to Easily Read and Write CityGML Data Using FME

Key Transformers for 3D

• 3DAffiner• 3DArcReplacer• 3DPointAdder• AppearanceAdder,

AppearanceStyler• Clipper• CSGBuilder /

CSGEvaluator• Extruder• FaceReplacer• GeometryCoercer• GeometryExtractor

GeometryReplacer• GeometryColorSetter• GeometryFilter• GeometryValidator• MeshMerger• Orienter• PointCloudCoercer,

PointCloudSplitter• SurfaceReverser• SurfaceModeller• Triangulator

Page 47: How to Easily Read and Write CityGML Data Using FME

Poll: What are typical operations you need to perform on CityGML data?

Page 48: How to Easily Read and Write CityGML Data Using FME

Requirements Good knowledge of CityGML specification,

especially the UML models CityGML specification document -

www.opengeospatial.org/standards/citygml Knowledge of how to adopt UML models to FME

Workbench CityGML Readers / Writers & Tutorial

Writing CityGML

Page 49: How to Easily Read and Write CityGML Data Using FME

Prepare your source data Add CityGML specific attributes and geometry

properties Format Attribute citygml_lod_name lodxSolid[1..4], lodxMultiSurface[2..4],

lodxGeometry[0..5] Build relationship between features

Example: 'Building' address 'Address' Use gml_id and gml_parent_id for relation Format Attribute citygml_feature_role

CityGML Model entities by FME feature types Manually define or import CityGML entities Import entities from an existing CityGML dataset

Writing CityGML: Basics

Page 50: How to Easily Read and Write CityGML Data Using FME

Multiple Geometry:Set zoom levels

Page 51: How to Easily Read and Write CityGML Data Using FME

Use exact naming and word spelling for Feature Types: Building ≠ building ≠ BuildinG Attribute names: citygml_lod_name ≠

citygmllodname Attribute values: boundedBy ≠ Boundedby Geometry properties: lod1Solid not LOD1solid

Always refer to CityGML specification Key Transformers

AttributeCreator, AttributeRenamer GeometryPropertySetter (alias

GeometryTraitSetter) 3DForcer, Extruder, GeometryCoercer

CityGML: Important notes

Page 52: How to Easily Read and Write CityGML Data Using FME

<CityModel> <cityObjectMember> <bldg:Building gml:id="UUID_13d7d225> ... <creationDate>2008-12-09</creationDate> <bldg:boundedBy> <bldg:WallSurface gml:id="UUID_50d7d286"> ... <bldg:opening> <bldg:Window gml:id="UUID_86e6b220"> ... </bldg:Window> </bldg:WallSurface> <bldg:RoofSurface gml:id="UUID_535118a1"> ... </bldg:RoofSurface> <bldg:GroundSurface gml:id="UUID_5350147b"> ... </bldg:GroundSurface> </bldg:Building> </cityObjectMember></CityModel>

Writing CityGML: Sample

Page 53: How to Easily Read and Write CityGML Data Using FME

Example CityGML Workspace

Building with Wall- and RoofSurface

Page 54: How to Easily Read and Write CityGML Data Using FME

BIM to GIS example: IFC to CityGML

Geometry model differences CSG vs vector feature based

Data model differences object vs relational

Data model gaps Elements in one not in the other

Lack of widespread industry and toolset support Massive datasets

Page 55: How to Easily Read and Write CityGML Data Using FME

IFC to CityGML: Schema Mapping challenge

Page 56: How to Easily Read and Write CityGML Data Using FME

IFC to CityGML: Geometry mapping challenge

Source: slide from: Thomas H. Kolbe – joint work with Claus Nagel & Alexandra Stadler

Page 57: How to Easily Read and Write CityGML Data Using FME

IFC to CityGML Workflow

Read IFC Geometry coercion solid to surface (convert CSG

geometries to B-rep geometries). Relationship resolution Schema mapping IFC to CityGML feature types

and fields ID generation, LODs, format attributes CityGML object construction Validation Geo-referencing Write CityGML

Page 58: How to Easily Read and Write CityGML Data Using FME

IFC to CityGML Workspace

Geometry coercion, schema mapping and geo-referencing

Page 59: How to Easily Read and Write CityGML Data Using FME

IFC to CityGML Result

Page 60: How to Easily Read and Write CityGML Data Using FME

60

Writing Demos

1. Simple translation, Sketchup to CityGML, Westminster Abbey - LOD2

2. Trento LOD1 – Modeling Land use

3. Detailed LOD4 building model

Page 61: How to Easily Read and Write CityGML Data Using FME

Poll: What is your biggest challenge working with CityGML in FME?

Page 62: How to Easily Read and Write CityGML Data Using FME

Real World CityGML Models

EU Environmental Noise Directive

Karlsruhe

Zurich

Geonovum, NL

Nuremberg

62

Page 63: How to Easily Read and Write CityGML Data Using FME

EU Environmental Noise Directive 2002

3D geodata in CityGMLas input for the calculaion of

noise immision maps

Noise immision mapsreported to EU

(via WMS service)

(C) LVermA NRW

Page 64: How to Easily Read and Write CityGML Data Using FME

CityGML with Noise ADE

Page 65: How to Easily Read and Write CityGML Data Using FME

3D City Model for Karlsruhe, Germany

City of Karlsruhe, real estate officeFacts

296.000 inhabitants 173 km² land area 85.000 buildings

Components of the 3D city model Terrain Model (1m) + uses Building model LOD 1 Building model with detailed roofs

and fototexturing for selected buildings (LOD 2)

Building LoD 3 (~ 50 landmarks) City furniture Bridges

Quelle: Stadt Karlsruhe, Liegenschaftsamt

Page 66: How to Easily Read and Write CityGML Data Using FME

City of Zurich, Surveying GeomaticsFacts

370,000 inhabitants 92km² total, of which 52 km² built-up area Terrain of 370m to 1000m elevation 55,000 buildings, 40,000 properties

Product offering Digital terrain model (LOD 0) 3D block model (LOD 1) 3D roof model (LOD 2)

3D City Model for Zurich, Switzerland

Quelle: Stadt Zürich, Geomatik + Vermessung

Page 67: How to Easily Read and Write CityGML Data Using FME

City of Nuremberg

Page 68: How to Easily Read and Write CityGML Data Using FME

3D Netherlands: 3D Pilot NLIMGeo basemap from 2D to 3D

Safe Involvement BIM to GIS alignment (IFC to CityGML)

Provide tools but not the alignment design

Geometry Validation currently sponsoring the open source effort

CityGML data management, updates 3D data generation (from 2D) and

enrichmentwww.geonovum.nl/3d

Page 69: How to Easily Read and Write CityGML Data Using FME

Input: 2D IMGeo (3D Pilot NL)

© 3D Pilot NL data, www.geonovum.nl/3d

Page 70: How to Easily Read and Write CityGML Data Using FME

Output: 3D IMGeo (3D Pilot NL)

© 3D Pilot NL data, www.geonovum.nl/3d

Page 71: How to Easily Read and Write CityGML Data Using FME

2D to 3D Workflow

1. Read 2D CityGML with IMGeo ADE schema2. Read DTM and DSM (or LIDAR)3. Build surface model from DTM or LIDAR4. Drape 2d features on surface5. For 3d, extract max building height from DSM6. Extrude from surface to height, coerce to solid7. Set required citygml format attributes

(citygml_lod_name etc) & desired styling8. Write to CityGML (IMGeo ADE schema)

Page 72: How to Easily Read and Write CityGML Data Using FME

2D to 3D Generation Workspace

SurfaceDraper, GeometryPropertySetter, FeatureTypeFiltering, GeometryColorSetter

Page 73: How to Easily Read and Write CityGML Data Using FME

Results: 3D PDF

Page 74: How to Easily Read and Write CityGML Data Using FME

- 74 -

3D City Database | CityGML and KML/COLLADA Import/Export Tool

580,000 buildings, reconstructed from 2D-cadastre and LIDAR-data

Textures automatically extracted from oblique aerial images

Semantic information based an cadastre data www.3d-stadtmodell-berlin.de

Example - 3D City Model of Berlin

Page 75: How to Easily Read and Write CityGML Data Using FME

Repository for the official 3D city model Complete representation of topography and landscape Data from various sources (cadastre, planning,

architecture, utility networks, etc.) Usage of 3D city model for applications like

City and Urban Planning Political Issues and Consulting, Civic Participation

Basis for the Berlin 3D Spatial Data Infrastructure Access through standardized OGC Web Services, Google

Earth (KML), online streaming 3DCityDB v2 is a free and open source 3D database

to store, represent, and manage virtual 3D city models

3D City Database of Berlin www.3dcitydb.org

- 75 -

Page 76: How to Easily Read and Write CityGML Data Using FME

EU INSPIRE: CityGML ADE

Page 77: How to Easily Read and Write CityGML Data Using FME

Additional 3D Topics /New In FME 2013

Geometry validation, repair Analysis (VolumeCalculator) Data distribution (web formats) FME 2013 Improvements:

Smarter geometry conversion (GeometryCoercer)

Point cloud processing (PointCloudExpressionEvaluator)

Vertical datum support Performance

Page 78: How to Easily Read and Write CityGML Data Using FME

3D GeometryValidator

Checks for solids with inverted faces, dangling surfaces, unsealed solids, etc.

Flag errors with meaningful attributes and geometric locations of the errors.

Repair option for 3D surfaces and solids.  

Page 79: How to Easily Read and Write CityGML Data Using FME

GeometryValidator Transformer

Page 80: How to Easily Read and Write CityGML Data Using FME

3D Validation - Detection

Page 81: How to Easily Read and Write CityGML Data Using FME

3D Validation - Repair

Page 82: How to Easily Read and Write CityGML Data Using FME

Volume Transformer:Geometry Filter XQuery

GQueryinternal geometry queries based on XQuery

Page 83: How to Easily Read and Write CityGML Data Using FME

Value added processing: Compute load risk

Based on slope and area

Page 84: How to Easily Read and Write CityGML Data Using FME

Poll: What new functionality do you want added to FME?

Page 85: How to Easily Read and Write CityGML Data Using FME

FME Server Data Distribution: 3DPDF, KML/COLLADA

Page 86: How to Easily Read and Write CityGML Data Using FME

Skape: 3D City Model Distribution

Page 87: How to Easily Read and Write CityGML Data Using FME

Skape: Westminster Abbey

view, manipulate and export 3D cityscapes

Page 88: How to Easily Read and Write CityGML Data Using FME

88

CityGML Challenges

2D vs 3D Spatial reference systems Model vs generic inputs Attribute schema limitations (list structures etc) Geometry model differences Resolving / maintaining xlink references Texturing Massive datasets (XML files vs databases) Lack of widespread industry and toolset and

viewer support

Page 89: How to Easily Read and Write CityGML Data Using FME

Summary

CityGML - Ideal for 3D modeling and data exchange FME – Ideal tool to support reading & writing

CityGML with translation and transformation abilities FME Supports

up to CityGML 2.0 all levels of detail all thematic modules generic objects and attributes any arbitrary ADE (new in FME 2013)

Automation and enterprise services (FME Server) Committed to support CityGML and ADE evolution

Page 90: How to Easily Read and Write CityGML Data Using FME

Resources

FME Readers & Writers (CityGML Tutorial) docs.safe.com/fme/reader_writerPDF/citygml.pdf

CityGML specifications opengeospatial.org/standards/citygml

CityGML.org (Thomas Kolbe, etc) www.citygml.org/fileadmin/citygml/docs/

CityGML_Tutorial_Kolbe_Internet.pdf

Safe.com safe.com/solutions/for-data-types/3d/

FMEPedia fmepedia.safe.com/topic/3D

Page 91: How to Easily Read and Write CityGML Data Using FME

2013 FME World Tour!

40+ FME User Meetings happening world wide and one live stream

Register atwww.safe.com/worldtour

Page 92: How to Easily Read and Write CityGML Data Using FME

Upcoming webinars

How to Load Spatial and Non-Spatial Data into Terdata using FME – April 3

PostGIS 2.0 – How to Improve Interoperability using FME – April 24

Recorded Webinars:http://fme.ly/webinars

Page 93: How to Easily Read and Write CityGML Data Using FME

View the offerings at: http://fme.ly/online

Poll: Would you like more information on our free training options?

Page 94: How to Easily Read and Write CityGML Data Using FME

We’ll Be Following Up

Page 95: How to Easily Read and Write CityGML Data Using FME

Thank You!

For more information, contact: Sales

[email protected] Support

[email protected] or www.safe.com/support (604)501-9985 ext. 278

Dean [email protected]

Dave [email protected]

• Special thanks to Christian Dahmen of conterra