Aktionen

NetCDF Unstrukturiertes Gitter mit SubGrid: Unterschied zwischen den Versionen

Aus BAWiki

imported>Lang Guenther
(→‎Anmerkungen: Text wurde verkürzt.)
imported>Lang Guenther
(→‎Dimensionen: Text gelöscht)
Zeile 33: Zeile 33:
# Das Simulationsprogramm verwendet ausschließlich die korrespondierenden Tiefenklassen (hier nicht aufgeführt).
# Das Simulationsprogramm verwendet ausschließlich die korrespondierenden Tiefenklassen (hier nicht aufgeführt).
# Die Anzahl der Plot-Subkanten bzw. -Subfaces (-Subpolygone) kann größer oder gleich die Anzahl der entsprechenden Tiefenklassen sein.
# 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 am 16. 7. 2012 abschließend durchgeführt.


==Lokale Koordinaten==
==Lokale Koordinaten==

Version vom 17. Juli 2012, 06:28 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.
  2. Bei Mesh2_plot_subpoly_x_bnd sowie Mesh2_plot_subpoly_y_bnd wurde _FillValue ergänzt.
  3. Bei Mesh2_plot_subpoly_lon_bnd sowie Mesh2_plot_subpoly_lat_bnd wurde _FillValue ergänzt.
  4. Bei Mesh2_edge_plot_subedges wurde cf_role und start_index ergänzt.
  5. Bei Mesh2_face_plot_subfaces wurde cf_role und start_index ergänzt.
  6. Bei Mesh2 wurde das Attribut cf_role ergänzt und locations gelöscht.

Inhalt der Datei

Dimensionen

  1. nMesh2_node : Anzahl der Knoten.
  2. nMesh2_edge : Anzahl der Kanten.
  3. nMesh2_face : Anzahl der Faces (Polygone).
  4. nSubMesh2_edge : Anzahl der Plot-Subkanten.
  5. nSubMesh2_face : Anzahl der Plot-Subfaces (Plot-Subpolygone).
  6. nMaxSubMesh2_face_nodes : maximale Anzahl der Plot-Subknoten:: eines Plot-Subface (-Subpolygons).
  7. 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 (hier nicht aufgeführt).
  3. Die Anzahl der Plot-Subkanten bzw. -Subfaces (-Subpolygone) kann größer oder gleich die Anzahl der entsprechenden Tiefenklassen sein.

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 SubMesh2_edge_x(nSubMesh2_edge) ;

SubMesh2_edge_x:long_name = "x-Koordinate der 2D (Plot) SubGrid Kanten" ;
SubMesh2_edge_x:units = "m" ;
SubMesh2_edge_x:name_id = 1650 ;
SubMesh2_edge_x:bounds = "SubMesh2_edge_x_bnd" ;
SubMesh2_edge_x:standard_name = "projection_x_coordinate" ;

double SubMesh2_edge_y(nSubMesh2_edge) ;

SubMesh2_edge_y:long_name = "y-Koordinate der 2D (Plot) SubGrid Kanten" ;
SubMesh2_edge_y:units = "m" ;
SubMesh2_edge_y:name_id = 1651 ;
SubMesh2_edge_y:bounds = "SubMesh2_edge_y_bnd" ;
SubMesh2_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 Subkanten.

Faces (Polygone)

double SubMesh2_face_x(nSubMesh2_face) ;

SubMesh2_face_x:long_name = "x-Koordinate der 2D (Plot) SubGrid Polygone (Faces)" ;
SubMesh2_face_x:units = "m" ;
SubMesh2_face_x:name_id = 1650 ;
SubMesh2_face_x:bounds = "SubMesh2_face_x_bnd" ;
SubMesh2_face_x:standard_name = "projection_x_coordinate" ;

double SubMesh2_face_y(nSubMesh2_face) ;

SubMesh2_face_y:long_name = "y-Koordinate der 2D (Plot) SubGrid Polygone (Faces)" ;
SubMesh2_face_y:units = "m" ;
SubMesh2_face_y:name_id = 1651 ;
SubMesh2_face_y:bounds = "SubMesh2_face_y_bnd" ;
SubMesh2_face_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 Faces (Polygons) liegender Punkt gewählt werden.

(optional) Begrenzung für Kanten

double SubMesh2_edge_x_bnd(nSubMesh2_edge, two) ;

double SubMesh2_edge_y_bnd(nSubMesh2_edge, two) ;

