NetCDF Synoptische Daten im Dreiecksgitter: Unterschied zwischen den Versionen
Aus BAWiki
imported>Lang Guenther (→Synoptische Daten an Knoten: Text vollständig überarbeitet) |
imported>Lang Guenther (→Aktuelle (zeitvariable) Topografie: Maximale zulässige Tiefe ergänzt) |
||
Zeile 280: | Zeile 280: | ||
===Konstant in Zeitraum=== | ===Konstant in Zeitraum=== | ||
===Zeitvariabel=== | ===Zeitvariabel=== | ||
=Maximale zulässige Tiefe= | |||
==Knoten== | |||
double Mesh2_node_depth(nMesh2_time, nMesh2_node) ; | |||
: Mesh2_node_depth:long_name = "Tiefe der unerodierbaren Schicht" ; | |||
: Mesh2_node_depth:units = "m" ; | |||
: Mesh2_node_depth:name_id = 1149 ; | |||
: Mesh2_node_depth:valid_range = -2000., 2000. ; | |||
: Mesh2_node_depth:_FillValue = 1.e+31 ; | |||
: Mesh2_node_depth:cell_methods = "nMesh2_time: mean area: point" ; | |||
: Mesh2_node_depth:coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ; | |||
: Mesh2_node_depth:grid_mapping = "Mesh2_crs" ; | |||
: Mesh2_node_depth:standard_name = "depth" ; | |||
: Mesh2_node_depth:mesh = "Mesh2" ; | |||
: Mesh2_node_depth:location = "node" ; | |||
Hinweise: | |||
# Das Attribut "cell_methods" beschreibt hier u. a., dass die Tiefen Mittelwerte für einen Zeitraum sind. | |||
# Ggf. muss noch ein spezifischerer Standardname gefunden werden, z. B. "bedrock_altitude". | |||
==Kanten== | |||
==Polygone== | |||
=Synoptische Daten an Kanten= | =Synoptische Daten an Kanten= |
Version vom 27. April 2011, 09:30 Uhr
Kurze Beschreibung
Synoptische Daten für alle staggered data Positionen eines aus Dreiecken aufgebauten Gitters.
Weitere Beschreibungen
- NetCDF Dreiecksgitter: Koordinaten, Topologie und Koordinatentransformation.
- NetCDF Zeitkoordinate: Koordinatenvariable time.
- NetCDF Vertikalkoordinate: zeit- und ortsvariable Vertikalkoordinate.
Dimensionen
- nMesh2_node : Anzahl der Knoten.
- nMesh2_edge : Anzahl der Kanten.
- nMesh2_poly : Anzahl der Polygone (hier Dreiecke).
- nMesh2_class_names_strlen : max. Anzahl der Zeichen in Schwebstoffklassennamen.
- nMesh2_time : Anzahl der Zeitpunkte (Gitterdatei).
- nMesh2_data_time : UNLIMITED-Dimension, Anzahl der synoptischen Datensätze.
- nMesh2_layer_2d : Anzahl der Schichten für tiefengemittelte Daten.
- nMesh2_layer_3d : Anzahl der Schichten für tiefenstrukturierte Daten.
- nMesh2_suspension_classes : Anzahl der Schwebstoffklassen, inklusive Summe aller Fraktionen.
- two : Konstante ( = 2 ).
- three : Konstante ( = 3 ).
Datenkompression
Auf Grund der Verwendung von z-Schichten sind über jeder Position in Abhängigkeit von der Wassertiefe unterschiedlich viele (aktive) Berechnungszellen vorhanden. Zur Reduktion der Größe der Ergebnisdatensätze könnten im Prinzip verschiedene Dimensionen in einer komprimierten Dimension zusammengefasst. Dauerhaft fehlende Daten würden dann erst gar nicht in der Datei abgespeichert. Dies reduzierte bei drei-dimensionalen Simulationen mit z-Schichten den Speicheraufwand typischer Weise um 60 bis 80 Prozent.
Komprimierte Daten an Knoten
Hinweise:
- Methode kann nicht in CF-konformer Weise genutzt werden:
- Probleme bei der Verwendung von "cell_methods: mean".
- Probleme bei der Zuordnung der korrekten Koordinaten in Systemen wie ArcGIS.
- Weitere allgemeine Hinweise, siehe unter NetCDF Kompression von Daten durch Aufsammeln.
Komprimierte Daten an Kanten
Siehe Hinweise unter Knoten.
Komprimierte Daten an Polygonen
Siehe Hinweise unter Knoten.
Gewichte
Gewichte werden insbesondere im Postprocessing benötigt, um abgeleitete Daten korrekt berechnen zu können, falls die hierfür relevanten Gewichtsfaktoren, nicht in einfacher Weise aus den Koordinaten abgeleitet werden können.
Längen
Durchflusshöhe an Knoten
float Mesh2_node_z_2d(nMesh2_data_time, nMesh2_node) ;
- Mesh2_node_z_2d:long_name = "zeit- und ortsvariable Tiefe der Datenpunkte" ;
- Mesh2_node_z_2d:units = "m" ;
- Mesh2_node_z_2d:positive = "down" ;
- Mesh2_node_z_2d:bounds = "Mesh2_node_z_2d_bnd" ;
- Mesh2_node_z_2d:standard_name = "depth" ;
float Mesh2_node_z_2d_bnd(nMesh2_data_time, nMesh2_node, two)
Hinweise:
- Da Hilfs-Koordinatenvariable werden die Attribute "mesh" und "location" nicht angegeben.
- Entspricht den Vertikalkoordinaten an Knoten (siehe nachfolgenden Abschnitt).
- Weitere Informationen siehe dort.
Durchflusshöhe an Knoten, differenziert nach Schichten
float Mesh2_node_z_3d(nMesh2_data_time, nMesh2_layer_3d, nMesh2_node) ;
- Mesh2_node_z_3d:long_name = "zeit- und ortsvariable Tiefe der Datenpunkte" ;
- Mesh2_node_z_3d:units = "m" ;
- Mesh2_node_z_3d:positive = "down" ;
- Mesh2_node_z_3d:bounds = "Mesh2_node_z_3d_bnd" ;
- Mesh2_node_z_3d:standard_name = "depth" ;
float Mesh2_node_z_3d_bnd(nMesh2_data_time, nMesh2_layer_3d, nMesh2_node, two) ;
Hinweise:
- Da Hilfs-Koordinatenvariable werden die Attribute "mesh" und "location" nicht angegeben.
- Entspricht den Vertikalkoordinaten an Knoten (siehe nachfolgenden Abschnitt).
- Weitere Informationen siehe dort.
Flächen
Statische Fläche der Polygone
double Mesh2_poly_area(nMesh2_poly) ;
- Mesh2_poly_area:long_name = "Zellenflaeche" ;
- Mesh2_poly_area:units = "m2" ;
- Mesh2_poly_area:name_id = 1656 ;
- Mesh2_poly_area:_FillValue = 1.e+31 ;
- Mesh2_poly_area:valid_range = 0.0, 100000.0 ;
- Mesh2_poly_area:coordinates = "Mesh2_poly_x Mesh2_poly_y Mesh2_poly_lon Mesh2_poly_lat" ;
- Mesh2_poly_area:grid_mapping = "Mesh2_crs" ;
- Mesh2_poly_area:standard_name = "cell_area" ;
- Mesh2_poly_area:mesh = "Mesh2" ;
- Mesh2_poly_area:location = "poly" ;
Hinweise:
- Entspricht der statischen Fläche der Polygone.
- Wird angegeben, um als Gewicht (Attribut "cell_measure") benutzt werden zu können.
- Erspart einer Anwendung das Berechnen der Fläche aus den Koordinaten der Polygone.
Durchflussfläche über Kanten
Noch nicht näher ausgeführt.
Durchflussfläche über Kanten, differenziert nach Schichten
Noch nicht näher ausgeführt.
Volumina
Volumina über Polygonen
Noch nicht näher ausgeführt.
Volumina über Polygonen, differenziert nach Schichten
Noch nicht näher ausgeführt.
Zeitkoordinaten
Gitter-Daten
double nMesh2_time(nMesh2_time) ;
- nMesh2_time:long_name = "time" ;
- nMesh2_time:units = "seconds since 2008-07-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:
- Die Topografie des Gitters (der ursprünglichen Gitterdatei) gilt entweder für einen bestimmten Termin oder Zeitraum.
- 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 = "minutes since 1994-01-25 01: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:
- Die synoptischen Daten gelten für bestimmte Termine. Daher ist keine ergänzende Boundary-Variable erforderlich.
Vertikalkoordinaten
Knoten
Tiefengemittelte Daten
float Mesh2_node_z_2d(nMesh2_data_time, nMesh2_node) ;
- Mesh2_node_z_2d:long_name = "zeit- und ortsvariable Tiefe der Datenpunkte" ;
- Mesh2_node_z_2d:units = "m" ;
- Mesh2_node_z_2d:positive = "down" ;
- Mesh2_node_z_2d:bounds = "Mesh2_node_z_2d_bnd" ;
- Mesh2_node_z_2d:standard_name = "depth" ;
float Mesh2_node_z_2d_bnd(nMesh2_data_time, nMesh2_node, two) ;
Hinweise:
- Da Hilfs-Koordinatenvariable werden die Attribute "mesh" und "location" nicht angegeben.
- Über die Wassertiefe gemittelte Daten an Knoten benutzen diese zeitvariable Vertikalkoordinate.
- Der aktuelle Wert bezeichnet die Mitte zwischen aktueller Wasseroberfläche und Gewässersohle.
- Aus der Boundary-Variablen ergibt sich die Höhe (Länge), über die gemittelt wurde.
- Das Attribut "axis" ist nicht zulässig, da es sich um eine Hilfs-Vertikalkoordinate handelt.
Tiefenstrukturierte Daten
float Mesh2_node_z_3d(nMesh2_data_time, nMesh2_layer_3d, nMesh2_node) ;
- Mesh2_node_z_3d:long_name = "zeit- und ortsvariable Tiefe der Datenpunkte" ;
- Mesh2_node_z_3d:units = "m" ;
- Mesh2_node_z_3d:positive = "down" ;
- Mesh2_node_z_3d:bounds = "Mesh2_node_z_3d_bnd" ;
- Mesh2_node_z_3d:standard_name = "depth" ;
float Mesh2_node_z_3d_bnd(nMesh2_data_time, nMesh2_layer_3d, nMesh2_node, two) ;
Hinweise:
- Da Hilfs-Koordinatenvariable werden die Attribute "mesh" und "location" nicht angegeben.
- Tiefenstrukturierte, in z-Schichten gemittelte Daten an Knoten benutzen diese zeitvariable Vertikalkoordinate.
- Der aktuelle Wert bezeichnet die Mitte der jeweiligen z-Schicht.
- Aus der Boundary-Variablen ergibt sich die Höhe (Länge), über die gemittelt wurde.
- Das Attribut "axis" ist nicht zulässig, da es sich um eine Hilfs-Vertikalkoordinate handelt.
Kanten
Tiefengemittelte Daten
Noch nicht näher ausgeführt.
Tiefenstrukturierte Daten
Noch nicht näher ausgeführt.
Polygone
Tiefengemittelte Daten
Noch nicht näher ausgeführt.
Tiefenstrukturierte Daten
Noch nicht näher ausgeführt.
Informationen für das HN-Verfahren
Kennzeichnung offener und geschlossener Kanten
int Mesh2_edge_type(nMesh2_edge) ;
- Mesh2_edge_type:standard_name = "???" ; \\ yet to be defined
- Mesh2_edge_type:long_name = "type of 2D mesh edges, closed or open" ;
- Mesh2_edge_type:coordinates = "Mesh2_edge_lon Mesh2_edge_lat" ;
- Mesh2_edge_type:_FillValue = fillvalue ;
- Mesh2_edge_type:valid_range = 0, 1 ;
- Mesh2_edge_type:valid_values = 0, 1 ;
- Mesh2_edge_type:flag_meanings = "closed_edge, open_edge"
- Mesh2_edge_type:grid_mapping = "crs" ;
- Mesh2_edge_type:mesh = "mesh2" ;
- Mesh2_edge_type:location = "edge"
Hinweise:
- Mit Hilfe der von Deltares vorgeschlagenen Attribute mesh und location wird die Zugehörigkeit zu einem Gitter sowie zu einer (Daten-) Position innerhalb des Gitters beschrieben.
Aktuelle (zeitvariable) Topografie
Knoten
Konstant in Zeitraum
double Mesh2_node_depth(nMesh2_time, nMesh2_node) ;
- Mesh2_node_depth:long_name = "Topographie" ;
- Mesh2_node_depth:units = "m" ;
- Mesh2_node_depth:name_id = 17 ;
- Mesh2_node_depth:valid_range = -2000., 2000. ;
- Mesh2_node_depth:_FillValue = 1.e+31 ;
- Mesh2_node_depth:cell_methods = "nMesh2_time: mean area: point" ;
- Mesh2_node_depth:coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ;
- Mesh2_node_depth:grid_mapping = "Mesh2_crs" ;
- Mesh2_node_depth:standard_name = "sea_floor_depth_below_geoid" ;
- Mesh2_node_depth:mesh = "Mesh2" ;
- Mesh2_node_depth:location = "node" ;
Hinweise:
- Das Attribut "cell_methods" beschreibt hier u. a., dass die Tiefen Mittelwerte für einen Zeitraum sind.
Zeitvariabel
float Mesh2_zeitvariable_Topographie_2d(nMesh2_data_time, nMesh2_node) ;
- Mesh2_zeitvariable_Topographie_2d:long_name = "zeitvariable Topographie" ;
- Mesh2_zeitvariable_Topographie_2d:units = "m" ;
- Mesh2_zeitvariable_Topographie_2d:name_id = 617 ;
- Mesh2_zeitvariable_Topographie_2d:_FillValue = 1.e+31f ;
- Mesh2_zeitvariable_Topographie_2d:cell_methods = "nMesh2_data_time: point area: point" ;
- Mesh2_zeitvariable_Topographie_2d:coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ;
- Mesh2_zeitvariable_Topographie_2d:grid_mapping = "Mesh2_crs" ;
- Mesh2_zeitvariable_Topographie_2d:standard_name = "sea_floor_depth_below_geoid" ;
- Mesh2_zeitvariable_Topographie_2d:mesh = "Mesh2" ;
- Mesh2_zeitvariable_Topographie_2d:location = "node" ;
Hinweise:
- Das Attribut "cell_methods" beschreibt hier u. a., dass die Tiefen nur für einen Termin gelten.
Kanten
Konstant in Zeitraum
double Mesh2_poly_depth(nMesh2_time, nMesh2_poly) ;
- Mesh2_poly_depth:long_name = "Topographie" ;
- Mesh2_poly_depth:units = "m" ;
- Mesh2_poly_depth:name_id = 17 ;
- Mesh2_poly_depth:valid_range = -2000., 2000. ;
- Mesh2_poly_depth:_FillValue = 1.e+31 ;
- Mesh2_poly_depth:cell_measures = "area: Mesh2_poly_area" ;
- Mesh2_poly_depth:cell_methods = "nMesh2_time: mean area: mean" ;
- Mesh2_poly_depth:coordinates = "Mesh2_poly_x Mesh2_poly_y Mesh2_poly_lon Mesh2_poly_lat" ;
- Mesh2_poly_depth:grid_mapping = "Mesh2_crs" ;
- Mesh2_poly_depth:standard_name = "sea_floor_depth_below_geoid" ;
- Mesh2_poly_depth:mesh = "Mesh2" ;
- Mesh2_poly_depth:location = "poly" ;
Hinweise:
- Das Attribut "cell_methods" beschreibt hier u. a., dass die Tiefen Mittelwerte für einen Zeitraum sind und zugleich als Mittel für das gesamte Polygon aufzufassen sind.
- Zur Vereinfachung und Sicherheit wird die Fläche des Polygons über Attribut "cell_measures" angegeben.
Zeitvariabel
Polygone
Konstant in Zeitraum
Zeitvariabel
Maximale zulässige Tiefe
Knoten
double Mesh2_node_depth(nMesh2_time, nMesh2_node) ;
- Mesh2_node_depth:long_name = "Tiefe der unerodierbaren Schicht" ;
- Mesh2_node_depth:units = "m" ;
- Mesh2_node_depth:name_id = 1149 ;
- Mesh2_node_depth:valid_range = -2000., 2000. ;
- Mesh2_node_depth:_FillValue = 1.e+31 ;
- Mesh2_node_depth:cell_methods = "nMesh2_time: mean area: point" ;
- Mesh2_node_depth:coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ;
- Mesh2_node_depth:grid_mapping = "Mesh2_crs" ;
- Mesh2_node_depth:standard_name = "depth" ;
- Mesh2_node_depth:mesh = "Mesh2" ;
- Mesh2_node_depth:location = "node" ;
Hinweise:
- Das Attribut "cell_methods" beschreibt hier u. a., dass die Tiefen Mittelwerte für einen Zeitraum sind.
- Ggf. muss noch ein spezifischerer Standardname gefunden werden, z. B. "bedrock_altitude".
Kanten
Polygone
Synoptische Daten an Kanten
Noch nicht näher ausgeführt.
Synoptische Daten an Polygonen
Noch nicht näher ausgeführt.
Anmerkungen, Fragen
- Datei nutzt Deltares-CF-Erweiterungen.
- Datei ist nicht vollständig CF-konform. Für das Attribut cell_measures müsste length als Wert zugelassen werden.
- Dasselbe gilt im Prinzip für depth. Allerdings ist depth ein CF Standardname, und dann könnte dieser Wert doch gemäß Abschnitt 7.3.4 in der CF-Metadaten Konvention zulässig sein.
zurück zu NetCDF