Aktionen

NetCDF Unstrukturiertes Gitter: Unterschied zwischen den Versionen

Aus BAWiki

imported>Lang Guenther
(Sicherheitskopie)
imported>Lang Guenther
(Sicherheitskopie)
Zeile 2: Zeile 2:
=Kurze Beschreibung=
=Kurze Beschreibung=


Unstrukturiertes Gitter.
Ein aus beliebigen Polygonen - Dreiecke, Vierecke - aufgebautes Gitter wird beschrieben. Typische Dateitypen hierfür sind z. B.
[[UNTRIM_GRID.DAT|untrim_grid.dat]] sowie [[UTRSUB_GRID.DAT|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 Dreiecksgitter]]. 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'' Postionen ''node'', ''edge'' und ''poly'' gestaltet.


=Inhalt der Datei=
=Inhalt der Datei=
Zeile 8: Zeile 14:


: dimensions:     
: dimensions:     
:: node = ''number of nodes (vertices)'' ;
:: nMesh2_node = ''number of nodes (vertices)'' ;  
:: edge = ''number of edges'' ;   
:: nMesh2_edge = ''number of edges'' ;   
:: poly = ''number of polygons (triangles, quadrilaterals)'' ;
:: nMesh2_poly = ''number of polygons (triangles)'' ;
:: max_poly_nodes = ''maximum number of nodes in polygon''
:: Two = 2 ; \\ constant dimension
:: Two = 2 ;
:: Three = 3 ; \\ constant dimension 


==Variablen==   
==Variablen==   
Zeile 19: Zeile 25:


====Knoten====
====Knoten====
:: double node_x(node) ;     
:: double Mesh2_node_x(nMesh2_node) ;     
::: node_x:standard_name = "'''projection_x_coordinate'''" ;     
::: Mesh2_node_x:standard_name = "'''projection_x_coordinate'''" ;     
::: node_x:long_name = "x-coordinate of 2D mesh nodes" ;     
::: Mesh2_node_x:long_name = "x-coordinate of 2D mesh nodes" ;     
::: node_x:units = "m" ;
::: Mesh2_node_x:units = "m" ;
:: double Mesh2_node_y(node) ;     
:: double Mesh2_node_y(nMesh2_node) ;     
::: node_y:standard_name = "'''projection_y_coordinate'''" ;     
::: Mesh2_node_y:standard_name = "'''projection_y_coordinate'''" ;     
::: node_y:long_name = "y-coordinate of 2D mesh nodes" ;     
::: Mesh2_node_y:long_name = "y-coordinate of 2D mesh nodes" ;     
::: node_y:units = "m" ;
::: Mesh2_node_y:units = "m" ;
 
====Kanten====
====Kanten====
:: double edge_x(edge) ;     
:: double Mesh2_edge_x(nMesh2_edge) ;     
::: edge_x:standard_name = "'''projection_x_coordinate'''" ;     
::: Mesh2_edge_x:standard_name = "'''projection_x_coordinate'''" ;     
::: edge_x:long_name = "characteristic x-coordinate of 2D mesh edges, e.g. edge center" ;     
::: Mesh2_edge_x:long_name = "x-coordinate of 2D mesh edges, e.g. center of edge" ;     
::: edge_x:units = "m" ;
::: Mesh2_edge_x:units = "m" ;
:: double edge_y(edge) ;     
::: Mesh2_edge_x:bounds = "Mesh2_edge_x_bnd" \\ optional
::: edge_y:standard_name = "'''projection_y_coordinate'''" ;     
:: double Mesh2_edge_y(nMesh2_edge) ;     
::: edge_y:long_name = "characteristic y-coordinate of 2D mesh edges, e.g. edge center" ;     
::: Mesh2_edge_y:standard_name = "'''projection_y_coordinate'''" ;     
::: edge_y:units = "m" ;
::: Mesh2_edge_y:long_name = "y-coordinate of 2D mesh polygons, e.g. center of edge" ;     
 
