Aktionen

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

  1. nMesh2_node : Anzahl der Knoten.
  2. nMesh2_edge : Anzahl der Kanten.
  3. nMesh2_poly : Anzahl der Polygone.
  4. nMaxMesh2_poly_nodes : maximale Anzahl der Knoten/Kanten in einem Polygon.
  5. 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:

  1. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert.
  3. Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden.
  4. 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:

  1. Koordinaten der Knoten des Polygons entgegen dem Uhrzeigersinn angeben.
  2. Es dürfen keine ungültigen Koordinaten vorhanden sein.
  3. 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:

  1. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. Sowohl die Koordinaten des Schwerpunkts als auch des Umkreismittelpunkts werden gespeichert.
  3. Der Schwerpunkt liegt immer innerhalb des (konvexen) Polygons, daher kann das Attribut "bounds" sinnvoll angegeben werden.
  4. 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:

  1. Koordinaten der Knoten des Polygons entgegen dem Uhrzeigersinn angeben.
  2. Es dürfen keine ungültigen Koordinaten vorhanden sein.
  3. Falls das Gitter aus Drei- und Vierecken besteht, sollte bei Dreiecken als vierter Wert die Koordinate des ersten Knotens wiederholt werden.

Topologische Daten

Knotenverzeichnis der Kanten

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!

Polygonverzeichnis der Kanten

Topologievariable

Koordinatentransformation

Anmerkungen, Fragen


zurück zu NetCDF


Strukturübersicht