Aktionen

NetCDF Synoptische Daten im unstrukturierten Gitter mit SubGrid

Aus BAWiki

Version vom 4. Mai 2015, 11:55 Uhr von imported>Lang Guenther (→‎Anmerkungen: Link auf Guidelines aktualisiert)

Kurze Beschreibung

Synoptische Daten für alle Berechnungspositionen eines unstrukturierten Gitters mit SubGrid.

Beschreibt den aktuellen aber vorläufigen Stand.

Weitere Beschreibungen

Dimensionen

  1. nMesh2_node : Anzahl der Knoten.
  2. nMesh2_edge : Anzahl der Kanten.
  3. nMesh2_face : Anzahl der Faces (Polygone).
  4. nMesh2_time : Anzahl der Zeitangaben für die Gitterdaten (i. d. R. = 1).
  5. nMaxMesh2_face_nodes : maximale Anzahl der Knoten eines Berechnungspolygons.
  6. nMaxMesh2_subedgeclass : maximale Anzahl der Subkanten-Tiefenklassen in einem Berechnungspolygon.
  7. nMaxMesh2_subfaceclass : maximale Anzahl der Subpolygon-Tiefenklassen in einem Berechnungspolygon.
  8. nMesh2_data_time : Anzahl der Berechnungszeitschritte (i. d. R. die UNLIMITED Dimension).
  9. nMesh2_layer_2d : ANzahl der Schichten tiefengemittelter oder tiefenintegrierter Daten (immer = 1).
  10. nSubMesh2_edge : Anzahl der Plot-Subkanten.
  11. nSubMesh2_face : Anzahl der Plot-Subfaces (Plot-Subpolygone).
  12. nMaxSubMesh2_face_nodes : maximale Anzahl der Plot-Subknoten:: eines Plot-Subface (-Subpolygons).
  13. 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 Subpolygon- und Subkanten-Tiefenklassen
  3. Die Anzahl der Plot-Subkanten bzw. -Subfaces (-Subpolygone) kann größer oder gleich die Anzahl der entsprechenden Tiefenklassen sein.

Datenkompression

Siehe NetCDF Kompression von Daten durch Aufsammeln.

Zeitkoordinaten

Gitter-Daten

double nMesh2_time(nMesh2_time) ;

nMesh2_time:long_name = "time" ;
nMesh2_time:units = "seconds since 2006-01-01 00:00:00 01:00" ;
nMesh2_time:name_id = 1640 ;
nMesh2_time:axis = "T" ;
nMesh2_time:bounds = "nMesh2_time_bnd" ;
nMesh2_time:calendar = "gregorian" ;
nMesh2_time:standard_name = "time" ;

double nMesh2_time_bnd(nMesh2_time, two) ;

Hinweise:

  1. Die Topografie des Gitters (der ursprünglichen Gitterdatei) gilt entweder für einen bestimmten Termin oder Zeitraum.
  2. Falls die topografischen Daten des Gitters für einen Zeitraum gültig sind, so ist die entsprechende Boundary-Variable ebenfalls vorhanden.

Synoptische Daten

double nMesh2_data_time(nMesh2_data_time) ;

nMesh2_data_time:long_name = "time" ;
nMesh2_data_time:units = "hours since 2006-06-01 00:00:00 01:00" ;
nMesh2_data_time:name_id = 1640 ;
nMesh2_data_time:axis = "T" ;
nMesh2_data_time:calendar = "gregorian" ;
nMesh2_data_time:standard_name = "time" ;

Hinweise:

  1. Die synoptischen Daten gelten für bestimmte Termine. Daher ist keine ergänzende Boundary-Variable erforderlich.

Vertikalkoordinaten

Knoten

Für das mathematische Verfahren UNTRIM2 mit SubGrid liegen keine Daten an Knoten vor.

Kanten

Tiefengemittelte Daten

Tiefenstrukturierte Daten

Polygone

Tiefengemittelte Daten