::: Mesh2_edge_y:units = "m" ;
::: Mesh2_edge_y:bounds = "Mesh2_edge_y_bnd" \\ optional
====Polygone====
====Polygone====
:: double poly_x(poly) ;     
:: double Mesh2_poly_x(nMesh2_poly) ;     
::: poly_x:standard_name = "'''projection_x_coordinate'''" ;     
::: Mesh2_poly_x:standard_name = "'''projection_x_coordinate'''" ;     
::: poly_x:long_name = "characteristic x-coordinate of 2D mesh polygons, e.g. circumcenter" ;     
::: Mesh2_poly_x:long_name = "x-coordinate of 2D mesh polygons, e.g. center of gravity or circumcenter" ;     
::: poly_x:units = "m" ;
::: Mesh2_poly_x:units = "m" ;
:: double poly_y(poly) ;     
::: Mesh2_poly_x:bounds = "Mesh2_poly_x_bnd" \\ optional
::: poly_y:standard_name = "'''projection_y_coordinate'''" ;     
:: double Mesh2_poly_y(nMesh2_poly) ;     
::: poly_y:long_name = "characteristic y-coordinate of 2D mesh polygons, e.g. circumcenter" ;     
::: Mesh2_poly_y:standard_name = "'''projection_y_coordinate'''" ;     
::: poly_y:units = "m" ;
::: Mesh2_poly_y:long_name = "y-coordinate of 2D mesh polygons, e.g. center of gravity or circumcenter" ;     
::: Mesh2_poly_y:units = "m" ;
::: Mesh2_poly_y:bounds = "Mesh2_poly_y_bnd" \\ optional


===Geografische Koordinaten===
====(optional) Begrenzung für Kanten====
:: double Mesh2_edge_x_bnd(nMesh2_edge,Two) ; \\ no metadata required
:: double Mesh2_edge_y_bnd(nMesh2_edge,Two) ; \\ no metadata required
====(optional) Begrenzung für Polygone====
:: double Mesh2_poly_x_bnd(nMesh2_poly,Three) ; \\ no metadata required
:: double Mesh2_poly_y_bnd(nMesh2_poly,Three) ; \\ no metadata required


====Knoten====
:: double node_lon(node) ;   
::: node_lon:standard_name = "'''longitude'''" ;   
::: node_lon:long_name = "longitude of 2D mesh nodes" ;   
::: node_lon:units = "degrees_east" ;   
:: double node_lat(node) ; 
::: node_lat:standard_name = "'''latitude'''" ;   
::: node_lat:long_name = "latitude of 2D mesh nodes" ;   
::: node_lat:units = "degrees_north" ;


====Kanten====
===Geografische Koordinaten===
:: double edge_lon(edge) ;   
::: edge_lon:standard_name = "'''longitude'''" ;   
::: edge_lon:long_name = "characteristic longitude of 2D mesh edges, e.g. edge center" ;   
::: edge_lon:units = "degrees_east" ;
::: edge_lon:bounds = "edge_lon_bnd" ;   
:: double edge_lat(edge) ; 
::: edge_lat:standard_name = "'''latitude'''" ;   
::: edge_lat:long_name = "characteristic latitude of 2D mesh edges, e.g. edge center" ;   
::: edge_lat:units = "degrees_north" ;
::: edge_lat:bounds = "edge_lon_bnd" ;
 
====Polygone====
:: double poly_lon(poly) ;   
::: poly_lon:standard_name = "'''longitude'''" ;   
::: poly_lon:long_name = "characteristic longitude of 2D mesh polygons, e.g. circumcenter" ;   
::: poly_lon:units = "degrees_east" ;
::: poly_lon:bounds = "poly_lon_bnd"   
:: double poly_lat(poly) ; 
::: poly_lat:standard_name = "'''latitude'''" ;   
::: poly_lat:long_name = "characteristic latitude of 2D mesh polygons, e.g. circumcenter" ;   
::: poly_lat:units = "degrees_north" ;
::: poly_lat:bounds = "poly_lat_bnd" ;
 
===Berandungen in geografischen Koordinaten===
 
