AdV-CityGML Export

Der export citygml-adv Befehl des AdV Plugins erweitert den export Befehl von vcdb-tool und ermöglicht die AdV-konforme Ausgabe von 3D-Gebäudemodellen aus der VCDB v5. Im Vergleich zum bestehenden CityGML-Export Befehl wendet der export citygml-adv Befehl strenge Filterkriterien an. Dadurch werden nur die Objektarten, Attribute und Geometrien exportiert, die gemäß dem AdV-CityGML-3.0 Format zulässig sind. Auch weitere Vorgaben zu Metadaten sowie zu Nachkommastellen für Koordinaten und Messwerte werden automatisch berücksichtigt.

Der Exportbefehl des AdV Plugins stellt die inhaltliche Struktur des Ausgabeformats sicher. Eine Validierung der Daten gegen den AdV-PQS-Standard findet jedoch nicht statt.

Synopsis

vcdb export citygml-adv [OPTIONS]

Optionen

Der export citygml-adv Befehl bietet die identischen Optionen wie der export citygml Befehl an. Die nachfolgende Übersicht dient daher vor allem der Vollständigkeit. Weitergehende Einstellungen können über eine JSON-Konfigurationsdatei definiert werden.

Globale Optionen

Option Beschreibung Standardwert

[@<filename>…​]

Eine oder mehrere Argumentdateien mit Optionen.

-h, --help

Hilfenachricht anzeigen und beenden.

-V, --version

Versionsinformationen ausgeben und beenden.

--config-file=<file>

Konfiguration aus dieser Datei laden.

-L, --log-level=<level>

Log-Level: error, warn, info, debug, trace.

info

--log-file=<file>

Log-Nachrichten in diese Datei schreiben.

--quiet

Deaktiviert Log-Nachrichten auf der Konsole.

--pid-file=<file>

Datei mit der Prozess-ID erstellen.

--extensions=<dir>

Erweiterungen aus diesem Verzeichnis laden.

--use-plugin=<plugin[=true|false]>
[,<plugin[=true|false]>…​]

Plugins mit passendem vollqualifiziertem Klassennamen aktivieren oder deaktivieren.

true

Weitere Informationen zu den globalen Optionen und Nutzungshinweise siehe hier.

Allgemeine Exportoptionen

Option Beschreibung Standardwert

-o, --output=<file>

Name der Ausgabedatei.

--output-encoding=<encoding>

Kodierung, die für die Ausgabedatei verwendet wird.

--fail-fast

Bei Fehlern sofort beenden.

--temp-dir=<dir>

Temporäre Dateien in diesem Verzeichnis speichern.

--threads=<threads>

Anzahl der Threads für die parallele Verarbeitung.

--crs=<crs>

SRID oder Identifier des CRS, das für die Koordinaten von Geometrien verwendet wird.

VCDB CRS

--crs-name=<name>

Name des CRS, der in der Ausgabedatei verwendet werden soll.

--transform=
<m0,m1,…​,m11|swap-xy>

Koordinaten mit einer 3x4-Matrix im Row-Major-Format transformieren. swap-xy kann als Abkürzung verwendet werden.

Weitere Informationen zu den allgemeinen Exportoptionen und Nutzungshinweise siehe hier.

CityGML-Exportoptionen

Option Beschreibung Standardwert

-v, --citygml-version=<version>

CityGML-Version: 3.0, 2.0, 1.0.

3.0

--[no-]pretty-print

Ausgabedatei formatieren und einrücken.

true

-x, --xsl-transform=<stylesheet>[,<stylesheet>…​]

Anwendung von XSLT-Stylesheets zur Transformation der Ausgabe.

Weitere Informationen zu den CityGML-Exportoptionen und Nutzungshinweise siehe hier.

Upgrade-Optionen für CityGML 2.0 und 1.0

Option Beschreibung Standardwert

--use-lod4-as-lod3

Verwende LoD4 als LoD3 und ersetze bestehende LoD3 Geometrien.

--map-lod0-roof-edge

Bilde LoD0 Roof-Edge Geometrien auf Dachflächen ab.

--map-lod1-surface

Bilde LoD1 Multi-Surfaces auf generische thematische Begrenzungsflächen ab.