float Mesh2_face_z_face_2d(nMesh2_data_time, nMesh2_layer_2d, nMesh2_face) ;

Mesh2_face_z_face_2d:long_name = "z_face [ face ]" ;
Mesh2_face_z_face_2d:units = "m" ;
Mesh2_face_z_face_2d:name_id = 1702 ;
Mesh2_face_z_face_2d:positive = "down" ;
Mesh2_face_z_face_2d:bounds = "Mesh2_face_z_face_bnd_2d" ;
Mesh2_face_z_face_2d:standard_name = "depth" ;

float Mesh2_face_z_face_bnd_2d(nMesh2_data_time, nMesh2_layer_2d, nMesh2_face, two) ;

Mesh2_face_z_face_bnd_2d:name_id = 1703 ;

Hinweise:

  1. Da Hilfs-Koordinatenvariable werden die Attribute "mesh" und "location" nicht angegeben.
  2. Der aktuelle Wert bezeichnet den Schwerpunkt des Wasservolumens.
  3. Das Attribut "axis" ist nicht zulässig, da es sich um eine Hilfs-Vertikalkoordinate handelt.

Tiefenstrukturierte Daten

Gewichte

Längen

Längen der Subkanten-Tiefenklassen

double Mesh2_subedgeclass_length(nMesh2_edge, nMaxMesh2_subedgeclass) ;

Mesh2_subedgeclass_length:long_name = "Laenge der SubKanten Tiefenklassen fuer alle Kanten" ;
Mesh2_subedgeclass_length:units = "m" ;
Mesh2_subedgeclass_length:valid_range = 0., 502.4203 ;
Mesh2_subedgeclass_length:_FillValue = 1.e+31 ;
Mesh2_subedgeclass_length:coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ;
Mesh2_subedgeclass_length:grid_mapping = "Mesh2_crs" ;
Mesh2_subedgeclass_length:mesh = "Mesh2" ;
Mesh2_subedgeclass_length:location = "edge" ;

Flächen

Wasserfläche der Berechnungspolygone

float Mesh2_face_Wasserflaeche_2d(nMesh2_data_time, nMesh2_face) ;

Mesh2_face_Wasserflaeche_2d:long_name = "Wasserflaeche [ face ]" ;
Mesh2_face_Wasserflaeche_2d:units = "m2" ;
Mesh2_face_Wasserflaeche_2d:name_id = 1625 ;
Mesh2_face_Wasserflaeche_2d:_FillValue = 1.e+31f ;
Mesh2_face_Wasserflaeche_2d:coordinates = "Mesh2_face_lon Mesh2_face_lat Mesh2_face_x Mesh2_face_y" ;
Mesh2_face_Wasserflaeche_2d:grid_mapping = "Mesh2_crs" ;
Mesh2_face_Wasserflaeche_2d:standard_name = "sea_area" ;
Mesh2_face_Wasserflaeche_2d:mesh = "Mesh2" ;
Mesh2_face_Wasserflaeche_2d:location = "face" ;

Flächen der Subpolygon-Tiefenklassen

double Mesh2_subfaceclass_area(nMesh2_face, nMaxMesh2_subfaceclass) ;

Mesh2_subfaceclass_area:long_name = "Flaeche der SubFace (SubPolygon) Tiefenklassen fuer alle Faces (Polygone)" ;
Mesh2_subfaceclass_area:units = "m2" ;
Mesh2_subfaceclass_area:valid_range = 0., 176267.4219 ;
Mesh2_subfaceclass_area:_FillValue = 1.e+31 ;
Mesh2_subfaceclass_area:coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat" ;
Mesh2_subfaceclass_area:grid_mapping = "Mesh2_crs" ;
Mesh2_subfaceclass_area:standard_name = "cell_area" ;
Mesh2_subfaceclass_area:mesh = "Mesh2" ;
Mesh2_subfaceclass_area:location = "face" ;

Flächen der Plot-Subpolygone

