Aktionen

NetCDF Unstrukturiertes Gitter mit SubGrid: Unterschied zwischen den Versionen

Aus BAWiki

imported>Lang Guenther
(→‎(optional) Begrenzung für Polygone: _FillValue ergänzt, Hinweis modifiziert)
imported>Lang Guenther
(→‎(optional) Begrenzung für Polygone: _FillValue eingefügt, Hinweis modifiziert)
Zeile 135: Zeile 135:
===(optional) Begrenzung für Polygone===
===(optional) Begrenzung für Polygone===
double Mesh2_plot_subpoly_lon_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;
double Mesh2_plot_subpoly_lon_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;
 
: Mesh2_plot_subpoly_lon_bnd:_FillValue = ''fillvalue'' ;
double Mesh2_plot_subpoly_lat_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;
double Mesh2_plot_subpoly_lat_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;
: Mesh2_plot_subpoly_lat_bnd:_FillValue = ''fillvalue'' ;


Hinweise:
Hinweise:
# Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben.
# Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben.
# Es dürfen keine ungültigen Koordinaten vorhanden sein.
# Nicht vorhandene Knoten durch ungültige Werte kennzeichnen.


==Topologische Daten==
==Topologische Daten==

Version vom 13. April 2012, 08:21 Uhr

Kurze Beschreibung

Ein aus beliebigen faces (Polygonen, Dreiecke und Vierecke) aufgebautes Gitter wird beschrieben. Zusätzlich sind typische Daten des SubGrid vorhanden. Die Dateitypen hierfür sind utrsub_grid.dat (Berechnungsgitter mit SubGrid-Tiefenklassen) und pltsub_grid.upi (Hilfsgitter für Postprocessoren, Plot-SubGrid). Die Speicherung von Daten auf diesem Gitter, z. B. der Tiefe (Bathymetrie), wird an anderer Stelle beschrieben (siehe NetCDF Synoptische Daten im unstrukturierten Gitter mit SubGrid). 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 face gestaltet.

Die Beschreibung wurde am 13. 4. 2012 an die Deltares-Konventionen Die wichtigsten Änderungen sind:

  1. Statt poly wird face benutzt.

Inhalt der Datei

Dimensionen

  1. nMesh2_node : Anzahl der Knoten.
  2. nMesh2_edge : Anzahl der Kanten.
  3. nMesh2_face : Anzahl der Faces (Polygone).
  4. nMesh2_plot_subedges : Anzahl der Plot-Subkanten.
  5. nMesh2_plot_subfaces : Anzahl der Plot-Subfaces (SubPolygone).
  6. nMaxMesh2_face_nodes : maximale Anzahl der Knoten/Kanten in einem Face (Polygon).
  7. nMaxMesh2_plot_subedges : maximale Anzahl der Plot-Subkanten einer Kante.
  8. nMaxMesh2_plot_subfaces : maximale Anzahl der Plot-Subfaces (-Subpolygone) eines Faces (Polygons).
  9. nMaxMesh2_subface_subnodes : maximale Anzahl der Plot-Subknoten eines Plot-Subface (-Subpolygons).
  10. two : Konstante ( = 2 ).

Hinweise:

  1. Plot-Subkanten und Plot-Subfaces (-Subpolygone) werden nur für die Visualisierung benötigt.
  2. Das Simulationsprogramm verwendet ausschließlich die korrespondierenden Tiefenklassen.
  3. Die Anzahl der Plot-Subkanten bzw. -Subfaces (-Subpolygone) kann größer oder gleich die Anzahl der entsprechenden Tiefenklassen sein.

Die Beschreibung wurde am 5. 4. 2012 an die Deltares-Konventionen angepasst. Die ANpassung wurde noch nicht abschließend durchgeführt.

Lokale Koordinaten

Die Beschreibung der lokalen Koordinaten des Berechnungsgitters stimmen mit derjenigen eines unstrukturierten Gitters ohne SubGrid überein. Siehe NetCDF Unstrukturiertes Gitter unter "Lokale Koordinaten".

Lokale Koordinaten des Plot-Subgrid

Kanten

double Mesh2_plot_subedge_x(nMesh2_plot_subedges) ;

Mesh2_plot_subedge_x:long_name = "x-Koordinate der Plot-SubKanten eines 2D-Gitters, Kantenmitte" ;
Mesh2_plot_subedge_x:units = "m" ;
Mesh2_plot_subedge_x:name_id = 1650 ;
Mesh2_plot_subedge_x:bounds = "Mesh2_plot_subedge_x_bnd" ;
Mesh2_plot_subedge_x:standard_name = "projection_x_coordinate" ;