====Kanten====
:: double edge_lon_bnd(edge,two) ; \\ start and end longitude of edges
:: double edge_lat_bnd(edge,two) ; \\ start and end latitude of edges
 
====Polygone====
:: double poly_lon_bnd(edge,max_poly_nodes) ; \\ longitude of cell vertices
::: double_poly_lon_bnd:_FillValue = "''fillvalue''" \\ not all polys have max_poly_node vertices
:: double poly_lat_bnd(edge,max_poly_nodes) ; \\ latitude of cell vertices
::: double_poly_lat_bnd:_FillValue = "''fillvalue''" \\ not all polys have max_poly_node vertices
 
 
===Tiefe===


====Knoten====
====Knoten====
:: double node_depth(node) ;
:: double Mesh2_node_lon(nMesh2_node) ;  
::: node_depth:standard_name = "'''sea_floor_depth_below_geoid'''" ;     
::: Mesh2_node_lon:standard_name = "'''longitude'''" ;     
::: node_depth:long_name = "sea floor depth of 2D mesh nodes" ;     
::: Mesh2_node_lon:long_name = "longitude of 2D mesh nodes" ;     
::: node_depth:units = "m" ;
::: Mesh2_node_lon:units = "degrees_east" ;    
::: node_depth:coordinates = "Mesh2_node_lon Mesh2_node_lat"
:: double Mesh2_node_lat(nMesh2_node) ; 
::: node_depth:_FillValue = "''fillvalue''"
::: Mesh2_node_lat:standard_name = "'''latitude'''" ;   
::: node_depth:valid_range = "''valid minimum'', ''valid maximum''"
::: Mesh2_node_lat:long_name = "latitude of 2D mesh nodes" ;   
::: node_depth:grid_mapping = "crs"
::: Mesh2_node_lat:units = "degrees_north" ;
 
====Kanten====
====Kanten====
:: double edge_depth(edge) ;
:: double Mesh2_edge_lon(nMesh2_edge) ;  
::: edge_depth:standard_name = "'''sea_floor_depth_below_geoid'''" ;     
::: Mesh2_edge_lon:standard_name = "'''longitude'''" ;     
::: edge_depth:long_name = "sea floor depth of 2D mesh edges" ;     
::: Mesh2_edge_lon:long_name = "longitude of 2D mesh edges, e.g. center of edge" ;     
::: edge_depth:units = "m" ;
::: Mesh2_edge_lon:units = "degrees_east" ;
::: edge_depth:coordinates = "Mesh2_edge_lon Mesh2_edge_lat"
::: Mesh2_edge_lon:bounds = "Mesh2_edge_lon_bnd" // optional 
::: edge_depth:_FillValue = "''fillvalue''"
:: double Mesh2_edge_lat(nMesh2_edge) ; 
::: edge_depth:valid_range = "''valid minimum'', ''valid maximum''"
::: Mesh2_edge_lat:standard_name = "'''latitude'''" ;   
::: edge_depth:cell_methods = "area: mean"
::: Mesh2_edge_lat:long_name = "latitude of 2D mesh edges, e.g. center of edge" ;   
::: edge_depth:grid_mapping = "crs"
::: Mesh2_edge_lat:units = "degrees_north" ;
 
