NetCDF Unstrukturiertes Gitter
Aus BAWiki
Kurze Beschreibung
Ein aus beliebigen 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 vollständig für die staggered data Positionen node, edge und poly gestaltet.
Inhalt der Datei
Dimensionen
- nMesh2_node : Anzahl der Knoten.
- nMesh2_edge : Anzahl der Kanten.
- nMesh2_poly : Anzahl der Polygone.
- nMaxMesh2_poly_nodes : maximale Anzahl der Knoten/Kanten in einem 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.
- Das Attribut "bounds" verweist auf die Variable mit Anfangs- und Endkoordinaten aller Kanten.
Polygone
double Mesh2_poly_x(nMesh2_poly) ;
- Mesh2_poly_x:long_name = "x-Koordinate der Polygone eines 2D-Gitters, Schwerpunkt" ;
- Mesh2_poly_x:units = "m" ;
- Mesh2_poly_x:name_id = 1650 ;
- Mesh2_poly_x:bounds = "Mesh2_poly_x_bnd" ;
- Mesh2_poly_x:standard_name = "projection_x_coordinate" ;
double Mesh2_poly_y(nMesh2_poly) ;
- Mesh2_poly_y:long_name = "y-Koordinate der Polygone eines 2D-Gitters, Schwerpunkt" ;
- Mesh2_poly_y:units = "m" ;
- Mesh2_poly_y:name_id = 1651 ;
- Mesh2_poly_y:bounds = "Mesh2_poly_y_bnd" ;
- Mesh2_poly_y:standard_name = "projection_y_coordinate" ;
double Mesh2_poly_center_x(nMesh2_poly) ;
- Mesh2_poly_center_x:long_name = "x-Koordinate der Polygone eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_poly_center_x:units = "m" ;
- Mesh2_poly_center_x:name_id = 1650 ;
- Mesh2_poly_center_x:standard_name = "projection_x_coordinate" ;
double Mesh2_poly_center_y(nMesh2_poly) ;
- Mesh2_poly_center_y:long_name = "y-Koordinate der Polygone eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_poly_center_y:units = "m" ;
- Mesh2_poly_center_y:name_id = 1651 ;
- Mesh2_poly_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) ;
double Mesh2_edge_y_bnd(nMesh2_edge, two) ;
(optional) Begrenzung für Polygone
double Mesh2_poly_x_bnd(nMesh2_poly, nMaxMesh2_poly_nodes) ;
double Mesh2_poly_y_bnd(nMesh2_poly, nMaxMesh2_poly_nodes) ;
Hinweise:
- Koordinaten der Knoten des Polygons entgegen dem Uhrzeigersinn angeben.
- Es dürfen keine ungültigen Koordinaten vorhanden sein.
- Falls das Gitter aus Drei- und Vierecken besteht, sollte bei Dreiecken als vierter Wert die Koordinate des ersten Knotens wiederholt werden.
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.
- Das Attribut "bounds" verweist auf die Variable mit Anfangs- und Endkoordinaten aller Kanten.
Polygone
double Mesh2_poly_lon(nMesh2_poly) ;
- Mesh2_poly_lon:long_name = "geografische Laenge der Polygone eines 2D-Gitters, Schwerpunkt" ;
- Mesh2_poly_lon:units = "degrees_east" ;
- Mesh2_poly_lon:name_id = 1653 ;
- Mesh2_poly_lon:bounds = "Mesh2_poly_lon_bnd" ;
- Mesh2_poly_lon:standard_name = "longitude" ;
double Mesh2_poly_lat(nMesh2_poly) ;
- Mesh2_poly_lat:long_name = "geografische Breite der Polygone eines 2D-Gitters , Schwerpunkt" ;
- Mesh2_poly_lat:units = "degrees_north" ;
- Mesh2_poly_lat:name_id = 1652 ;
- Mesh2_poly_lat:bounds = "Mesh2_poly_lat_bnd" ;
- Mesh2_poly_lat:standard_name = "latitude" ;
double Mesh2_poly_center_lon(nMesh2_poly) ;
- Mesh2_poly_center_lon:long_name = "geografische Laenge der Polygone eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_poly_center_lon:units = "degrees_east" ;
- Mesh2_poly_center_lon:name_id = 1653 ;
- Mesh2_poly_center_lon:standard_name = "longitude" ;
double Mesh2_poly_center_lat(nMesh2_poly) ;
- Mesh2_poly_center_lat:long_name = "geografische Breite der Polygone eines 2D-Gitters, Umkreismittelpunkt" ;
- Mesh2_poly_center_lat:units = "degrees_north" ;
- Mesh2_poly_center_lat:name_id = 1652 ;
- Mesh2_poly_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) ;
double Mesh2_edge_lat_bnd(nMesh2_edge, two) ;
(optional) Begrenzung für Polygone
double Mesh2_poly_lon_bnd(nMesh2_poly, nMaxMesh2_poly_nodes) ;
double Mesh2_poly_lat_bnd(nMesh2_poly, nMaxMesh2_poly_nodes) ;
Hinweise:
- Koordinaten der Knoten des Polygons entgegen dem Uhrzeigersinn angeben.
- Es dürfen keine ungültigen Koordinaten vorhanden sein.
- Falls das Gitter aus Drei- und Vierecken besteht, sollte bei Dreiecken als vierter Wert die Koordinate des ersten Knotens wiederholt werden.
Geografische Koordinaten
- Siehe NetCDF Dreiecksgitter, Abschnitt "Geografische Koordinaten".
- Alle Variablen können in identischer Weise deklariert werden.
Topologische Daten
Knotenverzeichnis der Kanten
- Siehe NetCDF Dreiecksgitter, Abschnitt "Knotenverzeichnis der Kanten".
- Die Variable kann in identischer Weise deklariert werden.
Knotenverzeichnis der Polygone
- Siehe NetCDF Dreiecksgitter, Abschnitt "Knotenverzeichnis der Polygone".
- Die Variable muss wie folgt unterschiedlich deklariert werden:
- integer Mesh2_poly_nodes(nMesh2_poly,nMaxMesh2_poly_nodes) ;
- Mesh2_poly_nodes:standard_name = "???" ; \\ yet to be determined
- Mesh2_poly_nodes:long_name = "list of nodes for all polygons, counterclockwise" ;
- Mesh2_poly_nodes:_FillValue = fillvalue \\ for non-existing nodes ;
- Bemerkung: Indizes starten mit Null!
- integer Mesh2_poly_nodes(nMesh2_poly,nMaxMesh2_poly_nodes) ;
Polygonverzeichnis der Kanten
- Siehe NetCDF Dreiecksgitter, Abschnitt "Polygonerzeichnis der Kanten".
- Die Variable kann in identischer Weise deklariert werden.
Topologievariable
- Siehe NetCDF Dreiecksgitter, Abschnitt "Topologievariable".
- Die Variable kann in identischer Weise deklariert werden.
Koordinatentransformation
- Siehe unter NetCDF Grid Mapping Variable.
Anmerkungen, Fragen
zurück zu NetCDF