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.

Synopsis

vcdb info [OPTIONS]

Options

Der info Befehl erbt globale Optionen vom Hauptbefehl vcdb. Zusätzlich definiert er Report- und Ausgabeoptionen.

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: fatal, 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.

--plugins=<dir>

Plugins 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.

Reportoptionen

Option Description Default value

-o, --output=<file|->

Ausgabe in eine JSON-Datei schreiben. Mit - wird nach stdout ausgegeben.

--threads=<threads>

Anzahl der Threads für die parallele Verarbeitung.

4

-s, --feature-scope=<scope>

Feature-Scope: all, active. Bei active werden nur Eigenschaften von nicht-terminierten Features berücksichtigt.

all

--include-generic-attributes

Generische Attribute und deren Datentypen einbeziehen.

--include-size-metrics

Metriken zur Datenbankgröße einbeziehen.

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

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

metadata

Allgemeine Informationen zum Report selbst, einschließlich Zeitstempel der Erstellung, des Feature-Scopes und ob generische Attribute berücksichtigt wurden.

summary

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.

database

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.

features

Anzahl aller Features in der Datenbank, unterteilt in aktive und terminierte Features, Top-Level-Features und Anzahl nach Feature-Typ.

geometries

Statistiken zu Geometrien, einschließlich Gesamtanzahl, Anzahl impliziter Geometrien, sowie Aufschlüsselung nach Geometrietypen und LoD.

addresses

Gesamtanzahl der in der Datenbank gespeicherten Adressen.

appearances

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.

extensions

Liste aller in der Datenbank registrierten ADE-Erweiterungen, einschließlich Name, Version und Beschreibunng. Wenn keine Erweiterungen vorhanden sind, wird ein leeres Array ausgegeben.

codeLists

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.

modules

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.

  • Die Erstellung des Reports nur für aktive Features kann deutlich mehr Zeit benötigen.

  • Weitere Informationen zur Terminierung von Features finden Sie in der Dokumentation der FEATURE Tabelle sowie des delete Befehls.

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.