::: Mesh2_edge_lat:bounds = "Mesh2_edge_lat_bnd" // optional
====Polygone====
====Polygone====
:: double poly_depth(poly) ;
:: double Mesh2_poly_lon(nMesh2_poly) ;  
::: poly_depth:standard_name = "'''sea_floor_depth_below_geoid'''" ;     
::: Mesh2_poly_lon:standard_name = "'''longitude'''" ;     
::: poly_depth:long_name = "sea floor depth of 2D mesh polygons" ;     
::: Mesh2_poly_lon:long_name = "longitude of 2D mesh polygons, e.g. center of gravity or circumcenter" ;     
::: poly_depth:units = "m" ;
::: Mesh2_poly_lon:units = "degrees_east" ;
::: poly_depth:coordinates = "Mesh2_poly_lon Mesh2_poly_lat"
::: Mesh2_poly_lon:bounds = "Mesh2_poly_lon_bnd" // optional       
::: poly_depth:_FillValue = "''fillvalue''"
:: double Mesh2_poly_lat(nMesh2_node) ; 
::: poly_depth:valid_range = "''valid minimum'', ''valid maximum''"
::: Mesh2_poly_lat:standard_name = "'''latitude'''" ;   
::: poly_depth:cell_methods = "area: mean"
::: Mesh2_poly_lat:long_name = "latitude of 2D mesh polygons, e.g. center of gravity or circumcenter" ;   
::: poly_depth:grid_mapping = "crs"
::: Mesh2_poly_lat:units = "degrees_north" ;
::: Mesh2_poly_lat:bounds = "Mesh2_poly_lat_bnd" // optional       
====(optional) Begrenzung für Kanten====
:: double Mesh2_edge_lon_bnd(nMesh2_edge,Two) ; \\ no metadata required
:: double Mesh2_edge_lat_bnd(nMesh2_edge,Two) ; \\ no metadata required
====(optional) Begrenzung für Polygone====
:: double Mesh2_poly_lon_bnd(nMesh2_poly,Three) ; \\ no metadata required
:: double Mesh2_poly_lat_bnd(nMesh2_poly,Three) ; \\ no metadata required


===Topologie===
===Topologische Daten===


====Knotenverzeichnis der Kanten====
:: integer Mesh2_edge_nodes(nMesh2_edge,Two) ;
::: Mesh2_edge_nodes:standard_name = "'''???'''" \\ yet to be determined
::: Mesh2_edge_nodes:long_name = "list of nodes for all edges, start node - end node"
:: ''Bemerkung: Indizes starten mit Null!''
====Knotenverzeichnis der Polygone====
====Knotenverzeichnis der Polygone====
:: integer poly_nodes(poly,max_poly_nodes)
:: integer Mesh2_poly_nodes(nMesh2_poly,Three) ;
::: poly_nodes:standard_name = "'''???'''" ; \\ yet to be determined   
::: Mesh2_poly_nodes:standard_name = "'''???'''" \\ yet to be determined
::: poly_nodes:long_name = "list of 2D mesh nodes for all 2D mesh polygons" ;   
::: Mesh2_poly_nodes:long_name = "list of nodes for all polygons, counterclockwise"
::: poly_nodes:_FillValue = "''fillvalue''" \\ indicates missing nodes
:: ''Bemerkung: Indizes starten mit Null!''
::: poly_nodes:valid_range = "''valid minimum'', ''valid maximum''"
 
====Kantenverzeichnis der Polygone====
:: integer poly_edges(nMesh2_poly,MaX_poly_edges)
::: poly_edges:standard_name = "'''???'''" ; \\ yet to be determined   
::: poly_edges:long_name = "list of 2D mesh edges for all 2D mesh polygons" ;   
::: poly_edges:_FillValue = "''fillvalue''" \\ indicates missing edges
::: poly_edges:valid_range = "''valid minimum'', ''valid maximum''"
 
====Knotenverzeichnis der Kanten====
:: integer edge_nodes(edge,Two)
::: edge_nodes:standard_name = "'''???'''" ; \\ yet to be determined  
::: edge_nodes:long_name = "list of 2D mesh nodes for all 2D mesh edges, start node - end node" ;
::: edge_nodes:_FillValue = "''fillvalue''" \\ indicates missing nodes 
::: edge_nodes:valid_range = "''valid minimum'', ''valid maximum''"
 
''Bemerkung: Könnte aus dem Kantenverzeichnis der Polygone sowie dem Knotenverzeichnis der Polygone abgeleitet werden.''
 