Weitere Informationen zu den Upgrade-Optionen und Nutzungshinweise siehe hier.

Abfrage- und Filteroptionen

Option Beschreibung Standardwert

-t, --type-name=<[prefix:]name>
[,<[prefix:]name>…​]

Namen der zu verarbeitenden Features.

-f, --filter=<cql2-text>

Filter zum Abrufen von Features. Verwenden Sie die erweiterte CQL2-Filtersprache der VCDB.

--filter-crs=<crs>

SRID oder Identifier des CRS, das für Geometrien im Filterausdruck verwendet wird.

VCDB CRS

--sql-filter=<sql>

SQL-Query, die als Filter verwendet wird.

-s, --sort-by=<property[+|-]>
[,<property[+|-]>…​]

Eigenschaften und Sortierreihenfolgen zur Sortierung der Features.

--limit=<count>

Maximale Anzahl der zu verarbeitenden Features.

--start-index=<index>

Index innerhalb der Eingabemenge, ab dem Features verarbeitet werden.

-l, --lod=<lod>[,<lod>…​]

Exportiere Geometrien mit passendem LoD.

--lod-mode=<mode>

LoD-Filtermodus: or, and, minimum, maximum.

or

--lod-search-depth=<0..n|all>

Anzahl der Ebenen von Subfeatures, die nach passenden LoDs durchsucht werden.

0

--no-appearances

Appearances nicht verarbeiten.

-a, --appearance-theme=<theme>[,<theme>…​]

Appearances mit passendem Theme verarbeiten. Verwenden Sie none für das Null-Theme.

Weitere Informationen zu den Abfrage- und Filteroptionen und Nutzungshinweise siehe hier.

Zeitbasierte Objekt-Historie-Optionen

Option Beschreibung Standardwert

-M, --validity=<mode>

Verarbeitung von Feature basierend auf ihrer Gültigkeit: valid, invalid, all.

valid

-T, --validity-at=<time>

Gültigkeit zu einem bestimmten Zeitpunkt prüfen. Das Zeitformat muss <YYYY-MM-DD> oder <YYYY-MM-DDThh:mm:ss[(+|-)hh:mm]> sein.

--validity-reference=<source>

Referenz für die Gültigkeitszeit: database, real_world

database

--lenient-validity

Unvollständige Gültigkeitsintervalle von Features ignorieren.

Weitere Informationen zu den zeitbasierten Objekt-Historie-Optionen und Nutzungshinweise siehe hier.

Kachelungsoptionen

Option Beschreibung Standardwert

--tile-matrix=<columns,rows>

Exportiere Kacheln in einem Spalten x Zeilen Raster.

--tile-dimension=<width[unit],height[unit]>

Exportiere Kacheln mit angegebener Breite und Höhe, ausgerichtet am Raster des Datenbank-CRS (die Längeneinheit des CRS wird als Standard angenommen).

--tile-extent=<x_min,y_min,x_max,y_max[,srid]>

Ausdehnung, die für die Kachelung verwendet wird.

automatisch berechnet

--tile-origin=<origin>

Ursprung der Kachel-Indizes: top_left, bottom_left.

top_left

Weitere Informationen zu den Kachelungsoptionen und Nutzungshinweise siehe hier.

Datenbank-Verbindungsoptionen

Option Beschreibung Standardwert

-H, --db-host=<host>

Hostname des VCDB Datenbankservers.

-P, --db-port=<port>

Port des VCDB Datenbankservers.

5432

-d, --db-name=<database>

Name der VCDB-Instanz, zu eine Verbindung hergestellt werden soll.

-S, --db-schema=<schema>

Schema, das beim Verbinden zur VCDB verwendet werden soll.

citydb oder Benutzername

-u, --db-username=<user>

Benutzername für die Verbidung zur VCDB.

-p, --db-password
[=<password>]

Passwort für die Verbidung zur VCDB. Leer lassen, um zur Eingabe aufgefordert zu werden.

--db-property=<property=value>
[,<proeprty=value>…​]

Datenbankspezifische Verbindungsparameter.

Weitere Informationen zu den Datenbank-Verbindungsoptionen und Nutzungshinweise siehe hier.

Verwendung