double SubMesh2_face_area(nSubMesh2_face) ;

SubMesh2_face_area:long_name = "Flaeche der 2D (Plot) SubGrid Polygone (Faces)" ;
SubMesh2_face_area:units = "m2" ;
SubMesh2_face_area:valid_range = 0., 94309.7898354226 ;
SubMesh2_face_area:_FillValue = 1.e+31 ;
SubMesh2_face_area:coordinates = "SubMesh2_face_x SubMesh2_face_y SubMesh2_face_lon SubMesh2_face_lat" ;
SubMesh2_face_area:grid_mapping = "Mesh2_crs" ;
SubMesh2_face_area:standard_name = "cell_area" ;
SubMesh2_face_area:mesh = "SubMesh2" ;
SubMesh2_face_area:location = "face" ;

Volumina

Wasservolumen der Berechnungspolygone

float Mesh2_face_Wasservolumen_2d(nMesh2_data_time, nMesh2_face) ;

Mesh2_face_Wasservolumen_2d:long_name = "Wasservolumen [ face ]" ;
Mesh2_face_Wasservolumen_2d:units = "m3" ;
Mesh2_face_Wasservolumen_2d:name_id = 1626 ;
Mesh2_face_Wasservolumen_2d:_FillValue = 1.e+31f ;
Mesh2_face_Wasservolumen_2d:coordinates = "Mesh2_face_lon Mesh2_face_lat Mesh2_face_x Mesh2_face_y Mesh2_face_z_face_2d" ;
Mesh2_face_Wasservolumen_2d:grid_mapping = "Mesh2_crs" ;
Mesh2_face_Wasservolumen_2d:standard_name = "sea_water_volume" ;
Mesh2_face_Wasservolumen_2d:mesh = "Mesh2" ;
Mesh2_face_Wasservolumen_2d:location = "face" ;

Informationen für das HN-Verfahren

Maximal zulässige Tiefe - Tiefenverteilung

Subkanten-Tiefenklassen der Berechnungskanten

double Mesh2_max_subedgeclass_depth(nMesh2_time, nMesh2_edge, nMaxMesh2_subedgeclass) ;

Mesh2_max_subedgeclass_depth:long_name = "nicht weiter erodierbare Tiefe der SubKanten Tiefenklassen fuer alle Kanten" ;
Mesh2_max_subedgeclass_depth:units = "m" ;
Mesh2_max_subedgeclass_depth:name_id = 1149 ;
Mesh2_max_subedgeclass_depth:valid_range = -8848., 11034. ;
Mesh2_max_subedgeclass_depth:_FillValue = 1.e+31 ;
Mesh2_max_subedgeclass_depth:cell_methods = "nMesh2_time: mean nMaxMesh2_subedgeclass: mean" ;
Mesh2_max_subedgeclass_depth:comment = "cell_measure = length: Mesh2_subedgeclass_length, nicht CF-konform" ;
Mesh2_max_subedgeclass_depth:coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ;
Mesh2_max_subedgeclass_depth:grid_mapping = "Mesh2_crs" ;
Mesh2_max_subedgeclass_depth:standard_name = "depth" ;
Mesh2_max_subedgeclass_depth:mesh = "Mesh2" ;
Mesh2_max_subedgeclass_depth:location = "edge" ;

Hinweise:

  1. Beschreibt die (maximalen) Tiefen des Gitters.

Subpolygon-Tiefenklassen der Berechnungspolygone

double Mesh2_max_subfaceclass_depth(nMesh2_time, nMesh2_face, nMaxMesh2_subfaceclass) ;