====Polygonverzeichnis der Kanten====
====Polygonverzeichnis der Kanten====
:: integer edge_polys(edge,Two)
:: integer Mesh2_edge_polys(nMesh2_edge,Two) ;
::: edge_polys:standard_name = "'''???'''" ; \\ yet to be determined  
::: Mesh2_edge_polys:standard_name "'''???'''" \\ yet to be determined
::: edge_polys:long_name = "list of 2D mesh polygons for all 2D mesh edges, left polygon - right polygon" ;
::: Mesh2_edge_polys:long_name = "list of (adjacent) polygons for all edges - left and right neigbour polygon"
::: edge_polys:_FillValue = "''fillvalue''" \\ indicates missing polygons 
::: Mesh2_edge_polys:_FillValue = ''fillvalue'' \\ indicates missing neighbour polygon, e.g. at domain boundaries
::: edge_polys:valid_range = "''valid minimum'', ''valid maximum''"
:: ''Bemerkung: Indizes starten mit Null!''


''Bemerkung: Könnte aus dem Kantenverzeichnis der Polygone sowie dem Knotenverzeichnis der Polygone abgeleitet werden.''
===Topologievariable===


===Topologievariable===
:: integer Mesh2 ;
::: Mesh2:standard_name = "'''???'''" \\ yet to be determined ;
::: Mesh2:long_name = "can be used to store a name for the grid" ;
::: Mesh2:dimensionality = 2 ; \\ flat mesh, no three-dimensional elements;
::: Mesh2:locations = "node edge poly" \\ data can be assigned to these locations ;
::: Mesh2:node_coordinates = "Mesh2_node_lon Mesh2_node_lat" ;
::: Mesh2:edge_coordinates = "Mesh2_edge_lon Mesh2_edge_lat" ;
::: Mesh2:poly_coordinates = "Mesh2_poly_lon Mesh2_poly_lat" ;
::: Mesh2:poly_node_connectivity = "Mesh2_poly_nodes" ;
::: Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ;
::: Mesh2:edge_poly_connectivity = "Mesh2_edge_polys" ; \\ different from Deltares


===Koordinatentransformation===
===Koordinatentransformation===


:: integer crs ;
:: integer crs ; \\ value is equivalent to the EPSG code of the transformation
::: crs:grid_mapping_name = "'''transverse_mercator'''" ;
::: crs:grid_mapping_name = "'''transverse_mercator'''" ;
::: crs:scale_factor_at_central_merdian = ''value'' ;
::: crs:scale_factor_at_central_merdian = ''value'' ;
Zeile 176: Zeile 146:
::: crs:false_easting = ''value'' ;
::: crs:false_easting = ''value'' ;
::: crs:false_northing = ''value'' ;
::: crs:false_northing = ''value'' ;
==Globale Attribute==


=Anmerkungen, Fragen=
=Anmerkungen, Fragen=


