NetCDF Unstrukturiertes Gitter mit SubGrid: Unterschied zwischen den Versionen
Aus BAWiki
imported>Lang Guenther (→Kurze Beschreibung: Hinweistext auf Änderungen modifiziert.) |
imported>Lang Guenther (→(optional) Begrenzung für Polygone: _FillValue ergänzt, Hinweis modifiziert) |
||
Zeile 80: | Zeile 80: | ||
===(optional) Begrenzung für Polygone=== | ===(optional) Begrenzung für Polygone=== | ||
double Mesh2_plot_subpoly_x_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ; | 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) ; | double Mesh2_plot_subpoly_y_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ; | ||
: Mesh2_plot_subpoly_y_bnd:_FillValue = ''fillvalue'' ; | |||
Hinweise: | Hinweise: | ||
# Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben. | # Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben. | ||
# | # Fehlende Punkte mit ungültigen Werten kennzeichnen. | ||
==Geografische Koordinaten== | ==Geografische Koordinaten== |
Version vom 13. April 2012, 08:07 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:
- Statt poly wird face benutzt.
Inhalt der Datei
Dimensionen
- nMesh2_node : Anzahl der Knoten.
- nMesh2_edge : Anzahl der Kanten.
- nMesh2_face : Anzahl der Faces (Polygone).
- nMesh2_plot_subedges : Anzahl der Plot-Subkanten.
- nMesh2_plot_subfaces : Anzahl der Plot-Subfaces (SubPolygone).
- nMaxMesh2_face_nodes : maximale Anzahl der Knoten/Kanten in einem Face (Polygon).
- nMaxMesh2_plot_subedges : maximale Anzahl der Plot-Subkanten einer Kante.
- nMaxMesh2_plot_subfaces : maximale Anzahl der Plot-Subfaces (-Subpolygone) eines Faces (Polygons).
- nMaxMesh2_subface_subnodes : maximale Anzahl der Plot-Subknoten eines Plot-Subface (-Subpolygons).
- two : Konstante ( = 2 ).
Hinweise:
- Plot-Subkanten und Plot-Subfaces (-Subpolygone) werden nur für die Visualisierung benötigt.
- Das Simulationsprogramm verwendet ausschließlich die korrespondierenden Tiefenklassen.
- 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:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- 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:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- 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:
- Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben.
- 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:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- 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:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- 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) ;
double Mesh2_plot_subpoly_lat_bnd(nMesh2_plot_subpolys, nMaxMesh2_subpoly_subnodes) ;
Hinweise:
- Koordinaten der Knoten des Subpolygons entgegen dem Uhrzeigersinn angeben.
- Es dürfen keine ungültigen Koordinaten vorhanden sein.
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:
- Ein Standardname sollte gelegentlich ergänzt werden.
- 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:
- Ein Standardname sollte gelegentlich ergänzt werden.
- 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:
- Ein Standardname sollte gelegentlich ergänzt werden.
- Mit dem Attribut "locations" werden die für das Gitter relevanten Positionen registriert.
- 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 orange markierten Bezeichnungen stellen Abweichungen bzw. Ergänzungen zu den Deltares-CF-Erweiterungen dar.
Koordinatentransformation
- Siehe unter NetCDF Grid Mapping Variable.
Anmerkungen
- Datei nutzt Deltares-CF-Erweiterungen sowie orange markierte Abweichungen in der Topologievariablen.
- Datei ist CF-konform gemäß NCAS CF Compliance Checker.
zurück zu NetCDF