Mesh2_max_subfaceclass_depth:long_name = "nicht weiter erodierbare Tiefe der SubFace Tiefenklassen fuer alle Faces (Polygone)" ;
Mesh2_max_subfaceclass_depth:units = "m" ;
Mesh2_max_subfaceclass_depth:name_id = 1149 ;
Mesh2_max_subfaceclass_depth:valid_range = -8848., 11034. ;
Mesh2_max_subfaceclass_depth:_FillValue = 1.e+31 ;
Mesh2_max_subfaceclass_depth:cell_measures = "area: Mesh2_subfaceclass_area" ;
Mesh2_max_subfaceclass_depth:cell_methods = "nMesh2_time: mean area: mean" ;
Mesh2_max_subfaceclass_depth:coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat" ;
Mesh2_max_subfaceclass_depth:grid_mapping = "Mesh2_crs" ;
Mesh2_max_subfaceclass_depth:standard_name = "depth" ;
Mesh2_max_subfaceclass_depth:mesh = "Mesh2" ;
Mesh2_max_subfaceclass_depth:location = "face" ;

Hinweise:

  1. Beschreibt die (maximalen) Tiefen des Gitters.

Tiefen der Plot-Subkanten

double SubMesh2_edge_depth(nMesh2_time, nSubMesh2_edge) ;

SubMesh2_edge_depth:long_name = "Tiefe der unerodierbaren Schicht" ;
SubMesh2_edge_depth:units = "m" ;
SubMesh2_edge_depth:name_id = 1149 ;
SubMesh2_edge_depth:valid_range = -8848., 11034. ;
SubMesh2_edge_depth:_FillValue = 1.e+31 ;
SubMesh2_edge_depth:cell_methods = "nMesh2_time: mean nSubMesh2_edge: mean" ;
SubMesh2_edge_depth:coordinates = "SubMesh2_edge_x SubMesh2_edge_y SubMesh2_edge_lon SubMesh2_edge_lat" ;
SubMesh2_edge_depth:grid_mapping = "Mesh2_crs" ;
SubMesh2_edge_depth:standard_name = "depth" ;
SubMesh2_edge_depth:mesh = "SubMesh2" ;
SubMesh2_edge_depth:location = "edge" ;

Hinweise:

  1. Beschreibt die (maximalen) Tiefen des Gitters.

Tiefen der Plot-Subpolygone

double SubMesh2_face_depth(nMesh2_time, nSubMesh2_face) ;

SubMesh2_face_depth:long_name = "Tiefe der unerodierbaren Schicht" ;
SubMesh2_face_depth:units = "m" ;
SubMesh2_face_depth:name_id = 1149 ;
SubMesh2_face_depth:valid_range = -8848., 11034. ;
SubMesh2_face_depth:_FillValue = 1.e+31 ;
SubMesh2_face_depth:cell_measures = "area: SubMesh2_face_area" ;
SubMesh2_face_depth:cell_methods = "nMesh2_time: mean nSubMesh2_face: mean" ;
SubMesh2_face_depth:coordinates = "SubMesh2_face_x SubMesh2_face_y SubMesh2_face_lon SubMesh2_face_lat" ;
SubMesh2_face_depth:grid_mapping = "Mesh2_crs" ;
SubMesh2_face_depth:standard_name = "depth" ;
SubMesh2_face_depth:mesh = "SubMesh2" ;
SubMesh2_face_depth:location = "face" ;

Hinweise:

  1. Beschreibt die (maximalen) Tiefen des Gitters.

Masken

Plot-Subpolygon Maske

byte SubMesh2_face_SubPolygon_Maske_2d(nMesh2_data_time, nSubMesh2_face) ;

SubMesh2_face_SubPolygon_Maske_2d:long_name = "SubPolygon-Maske [ face ]" ;
SubMesh2_face_SubPolygon_Maske_2d:name_id = 1629 ;
SubMesh2_face_SubPolygon_Maske_2d:valid_range = 0b, 1b ;
SubMesh2_face_SubPolygon_Maske_2d:_FillValue = -99b ;
SubMesh2_face_SubPolygon_Maske_2d:coordinates = "SubMesh2_face_lon SubMesh2_face_lat SubMesh2_face_x SubMesh2_face_y" ;
SubMesh2_face_SubPolygon_Maske_2d:flag_meanings = "sea land" ;
SubMesh2_face_SubPolygon_Maske_2d:flag_values = 0b, 1b ;
SubMesh2_face_SubPolygon_Maske_2d:grid_mapping = "Mesh2_crs" ;
SubMesh2_face_SubPolygon_Maske_2d:standard_name = "land_binary_mask" ;
SubMesh2_face_SubPolygon_Maske_2d:mesh = "SubMesh2" ;
SubMesh2_face_SubPolygon_Maske_2d:location = "face" ;

