NetCDF Unstrukturiertes Gitter: Unterschied zwischen den Versionen
Aus BAWiki
imported>Lang Guenther (→Kantenverzeichnis der Faces (Polygone): standard_name durch cf_role ersetzt, Hinweis gelöscht) |
(Die LinkTitles-Erweiterung hat automatisch Links zu anderen Seiten hinzugefügt (<a target="_blank" rel="nofollow noreferrer noopener" class="external free" href="https://github.com/bovender/LinkTitles">https://github.com/bovender/LinkTitles</a>).) |
||
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
die Struktur (Topologie) des Gitters beschrieben. | die Struktur (Topologie) des Gitters beschrieben. | ||
Die Beschreibung wurde vollständig für die ''staggered data'' | Die Beschreibung wurde möglichst vollständig für die ''staggered data'' Postionen ''node'', ''edge'' und ''face'' | ||
(Polygon) gestaltet, auch wenn für einzelne der o. g. Dateitypen nur ein Teil der nachfolgend genannten Daten benötigt wird. | |||
Die | Die Konzeption ist eng mit der | ||
[http://ugrid-conventions.github.io/ugrid-conventions/#2d-flexible-mesh-mixed-triangles-quadrilaterals-etc-topology ''2D flexible mesh (mixed triangles, quadrilaterals, etc.) topology''] | |||
der [http://ugrid-conventions.github.io/ugrid-conventions ''UGRID Conventions''] verknüpft. Alle | |||
Abweichungen/Erweiterungen von den ''UGRID Conventions'' sind nachfolgend in der Farbe | |||
<font color=darkorange>''darkorange''</font> farblich hervorgehoben. | |||
=Inhalt der Datei= | =Inhalt der Datei= | ||
Zeile 44: | Zeile 39: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Kanten=== | ===Kanten=== | ||
Zeile 61: | Zeile 56: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Faces (Polygone)=== | ===Faces (Polygone)=== | ||
Zeile 89: | Zeile 83: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
# Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert. | # Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert. | ||
# Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden. | # Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden. | ||
Zeile 95: | Zeile 89: | ||
===(optional) Begrenzung für Kanten=== | ===(optional) Begrenzung für Kanten=== | ||
double Mesh2_edge_x_bnd(nMesh2_edge, two) ; | double Mesh2_edge_x_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich | ||
double Mesh2_edge_y_bnd(nMesh2_edge, two) ; | double Mesh2_edge_y_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich | ||
===(optional) Begrenzung für Faces (Polygone)=== | ===(optional) Begrenzung für Faces (Polygone)=== | ||
double Mesh2_face_x_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; | double Mesh2_face_x_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; | ||
: Mesh2_face_x_bnd:_FillValue = ''fillvalue'' ; | : Mesh2_face_x_bnd:_FillValue = ''fillvalue'' ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert | ||
double Mesh2_face_y_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; | double Mesh2_face_y_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; | ||
: Mesh2_face_y_bnd:_FillValue = ''fillvalue'' ; | : Mesh2_face_y_bnd:_FillValue = ''fillvalue'' ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert | ||
Hinweise: | Hinweise: | ||
Zeile 124: | Zeile 118: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Kanten=== | ===Kanten=== | ||
Zeile 141: | Zeile 135: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Faces (Polygone)=== | ===Faces (Polygone)=== | ||
Zeile 169: | Zeile 162: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
# Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert. | # Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert. | ||
# Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden. | # Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden. | ||
Zeile 175: | Zeile 168: | ||
===(optional) Begrenzung für Kanten=== | ===(optional) Begrenzung für Kanten=== | ||
double Mesh2_edge_lon_bnd(nMesh2_edge, two) ; | double Mesh2_edge_lon_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich | ||
double Mesh2_edge_lat_bnd(nMesh2_edge, two) ; | double Mesh2_edge_lat_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich | ||
===(optional) Begrenzung für Faces (Polygone)=== | ===(optional) Begrenzung für Faces (Polygone)=== | ||
double Mesh2_face_lon_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; | double Mesh2_face_lon_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert | ||
: Mesh2_face_lon_bnd:_FillValue = ''fillvalue'' ; | : Mesh2_face_lon_bnd:_FillValue = ''fillvalue'' ; | ||
double Mesh2_face_lat_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; | double Mesh2_face_lat_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert | ||
: Mesh2_face_lat_bnd:_FillValue = ''fillvalue'' ; | : Mesh2_face_lat_bnd:_FillValue = ''fillvalue'' ; | ||
Zeile 196: | Zeile 189: | ||
: Mesh2_edge_nodes:long_name = "Knotenverzeichnis der Kanten, Anfangs- und Endpunkt" ; | : Mesh2_edge_nodes:long_name = "Knotenverzeichnis der Kanten, Anfangs- und Endpunkt" ; | ||
: Mesh2_edge_nodes:cf_role= "edge_node_connectivity" ; | : Mesh2_edge_nodes:cf_role= "edge_node_connectivity" ; | ||
: Mesh2_edge_nodes: | : Mesh2_edge_nodes:start_[[index]] = 0; | ||
Hinweise: | Hinweise: | ||
Zeile 204: | Zeile 197: | ||
int Mesh2_edge_faces(nMesh2_edge, two) ; | int Mesh2_edge_faces(nMesh2_edge, two) ; | ||
: Mesh2_edge_faces:long_name = "Face- (Polygon-) Verzeichnis der Kanten, linker und rechter Nachbar" ; | : Mesh2_edge_faces:long_name = "Face- (Polygon-) Verzeichnis der Kanten, linker und rechter Nachbar" ; | ||
: Mesh2_edge_faces:cf_role = "edge_face_connectivity" ; | : Mesh2_edge_faces:cf_role = "<font color=darkorange>edge_face_connectivity</font>" ; | ||
: Mesh2_edge_faces: | : Mesh2_edge_faces:start_[[index]] = 0 ; | ||
: Mesh2_edge_faces:_FillValue = -999 ; | : Mesh2_edge_faces:_FillValue = -999 ; | ||
Zeile 218: | Zeile 211: | ||
: Mesh2_face_nodes:long_name = "Knotenverzeichnis der Faces (Polygone), entgegen dem Uhrzeigersinn" ; | : Mesh2_face_nodes:long_name = "Knotenverzeichnis der Faces (Polygone), entgegen dem Uhrzeigersinn" ; | ||
: Mesh2_face_nodes:cf_role = "face_node_connectivity" ; | : Mesh2_face_nodes:cf_role = "face_node_connectivity" ; | ||
: mesh2_face_nodes: | : mesh2_face_nodes:start_[[index]] = 0 ; | ||
: Mesh2_face_nodes:_FillValue = -999 ; | : Mesh2_face_nodes:_FillValue = -999 ; | ||
Zeile 230: | Zeile 223: | ||
: Mesh2_face_edges:long_name = "Kantenverzeichnis der Faces (Polygone), entgegen dem Uhrzeigersinn" ; | : Mesh2_face_edges:long_name = "Kantenverzeichnis der Faces (Polygone), entgegen dem Uhrzeigersinn" ; | ||
: Mesh2_face_edges:cf_role = "face_edge_connectivity" ; | : Mesh2_face_edges:cf_role = "face_edge_connectivity" ; | ||
: Meshe_face_edges: | : Meshe_face_edges:start_[[index]] = 0 ; | ||
: Mesh2_face_edges:_FillValue = -999 ; | : Mesh2_face_edges:_FillValue = -999 ; | ||
Zeile 240: | Zeile 233: | ||
==Topologievariable== | ==Topologievariable== | ||
int Mesh2 ; | int Mesh2 ; | ||
: Mesh2:long_name = "UnTRIM Gitternetz, Drei- und Vierecke gemischt, kein SubGrid" ; | : Mesh2:long_name = "[[UNTRIM|UnTRIM]] Gitternetz, Drei- und Vierecke gemischt, kein SubGrid" ; | ||
: Mesh2: | : Mesh2:cf_role = "mesh_topology" ; \\ UGRID required | ||
: Mesh2: | : Mesh2:topology_dimension = 2 ; \\ UGRID required | ||
: Mesh2:node_coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ; | : Mesh2:node_coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ; \\ UGRID required | ||
: Mesh2:edge_coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ; | : Mesh2:edge_coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ; \\ UGRID optionally required for data at edges | ||
: Mesh2:face_coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat Mesh2_face_center_x Mesh2_face_center_y Mesh2_face_center_lon Mesh2_face_center_lat" ; | : Mesh2:face_coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat Mesh2_face_center_x Mesh2_face_center_y Mesh2_face_center_lon Mesh2_face_center_lat" ; \\ UGRID optionally required for data at faces | ||
: Mesh2:face_node_connectivity = "Mesh2_face_nodes" ; | : Mesh2:face_node_connectivity = "Mesh2_face_nodes" ; \\ UGRID required | ||
: Mesh2:face_edge_connectivity = "Mesh2_face_edges" ; | : Mesh2:face_edge_connectivity = "Mesh2_face_edges" ; \\ UGRID optional | ||
: Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ; | : Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ; \\ UGRID optional | ||
: Mesh2:edge_face_connectivity = "Mesh2_edge_faces" ; | : Mesh2:<font color=darkorange>edge_face_connectivity</font> = "Mesh2_edge_faces" ; | ||
Hinweise: | Hinweise: | ||
# In der Praxis müssen nicht alle Verknüpfungslisten (''connectivity'') angegeben werden, da manche Informationen redundant sind. Sie sollten aber angegeben werden können. | # In der Praxis müssen nicht alle Verknüpfungslisten (''connectivity'') angegeben werden, da manche Informationen redundant sind. Sie sollten aber angegeben werden können. | ||
# Die in [http://ugrid-conventions.github.io/ugrid-conventions/#2d-flexible-mesh-mixed-triangles-quadrilaterals-etc-topology ''2D flexible mesh (mixed triangles, quadrilaterals, etc.) topology''] aufgeführten Attribute ''face_dimension'' und ''edge_dimension'' werden in der BAW nicht unterstützt. Dies ist auch nicht erforderlich, da die Reihenfolge der Dimensionen in den Konnektivitäts-Variablen standardkonform sind. | |||
==Koordinatentransformation== | ==Koordinatentransformation== | ||
*Siehe unter [[NetCDF Grid Mapping Variable]] | * Siehe unter [[NetCDF Grid Mapping Variable]]. | ||
---- | ---- |
Aktuelle Version vom 21. Oktober 2022, 09:25 Uhr
Kurze Beschreibung
Ein aus beliebigen Faces (Polygonen) - Dreiecke und Vierecke - aufgebautes Gitter wird beschrieben. Typische Dateitypen hierfür sind z. B. untrim_grid.dat sowie utrsub_grid.dat. Die Speicherung von Daten auf diesem Gitter, z. B. der Tiefe (Bathymetrie), wird an anderer Stelle beschrieben (siehe NetCDF Synoptische Daten im unstrukturierten Gitter). Ebenso werden hier keine Informationen über offene und geschlossene Kanten oder Positionen zum Einsteuern von Randwerten aufgeführt. Es wird ausschließlich die Struktur (Topologie) des Gitters beschrieben.
Die Beschreibung wurde möglichst vollständig für die staggered data Postionen node, edge und face (Polygon) gestaltet, auch wenn für einzelne der o. g. Dateitypen nur ein Teil der nachfolgend genannten Daten benötigt wird.
Die Konzeption ist eng mit der 2D flexible mesh (mixed triangles, quadrilaterals, etc.) topology der UGRID Conventions verknüpft. Alle Abweichungen/Erweiterungen von den UGRID Conventions sind nachfolgend in der Farbe darkorange farblich hervorgehoben.
Inhalt der Datei
Dimensionen
- nMesh2_node : Anzahl der Knoten.
- nMesh2_edge : Anzahl der Kanten.
- nMesh2_face : Anzahl der Faces (Polygone).
- nMaxMesh2_face_nodes : maximale Anzahl der Knoten/Kanten in einem Face (Polygon).
- two : Konstante ( = 2 ).
Lokale Koordinaten
Knoten
double Mesh2_node_x(nMesh2_node) ;
- Mesh2_node_x:long_name = "x-Koordinate der Knoten eines 2D-Gitters" ;
- Mesh2_node_x:units = "m" ;
- Mesh2_node_x:name_id = 1650 ;
- Mesh2_node_x:standard_name = "projection_x_coordinate" ;
double Mesh2_node_y(nMesh2_node) ;
- Mesh2_node_y:long_name = "y-Koordinate der Knoten eines 2D-Gitters" ;
- Mesh2_node_y:units = "m" ;
- Mesh2_node_y:name_id = 1651 ;
- Mesh2_node_y:standard_name = "projection_y_coordinate" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Kanten
double Mesh2_edge_x(nMesh2_edge) ;
- Mesh2_edge_x:long_name = "x-Koordinate der Kanten eines 2D-Gitters, Kantenmitte" ;
- Mesh2_edge_x:units = "m" ;
- Mesh2_edge_x:name_id = 1650 ;
- Mesh2_edge_x:bounds = "Mesh2_edge_x_bnd" ;
- Mesh2_edge_x:standard_name = "projection_x_coordinate" ;
double Mesh2_edge_y(nMesh2_edge) ;
- Mesh2_edge_y:long_name = "y-Koordinate der Kanten eines 2D-Gitters, Kantenmitte" ;
- Mesh2_edge_y:units = "m" ;
- Mesh2_edge_y:name_id = 1651 ;
- Mesh2_edge_y:bounds = "Mesh2_edge_y_bnd" ;
- Mesh2_edge_y:standard_name = "projection_y_coordinate" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Faces (Polygone)
double Mesh2_face_x(nMesh2_face) ;
- Mesh2_face_x:long_name = "x-Koordinate der Faces (Polygone) eines 2D-Gitters, Schwerpunkt" ;
- Mesh2_face_x:units = "m" ;
- Mesh2_face_x:name_id = 1650 ;
- Mesh2_face_x:bounds = "Mesh2_face_x_bnd" ;
- Mesh2_face_x:standard_name = "projection_x_coordinate" ;
double Mesh2_face_y(nMesh2_face) ;
- Mesh2_face_y:long_name = "y-Koordinate der Faces (Polygone) eines 2D-Gitters, Schwerpunkt" ;
- Mesh2_face_y:units = "m" ;
- Mesh2_face_y:name_id = 1651 ;
- Mesh2_face_y:bounds = "Mesh2_face_y_bnd" ;
- Mesh2_face_y:standard_name = "projection_y_coordinate" ;
double Mesh2_face_center_x(nMesh2_face) ;
- Mesh2_face_center_x:long_name = "x-Koordinate der Faces (Polygone) eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_face_center_x:units = "m" ;
- Mesh2_face_center_x:name_id = 1650 ;
- Mesh2_face_center_x:standard_name = "projection_x_coordinate" ;
double Mesh2_face_center_y(nMesh2_face) ;
- Mesh2_face_center_y:long_name = "y-Koordinate der Faces (Polygone) eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_face_center_y:units = "m" ;
- Mesh2_face_center_y:name_id = 1651 ;
- Mesh2_face_center_y:standard_name = "projection_y_coordinate" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert.
- Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden.
- Der Umkreismittelpunkt kann demgegenüber außerhalb des Polygons zu liegen kommen.
(optional) Begrenzung für Kanten
double Mesh2_edge_x_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich
double Mesh2_edge_y_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich
(optional) Begrenzung für Faces (Polygone)
double Mesh2_face_x_bnd(nMesh2_face, nMaxMesh2_face_nodes) ;
- Mesh2_face_x_bnd:_FillValue = fillvalue ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert
double Mesh2_face_y_bnd(nMesh2_face, nMaxMesh2_face_nodes) ;
- Mesh2_face_y_bnd:_FillValue = fillvalue ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert
Hinweise:
- Koordinaten der Knoten der Faces (Polygone) entgegen dem Uhrzeigersinn angeben.
- Es dürfen ungültige Koordinaten vorhanden sein.
Geografische Koordinaten
Knoten
double Mesh2_node_lon(nMesh2_node) ;
- Mesh2_node_lon:long_name = "geografische Laenge der Knoten eines 2D-Gitters" ;
- Mesh2_node_lon:units = "degrees_east" ;
- Mesh2_node_lon:name_id = 1653 ;
- Mesh2_node_lon:standard_name = "longitude" ;
double Mesh2_node_lat(nMesh2_node) ;
- Mesh2_node_lat:long_name = "geografische Breite der Knoten eines 2D-Gitters" ;
- Mesh2_node_lat:units = "degrees_north" ;
- Mesh2_node_lat:name_id = 1652 ;
- Mesh2_node_lat:standard_name = "latitude" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Kanten
double Mesh2_edge_lon(nMesh2_edge) ;
- Mesh2_edge_lon:long_name = "geografische Laenge der Kanten eines 2D-Gitters, Kantenmitte" ;
- Mesh2_edge_lon:units = "degrees_east" ;
- Mesh2_edge_lon:name_id = 1653 ;
- Mesh2_edge_lon:bounds = "Mesh2_edge_lon_bnd" ;
- Mesh2_edge_lon:standard_name = "longitude" ;
double Mesh2_edge_lat(nMesh2_edge) ;
- Mesh2_edge_lat:long_name = "geografische Breite der Kanten eines 2D-Gitters, Kantenmitte" ;
- Mesh2_edge_lat:units = "degrees_north" ;
- Mesh2_edge_lat:name_id = 1652 ;
- Mesh2_edge_lat:bounds = "Mesh2_edge_lat_bnd" ;
- Mesh2_edge_lat:standard_name = "latitude" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Faces (Polygone)
double Mesh2_face_lon(nMesh2_face) ;
- Mesh2_face_lon:long_name = "geografische Laenge der Faces (Polygone) eines 2D-Gitters, Schwerpunkt" ;
- Mesh2_face_lon:units = "degrees_east" ;
- Mesh2_face_lon:name_id = 1653 ;
- Mesh2_face_lon:bounds = "Mesh2_face_lon_bnd" ;
- Mesh2_face_lon:standard_name = "longitude" ;
double Mesh2_face_lat(nMesh2_face) ;
- Mesh2_face_lat:long_name = "geografische Breite der Faces (Polygone) eines 2D-Gitters , Schwerpunkt" ;
- Mesh2_face_lat:units = "degrees_north" ;
- Mesh2_face_lat:name_id = 1652 ;
- Mesh2_face_lat:bounds = "Mesh2_face_lat_bnd" ;
- Mesh2_face_lat:standard_name = "latitude" ;
double Mesh2_face_center_lon(nMesh2_face) ;
- Mesh2_face_center_lon:long_name = "geografische Laenge der Faces (Polygone) eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_face_center_lon:units = "degrees_east" ;
- Mesh2_face_center_lon:name_id = 1653 ;
- Mesh2_face_center_lon:standard_name = "longitude" ;
double Mesh2_face_center_lat(nMesh2_face) ;
- Mesh2_face_center_lat:long_name = "geografische Breite der Faces (Polygone) eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_face_center_lat:units = "degrees_north" ;
- Mesh2_face_center_lat:name_id = 1652 ;
- Mesh2_face_center_lat:standard_name = "latitude" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert.
- Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden.
- Der Umkreismittelpunkt kann demgegenüber außerhalb des Polygons zu liegen kommen.
(optional) Begrenzung für Kanten
double Mesh2_edge_lon_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich
double Mesh2_edge_lat_bnd(nMesh2_edge, two) ; \\ keine Metadaten erforderlich
(optional) Begrenzung für Faces (Polygone)
double Mesh2_face_lon_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert
- Mesh2_face_lon_bnd:_FillValue = fillvalue ;
double Mesh2_face_lat_bnd(nMesh2_face, nMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nMaxMesh2_face_nodes definiert
- Mesh2_face_lat_bnd:_FillValue = fillvalue ;
Hinweise:
- Koordinaten der Knoten der Faces (Polygone) entgegen dem Uhrzeigersinn angeben.
- Es dürfen ungültigen Koordinaten vorhanden sein.
Topologische Daten
Knotenverzeichnis der Kanten
int Mesh2_edge_nodes(nMesh2_edge, two) ;
- Mesh2_edge_nodes:long_name = "Knotenverzeichnis der Kanten, Anfangs- und Endpunkt" ;
- Mesh2_edge_nodes:cf_role= "edge_node_connectivity" ;
- Mesh2_edge_nodes:start_index = 0;
Hinweise:
- Der erste Knoten kennzeichnet den Beginn, der zweite das Ende der Kante.
Face- (Polygon-) Verzeichnis der Kanten
int Mesh2_edge_faces(nMesh2_edge, two) ;
- Mesh2_edge_faces:long_name = "Face- (Polygon-) Verzeichnis der Kanten, linker und rechter Nachbar" ;
- Mesh2_edge_faces:cf_role = "edge_face_connectivity" ;
- Mesh2_edge_faces:start_index = 0 ;
- Mesh2_edge_faces:_FillValue = -999 ;
Hinweise:
- Der erste Wert kennzeichnet das linke, der zweite das rechte Nachbarpolygon.
- Auf Kanten des Randes darf das rechte Nachbarpolgon fehlen; _FillValue verwenden.
- Daraus kann die Anzahl der inneren Kanten NSI abgeleitet werden.
- NSI wird für Dateien des Typs untrim_grid.dat und utrsub_grid.dat benötigt.
Knotenverzeichnis der Faces (Polygone)
int Mesh2_face_nodes(nMesh2_face, nMaxMesh2_face_nodes) ;
- Mesh2_face_nodes:long_name = "Knotenverzeichnis der Faces (Polygone), entgegen dem Uhrzeigersinn" ;
- Mesh2_face_nodes:cf_role = "face_node_connectivity" ;
- mesh2_face_nodes:start_index = 0 ;
- Mesh2_face_nodes:_FillValue = -999 ;
Hinweise:
- Knoten des Faces (Polygons) entgegen dem Uhrzeigersinn angeben.
- Nicht vorhandene Knoten mit dem _FillValue kennzeichnen.
- Nicht vorhandene Knoten müssen für jedes Face (Polygon) die letzten Einträge sein.
Kantenverzeichnis der Faces (Polygone)
int Mesh2_face_edges(nMesh2_face, nMaxMesh2_face_nodes) ;
- Mesh2_face_edges:long_name = "Kantenverzeichnis der Faces (Polygone), entgegen dem Uhrzeigersinn" ;
- Mesh2_face_edges:cf_role = "face_edge_connectivity" ;
- Meshe_face_edges:start_index = 0 ;
- Mesh2_face_edges:_FillValue = -999 ;
Hinweise:
- Kanten der Faces (Polygone) entgegen dem Uhrzeigersinn angeben.
- Nicht vorhandene Kanten mit dem _FillValue kennzeichnen.
- Nicht vorhandene Kanten müssen für jedes Face (Polygon) die letzten Einträge sein.
Topologievariable
int Mesh2 ;
- Mesh2:long_name = "UnTRIM Gitternetz, Drei- und Vierecke gemischt, kein SubGrid" ;
- Mesh2:cf_role = "mesh_topology" ; \\ UGRID required
- Mesh2:topology_dimension = 2 ; \\ UGRID required
- Mesh2:node_coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ; \\ UGRID required
- Mesh2:edge_coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ; \\ UGRID optionally required for data at edges
- Mesh2:face_coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat Mesh2_face_center_x Mesh2_face_center_y Mesh2_face_center_lon Mesh2_face_center_lat" ; \\ UGRID optionally required for data at faces
- Mesh2:face_node_connectivity = "Mesh2_face_nodes" ; \\ UGRID required
- Mesh2:face_edge_connectivity = "Mesh2_face_edges" ; \\ UGRID optional
- Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ; \\ UGRID optional
- Mesh2:edge_face_connectivity = "Mesh2_edge_faces" ;
Hinweise:
- In der Praxis müssen nicht alle Verknüpfungslisten (connectivity) angegeben werden, da manche Informationen redundant sind. Sie sollten aber angegeben werden können.
- Die in 2D flexible mesh (mixed triangles, quadrilaterals, etc.) topology aufgeführten Attribute face_dimension und edge_dimension werden in der BAW nicht unterstützt. Dies ist auch nicht erforderlich, da die Reihenfolge der Dimensionen in den Konnektivitäts-Variablen standardkonform sind.
Koordinatentransformation
- Siehe unter NetCDF Grid Mapping Variable.
zurück zu NetCDF