Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • Q Quality_Management_3D_CM
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Muddsair Sharif
  • Quality_Management_3D_CM
  • Wiki
  • Validierung
  • Anforderungen

Anforderungen · Changes

Page history
update wiki authored May 06, 2019 by Muddsair Sharif's avatar Muddsair Sharif
Hide whitespace changes
Inline Side-by-side
Validierung/Anforderungen.md 0 → 100644
View page @ 06f00535
# Anforderungen und Prüfungen für die Validierung von CityGML-Modellen
Die Anforderungen sind die Grundbausteine für ein Validierungsplan um CityGML-Modelle zu validieren. Für Namenskonventionen und Definitionen, siehe [Grundbegriffe](Validierung/Grundbegriffe).
Eine Anforderung kann durch einen oder mehrere Prüfungen validiert werden. Eine Prüfung validiert ein oder mehrere Anforderungen bei einem Modell. Jede Prüfung kann Vorbedingungen haben. Wenn diese Vorbedingungen nicht erfüllt sind wird die Prüfung nicht ausgeführt.
Für jede Anforderung muss mindestens eine Prüfung existieren, ohne diese wäre eine Anforderung nutzlos. Es müssen mindestens zwei Testfälle für jede Anforderung existieren, eine, die die Anforderung erfüllt und eine, die diese nicht erfüllt. Mehr als zwei Testfälle ist natürlich nützlich.
Alle Testmodelle sind [hier](https://gitlab.com/volkercoors/CiD4Sim/tree/master/SimpleSolid_SrefBS) unter den Ordnern v1.0 und v2.0 gespeichert.
## Schema Anforderungen
### SC-all-0001
#### Anforderung
| ID | SC-all-0001 |
| ---- | ---- |
| Beschreibung | Eine grundlengende Anforderung ist, dass jedes CityGML Dokument wohl definiert sein muss und XSD valide ist. |
| Fehlercode | SC-all-NOT_XSD_VALID |
#### Prüfung
| ID | SC-SCHEMA-VALIDATION|
| ---- | ---- |
| Anforderungs ID | SC-all-0001 |
| Vorbedingungen | keine |
| Beschreibung | Werkzeuge um eine XSD Validierung durchzuführen sind verfügbar und geben verlässliche Ergebnisse |
| Fehlercode | SC-all-NOT_XSD_VALID |
#### Testfälle
| Testfall ID | CityGML Modell | Erwartetes Ergebnis |
| ---- |--------------- | ----------------- |
| SC-all-0001-T0001 | SC-all-0001-T0001.gml | OK |
| SC-all-0001-T0002 | SC-all-0001-T0002.gml | SC-all-NOT_XSD_VALID |
## Geometrieanforderungen
### Fehlercodes for geometrische Fehler
wie definiert in [CityGML Quality Interoperability Experiment, chapter 7.5](http://mail.opengeospatial.org/lists/lt.php?id=fR4CDVYeAlJfHwhTCwA)
Alle geometrischen Fehler sind in dem "GE" Definitionsbereich. Da geometrische Validierung, basierend auf den Primitiven, auf drei verschiedenen Ebenen ausgeführt wird enthält jede Anforderung eine Ebene:
* Ring: R
* Polygon: P
* Hülle (Shell): S
Fehlercodes folgen dem selben Namensschema wie die Anforderungen, siehe auch [Grundbegriffe](Validierung/Grundbegriffe). Jede Verletzung einer Anforderung muss in einem Fehler enden, der einen entsprechenden Fehlercode beinhaltet.
Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn ein Ring nicht geschlossen ist, dann sollte die ID des Rings mitgegeben werden).
### Vertex (Punkt) Anforderungen
Zwei Punkte A und B sind gleich wenn die Euclidische-Distanz zwischen den beiden Punkten kleiner als eine definierte Größe ist (*minVertexDistance*). Diese definierte Größe findet auch in vielen Prüfungen wieder Anwendung, zum Beispiel berührt ein Punkt eine Kante wenn der Abstand des Punktes kleiner ist als *minVertexDistance*. In den folgenden Prüfungen wird die Größe verwendet:
* GE-gml:LR-0001
* GE-gml:LR-0002
* GE-gml:LR-0003
* GE-gml:LR-0004
* GE-gml:PO-0001
* GE-gml:PO-0003
* GE-gml:PO-0004
* GE-gml:PO-0005
* GE-gml:SO-0006
Die folgenden Anforderungen wurden auf den drei geometrischen Ebenen definiert (nach Ledoux (2013)):
#### Linear Ring
| Anforderungs ID | Beschreibung | Fehlercode | Bekannte Prüfungen |
| --------------- | ------------ | ---------- |-------------------- |
| [GE-gml:LR-0001](Validierung/Anforderungen/GE_gml_LR_0001)| Zu wenig Punkte in einem Ring | GE_R_TOO_FEW_POINTS | C_GE_R_TOO_FEW_POINTS |
| [GE-gml:LR-0002](Validierung/Anforderungen/GE_gml_LR_0002)| 2 aufeinanderfolgende Punkte sind gleich | GE_R_CONCECUTIVE_POINTS_SAME | C_GE_R_CONCECUTIVE_POINTS_SAME, C_GE_R_DUPLICATE_POINT |
| [GE-gml:LR-0003](Validierung/Anforderungen/GE_gml_LR_0003)| Der erste und letzte Punkt sind nicht gleich | GE_R_NOT_CLOSED | C_GE_R_NOT_CLOSED |
| [GE-gml:LR-0004](Validierung/Anforderungen/GE_gml_LR_0004)| Selbstverschneidung z.B. eine Schleife | GE_R_SELF_INTERSECTION | C_GE_R_SELF_INTERSECTION, C_GE_R_DUPLICATE_POINT |
| [GE-gml:LR-0005](Validierung/Anforderungen/GE_gml_LR_0005)| **Momentan nicht in Benutzung, da redundant mit GE-gml:LR-0004**<br/> Ring ist ein Punkt oder eine Linie | GE_R_COLLAPSED_TO_LINE | C_GE_R_COLLAPSED_TO_LINE |
| GE-gml:LR-all | Container für: GE-gml:LR-0001, GE-gml:LR-0002, GE-gml:LR-0003, GE-gml:LR-0004 | -- | -- |
#### Polygon
| Anforderungs ID | Beschreibung | Fehlercode | Bekannte Prüfungen |
| --------------- | ------------ | ---------- |-------------------- |
| [GE-gml:PO-0001](Validierung/Anforderungen/ge_gml_po_0001) | 2+ Ringe schneiden sich | GE_P_INTERSECTING_RINGS | C_GE_P_INTERSECTING_RINGS |
| [GE-gml:PO-0002](Validierung/Anforderungen/ge_gml_po_0002) | Nicht planares Polygon, sowohl Distanz als auch Flächennormale Abweichungen | GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE, GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION | C_GE_P_NON_PLANAR |
| [GE-gml:PO-0003](Validierung/Anforderungen/ge_gml_po_0003) | Innenfläche ist nicht verbunden | GE_P_INTERIOR_DISCONNECTED | C_GE_P_INTERIOR_DISCONNECTED |
| [GE-gml:PO-0004](Validierung/Anforderungen/ge_gml_po_0004) | 1+ inneren Ringe ist komplett außerhalb des Polygons | GE_P_HOLE_OUTSIDE | C_GE_P_HOLE_OUTSIDE |
| [GE-gml:PO-0005](Validierung/Anforderungen/ge_gml_po_0005) | Innerer Ring ist komplett innerhalb eines anderen inneren Rings | GE_P_INNER_RINGS_NESTED | C_GE_P_INNER_RINGS_NESTED |
| [GE-gml:PO-0006](Validierung/Anforderungen/ge_gml_po_0006) | Äußerer Ring und innerer Ring haben die selbe Orientation | GE_P_ORIENTATION_RINGS_SAME | C_GE_P_ORIENTATION_RINGS_SAME |
| GE-gml:PO-all | Container für: GE-gml:PO-0001, GE-gml:PO-0002, GE-gml:PO-0003, GE-gml:PO-0004, GE-gml:PO-0005, GE-gml:PO-0006, GE-gml:LR-all | -- | -- |
#### Solid/ Hülle (Shell)
| Anforderungs ID | Beschreibung | Fehlercode | Bekannte Prüfungen |
| --------------- | ------------ | ---------- |-------------------- |
| [GE-gml:SO-0001](Validierung/Anforderungen/ge_gml_so_0001) | <4 Polygone | GE_S_TOO_FEW_POLYGONS | C_GE_S_TOO_FEW_POLYGONS |
| [GE-gml:SO-0002](Validierung/Anforderungen/ge_gml_so_0002) | Die Hülle ist nicht wasserdicht / hat 1+ Löcher | GE_S_NOT_CLOSED | C_GE_S_NOT_CLOSED |
| [GE-gml:SO-0003](Validierung/Anforderungen/ge_gml_so_0003) | Jedes Polygon, das an einem Punkt anliegt muss über Kanten mit den Anderen verbunden sein | GE_S_NON_MANIFOLD_VERTEX | C_GE_S_NON_MANIFOLD_VERTEX |
| [GE-gml:SO-0004](Validierung/Anforderungen/ge_gml_so_0004) | An jeder Kante dürfen nur 2 Polygon anliegen | GE_S_NON_MANIFOLD_EDGE | C_GE_S_NON_MANIFOLD_EDGE |
| [GE-gml:SO-0005](Validierung/Anforderungen/ge_gml_so_0005) | Alle Polygone müssen über Punkte und Kanten verbunden sein | GE_S_MULTIPLE_CONNECTED_COMPONENTS | C_GE_S_MULTIPLE_CONNECTED_COMPONENTS |
| [GE-gml:SO-0006](Validierung/Anforderungen/ge_gml_so_0006) | Die Hülle selbstverschneidet sich | GE_S_SELF_INTERSECTION | C_GE_S_SELF_INTERSECTION |
| [GE-gml:SO-0007](Validierung/Anforderungen/ge_gml_so_0007) | Die Orientierung eines Polygons ist falsch | GE_S_POLYGON_WRONG_ORIENTATION | C_GE_S_POLYGON_WRONG_ORIENTATION |
| [GE-gml:SO-0008](Validierung/Anforderungen/ge_gml_so_0008) | Alle Polygone zeigen in die falsche Richtung | GE_S_ALL_POLYGONS_WRONG_ORIENTATION | C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION |
#### Parameter Überblick
| Name | Beschreibung | Verwendet in |
| ---- | ------------ | ------------ |
| minVertexDistance | Minimale Abstand zwischen zwei Punkten bevor sie als der selbe Punkt angesehen werden | GE_gml_LR_0001, GE_gml_LR_0002, GE_gml_LR_0003, GE_gml_LR_0004, GE_gml_PO_0001, GE_gml_PO_0003, GE_gml_SO_0007 |
| type | Planaritätsprüfungsart, kann *distance*, *angle*, *both* sein | GE_gml_PO_0002 |
| distanceTolerance | Maximale Distanz eines Punktes von der Ausgleichsebene eines Polygons bevor es als Fehler angesehen wird | GE_gml_PO_0002 |
| angleTolerance | Maximale Differenz im Winkel bevor ein Polygon nicht mehr als Planar angesehen wird | GE_gml_PO_0002 |
#### Abhängigkeitsbaum
Dies ist die Reihenfolge in der die Prüfungen ausgeführt werden. Wenn eine abhängige Prüfung einen Fehler geworfen hat oder nicht ausgeführt wurde, so wird die darauffolgende Prüfung auch nicht ausgeführt.
```mermaid
graph TD;
X0001[SC-SCHEMA-VALIDATION]
R0001[C_GE_R_TOO_FEW_POINTS]
R0002[C_GE_R_DUPLICATE_POINT/C_GE_R_CONCECUTIVE_POINTS_SAME]
R0003[C_GE_R_NOT_CLOSED]
R0004[C_GE_R_SELF_INTERSECTION]
P0001[C_GE_P_INTERSECTING_RINGS]
P0002[C_GE_P_NON_PLANAR]
P0003[C_GE_P_INTERIOR_DISCONNECTED]
P0004[C_GE_P_HOLE_OUTSIDE]
P0005[C_GE_P_INNER_RINGS_NESTED]
P0006[C_GE_P_ORIENTATION_RINGS_SAME]
S0001[C_GE_S_TOO_FEW_POLYGONS]
S0002[C_GE_S_NOT_CLOSED]
S0003[C_GE_S_NON_MANIFOLD_VERTEX]
S0004[C_GE_S_NON_MANIFOLD_EDGE]
S0005[C_GE_S_MULTIPLE_CONNECTED_COMPONENTS]
S0006[C_GE_S_SELF_INTERSECTION]
S0007[C_GE_S_POLYGON_WRONG_ORIENTATION]
S0008[C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION]
X0001-->R0003;
R0003-->R0001;
R0001-->R0002;
R0002-->R0004;
R0004-->P0002;
P0002-->P0006;
P0006-->P0003;
P0006-->P0004;
P0006-->P0005;
P0004-->P0001;
P0005-->P0001;
P0001-->S0001;
P0003-->S0001;
S0001-->S0002;
S0001-->S0004;
S0001-->S0003;
S0001-->S0005;
S0002-->S0007;
S0004-->S0007;
S0007-->S0006;
S0003-->S0006;
S0005-->S0006;
S0006-->S0008;
```
#### Multisurface and Solid - Geometrie
Um die Definition eines Validierungsplans zu vereinfachen werden zwei neue Anfoderungen zusätzlich eingeführt. Diese Anfoderungen dienen lediglich zur Gruppierung von den vorhandenen Anforderungen und benötigen keine zusätzlichen Prüfungen.
| Anforderungs ID | Beschreibung | Abhängigkeiten | Fehlercode | Bekannte Prüfungen |
| --------------- | ------------ | -------------- | ---------- |-------------------- |
| [GE-gml:MS-0001](Validierung/Anforderungen/GE_gml_MS_0001) | Valide Hüllengeometrie | SC-all-0001, GE-gml:PO-all | -- | -- |
| [GE-gml:SO-0009](Validierung/Anforderungen/GE_gml_SO_0009) | Valide Multisurface-Geometrie | SC-all-0001, GE-gml:PO-all, GE-gml:SO-0001, GE-gml:SO-0002, GE-gml:SO-0003, GE-gml:SO-0004, GE-gml:SO-0005, GE-gml:SO-0006, GE-gml:SO-0006 | -- | -- |
## Conformance Requirement
### Änderungsanträge
[Antrag 553: Markiere *CityGML Conformance Requirement 10.3.8.1 Building / Building Part* als veraltet](http://ogc.standardstracker.org/show_request.cgi?id=553)
## Semantische Anforderungen
n.d.
Beispiele:
SE-bldg:WS-PL
Eine Wandfläche besteht aus mehreren verbundenen Polygonen, die die selbe Flächennormale haben (innerhalb einer Toleranz).
SE-bldg:RS-PL
Eine Dachfläche besteht aus mehreren verbundenen Polygonen, die die selbe Flächennormale haben (innerhalb einer Toleranz).
\ No newline at end of file
Clone repository
  • Anwendungsfaelle
  • Protokolle
    • 20190416
  • Validierung
    • Anforderungen
    • Anforderungen
      • GE_gml_LR_0001
      • GE_gml_LR_0002
      • GE_gml_LR_0003
      • GE_gml_LR_0004
      • GE_gml_LR_0005
      • GE_gml_MS_0001
      • GE_gml_PO_0001
      • GE_gml_PO_0002
      • GE_gml_PO_0003
      • GE_gml_PO_0004
      • GE_gml_PO_0005
      • GE_gml_PO_0006
View All Pages

Dies ist die Gitlab-Instanz des Transferportals der Hochschule für Technik Stuttgart. Hier geht es zurück zum Portal