Die Dokumentation der einzelnen Optionen und allgemeine Hinweise zu ihrer Nutzung finden Sie in der Dokumentation zum export citygml Befehl hier.

Objekt- und Attributfilterung

Der export citygml-adv Befehl beschränkt den Export auf die im AdV-PQS-Standard vorgegebenen Objektarten und Attribute sowie die vordefinierten Geometrierepräsentationen und LoD-Stufen. Weitere Objektarten und Attribute aus der Datenbank, die über die Vorgaben des AdV-PQS-Standards hinausgehen, werden grundsätzlich nicht ausgegeben. Auf diese Weise wird sichergestellt, dass jeder Export mit dem AdV Plugin den Vorgaben des AdV-CityGML-3.0 Formats entspricht.

Der Feature-Typ Filter über die Option --type-name ist daher nur eingeschränkt nutzbar, da nur erlaubte Objektarten akzeptiert werden. So kann ein AdV-Export beispielsweise über --type-name auf bldg:Building oder con:OtherConstruction Objekte beschränkt werden. Andere CityGML-Objektarten wie veg:SolitaryVegetationObject werden auch dann nicht exportiert, wenn sie im Feature-Typ Filter angegeben werden, da sie nicht Teil des AdV-Standards sind.

Auch der LoD-Filter über die --lod Option ist auf die AdV-konformen LoD-Stufen beschränkt.

Für die Ausgabe von Attributen erlaubt der export citygml-adv Befehl die folgenden Ausnahmen:

  • Attribut-Mapping: Bestehende Attribute in der Datenbank können vor der Ausgabe auf ein AdV-konformes Attribut gemappt werden. Dadurch lassen sich auch die Inhalte anderer Attribute für einen AdV-konformen Export nutzen, ohne diese Attribute in der Datenbank umbenennen zu müssen.

  • Attribut-Filter: Über eigene Attribut-Filter des export citygml-adv Befehls kann festgelegt werden, dass bestimmte Attribute dennoch exportiert oder vom Export ausgeschlossen werden.

Das Attribut-Mapping und die Attribut-Filter werden in der JSON-Konfiguration des export citygml-adv Befehls definiert und sind hier weiter beschrieben.

Der Einsatz von Attribut-Filtern kann dazu führen, dass die resultierende Ausgabedatei nicht mehr den Vorgaben des AdV-CityGML-3.0-Formats entspricht und somit nicht mehr AdV-konform ist.
Im Rahmen der Vorgaben des AdV-Standards können alle Filteroptionen eingesetzt werden. Die Dokumentation der allgemeinen Abfrage- und Filtermöglichkeiten des Export-Befehls finden Sie hier.

CityGML-Version

Der AdV-Standard legt die CityGML-Version der Ausgabedatei auf CityGML 3.0 fest. Die Angabe einer anderen Zielversion über die Option --citygml-version führt daher immer zu einer Fehlermeldung und zum Abbruch des Exportvorgangs.

Nachkommastellen

Gemäß den Vorgaben des AdV-Standards werden die Nachkommastellen von Koordinaten und Messwerten, beispielsweise der Gebäudehöhe (con:Height/con:value), auf drei Nachkommastellen beschränkt.

Anpassungen von Attributwerten

Für die folgenden Attribute gelten beim Export feste Vorgaben des AdV-Standards, auch wenn die Datenbank andere Werte enthält:

  • Die con:highReference der Gebäudehöhe wird auf topOfConstruction gesetzt.

  • Die con:lowReference der Gebäudehöhe wird auf lowestGroundPoint gesetzt.

  • Der con:status der Gebäudehöhe wird abhängig vom generischen Attribut DatenquelleDachhoehe gesetzt:

    • estimated: Bei einem Wert von 3000.

    • measured: Bei allen anderen Werten.

  • Der con:value der Gebäudehöhe erhält den Wert urn:adv:uom:m als Einheit.

  • Das core:informationSystem von externen Referenzen wird nicht ausgegeben.

  • Datums- und Zeitwerte werden ohne Zeitzonenoffset serialisiert.

Datei-Metadaten