Aktuelle zeitvariable Topografie

Knoten

In dem mathematischen Verfahren UNTRIM2 liegen keine Daten an Knoten vor.

(Plot-) Subkanten

Konstant im Zeitraum

Zeitvariabel

(Plot-) Subpolygone

Konstant im Zeitraum

float SubMesh2_face_Topographie_2d(nSubMesh2_face) ;

SubMesh2_face_Topographie_2d:long_name = "Topographie [ face ]" ;
SubMesh2_face_Topographie_2d:units = "m" ;
SubMesh2_face_Topographie_2d:name_id = 17 ;
SubMesh2_face_Topographie_2d:_FillValue = 1.e+31f ;
SubMesh2_face_Topographie_2d:cell_measures = "area: SubMesh2_face_area" ;
SubMesh2_face_Topographie_2d:cell_methods = "nSubMesh2_face: mean" ;
SubMesh2_face_Topographie_2d:coordinates = "SubMesh2_face_lon SubMesh2_face_lat SubMesh2_face_x SubMesh2_face_y" ;
SubMesh2_face_Topographie_2d:grid_mapping = "Mesh2_crs" ;
SubMesh2_face_Topographie_2d:standard_name = "sea_floor_depth_below_geoid" ;
SubMesh2_face_Topographie_2d:mesh = "SubMesh2" ;
SubMesh2_face_Topographie_2d:location = "face" ;

Zeitvariabel

Mittlere Gesamtwassertiefe

Faces (Polygone)

float Mesh2_face_Gesamtwassertiefe_2d(nMesh2_data_time, nMesh2_face) ;

Mesh2_face_Gesamtwassertiefe_2d:long_name = "Gesamtwassertiefe [ face ]" ;
Mesh2_face_Gesamtwassertiefe_2d:units = "m" ;
Mesh2_face_Gesamtwassertiefe_2d:name_id = 16 ;
Mesh2_face_Gesamtwassertiefe_2d:_FillValue = 1.e+31f ;
Mesh2_face_Gesamtwassertiefe_2d:cell_measures = "area: Mesh2_face_Wasserflaeche_2d" ;
Mesh2_face_Gesamtwassertiefe_2d:cell_methods = "nMesh2_data_time: point nMesh2_face: mean" ;
Mesh2_face_Gesamtwassertiefe_2d:coordinates = "Mesh2_face_lon Mesh2_face_lat Mesh2_face_x Mesh2_face_y" ;
Mesh2_face_Gesamtwassertiefe_2d:grid_mapping = "Mesh2_crs" ;
Mesh2_face_Gesamtwassertiefe_2d:standard_name = "sea_floor_depth_below_sea_surface" ;
Mesh2_face_Gesamtwassertiefe_2d:mesh = "Mesh2" ;
Mesh2_face_Gesamtwassertiefe_2d:location = "face" ;
Mesh2_face_Gesamtwassertiefe_2d:ancillary_variables = "SubMesh2_face_SubPolygon_Maske_2d" ;
Mesh2_face_Gesamtwassertiefe_2d:comment = "ancillary variable may be used for visualization as plot subgrid mask" ;