Hinweise:

  1. Ein _FillValue braucht bei Kanten nicht berücksichtigt zu werden.

(optional) Begrenzung für Faces (Polygone)

double SubMesh2_face_x_bnd(nSubMesh2_face, nMaxSubMesh2_face_nodes) ;

SubMesh2_face_x_bnd:_FillValue = fillvalue ;

double SubMesh2_face_y_bnd(nSubMesh2_face, nMaxSubMesh2_face_nodes) ;

SubMesh2_face_y_bnd:_FillValue = fillvalue ;

Hinweise:

  1. Koordinaten der Knoten des SubFaces (SubPolygons) entgegen dem Uhrzeigersinn angeben.
  2. Fehlende Punkte mit ungültigen Werten _FillValue gekennzeichnet.

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 SubMesh2_edge_lon(nSubMesh2_edge) ;

SubMesh2_edge_lon:long_name = "geografische Laenge der 2D (Plot) SubGrid Kanten" ;
SubMesh2_edge_lon:units = "degrees_east" ;
SubMesh2_edge_lon:name_id = 1653 ;
SubMesh2_edge_lon:bounds = "SubMesh2_edge_lon_bnd" ;
SubMesh2_edge_lon:standard_name = "longitude" ;

double SubMesh2_edge_lat(nSubMesh2_edge) ;

SubMesh2_edge_lat:long_name = "geografische Breite der 2D (Plot) SubGrid Kanten" ;
SubMesh2_edge_lat:units = "degrees_north" ;
SubMesh2_edge_lat:name_id = 1652 ;
SubMesh2_edge_lat:bounds = "SubMesh2_edge_lat_bnd" ;
SubMesh2_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 Subkanten.

Faces (Polygone)

double SubMesh2_face_lon(nSubMesh2_face) ;

SubMesh2_face_lon:long_name = "geografische Laenge der 2D (Plot) SubGrid Polygone (Faces)" ;
SubMesh2_face_lon:units = "degrees_east" ;
SubMesh2_face_lon:name_id = 1653 ;
SubMesh2_face_lon:bounds = "SubMesh2_face_lon_bnd" ;
SubMesh2_face_lon:standard_name = "longitude" ;

double SubMesh2_face_lat(nSubMesh2_face) ;

SubMesh2_face_lat:long_name = "geografische Breite der 2D (Plot) SubGrid Polygone (Faces)" ;
SubMesh2_face_lat:units = "degrees_north" ;
SubMesh2_face_lat:name_id = 1652 ;
SubMesh2_face_lat:bounds = "SubMesh2_face_lat_bnd" ;
SubMesh2_face_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 SubMesh2_edge_lon_bnd(nSubMesh2_edge, two) ;

double SubMesh2_edge_lat_bnd(nSubMesh2_edge, two) ;

Hinweise:

  1. Eine _FillValue wird für Kanten nicht benötigt.

(optional) Begrenzung für Faces (Polygone)

double SubMesh2_face_lon_bnd(nSubMesh2_face, nMaxSubMesh2_face_nodes) ;

SubMesh2_face_lon_bnd:_FillValue = fillvalue ;

double SubMesh2_face_lat_bnd(nSubMesh2_face, nMaxSubMesh2_face_nodes) ;

SubMesh2_face_lat_bnd:_FillValue = fillvalue ;

Hinweise:

  1. Koordinaten der Knoten des SubFaces (SubPolygons) entgegen dem Uhrzeigersinn angeben.
  2. Nicht vorhandene Knoten durch ungültige Werte _FillValue 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

Eine Topologie des Plot-Subgrid existiert nicht. Gemäß den Vorschlägen von Deltares wird der Zusammenhang zwischen Plot-SubGrid und Berechnungsgitter in Anlehnung an den Vorschlag Combined Mesh Topology von Deltares gewählt.

Kontaktliste Plot-Subkanten - Kanten

int SubMesh2_edge_contact(nSubMesh2_edge, two) ;