* Datei ist vollständig CF-konform - keine Erweiterungen erforderlich!
* Datei nutzt [http://public.deltares.nl/display/NETCDF/netCDF Deltares-CF-Erweiterungen]. Ausnahme ist das Attribut ''edge_poly_cennectivit''y in der Topologievariable.
* Ist ''_FillValue'' in den Berandungen zulässig?
* Können auch für Kanten ''bounds'' angegeben werden?
* Müssen die Begrenzungen für beide Koordinatensysteme angegeben werden?
* Müssen die Indizes unbedingt mit Null starten?
* Die Beschreibung der Koordinatentransformation ist für UTM- und Gauß-Krüger-Koordinaten geeignet.
----
----
zurück zu [[NetCDF]]
zurück zu [[NetCDF]]
----
----
[[Strukturübersicht]]
[[Strukturübersicht]]

Version vom 10. September 2010, 08:56 Uhr

Kurze Beschreibung

Ein aus beliebigen Polygonen - Dreiecke, 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 Dreiecksgitter. 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 Postionen node, edge und poly gestaltet.

Inhalt der Datei

Dimensionen

dimensions:
nMesh2_node = number of nodes (vertices) ;
nMesh2_edge = number of edges ;
nMesh2_poly = number of polygons (triangles) ;
Two = 2 ; \\ constant dimension
Three = 3 ; \\ constant dimension

Variablen

Lokale Koordinaten

Knoten

double Mesh2_node_x(nMesh2_node) ;
Mesh2_node_x:standard_name = "projection_x_coordinate" ;
Mesh2_node_x:long_name = "x-coordinate of 2D mesh nodes" ;
Mesh2_node_x:units = "m" ;
double Mesh2_node_y(nMesh2_node) ;
Mesh2_node_y:standard_name = "projection_y_coordinate" ;
Mesh2_node_y:long_name = "y-coordinate of 2D mesh nodes" ;
Mesh2_node_y:units = "m" ;

Kanten

double Mesh2_edge_x(nMesh2_edge) ;
Mesh2_edge_x:standard_name = "projection_x_coordinate" ;
Mesh2_edge_x:long_name = "x-coordinate of 2D mesh edges, e.g. center of edge" ;
Mesh2_edge_x:units = "m" ;
Mesh2_edge_x:bounds = "Mesh2_edge_x_bnd" \\ optional
double Mesh2_edge_y(nMesh2_edge) ;
Mesh2_edge_y:standard_name = "projection_y_coordinate" ;
Mesh2_edge_y:long_name = "y-coordinate of 2D mesh polygons, e.g. center of edge" ;
Mesh2_edge_y:units = "m" ;
Mesh2_edge_y:bounds = "Mesh2_edge_y_bnd" \\ optional

Polygone

double Mesh2_poly_x(nMesh2_poly) ;
Mesh2_poly_x:standard_name = "projection_x_coordinate" ;
Mesh2_poly_x:long_name = "x-coordinate of 2D mesh polygons, e.g. center of gravity or circumcenter" ;
Mesh2_poly_x:units = "m" ;
Mesh2_poly_x:bounds = "Mesh2_poly_x_bnd" \\ optional
double Mesh2_poly_y(nMesh2_poly) ;
Mesh2_poly_y:standard_name = "projection_y_coordinate" ;
Mesh2_poly_y:long_name = "y-coordinate of 2D mesh polygons, e.g. center of gravity or circumcenter" ;
Mesh2_poly_y:units = "m" ;
Mesh2_poly_y:bounds = "Mesh2_poly_y_bnd" \\ optional

(optional) Begrenzung für Kanten

double Mesh2_edge_x_bnd(nMesh2_edge,Two) ; \\ no metadata required
double Mesh2_edge_y_bnd(nMesh2_edge,Two) ; \\ no metadata required

(optional) Begrenzung für Polygone

double Mesh2_poly_x_bnd(nMesh2_poly,Three) ; \\ no metadata required
double Mesh2_poly_y_bnd(nMesh2_poly,Three) ; \\ no metadata required


Geografische Koordinaten

Knoten

double Mesh2_node_lon(nMesh2_node) ;
Mesh2_node_lon:standard_name = "longitude" ;
Mesh2_node_lon:long_name = "longitude of 2D mesh nodes" ;
Mesh2_node_lon:units = "degrees_east" ;
double Mesh2_node_lat(nMesh2_node) ;
Mesh2_node_lat:standard_name = "latitude" ;
Mesh2_node_lat:long_name = "latitude of 2D mesh nodes" ;
Mesh2_node_lat:units = "degrees_north" ;

Kanten

double Mesh2_edge_lon(nMesh2_edge) ;
Mesh2_edge_lon:standard_name = "longitude" ;
Mesh2_edge_lon:long_name = "longitude of 2D mesh edges, e.g. center of edge" ;
Mesh2_edge_lon:units = "degrees_east" ;
Mesh2_edge_lon:bounds = "Mesh2_edge_lon_bnd" // optional
double Mesh2_edge_lat(nMesh2_edge) ;
Mesh2_edge_lat:standard_name = "latitude" ;
Mesh2_edge_lat:long_name = "latitude of 2D mesh edges, e.g. center of edge" ;
Mesh2_edge_lat:units = "degrees_north" ;
Mesh2_edge_lat:bounds = "Mesh2_edge_lat_bnd" // optional

Polygone

double Mesh2_poly_lon(nMesh2_poly) ;
Mesh2_poly_lon:standard_name = "longitude" ;
Mesh2_poly_lon:long_name = "longitude of 2D mesh polygons, e.g. center of gravity or circumcenter" ;
Mesh2_poly_lon:units = "degrees_east" ;
Mesh2_poly_lon:bounds = "Mesh2_poly_lon_bnd" // optional
double Mesh2_poly_lat(nMesh2_node) ;
Mesh2_poly_lat:standard_name = "latitude" ;
Mesh2_poly_lat:long_name = "latitude of 2D mesh polygons, e.g. center of gravity or circumcenter" ;
Mesh2_poly_lat:units = "degrees_north" ;
Mesh2_poly_lat:bounds = "Mesh2_poly_lat_bnd" // optional

(optional) Begrenzung für Kanten

double Mesh2_edge_lon_bnd(nMesh2_edge,Two) ; \\ no metadata required
double Mesh2_edge_lat_bnd(nMesh2_edge,Two) ; \\ no metadata required

(optional) Begrenzung für Polygone

double Mesh2_poly_lon_bnd(nMesh2_poly,Three) ; \\ no metadata required
double Mesh2_poly_lat_bnd(nMesh2_poly,Three) ; \\ no metadata required

Topologische Daten

Knotenverzeichnis der Kanten

integer Mesh2_edge_nodes(nMesh2_edge,Two) ;
Mesh2_edge_nodes:standard_name = "???" \\ yet to be determined
Mesh2_edge_nodes:long_name = "list of nodes for all edges, start node - end node"
Bemerkung: Indizes starten mit Null!

Knotenverzeichnis der Polygone

integer Mesh2_poly_nodes(nMesh2_poly,Three) ;
Mesh2_poly_nodes:standard_name = "???" \\ yet to be determined
Mesh2_poly_nodes:long_name = "list of nodes for all polygons, counterclockwise"
Bemerkung: Indizes starten mit Null!

Polygonverzeichnis der Kanten

integer Mesh2_edge_polys(nMesh2_edge,Two) ;
Mesh2_edge_polys:standard_name "???" \\ yet to be determined
Mesh2_edge_polys:long_name = "list of (adjacent) polygons for all edges - left and right neigbour polygon"
Mesh2_edge_polys:_FillValue = fillvalue \\ indicates missing neighbour polygon, e.g. at domain boundaries
Bemerkung: Indizes starten mit Null!

Topologievariable

integer Mesh2 ;
Mesh2:standard_name = "???" \\ yet to be determined ;
Mesh2:long_name = "can be used to store a name for the grid" ;
Mesh2:dimensionality = 2 ; \\ flat mesh, no three-dimensional elements;
Mesh2:locations = "node edge poly" \\ data can be assigned to these locations ;
Mesh2:node_coordinates = "Mesh2_node_lon Mesh2_node_lat" ;
Mesh2:edge_coordinates = "Mesh2_edge_lon Mesh2_edge_lat" ;
Mesh2:poly_coordinates = "Mesh2_poly_lon Mesh2_poly_lat" ;
Mesh2:poly_node_connectivity = "Mesh2_poly_nodes" ;
Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ;
Mesh2:edge_poly_connectivity = "Mesh2_edge_polys" ; \\ different from Deltares

Koordinatentransformation

integer crs ; \\ value is equivalent to the EPSG code of the transformation
crs:grid_mapping_name = "transverse_mercator" ;
crs:scale_factor_at_central_merdian = value ;
crs:longitude_of_central_meridian = value ;
crs:latitude_of_projection_origin = value ;
crs:false_easting = value ;
crs:false_northing = value ;

Anmerkungen, Fragen

  • Datei nutzt Deltares-CF-Erweiterungen. Ausnahme ist das Attribut edge_poly_cennectivity in der Topologievariable.
  • Können auch für Kanten bounds angegeben werden?
  • Müssen die Begrenzungen für beide Koordinatensysteme angegeben werden?
  • Müssen die Indizes unbedingt mit Null starten?
  • Die Beschreibung der Koordinatentransformation ist für UTM- und Gauß-Krüger-Koordinaten geeignet.

zurück zu NetCDF


Strukturübersicht