Hinweise zur möglichen Verwendung der Hilfsvariablen:

  1. Die mittlere Gesamtwassertiefe wird für die aktuell von Wasser bedeckte Fläche eines Polygons berechnet.
  2. Die von Wasser bedeckte Fläche kann der Polygonfäche entsprechen, kleiner als diese oder Null (vollständig trocken) sein.
  3. Die Wirkung einer grafischen Darstellung dieser Variablen kann unter Verwendung der als Hilfsvariable aufgeführten Maske für das SubGrid und der entsprechenden Kontaktliste für die Beschreibung des Zusammenhangs zwischen Mesh2 und SubMesh2 verbessert (aufgehübscht) werden. Eine Anwendung sollte in der Lage sein, den entsprechenden Zusammenhang aus den Attributen ableiten zu können.

Wasserstand

Faces (Polygone)

float Mesh2_face_Wasserstand_2d(nMesh2_data_time, nMesh2_face) ;

Mesh2_face_Wasserstand_2d:long_name = "Wasserstand [ face ]" ;
Mesh2_face_Wasserstand_2d:units = "m" ;
Mesh2_face_Wasserstand_2d:name_id = 3 ;
Mesh2_face_Wasserstand_2d:_FillValue = 1.e+31f ;
Mesh2_face_Wasserstand_2d:cell_measures = "area: Mesh2_face_Wasserflaeche_2d" ;
Mesh2_face_Wasserstand_2d:cell_methods = "nMesh2_data_time: point nMesh2_face: mean" ;
Mesh2_face_Wasserstand_2d:coordinates = "Mesh2_face_lon Mesh2_face_lat Mesh2_face_x Mesh2_face_y" ;
Mesh2_face_Wasserstand_2d:grid_mapping = "Mesh2_crs" ;
Mesh2_face_Wasserstand_2d:standard_name = "sea_surface_height" ;
Mesh2_face_Wasserstand_2d:mesh = "Mesh2" ;
Mesh2_face_Wasserstand_2d:location = "face" ;
Mesh2_face_Wasserstand_2d:ancillary_variables = "Mesh2_face_Gesamtwassertiefe_2d SubMesh2_face_SubPolygon_Maske_2d" ;
Mesh2_face_Wasserstand_2d:comment = "ancillary variables may be used for visualization and data analysis as threshold and plot subgrid mask" ;

Hinweise: Hinweise zur möglichen Verwendung der Hilfsvariablen:

  1. Der (mittlere) Wasserstand wird für die aktuell von Wasser bedeckte Fläche eines Polygons berechnet.
  2. Die von Wasser bedeckte Fläche kann der Polygonfäche entsprechen, kleiner als diese oder Null (vollständig trocken) sein.
  3. Der Wasserstand erhält nur dann den Wert _FillValue, falls das Polygon vollständig trocken gefallen ist (mittlere Gesamtwassertiefe ist Null).
  4. Gegebenenfalls kann die grafische Darstellung hinsichtlich ihrer Wirkung und Überzeugungskraft dadurch verbessert werden, dass für Gebiete mit sehr geringer mittlerer Gesamtwassertiefe - z. B. kleiner als 1 cm - auf eine Visualisierung des Wasserstands verzichtet wird. Ähnliches gilt für eine eventuelle Analyse des Wasserstands - z. B. Tidekennwerte - bei der Zeiten sehr geringer Wasserbedeckung nicht berücksichtigt werden sollen. In beiden skizzierten Fällen bleibt es der nutzenden Anwendung überlassen einen geeigneten, von Null abweichenden Grenzwert (threshold) für die minimale Wasserbedeckung zu verwenden.
  5. Darüber hinaus kann die Wirkung einer grafischen Darstellung dieser Variablen zusätzlich noch unter Verwendung der als Hilfsvariable aufgeführten Maske für das SubGrid und der entsprechenden Kontaktliste für die Beschreibung des Zusammenhangs zwischen Mesh2 und SubMesh2 verbessert (aufgehübscht) werden. Eine Anwendung sollte in der Lage sein, den entsprechenden Zusammenhang aus den Attributen ableiten zu können.

Anmerkungen


zurück zu NetCDF


Strukturübersicht