double Mesh2_plot_subedge_y(nMesh2_plot_subedges) ;

Mesh2_plot_subedge_y:long_name = "y-Koordinate der Plot-SubKanten eines 2D-Gitters, Kantenmitte" ;
Mesh2_plot_subedge_y:units = "m" ;
Mesh2_plot_subedge_y:name_id = 1651 ;
Mesh2_plot_subedge_y:bounds = "Mesh2_plot_subedge_y_bnd" ;
Mesh2_plot_subedge_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 Subkanten.

Polygone

double Mesh2_plot_subpoly_x(nMesh2_plot_subpolys) ;

Mesh2_plot_subpoly_x:long_name = "x-Koordinate der Plot-SubPolygone eines 2D-Gitters, irgendwo im Plot-SubPolygon" ;
Mesh2_plot_subpoly_x:units = "m" ;
Mesh2_plot_subpoly_x:name_id = 1650 ;
Mesh2_plot_subpoly_x:bounds = "Mesh2_plot_subpoly_x_bnd" ;
Mesh2_plot_subpoly_x:standard_name = "projection_x_coordinate" ;

double Mesh2_plot_subpoly_y(nMesh2_plot_subpolys) ;

Mesh2_plot_subpoly_y:long_name = "y-Koordinate der Plot-SubPolygone eines 2D-Gitters, irgendwo im Plot-SubPolygon" ;
Mesh2_plot_subpoly_y:units = "m" ;
Mesh2_plot_subpoly_y:name_id = 1651 ;
Mesh2_plot_subpoly_y:bounds = "Mesh2_plot_subpoly_y_bnd" ;
Mesh2_plot_subpoly_y:standard_name = "projection_y_coordinate" ;

Hinweise:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. Es kann ein beliebiger, innerhalb des Polygons liegender Punkt gewählt werden.

(optional) Begrenzung für Kanten

double Mesh2_plot_subedge_x_bnd(nMesh2_plot_subedges, two) ;

double Mesh2_plot_subedge_y_bnd(nMesh2_plot_subedges, two) ;

(optional) Begrenzung für Polygone

double Mesh2_plot_subpoly_x_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;

Mesh2_plot_subpoly_x_bnd:_FillValue = fillvalue ;

double Mesh2_plot_subpoly_y_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;

Mesh2_plot_subpoly_y_bnd:_FillValue = fillvalue ;

Hinweise:

  1. Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben.
  2. Fehlende Punkte mit ungültigen Werten kennzeichnen.

Geografische Koordinaten

Die Beschreibung der geografischen Koordinaten des Berechnungsgitters stimmen mit derjenigen eines unstrukturierten Gitters ohne SubGrid überein. Siehe NetCDF Unstrukturiertes Gitter unter "Geografische Koordinaten".

Geografische Koordinaten des Plot-Subgrid

Kanten

double Mesh2_plot_subedge_lon(nMesh2_plot_subedges) ;

Mesh2_plot_subedge_lon:long_name = "geografische Laenge der Plot_SubKanten eines 2D-Gitters, Kantenmitte" ;
Mesh2_plot_subedge_lon:units = "degrees_east" ;
Mesh2_plot_subedge_lon:name_id = 1653 ;
Mesh2_plot_subedge_lon:bounds = "Mesh2_plot_subedge_lon_bnd" ;
Mesh2_plot_subedge_lon:standard_name = "longitude" ;

double Mesh2_plot_subedge_lat(nMesh2_plot_subedges) ;

Mesh2_plot_subedge_lat:long_name = "geografische Breite der Plot-SubKanten eines 2D-Gitters, Kantenmitte" ;
Mesh2_plot_subedge_lat:units = "degrees_north" ;
Mesh2_plot_subedge_lat:name_id = 1652 ;
Mesh2_plot_subedge_lat:bounds = "Mesh2_plot_subedge_lat_bnd" ;
Mesh2_plot_subedge_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 Subkanten.

Polygone

double Mesh2_plot_subpoly_lon(nMesh2_plot_subpolys) ;

Mesh2_plot_subpoly_lon:long_name = "geografische Laenge der Plot-SubPolygone eines 2D-Gitters, irgendwo im Plot-SubPolygon" ;
Mesh2_plot_subpoly_lon:units = "degrees_east" ;
Mesh2_plot_subpoly_lon:name_id = 1653 ;
Mesh2_plot_subpoly_lon:bounds = "Mesh2_plot_subpoly_lon_bnd" ;
Mesh2_plot_subpoly_lon:standard_name = "longitude" ;

double Mesh2_plot_subpoly_lat(nMesh2_plot_subpolys) ;