SubMesh2_edge_contact:long_name = "Liste aller Kontakte zwischen (Plot-) SubKanten un (Berechnungs-) Kanten" ;
SubMesh2_edge_contact:valid_range = 0, 313205 ;
SubMesh2_edge_contact:_FillValue = -999 ;
SubMesh2_edge_contact:coordinates = "SubMesh2_edge_x SubMesh2_edge_y SubMesh2_edge_lon SubMesh2_edge_lat" ;
SubMesh2_edge_contact:grid_mapping = "Mesh2_crs" ;
SubMesh2_edge_contact:cf_role = "mesh_topology_contact" ;
SubMesh2_edge_contact:contact_meshes = "SubMesh2 Mesh2" ;
SubMesh2_edge_contact:contact_type = "edge edge" ;
SubMesh2_edge_contact:start_index = 0 ;

Hinweise:

  1. Indizes starten mit Null.
  2. Jede Plot-Subkante verweist auf jeweils eine Kante des Berechnungsgitters.
  3. Umgekehrt sind für jede Kante des Berechnungsgitters mehrere Verweise auf Plot-Subkanten vorhanden.

Kontaktliste Plot-Subfaces - Faces (Polygone)

int SubMesh2_face_contact(nSubMesh2_face, two) ;

SubMesh2_face_contact:long_name = "Liste aller Kontakte zwischen (Plot-) SubPolygonen und (Berechnungs-) Polygonen" ;
SubMesh2_face_contact:valid_range = 0, 3756460 ;
SubMesh2_face_contact:_FillValue = -999 ;
SubMesh2_face_contact:coordinates = "SubMesh2_face_x SubMesh2_face_y SubMesh2_face_lon SubMesh2_face_lat" ;
SubMesh2_face_contact:grid_mapping = "Mesh2_crs" ;
SubMesh2_face_contact:cf_role = "mesh_topology_contact" ;
SubMesh2_face_contact:contact_meshes = "SubMesh2 Mesh2" ;
SubMesh2_face_contact:contact_type = "face face" ;
SubMesh2_face_contact:start_index = 0 ;

Hinweise:

  1. Indizes starten mit Null.
  2. Jedes Plot-Subface (-Subpolygon) verweist auf jeweils ein Face (Polygon) des Berechnungsgitters.
  3. Umgekehrt sind für jedes Face (Polygon) des Berechnungsgitters mehrere Verweise auf Plot-Subfaces (-Subpolygone) vorhanden.

Topologievariable

Berechnungsgitter

int Mesh2 ;

Mesh2:long_name = "UnTRIM Gitternetz, Drei- und Vierecke gemischt, mit (Plot-) SubGrid [output]" ;
Mesh2:cf_role = "mesh_topology" ;
Mesh2:dimensionality = 2 ;
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:face_coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat Mesh2_face_center_x Mesh2_face_center_y Mesh2_face_center_lon Mesh2_face_center_lat" ;
Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ;
Mesh2:edge_face_connectivity = "Mesh2_edge_faces" ;
Mesh2:face_node_connectivity = "Mesh2_face_nodes" ;
Mesh2:face_edge_connectivity = "Mesh2_face_edges" ;
Mesh2:parent_mesh = "Combined_Mesh2_and_SubMesh2" ;

Hinweise:

  1. In der Praxis müssen nicht alle Verknüpfungslisten (connectivity) angegeben werden, da manche Informationen redundant sind. Sie sollten aber angegeben werden können.

Plot-SubGrid

int SubMesh2 ;

SubMesh2:long_name = "name of subgrid can be stored here" ;
SubMesh2:cf_role = "mesh_topology" ;
SubMesh2:dimensionality = 2 ;
SubMesh2:edge_coordinates = "SubMesh2_edge_x SubMesh2_edge_y SubMesh2_edge_lon SubMesh2_edge_lat" ;
SubMesh2:face_coordinates = "SubMesh2_face_x SubMesh2_face_y SubMesh2_face_lon SubMesh2_face_lat" ;
SubMesh2:parent_mesh = "Combined_Mesh2_and_SubMesh2" ;

Hinweise:

  1. Weiter gehende topologische Daten liegen für das Plot-SubGrid nicht vor.

Kombiniertes Gitter

int Combined_Mesh2_and_SubMesh2 ;

Combined_Mesh2_and_SubMesh2:long_name = "name of combined grid can be stored here" ;
Combined_Mesh2_and_SubMesh2:cf_role = "mesh_topology" ;
Combined_Mesh2_and_SubMesh2:sub_meshes = "Mesh2 SubMesh2" ;
Combined_Mesh2_and_SubMesh2:mesh_contacts = "SubMesh2_face_contact SubMesh2_edge_contact" ;

Koordinatentransformation

Anmerkungen


zurück zu NetCDF


Strukturübersicht