Für jede Ausgabedatei setzt der Exportbefehl die folgenden Metadaten im Wurzelelement core:CityModel:

  • Dateiname ohne Dateiendung als gml:name.

  • Bounding-Box der Datei als gml:Envelope. Die Bounding-Box wird über alle Objekte in der Datei berechnet und entspricht daher nicht lediglich den Kachelgrenzen eines gekachelten Exports.

  • Koordinatenreferenzsystem (CRS) als srsName Attribut des gml:Envelope Elements.

Für die Angabe des CRS wird der Identifier des Datenbank-CRS verwendet, der beim Einrichten der VCDB-Instanz angegeben wurde und in der Tabelle DATABASE_SRS gespeichert ist. Soll ein anderer CRS-Identifier für den Export verwendet werden, kann dieser über die Option --crs-name festgelegt werden.

Gekachelter Export

Die Kachel- und Dateinamenstruktur für Exporte aus der VCDB v5 wird durch den export citygml-adv Befehl nicht vorgegeben, sondern kann wie bei einem normalen CityGML-Export frei gewählt werden. Dadurch sind sowohl Einzeldateien als auch gekachelte Exporte möglich.

Die Optionen des export citygml-adv Befehls ermöglichen es, die AdV-Vorgaben für die gekachelte Datenabgabe einfach umzusetzen:

  • --tile-dimension: Legt die Breite und Höhe der resultierenden Kacheln fest. Für einen Export mit einem Kachelgitter von 1x1 km muss der Wert auf 1000,1000 bzw. 1km,1km festgelegt werden. Für die Ausgabe von Kacheln mit 2x2 km entsprechend auf 2000,2000 bzw. 2km,2km.

  • --skip-empty-tiles: Kann optional angegeben werden, wenn Leerkacheln automatisch gelöscht werden sollen.

Weiterhin wird für den Dateinamen jeder Kacheldatei das folgende Format erwartet:

LoD<Level>_<UTM-Zone>_<East>_<North>_<Kantenlänge>_<Land>.gml

Die Werte für die Platzhalter <Level>, <UTM-Zone>, <Kantenlänge> und <Land> sind für alle Kacheldateien identisch und können daher beim Dateinamen fest vorgegeben werden. Nur die Platzhalter <East> und <North> sind dynamisch und hängen von der aktuell verarbeiteten Kachel ab. Dafür unterstützt der export Befehl von vcdb-tool bereits vordefinierte Platzhalter im Dateinamen, die zur Laufzeit durch die entsprechenden Kachelwerte ersetzt werden.

Für eine AdV-konforme Ausgabe sind die folgenden Platzhalter zu verwenden:

AdV-Token Beschreibung vcdb-tool Token

<East>

3-stelliger Rechtswert der linken unteren Ecke in Kilometern.

@x_min,%3.3s@

<North>

4-stelliger Hochwert der linken unteren Ecke in Kilometern.

@y_min,%4.4s@

Alle Optionen für gekachelte Exporte werden ausführlich im Export-Befehl von vcdb-tool beschrieben.

Beispiel

Das folgende Beispiel zeigt den Aufruf des export citygml-adv Befehls für einen gekachelten Export des Bundeslands Schleswig-Holstein (SH) im LoD 2 und der UTM-Zone 32 sowie einer Kantenlänge der Kacheln von 2km. Leerkacheln sollen dabei automatisch entfernt und der CRS-Identifier in den Ausgabedateien auf ETRS89_UTM32*DE_DHHN2016_NH festgelegt werden.

  • Linux

  • Windows CMD

./vcdb export citygml-adv [...] \
    -H my_server -d my_database -u my_user -p my_password \
    --crs-name=ETRS89_UTM32*DE_DHHN2016_NH \
    --tile-dimension=2000,2000 \
    --skip-empty-tiles \
    -o /my/path/LoD2_32_@x_min,%3.3s@_@y_min,%4.4s@_2_SH.gml
vcdb export citygml-adv [...] ^
    -H my_server -d my_database -u my_user -p my_password ^
    --crs-name=ETRS89_UTM32*DE_DHHN2016_NH ^
    --tile-dimension=2000,2000 ^
    --skip-empty-tiles ^
    -o C:\my\path\LoD2_32_@x_min,%3.3s@_@y_min,%4.4s@_2_SH.gml