Aktionen

NetCDF Dreiecksgitter: Unterschied zwischen den Versionen

Aus BAWiki

imported>Lang Guenther
(Sicherheitskopie)
 
imported>Lang Guenther
(Sicherheitskopie)
Zeile 3: Zeile 3:


Ein aus Dreiecken aufgebautes Gitter wird beschrieben. Typische Dateitypen hierfür sind z. B.
Ein aus Dreiecken aufgebautes Gitter wird beschrieben. Typische Dateitypen hierfür sind z. B.
[[GITTER05.DAT und GITTER05.BIN|gitter05.dat und gitter05.bin]] sowie [[SELAFIN|selafin]].
[[GITTER05.DAT und GITTER05.BIN|gitter05.dat und gitter05.bin]] sowie [[SELAFIN|selafin]]. Die
Speiecherung von daten auf diesem Gitter, also z. B. auch der Tiefe, wird an anderer Stelle
beschrieben.


=Inhalt der Datei=
=Inhalt der Datei=
Zeile 19: Zeile 21:
===Lokale Koordinaten===
===Lokale Koordinaten===


====Knoten====
:: double Mesh2_node_x(nMesh2_node) ;     
:: double Mesh2_node_x(nMesh2_node) ;     
::: Mesh2_node_x:standard_name = "'''projection_x_coordinate'''" ;     
::: Mesh2_node_x:standard_name = "'''projection_x_coordinate'''" ;     
Zeile 27: Zeile 30:
::: Mesh2_node_y:long_name = "y-coordinate of 2D mesh nodes" ;     
::: Mesh2_node_y:long_name = "y-coordinate of 2D mesh nodes" ;     
::: Mesh2_node_y:units = "m" ;
::: 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" ;
:: 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" ;
====Polygone====
:: double Mesh2_poly_x(nMesh2_poly) ;     
:: double Mesh2_poly_x(nMesh2_poly) ;     
::: Mesh2_poly_x:standard_name = "'''projection_x_coordinate'''" ;     
::: Mesh2_poly_x:standard_name = "'''projection_x_coordinate'''" ;     
Zeile 38: Zeile 51:
===Geografische Koordinaten===
===Geografische Koordinaten===


====Knoten====
:: double Mesh2_node_lon(nMesh2_node) ;     
:: double Mesh2_node_lon(nMesh2_node) ;     
::: Mesh2_node_lon:standard_name = "'''longitude'''" ;     
::: Mesh2_node_lon:standard_name = "'''longitude'''" ;     
Zeile 46: Zeile 60:
::: Mesh2_node_lat:long_name = "latitude of 2D mesh nodes" ;     
::: Mesh2_node_lat:long_name = "latitude of 2D mesh nodes" ;     
::: Mesh2_node_lat:units = "degrees_north" ;
::: 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" ;   
:: 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" ;
====Polygone====
:: double Mesh2_poly_lon(nMesh2_poly) ;     
:: double Mesh2_poly_lon(nMesh2_poly) ;     
::: Mesh2_poly_lon:standard_name = "'''longitude'''" ;     
::: Mesh2_poly_lon:standard_name = "'''longitude'''" ;     
Zeile 55: Zeile 79:
::: Mesh2_poly_lat:units = "degrees_north" ;
::: Mesh2_poly_lat:units = "degrees_north" ;


===Tiefe===
===Topologische Daten===


:: double node_depth(node) ;
====Knotenverzeichnis der Kanten====
::: node_depth:standard_name = "'''sea_floor_depth_below_geoid'''" ;   
:: integer Mesh2_edge_nodes(nMesh2_edge,Two) ;
::: node_depth:long_name = "sea floor depth" ;   
::: Mesh2_edge_nodes:standard_name = "'''???'''" \\ yet to be determined
::: node_depth:units = "m" ;
::: Mesh2_edge_nodes:long_name = "list of nodes for all edges, start node - end node"
::: node_depth:coordinates = "node_long_name node_lon node_lat"
====Knotenverzeichnis der Polygone====
::: node_depth:_FillValue = "''fillvalue''"
:: integer Mesh2_poly_nodes(nMesh2_poly,Three) ;
::: node_depth:valid_range = "''valid minimum'', ''valid maximum''"
::: Mesh2_poly_nodes:standard_name = "'''???'''" \\ yet to be determined
::: node_depth:grid_mapping = "crs"
::: Mesh2_poly_nodes:long_name = "list of nodes for all polygons, counterclockwise"


===Positionsbezeichnungen===
===Topologievariable===
 
:: char node_long_name(node,strlen1) ;
::: node_long_name:long_name = "long name of location"
::: node_long_name:coordinates = "node_lon node_lat"
::: node_long_name:grid_mapping = "crs"
::char node_code_name(node,strlen2) ;
::: node_code_name:long_name = "code name of location"
::: node_code_name:coordinates = "node_long_name node_lon node_lat"
::: node_code_name:grid_mapping = "crs"
:: char node_short_name(node,strlen3) ;
::: node_short_name:long_name = "short name of location"
::: node_short_name:coordinates = "node_long_name node_lon node_lat"
::: node_short_name:grid_mapping = "crs"


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

Version vom 9. September 2010, 07:46 Uhr

Kurze Beschreibung

Ein aus Dreiecken aufgebautes Gitter wird beschrieben. Typische Dateitypen hierfür sind z. B. gitter05.dat und gitter05.bin sowie selafin. Die Speiecherung von daten auf diesem Gitter, also z. B. auch der Tiefe, wird an anderer Stelle beschrieben.

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" ;
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" ;

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" ;
Mesh2_poly_x:units = "m" ;
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" ;
Mesh2_poly_y:units = "m" ;

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" ;
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" ;

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" ;
Mesh2_poly_lon:units = "degrees_east" ;
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" ;
Mesh2_poly_lat:units = "degrees_north" ;

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"

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"

Topologievariable

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 ist vollständig CF-konform - keine Erweiterungen erforderlich!
  • Wie unterscheiden wir aktuelle Tiefe und nicht weiter erodierbare Tiefe? Neuer standard_name erforderlich?
  • Sind "coordinates" und "grid_mapping" für die Namensbezeichnungen erforderlich/sinnvoll?
  • Auf die Daten einer Position kann auch über die Namensbezeichnungen zugegriffen werden, daher erscheint der Wert "node_long_name" in dem Attribut coordinates. Dies entspricht der Empfehlung in Abschnitt 6.1 der CF-Metadaten Konvention.
  • Benötigen wir ID und COLOR noch (in dieser Datei)? (sind oben vernachlässigt)
  • Die Beschreibung der Koordinatentransformation ist für UTM- und Gauß-Krüger-Koordinaten geeignet.

zurück zu NetCDF


Strukturübersicht