Mesh2_plot_subpoly_lat:long_name = "geografische Breite der Plot-SubPolygone eines 2D-Gitters, irgendwo im Plot-SubPolygon" ;
Mesh2_plot_subpoly_lat:units = "degrees_north" ;
Mesh2_plot_subpoly_lat:name_id = 1652 ;
Mesh2_plot_subpoly_lat:bounds = "Mesh2_plot_subpoly_lat_bnd" ;
Mesh2_plot_subpoly_lat:standard_name = "latitude" ;

Hinweise:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. Es kann ein beliebiger, innerhalb des Polygons liegender Punkt gewählt werden.

(optional) Begrenzung für Kanten

double Mesh2_plot_subedge_lon_bnd(nMesh2_plot_subedges, two) ;

double Mesh2_plot_subedge_lat_bnd(nMesh2_plot_subedges, two) ;

(optional) Begrenzung für Polygone

double Mesh2_plot_subpoly_lon_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;

Mesh2_plot_subpoly_lon_bnd:_FillValue = fillvalue ;

double Mesh2_plot_subpoly_lat_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;

Mesh2_plot_subpoly_lat_bnd:_FillValue = fillvalue ;

Hinweise:

  1. Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben.
  2. Nicht vorhandene Knoten durch ungültige Werte kennzeichnen.

Topologische Daten

Die Beschreibung der topologischen Daten des Berechnungsgitters stimmt mit derjenigen eines unstrukturierten Gitters ohne SubGrid überein. Siehe NetCDF Unstrukturiertes Gitter unter "Topologische Daten".

Topologische Daten des Plot-Subgrid

Plot-Subkantenverzeichnis der Kanten

int Mesh2_edge_plot_subedges(nMesh2_edge, nMaxMesh2_plot_subedges) ;

Mesh2_edge_plot_subedges:long_name = "Plot-Subkantenverzeichnis der Kanten" ;
Mesh2_edge_plot_subedges:_FillValue = -999 ;

Hinweise:

  1. Ein Standardname sollte gelegentlich ergänzt werden.
  2. Indizes starten mit Null!

Plot-Subpolygonverzeichnis der Polygone

int Mesh2_poly_plot_subpolys(nMesh2_poly, nMaxMesh2_plot_subpolys) ;

Mesh2_poly_plot_subpolys:long_name = "Plot-Subpolygonverzeichnis der Polygone" ;
Mesh2_poly_plot_subpolys:_FillValue = -999 ;

Hinweise:

  1. Ein Standardname sollte gelegentlich ergänzt werden.
  2. Indizes starten mit Null!

Topologievariable

int Mesh2 ;

Mesh2:long_name = "UnTRIM Gitternetz, Drei- und Vierecke gemischt, mit SubGrid" ;
Mesh2:dimensionality = 2 ;
Mesh2:locations = "node edge poly subedge subpoly" ;
Mesh2:node_coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ;
Mesh2:edge_coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ;
Mesh2:poly_coordinates = "Mesh2_poly_x Mesh2_poly_y Mesh2_poly_lon Mesh2_poly_lat Mesh2_poly_center_x Mesh2_poly_center_y Mesh2_poly_center_lon Mesh2_poly_center_lat" ;
Mesh2:subedge_coordinates = "Mesh2_plot_subedge_x Mesh2_plot_subedge_y Mesh2_plot_subedge_lon Mesh2_plot_subedge_lat" ;
Mesh2:subpoly_coordinates = "Mesh2_plot_subpoly_x Mesh2_plot_subpoly_y Mesh2_plot_subpoly_lon Mesh2_plot_subpoly_lat" ;
Mesh2:poly_node_connectivity = "Mesh2_poly_nodes" ;
Mesh2:poly_edge_connectivity = "Mesh2_poly_edges" ;
Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ;
Mesh2:edge_poly_connectivity = "Mesh2_edge_polys" ;
Mesh2:poly_subpoly_connectivity = "Mesh2_poly_plot_subpolys" ;
Mesh2:edge_subedge_connectivity = "Mesh2_edge_plot_subedges" ;

Hinweise:

  1. Ein Standardname sollte gelegentlich ergänzt werden.
  2. Mit dem Attribut "locations" werden die für das Gitter relevanten Positionen registriert.
  3. In der Praxis müssen nicht alle Verknüpfungslisten (connectivity) angegeben werden, da manche Informationen redundant sind. Sie sollten aber angegeben werden können.
  4. Die orange markierten Bezeichnungen stellen Abweichungen bzw. Ergänzungen zu den Deltares-CF-Erweiterungen dar.

Koordinatentransformation

Anmerkungen


zurück zu NetCDF


Strukturübersicht