Info-Befehl
Der info
Befehl erstellt einen umfassenden Datenbankreport über eine VCDB v5 Instanz und liefert relevante Informationen
über die in der Datenbank gespeicherten Daten, einschließlich der verfügbaren Feature-Typen, Level of Detail (LoDs),
Anzahl der Features und Geometrien, Informationen über Appearances, generische Attribute, die räumliche Ausdehnung aller
Features sowie Datenbank-Metadaten wie das Koordinatenreferenzsystem (CRS).
Standardmäßig gibt der Befehl einen menschenlesbaren Bericht in der Konsole aus. Dieselben Informationen können jedoch auch im JSON-Format ausgegeben werden, um automatisierte Workflows oder die programmatische Auswertung zu unterstützen.
Options
Der info
Befehl erbt globale Optionen vom Hauptbefehl vcdb
. Zusätzlich definiert er
Report- und Ausgabeoptionen.
Globale Optionen
Option | Beschreibung | Standardwert |
---|---|---|
|
Eine oder mehrere Argumentdateien mit Optionen. |
|
|
Hilfenachricht anzeigen und beenden. |
|
|
Versionsinformationen ausgeben und beenden. |
|
|
Konfiguration aus dieser Datei laden. |
|
|
Log-Level: |
|
|
Log-Nachrichten in diese Datei schreiben. |
|
|
Deaktiviert Log-Nachrichten auf der Konsole. |
|
|
Datei mit der Prozess-ID erstellen. |
|
|
Plugins aus diesem Verzeichnis laden. |
|
|
Plugins mit passendem vollqualifiziertem Klassennamen aktivieren oder deaktivieren. |
|
Weitere Informationen zu den globalen Optionen und Nutzungshinweise siehe hier.
Reportoptionen
Option | Description | Default value |
---|---|---|
|
Ausgabe in eine JSON-Datei schreiben. Mit |
|
|
Anzahl der Threads für die parallele Verarbeitung. |
4 |
|
Feature-Scope: |
|
|
Generische Attribute und deren Datentypen einbeziehen. |
|
|
Metriken zur Datenbankgröße einbeziehen. |
Datenbank-Verbindungsoptionen
Option | Beschreibung | Standardwert |
---|---|---|
|
Hostname des VCDB Datenbankservers. |
|
|
Port des VCDB Datenbankservers. |
5432 |
|
Name der VCDB-Instanz, zu eine Verbindung hergestellt werden soll. |
|
|
Schema, das beim Verbinden zur VCDB verwendet werden soll. |
|
|
Benutzername für die Verbidung zur VCDB. |
|
|
Passwort für die Verbidung zur VCDB. Leer lassen, um zur Eingabe aufgefordert zu werden. |
|
|
Datenbankspezifische Verbindungsparameter. |
Weitere Informationen zu den Datenbank-Verbindungsoptionen und Nutzungshinweise siehe hier.
Verwendung
Datenbankreport erstellen
Um einen Datenbankreport für eine VCDB v5
Instanz zu erzeugen, muss der info
Befehl mit den Verbindungsparametern für die
entsprechende Datenbank ausgeführt werden.
-
Linux
-
Windows CMD
./vcdb info \
-H localhost \
-d citdb \
-u citydb_user \
-p mySecret
vcdb info ^
-H localhost ^
-d citdb ^
-u citydb_user ^
-p mySecret
Die für die Erstellung eines Datenbankreports benötigte Zeit hängt von der Größe der Datenbank ab. Berichte werden
in der Regel wesentlich schneller berechnet, wenn Indizes aktiviert sind. Sind die Indizes deaktiviert, kann die
Erstellung des Datenbankreports deutlich länger dauern. Verwenden Sie den index Befehl,
um den aktuellen Status der Indizes zu prüfen und sie bei Bedarf zu aktivieren.
|
Der Report wird auf der Konsole in einem menschenlesbaren Format angezeigt. Mit Hilfe der Option --output
kann er auch im
JSON-Format ausgegeben werden. Wird ein Dateipfad angegeben, dann wird der JSON-Report in diese Datei geschrieben.
Wird anstelle eines Dateipfads -
verwendet, dann erfolgt Ausgabe des JSON-Reports auf stdout
. Auf diese Weise lässt sich
der JSON-Report einfach umleiten und mit externen Werkzeugen weiterverarbeiten.
Die folgenden Beispiele zeigen die Verwendung der Option --output
.
-
Linux
-
Windows CMD
./vcdb info [...] -o report.json # JSON in Datei schreiben
./vcdb info [...] -o - # JSON auf stdout ausgeben
./vcdb info [...] -o - > report.json # stdout in Datei umleiten
vcdb info [...] -o report.json # JSON in Datei schreiben
vcdb info [...] -o - # JSON auf stdout ausgeben
vcdb info [...] -o - > report.json # stdout in Datei umleiten
Inhalte des Datenbankreports
Das folgende Beispiel zeigt die Struktur eines JSON-Reports, der mit dem info
Befehl erzeugt wurde. Die in der Konsole
ausgegebene, menschenlesbare Version des Berichts enthält dieselben Informationen, nur in einer kompakteren Darstellung.
{
"metadata": {
"generatedAt": "2025-08-21T07:51:40Z",
"featureScope": "all",
"genericAttributesProcessed": false
},
"summary": {
"topLevelFeatures": [
"bldg:Building"
],
"lods": [
"2",
"3"
],
"themes": [
"Eignung Photovoltaik",
"Eignung Solarthermie",
"rgbTexture"
],
"crs": {
"srid": 25833,
"identifier": "urn:ogc:def:crs:EPSG::25833",
"name": "ETRS89 / UTM zone 33N"
},
"extent": [
778260.4775,
5809001.5376,
-703.348,
823412.6066,
5844145.0696,
405.5
],
"wgs84Extent": [
19.087075,
52.335758,
19.782079,
52.675649
]
},
"database": {
"name": "VC Database",
"version": "5.0.0",
"dbms": {
"name": "PostgreSQL",
"version": "17.2",
"properties": {
"postgis": {
"name": "PostGIS",
"value": "3.5.0"
},
"postgis_sfcgal": {
"name": "SFCGAL",
"value": "n/a"
}
}
},
"hasChangelogEnabled": false,
"connection": {
"host": "localhost",
"port": 5432,
"database": "citydb",
"schema": "citydb",
"user": "citydb_user"
}
},
"features": {
"featureCount": {
"active": 3476418,
"terminated": 0
},
"topLevelFeatureCount": {
"active": 539247,
"terminated": 0
},
"byType": {
"bldg:Building": {
"active": 539247,
"terminated": 0
},
"con:GroundSurface": {
"active": 547284,
"terminated": 0
},
"con:RoofSurface": {
"active": 763994,
"terminated": 0
},
"con:WallSurface": {
"active": 1625893,
"terminated": 0
}
}
},
"geometries": {
"geometryCount": 3011975,
"implicitGeometryCount": 0,
"byType": {
"core:MultiSurface": 2937193,
"core:Solid": 74782
},
"byLod": {
"2": 3011738,
"3": 7
}
},
"addresses": {
"addressCount": 586034
},
"appearances": {
"appearanceCount": 1617618,
"hasGlobalAppearances": false,
"hasMaterials": true,
"hasTextures": true,
"hasGeoreferencedTextures": false,
"byTheme": {
"Eignung Photovoltaik": 539247,
"Eignung Solarthermie": 539247,
"rgbTexture": 539247
}
},
"extensions": [],
"codeLists": {},
"modules": {
"bldg": "http://3dcitydb.org/3dcitydb/building/5.0",
"con": "http://3dcitydb.org/3dcitydb/construction/5.0",
"core": "http://3dcitydb.org/3dcitydb/core/5.0"
}
}
Der JSON-Report ist in Abschnitte gegliedert, von denen jeder einen bestimmten Aspekt der Datenbank zusammenfasst. Die folgende Tabelle bietet einen Überblick und eine Beschreibung dieser Abschnitte.
Abschnitt | Beschreibung |
---|---|
|
Allgemeine Informationen zum Report selbst, einschließlich Zeitstempel der Erstellung, des Feature-Scopes und ob generische Attribute berücksichtigt wurden. |
|
Zusammenfassung der Datenbankinhalte, einschließlich der Top-Level-Features, verfügbaren LoDs, Appearance-Themes, CRS-Informationen sowie räumlicher Ausdehnung sowohl im Datenbank-CRS als auch in WGS84-Koordinaten. |
|
Informationen über die verbundene Datenbank, einschließlich Name und Version, DBMS-Details inklusive verfügbarer Erweiterungen, VCDB-Eigenschaften, z.B. ob die Changelog-Erweiterung aktiviert ist, sowie Verbindungsparameter. |
|
Anzahl aller Features in der Datenbank, unterteilt in aktive und terminierte Features, Top-Level-Features und Anzahl nach Feature-Typ. |
|
Statistiken zu Geometrien, einschließlich Gesamtanzahl, Anzahl impliziter Geometrien, sowie Aufschlüsselung nach Geometrietypen und LoD. |
|
Gesamtanzahl der in der Datenbank gespeicherten Adressen. |
|
Detaillierte Informationen zu allen Appearances, einschließlich der Gesamtanzahl von Appearances, des Vorhandenseins globaler Appearances, Materialien, Texturen, sowie georeferenzierter Texturen, und der Anzahl von Appearances nach Themes. |
|
Liste aller in der Datenbank registrierten ADE-Erweiterungen, einschließlich Name, Version und Beschreibunng. Wenn keine Erweiterungen vorhanden sind, wird ein leeres Array ausgegeben. |
|
Verweise auf externe Codelisten, die für die entsprechenden CityGML-Datentypen in der Datenbank registriert sind. Wenn keine Codelisten vorhanden sind, wird ein leeres Objekt eingefügt. |
|
Liste der VCDB-Module mit ihren Namespaces, die von den in der Datenbank gespeicherten Daten verwendet werden. Wenn keine Module verwendet werden, wird ein leeres Objekt eingefügt. |
Feature-Scope
Die Option --feature-scope
legt fest, welche Features bei der Erstellung des Datenbankreports berücksichtigt werden:
-
all
: Der Report beinhaltet alle Features in der VCDB, sowohl aktive als auch terminierte. Alle Angaben zur Anzahl sowie abgeleitete Statistiken spiegeln die gesamte Datenbank wider. Dies ist der Standardmodus. -
active
: Für die Berechnung von Statistiken werden nur aktive Features berücksichtigt. Terminierte Features werden für abgeleitete Statistiken wie Top-Level-Features, verfügbare LoDs und andere Feature-bezogene Eigenschaften ignoriert. Die Gesamtanzahl der Features umfasst jedoch weiterhin sowohl aktive als auch terminierte Features.
Existiert beispielsweise ein bestimmtes LoD nur für terminierte Features, wird es bei einem Export aktiver Features nicht
mit exportiert und es kann auch nicht zum Filtern von aktiven Features genutzt werden. Aus diesem Grund wird dieses LoD
bei einem active
Scope nicht im Datenbankreport aufgeführt. Der Feature-Scope active
eignet sich daher insbesondere für
kompakte Berichte über nicht-terminierte Features, während all
einen vollständigen Überblick über die Datenbank liefert.
Generische Attribute einbeziehen
Die Option --include-generic-attributes
fügt dem Datenbankreport einen zusätzlichen Abschnitt genericAttributes
hinzu.
Dieser Abschnitt listet alle in der Datenbank vorhandenen generischen Attribute zusammen mit ihren Datentypen auf. Die
Datentypen referenzieren dabei Definition der Metadatentabelle DATATYPE.
Die Option sollte genutzt werden, wenn ein umfassender Überblick über alle generischen Attribute in der Datenbank
benötigt wird.
Das folgende Beispiel zeigt einen Auszug des Abschnitts genericAttributes
.
{
"metadata": {},
"summary": {},
...
"genericAttributes": {
"ownerName": [
"core:String"
],
"roofHeight": [
"core:Double"
],
"energyPerformance": [ (1)
"core:Integer",
"core:String"
],
...
}
}
1 | Für jedes generische Attribut sollte nur ein Datentyp aufgeführt werden. Das Vorhandensein mehrerer Datentypen weist in der Regel auf ein Konsistenzproblem hin. |
Abhängig von Anzahl und Komplexität der generischen Attribute kann die Erstellung des Datenbankreports mehr Zeit in Anspruch nehmen. |
Datenbankgröße einbeziehen
Mit der Option --include-size-metrics
wird dem Abschnitt database
des Datenbankreports ein weiterer Unterabschnitt
size
hinzugefügt. Dieser Unterabschnitt enthält Größenangaben in Bytes für die gesamte Datenbank, das ausgewählte
Schema sowie die einzelnen Tabellen. Ein Beispiel ist nachfolgend dargestellt.
{
"metadata": {},
"summary": {},
...
"database":{
"name":"VC Database",
"version":"5.0.0",
...
"size":{
"databaseSize":21454392467,
"schemaSize":21436571648,
"byTable":{
"address":54951936,
"appear_to_surface_data":2442379264,
"appearance":283295744,
"feature":3317882880,
"geometry_data":2525831168,
"implicit_geometry":32768,
"property":6379757568,
"surface_data":1938014208,
"surface_data_mapping":3295518720,
"tex_image":1198391296
}
}
}
}
Mit dieser Option lässt sich der Speicherbedarf einer VCDB v5 Instanz und ihrer Tabellen schnell ermitteln. Dies
kann hilfreich sein für Performance-Analysen, das Monitoring der Datenbankgröße über die Zeit oder die Planung von
Backups.
|
Steuerung des Reportprozesses
Der info
Befehl bietet folgende Optionen zur Steuerung des Prozesses der Reporterstellung:
-
--threads
: Setzt die Anzahl der Threads für die parallele Prozessierung fest. Eine höhere Anzahl von Threads kann zu einer Performance-Steigerung führen. Standardmäßig werden unabhängig von der Anzahl der für die JVM verfügbaren Prozessoren vier Threads genutzt.
Eine zu hohe Anzahl an Threads kann zu Leistungseinbußen durch Thrashing führen. Außerdem benötigt jeder Thread eine eigene Datenbankverbindung, weshalb sichergestellt werden muss, dass die Datenbank die erforderliche Anzahl von Verbindungen zur Verfügung stellen kann. |