NetCDF Aggregation für unstrukturierte Gitter: Unterschied zwischen den Versionen
Aus BAWiki
imported>Lang Guenther (→Geografische Koordinaten des Aggregations-Gitters: Textformatierung korrigiert) |
(Die LinkTitles-Erweiterung hat automatisch Links zu anderen Seiten hinzugefügt (<a target="_blank" rel="nofollow noreferrer noopener" class="external free" href="https://github.com/bovender/LinkTitles">https://github.com/bovender/LinkTitles</a>).) |
||
(18 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
Die Beschreibung eines Aggregations-Gitters weist große Ähnlichkeiten mit ''[[NetCDF Unstrukturiertes Gitter mit SubGrid]]'' auf. | Die Beschreibung eines Aggregations-Gitters weist große Ähnlichkeiten mit ''[[NetCDF Unstrukturiertes Gitter mit SubGrid]]'' auf. | ||
Mit dem Programm [[NCAGGREGATE]] können auf einem Berechnungsgitter vorliegende Daten aggregiert werden. | |||
==Berechnungsgitter== | ==Berechnungsgitter== | ||
Zeile 25: | Zeile 27: | ||
Die beiden vorgenannten Gitter - Berechnungsgitter und Aggregations-Gitter - werden in einem kombinierten Gitter (''Parent Mesh'') | Die beiden vorgenannten Gitter - Berechnungsgitter und Aggregations-Gitter - werden in einem kombinierten Gitter (''Parent Mesh'') | ||
zusammengefasst. Hierzu gehören auch die verschiedenen Kontaktlisten, die den Zusammenhang | zusammengefasst. Hierzu gehören auch die verschiedenen Kontaktlisten, die den Zusammenhang zwischen den beiden Teilnetzen beschreiben. | ||
Diese Art der Beschreibung basiert im Wesentlichen auf Ideen, die von '''Bert Jagers''' (Deltares) erdacht wurden (siehe [https://publicwiki.deltares.nl/display/NETCDF/netCDF ''Deltares Conventions'']). | Diese Art der Beschreibung basiert im Wesentlichen auf Ideen, die von '''Bert Jagers''' (Deltares) erdacht wurden (siehe [https://publicwiki.deltares.nl/display/NETCDF/netCDF ''Deltares Conventions'']). | ||
Zeile 75: | Zeile 77: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Kanten=== | ===Kanten=== | ||
Zeile 94: | Zeile 96: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Faces (Kontrollvolumen)=== | ===Faces (Kontrollvolumen)=== | ||
Zeile 113: | Zeile 115: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
# Die Koordinate bezeichnet einen beliebigen, innerhalb des Kontrollvolumens liegenden Punkt. | # Die Koordinate bezeichnet einen beliebigen, innerhalb des Kontrollvolumens liegenden Punkt. | ||
Zeile 131: | Zeile 133: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
# Diese Koordinate bezeichnet einen beliebigen, auf der Austauschfläche liegenden Ort. Z. B. die Mitte einer Kante, welche zu dieser Austauschfläche gehört. | # Diese Koordinate bezeichnet einen beliebigen, auf der Austauschfläche liegenden Ort. Z. B. die Mitte einer Kante, welche zu dieser Austauschfläche gehört. | ||
Zeile 174: | Zeile 176: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Kanten=== | ===Kanten=== | ||
Zeile 193: | Zeile 195: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
===Faces (Kontrollvolumen)=== | ===Faces (Kontrollvolumen)=== | ||
Zeile 212: | Zeile 214: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
# Die Koordinate bezeichnet einen beliebigen, innerhalb des Kontrollvolumens liegenden Punkt. | # Die Koordinate bezeichnet einen beliebigen, innerhalb des Kontrollvolumens liegenden Punkt. | ||
Zeile 230: | Zeile 232: | ||
Hinweise: | Hinweise: | ||
# Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen. | # Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-[[Kennung]] der Variablen. | ||
# Diese Koordinate bezeichnet einen beliebigen, auf der Austauschfläche liegenden Ort. Z. B. die Mitte einer Kante, welche zu dieser Austauschfläche gehört. | # Diese Koordinate bezeichnet einen beliebigen, auf der Austauschfläche liegenden Ort. Z. B. die Mitte einer Kante, welche zu dieser Austauschfläche gehört. | ||
Zeile 266: | Zeile 268: | ||
: CVMesh2_face_nodes:cf_role = "face_node_connectivity" ; | : CVMesh2_face_nodes:cf_role = "face_node_connectivity" ; | ||
: CVMesh2_face_nodes:_FillValue = -999 ; | : CVMesh2_face_nodes:_FillValue = -999 ; | ||
: CVMesh2_face_nodes: | : CVMesh2_face_nodes:start_[[index]] = 0 ; | ||
Hinweise: | |||
# Nummern der Knoten (des Aggregations-Gitters) der Kontrollvolumina. | # Nummern der Knoten (des Aggregations-Gitters) der Kontrollvolumina. | ||
# Die Knoten müssen entgegen dem Uhrzeigersinn angegeben werden. | # Die Knoten müssen entgegen dem Uhrzeigersinn angegeben werden. | ||
Zeile 279: | Zeile 282: | ||
: CVMesh2_face_edges:cf_role = "face_edge_connectivity" ; | : CVMesh2_face_edges:cf_role = "face_edge_connectivity" ; | ||
: CVMesh2_face_edges:_FillValue = -999 ; | : CVMesh2_face_edges:_FillValue = -999 ; | ||
: CVMesh2_face_edges: | : CVMesh2_face_edges:start_[[index]] = 0 ; | ||
Hinweise: | |||
# Nummern der Kanten (des Aggregations-Gitters) der Kontrollvolumina. | # Nummern der Kanten (des Aggregations-Gitters) der Kontrollvolumina. | ||
# Die Kanten müssen entgegen dem Uhrzeigersinn angegeben werden. | # Die Kanten müssen entgegen dem Uhrzeigersinn angegeben werden. | ||
# Nicht vorhandene | # Nicht vorhandene Kanten mit dem _FillValue kennzeichnen. | ||
# Nicht vorhandene Kanten müssen für jedes Kontrollvolumen die letzten Einträge sein. | # Nicht vorhandene Kanten müssen für jedes Kontrollvolumen die letzten Einträge sein. | ||
Zeile 292: | Zeile 296: | ||
: CVMesh2_face_exchs:cf_role = "<font color=darkorange>face_exch_connectivity</font>" ; | : CVMesh2_face_exchs:cf_role = "<font color=darkorange>face_exch_connectivity</font>" ; | ||
: CVMesh2_face_exchs:_FillValue = -999 ; | : CVMesh2_face_exchs:_FillValue = -999 ; | ||
: CVMesh2_face_exchs: | : CVMesh2_face_exchs:start_[[index]] = 0 ; | ||
Hinweise: | |||
# Nummern der Austauschflächen (Exchanges) der Kontrollvolumina. | # Nummern der Austauschflächen (Exchanges) der Kontrollvolumina. | ||
# Die Austauschflächen müssen entgegen dem Uhrzeigersinn angegeben werden. | # Die Austauschflächen müssen entgegen dem Uhrzeigersinn angegeben werden. | ||
Zeile 304: | Zeile 309: | ||
: CVMesh2_edge_nodes:long_name = "Knotenverzeichnis der Kontrollvolumen-Kanten" ; | : CVMesh2_edge_nodes:long_name = "Knotenverzeichnis der Kontrollvolumen-Kanten" ; | ||
: CVMesh2_edge_nodes:cf_role = "edge_node_connectivity" ; | : CVMesh2_edge_nodes:cf_role = "edge_node_connectivity" ; | ||
: CVMesh2_edge_nodes: | : CVMesh2_edge_nodes:start_[[index]] = 0 ; | ||
Hinweise: | |||
# Nummern der Knoten (des Aggregations-Gitters) aller Kanten (des Aggregations-Gitters). | # Nummern der Knoten (des Aggregations-Gitters) aller Kanten (des Aggregations-Gitters). | ||
# Der erste Knoten kennzeichnet den Beginn, der zweite das Ende der Kante. | |||
====Kantenverzeichnis der Exchanges==== | ====Kantenverzeichnis der Exchanges==== | ||
Zeile 314: | Zeile 321: | ||
: CVMesh2_exch_edges:cf_role = "<font color=darkorange>exch_edge_connectivity</font>" ; | : CVMesh2_exch_edges:cf_role = "<font color=darkorange>exch_edge_connectivity</font>" ; | ||
: CVMesh2_exch_edges:_FillValue = -999 ; | : CVMesh2_exch_edges:_FillValue = -999 ; | ||
: CVMesh2_exch_edges: | : CVMesh2_exch_edges:start_[[index]] = 0 ; | ||
Hinweise: | |||
# Nummern der Kanten (des Aggregations-Gitters) aller Austauschflächen (Exchanges). | # Nummern der Kanten (des Aggregations-Gitters) aller Austauschflächen (Exchanges). | ||
# Die Kanten sind entlang der Austauschfläche unsortiert angegeben. | # Die Kanten sind entlang der Austauschfläche unsortiert angegeben. Austauschflächen können Lücken aufweisen. | ||
# Nicht vorhandene Kanten mit dem _FillValue kennzeichnen. | # Nicht vorhandene Kanten mit dem _FillValue kennzeichnen. | ||
# Nicht vorhandene Kanten müssen für jede Austauschfläche die letzten Einträge sein. | # Nicht vorhandene Kanten müssen für jede Austauschfläche die letzten Einträge sein. | ||
Zeile 327: | Zeile 335: | ||
: CVMesh2_edge_faces:cf_role = "<font color=darkorange>edge_face_connectivity</font>" ; | : CVMesh2_edge_faces:cf_role = "<font color=darkorange>edge_face_connectivity</font>" ; | ||
: CVMesh2_edge_faces:_FillValue = -999 ; | : CVMesh2_edge_faces:_FillValue = -999 ; | ||
: CVMesh2_edge_faces: | : CVMesh2_edge_faces:start_[[index]] = 0 ; | ||
Hinweise: | |||
# Nummern der Kontrollvolumina aller Kanten des Aggregations-Gitters. | # Nummern der Kontrollvolumina aller Kanten des Aggregations-Gitters. | ||
# Auf Kanten des (Aggregations-Gitter) Randes darf ein Nachbar-Kontrollvolumen fehlen; _FillValue verwenden. | # Auf Kanten des (Aggregations-Gitter-) Randes darf ein Nachbar-Kontrollvolumen fehlen; _FillValue verwenden. | ||
====Kontrollvolumenverzeichnis der Exchanges==== | ====Kontrollvolumenverzeichnis der Exchanges==== | ||
Zeile 338: | Zeile 347: | ||
: CVMesh2_exch_faces:cf_role = "<font color=darkorange>exch_face_connectivity</font>" ; | : CVMesh2_exch_faces:cf_role = "<font color=darkorange>exch_face_connectivity</font>" ; | ||
: CVMesh2_exch_faces:_FillValue = -999 ; | : CVMesh2_exch_faces:_FillValue = -999 ; | ||
: CVMesh2_exch_faces: | : CVMesh2_exch_faces:start_[[index]] = 0 ; | ||
Hinweise: | |||
# Nummern der Kontrollvolumina aller Austauschflächen (Exchanges) des Aggregations-Gitters. | # Nummern der Kontrollvolumina aller Austauschflächen (Exchanges) des Aggregations-Gitters. | ||
# Auf Austauschflächen des (Aggregations-Gitter-) Randes darf ein Nachbar-Kontrollvolumen fehlen; _FillValue verwenden. | # Auf Austauschflächen des (Aggregations-Gitter-) Randes darf ein Nachbar-Kontrollvolumen fehlen; _FillValue verwenden. | ||
Zeile 374: | Zeile 384: | ||
: CVMesh2:edge_coordinates = "CVMesh2_edge_x CVMesh2_edge_y CVMesh2_edge_lon CVMesh2_edge_lat" ; | : CVMesh2:edge_coordinates = "CVMesh2_edge_x CVMesh2_edge_y CVMesh2_edge_lon CVMesh2_edge_lat" ; | ||
: CVMesh2:face_coordinates = "CVMesh2_face_x CVMesh2_face_y CVMesh2_face_lon CVMesh2_face_lat" ; | : CVMesh2:face_coordinates = "CVMesh2_face_x CVMesh2_face_y CVMesh2_face_lon CVMesh2_face_lat" ; | ||
: CVMesh2:<font color=darkorange>exch_coordinates</font> = "CVMesh2_exch_x CVMesh2_exch_y CVMesh2_exch_lon CVMesh2_exch_lat" ; | |||
: CVMesh2:face_node_connectivity = "CVMesh2_face_nodes" ; | : CVMesh2:face_node_connectivity = "CVMesh2_face_nodes" ; | ||
: CVMesh2:face_edge_connectivity = "CVMesh2_face_edges" ; | : CVMesh2:face_edge_connectivity = "CVMesh2_face_edges" ; | ||
: CVMesh2:edge_node_connectivity = "CVMesh2_edge_nodes" ; | : CVMesh2:edge_node_connectivity = "CVMesh2_edge_nodes" ; | ||
: CVMesh2:<font color=darkorange>edge_face_connectivity</font> = "CVMesh2_edge_faces" ; | : CVMesh2:<font color=darkorange>edge_face_connectivity</font> = "CVMesh2_edge_faces" ; | ||
: CVMesh2:<font color=darkorange>face_exch_connectivity</font> = "CVMesh2_face_exchs" ; | : CVMesh2:<font color=darkorange>face_exch_connectivity</font> = "CVMesh2_face_exchs" ; | ||
Zeile 398: | Zeile 408: | ||
# Das Konzept der ''Parent Mesh'' Variable ist nicht in den [http://ugrid-conventions.github.io/ugrid-conventions/ ''UGRID Conventions''] enthalten. | # Das Konzept der ''Parent Mesh'' Variable ist nicht in den [http://ugrid-conventions.github.io/ugrid-conventions/ ''UGRID Conventions''] enthalten. | ||
# Das Attribut "sub_meshes" verweist auf die beiden, zu dem ''Parent Mesh'' gehörenden Gitternetze (Berechnungsgitter, Aggregations-Gitter). | # Das Attribut "sub_meshes" verweist auf die beiden, zu dem ''Parent Mesh'' gehörenden Gitternetze (Berechnungsgitter, Aggregations-Gitter). | ||
# Das Attribut " | # Das Attribut "mesh_contacts" verweist auf Variablen, welche den Zusammenhang zwischen den zu dem ''Parent Mesh'' gehörenden Gitternetzen beschreiben. | ||
==Kontaktlisten== | ==Kontaktlisten== | ||
Zeile 412: | Zeile 422: | ||
: CVMesh2_node_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | : CVMesh2_node_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | ||
: CVMesh2_node_contact:<font color=darkorange>contact_type</font> = "node node" ; | : CVMesh2_node_contact:<font color=darkorange>contact_type</font> = "node node" ; | ||
: CVMesh2_node_contact: | : CVMesh2_node_contact:start_[[index]] = 0 ; | ||
Hinweise: | Hinweise: | ||
Zeile 418: | Zeile 428: | ||
# Indizes starten mit Null. | # Indizes starten mit Null. | ||
# Jeder Knoten des Berechnungsgitters verweist auf einen Knoten des Aggregations-Gitters, und umgekehrt. | # Jeder Knoten des Berechnungsgitters verweist auf einen Knoten des Aggregations-Gitters, und umgekehrt. | ||
# Knoten des Berechnungsgitters die keinen Kontakt zu Knoten des Aggregations-Gitters haben enthalten den _FillValue. | # Knoten des Berechnungsgitters, die keinen Kontakt zu Knoten des Aggregations-Gitters haben enthalten den _FillValue. | ||
===Kontaktliste Kanten <-> Aggregations-Gitter-Kanten=== | ===Kontaktliste Kanten <-> Aggregations-Gitter-Kanten=== | ||
Zeile 430: | Zeile 440: | ||
: CVMesh2_edge_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | : CVMesh2_edge_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | ||
: CVMesh2_edge_contact:<font color=darkorange>contact_type</font> = "edge edge" ; | : CVMesh2_edge_contact:<font color=darkorange>contact_type</font> = "edge edge" ; | ||
: CVMesh2_edge_contact: | : CVMesh2_edge_contact:start_[[index]] = 0 ; | ||
Hinweise: | Hinweise: | ||
Zeile 436: | Zeile 446: | ||
# Indizes starten mit Null. | # Indizes starten mit Null. | ||
# Jede Kante des Berechnungsgitters verweist auf eine Kante des Aggregations-Gitters, und umgekehrt. | # Jede Kante des Berechnungsgitters verweist auf eine Kante des Aggregations-Gitters, und umgekehrt. | ||
# Kanten des Berechnungsgitters die keinen Kontakt zu Kanten des Aggregations-Gitters haben enthalten den _FillValue. | # Kanten des Berechnungsgitters, die keinen Kontakt zu Kanten des Aggregations-Gitters haben enthalten den _FillValue. | ||
===Kontaktliste Face (Polygon) <--> Kontrollvolumen=== | ===Kontaktliste Face (Polygon) <--> Kontrollvolumen=== | ||
Zeile 448: | Zeile 458: | ||
: CVMesh2_face_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | : CVMesh2_face_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | ||
: CVMesh2_face_contact:<font color=darkorange>contact_type</font> = "face face" ; | : CVMesh2_face_contact:<font color=darkorange>contact_type</font> = "face face" ; | ||
: CVMesh2_face_contact: | : CVMesh2_face_contact:start_[[index]] = 0 ; | ||
Hinweise: | Hinweise: | ||
Zeile 455: | Zeile 465: | ||
# Jedes Face (Polygon) des Berechnungsgitters verweist auf ein Face (Kontrollvolumen) des Aggregations-Gitters. | # Jedes Face (Polygon) des Berechnungsgitters verweist auf ein Face (Kontrollvolumen) des Aggregations-Gitters. | ||
# Umgekehrt sind jedem Kontrollvolumen i.d.R. mehr als ein Face des Berechnungsgitters zugeordnet. | # Umgekehrt sind jedem Kontrollvolumen i.d.R. mehr als ein Face des Berechnungsgitters zugeordnet. | ||
# Faces (Polygone) des Berechnungsgitters die keinen Kontakt zu Faces (Kontrollvolumina) des Aggregations-Gitters haben enthalten den _FillValue. | # Faces (Polygone) des Berechnungsgitters, die keinen Kontakt zu Faces (Kontrollvolumina) des Aggregations-Gitters haben enthalten den _FillValue. | ||
===Kontaktliste Kante <--> Austauschfläche=== | ===Kontaktliste Kante <--> Austauschfläche=== | ||
Zeile 467: | Zeile 477: | ||
: CVMesh2_edge_exch_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | : CVMesh2_edge_exch_contact:<font color=darkorange>contact_meshes</font> = "Mesh2 CVMesh2" ; | ||
: CVMesh2_edge_exch_contact:<font color=darkorange>contact_type</font> = "edge <font color=darkorange>exch</font>" ; | : CVMesh2_edge_exch_contact:<font color=darkorange>contact_type</font> = "edge <font color=darkorange>exch</font>" ; | ||
: CVMesh2_edge_exch_contact: | : CVMesh2_edge_exch_contact:start_[[index]] = 0 ; | ||
Hinweise: | Hinweise: | ||
Zeile 474: | Zeile 484: | ||
# Jede Kante des Berechnungsgitters verweist auf eine Austauschfläche (Exchange) des Aggregations-Gitters. | # Jede Kante des Berechnungsgitters verweist auf eine Austauschfläche (Exchange) des Aggregations-Gitters. | ||
# Umgekehrt sind jeder Austauschfläche i.d.R. mehr als eine Kante des Berechnungsgitters zugeordnet. | # Umgekehrt sind jeder Austauschfläche i.d.R. mehr als eine Kante des Berechnungsgitters zugeordnet. | ||
# Kanten des Berechnungsgitters die keinen Kontakt zu Austauschflächen (Exchanges) des Aggregations-Gitters haben enthalten den _FillValue. | # Kanten des Berechnungsgitters, die keinen Kontakt zu Austauschflächen (Exchanges) des Aggregations-Gitters haben enthalten den _FillValue. | ||
---- | ---- |
Aktuelle Version vom 21. Oktober 2022, 10:12 Uhr
Kurze Beschreibung
Ein aus beliebigen Faces (Polygonen, Dreiecke und Vierecke) aufgebautes Berechnungsgitter wird beschrieben. Zusätzlich ist ein Aggregations-Gitter vorhanden. Typische Komponenten eines Aggregations-Gitters sind:
- Kontrollvolumen: mehrere zusammenhängende Faces (Polygone) bilden ein Kontrollvolumen.
- Austauschfläche: eine Austauschfläche (Exchange) entsteht zum einen dort, wo sich verschiedene Kontrollvolumina berühren. Und zum anderen an allen (offenen, durchströmten) Rändern eines Kontrollvolumens zur Umgebung. Austauschflächen setzen sich aus einer oder mehreren Kanten des Berechnungsgitters zusammen, die nicht notwendiger Weise alle zusammenhängen müssen.
Alle Abweichungen/Erweiterungen von den UGRID Conventions sind nachfolgend in der Farbe darkorange farblich hervorgehoben.
Die Beschreibung eines Aggregations-Gitters weist große Ähnlichkeiten mit NetCDF Unstrukturiertes Gitter mit SubGrid auf.
Mit dem Programm NCAGGREGATE können auf einem Berechnungsgitter vorliegende Daten aggregiert werden.
Berechnungsgitter
Die Beschreibung des Berechnungsgitters ist fast vollständig identisch mit der Beschreibung NetCDF Unstrukturiertes Gitter für ein unstrukturiertes Gitter ohne SubGrid. Nachfolgend werden nur diejenigen Variablen wiederholt, deren Definition sich (in Teilen) von derjenigen eines unstrukturierten Gitters ohne SubGrid unterscheidet.
Aggregations-Gitter
Zusätzlich zu dem Berechnungsgitter werden nachfolgend alle zur Beschreibung des Aggregations-Gitters benötigten Variablen aufgeführt.
Kombiniertes Gitter (Parent Mesh)
Die beiden vorgenannten Gitter - Berechnungsgitter und Aggregations-Gitter - werden in einem kombinierten Gitter (Parent Mesh) zusammengefasst. Hierzu gehören auch die verschiedenen Kontaktlisten, die den Zusammenhang zwischen den beiden Teilnetzen beschreiben. Diese Art der Beschreibung basiert im Wesentlichen auf Ideen, die von Bert Jagers (Deltares) erdacht wurden (siehe Deltares Conventions).
Inhalt der Datei
Dimensionen
Berechnungsgitter
- nMesh2_node : Anzahl der Nodes
- nMesh2_edge : Anzahl der Edges
- nMesh2_face : Anzahl der Faces (Polygone)
- nMaxMesh2_face_nodes : maximale Anzahl der Nodes/Edges in einem Face (Polygon)
Aggregations-Gitter
- nCVMesh2_node : Anzahl der Nodes des Aggregations-Gitters
- nCVMesh2_edge : Anzahl der Edges des Aggregations-Gitters
- nCVMesh2_face : Anzahl der Faces (hier Kontrollvolumina) des Aggregations-Gitters
- nCVMaxMesh2_face_nodes : maximale Anzahl der zu einem Face (hier Kontrollvolumen) gehörenden Nodes
- nCVMesh2_exch : Anzahl der Exchanges (hier Austauschflächen)
- nCVMaxMesh2_face_exchs : maximale Anzahl der zu einem Face (hier Kontrollvolumen) gehörenden Exchanges (hier Austauschflächen)
- nCVMaxMesh2_exch_edges : maximale Anzahl der zu einem Face (hier Kontrollvolumen) gehörenden Edges
Konstante
- two : Konstante ( = 2 ).
Lokale Koordinaten
Die Beschreibung der lokalen Koordinaten des Berechnungsgitters stimmt mit derjenigen eines unstrukturierten Gitters überein. Siehe NetCDF Unstrukturiertes Gitter unter "Lokale Koordinaten".
Lokale Koordinaten des Aggregations-Gitters
Knoten
double CVMesh2_node_x(nCVMesh2_node) ;
- CVMesh2_node_x:long_name = "x-Koordinate der Kontroll-Volumen-Knoten" ;
- CVMesh2_node_x:units = "m" ;
- CVMesh2_node_x:name_id = 1650 ;
- CVMesh2_node_x:standard_name = "projection_x_coordinate" ;
double CVMesh2_node_y(nCVMesh2_node) ;
- CVMesh2_node_y:long_name = "y-Koordinate der Kontroll-Volumen-Knoten" ;
- CVMesh2_node_y:units = "m" ;
- CVMesh2_node_y:name_id = 1651 ;
- CVMesh2_node_y:standard_name = "projection_y_coordinate" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Kanten
double CVMesh2_edge_x(nCVMesh2_edge) ;
- CVMesh2_edge_x:long_name = "x-Koordinate der Kontroll-Volumen-Kanten" ;
- CVMesh2_edge_x:units = "m" ;
- CVMesh2_edge_x:name_id = 1650 ;
- CVMesh2_edge_x:bounds = "CVMesh2_edge_x_bnd" ;
- CVMesh2_edge_x:standard_name = "projection_x_coordinate" ;
double CVMesh2_edge_y(nCVMesh2_edge) ;
- CVMesh2_edge_y:long_name = "y-Koordinate der Kontroll-Volumen-Kanten" ;
- CVMesh2_edge_y:units = "m" ;
- CVMesh2_edge_y:name_id = 1651 ;
- CVMesh2_edge_y:bounds = "CVMesh2_edge_y_bnd" ;
- CVMesh2_edge_y:standard_name = "projection_y_coordinate" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Faces (Kontrollvolumen)
double CVMesh2_face_x(nCVMesh2_face) ;
- CVMesh2_face_x:long_name = "x-Koordinate der Kontrollvolumina" ;
- CVMesh2_face_x:units = "m" ;
- CVMesh2_face_x:name_id = 1650 ;
- CVMesh2_face_x:bounds = "CVMesh2_face_x_bnd" ;
- CVMesh2_face_x:standard_name = "projection_x_coordinate" ;
double CVMesh2_face_y(nCVMesh2_face) ;
- CVMesh2_face_y:long_name = "y-Koordinate der Kontrollvolumina" ;
- CVMesh2_face_y:units = "m" ;
- CVMesh2_face_y:name_id = 1651 ;
- CVMesh2_face_y:bounds = "CVMesh2_face_y_bnd" ;
- CVMesh2_face_y:standard_name = "projection_y_coordinate" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- Die Koordinate bezeichnet einen beliebigen, innerhalb des Kontrollvolumens liegenden Punkt.
Exchanges (Austauschfläche)
double CVMesh2_exch_x(nCVMesh2_exch) ;
- CVMesh2_exch_x:long_name = "x-Koordinate der Exchanges" ;
- CVMesh2_exch_x:units = "m" ;
- CVMesh2_exch_x:name_id = 1650 ;
- CVMesh2_exch_x:standard_name = "projection_x_coordinate" ;
double CVMesh2_exch_y(nCVMesh2_exch) ;
- CVMesh2_exch_y:long_name = "y-Koordinate der Exchanges" ;
- CVMesh2_exch_y:units = "m" ;
- CVMesh2_exch_y:name_id = 1651 ;
- CVMesh2_exch_y:standard_name = "projection_y_coordinate" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- Diese Koordinate bezeichnet einen beliebigen, auf der Austauschfläche liegenden Ort. Z. B. die Mitte einer Kante, welche zu dieser Austauschfläche gehört.
Begrenzung der Kanten
double CVMesh2_edge_x_bnd(nCVMesh2_edge, two) ; \\ keine Metadaten erforderlich
double CVMesh2_edge_y_bnd(nCVMesh2_edge, two) ; \\ keine Metadaten erforderlich
Begrenzung der Faces (Kontrollvolumina)
double CVMesh2_face_x_bnd(nCVMesh2_face, nCVMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nCVMaxMesh2_face_nodes definiert
- CVMesh2_face_x_bnd:_FillValue = 1.e+31 ;
double CVMesh2_face_y_bnd(nCVMesh2_face, nCVMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nCVMaxMesh2_face_nodes definiert
- CVMesh2_face_y_bnd:_FillValue = 1.e+31 ;
Hinweise:
- Koordinaten der Knoten (Kontrollvolumina) entgegen dem Uhrzeigersinn angeben.
- Fehlende Punkte mit ungültigen Werten werden mit _FillValue gekennzeichnet. Diese dürfen nur am Ende vorhanden sein.
Geografische Koordinaten
Die Beschreibung der geografischen Koordinaten des Berechnungsgitters stimmt mit derjenigen eines unstrukturierten Gitters überein. Siehe NetCDF Unstrukturiertes Gitter unter "Geografische Koordinaten".
Geografische Koordinaten des Aggregations-Gitters
Knoten
double CVMesh2_node_lon(nCVMesh2_node) ;
- CVMesh2_node_lon:long_name = "geografische Laenge der Kontroll-Volumen-Knoten" ;
- CVMesh2_node_lon:units = "degrees_E" ;
- CVMesh2_node_lon:name_id = 1653 ;
- CVMesh2_node_lon:standard_name = "longitude" ;
double CVMesh2_node_lat(nCVMesh2_node) ;
- CVMesh2_node_lat:long_name = "geografische Breite der Kontroll-Volumen-Knoten" ;
- CVMesh2_node_lat:units = "degrees_N" ;
- CVMesh2_node_lat:name_id = 1652 ;
- CVMesh2_node_lat:standard_name = "latitude" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Kanten
double CVMesh2_edge_lon(nCVMesh2_edge) ;
- CVMesh2_edge_lon:long_name = "geografische Laenge der Kontroll-Volumen-Kanten" ;
- CVMesh2_edge_lon:units = "degrees_E" ;
- CVMesh2_edge_lon:name_id = 1653 ;
- CVMesh2_edge_lon:bounds = "CVMesh2_edge_lon_bnd" ;
- CVMesh2_edge_lon:standard_name = "longitude" ;
double CVMesh2_edge_lat(nCVMesh2_edge) ;
- CVMesh2_edge_lat:long_name = "geografische Breite der Kontroll-Volumen-Kanten" ;
- CVMesh2_edge_lat:units = "degrees_N" ;
- CVMesh2_edge_lat:name_id = 1652 ;
- CVMesh2_edge_lat:bounds = "CVMesh2_edge_lat_bnd" ;
- CVMesh2_edge_lat:standard_name = "latitude" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
Faces (Kontrollvolumen)
double CVMesh2_face_lon(nCVMesh2_face) ;
- CVMesh2_face_lon:long_name = "geografische Laenge der Kontrollvolumina" ;
- CVMesh2_face_lon:units = "degrees_E" ;
- CVMesh2_face_lon:name_id = 1653 ;
- CVMesh2_face_lon:bounds = "CVMesh2_face_lon_bnd" ;
- CVMesh2_face_lon:standard_name = "longitude" ;
double CVMesh2_face_lat(nCVMesh2_face) ;
- CVMesh2_face_lat:long_name = "geografische Breite der Kontrollvolumina" ;
- CVMesh2_face_lat:units = "degrees_N" ;
- CVMesh2_face_lat:name_id = 1652 ;
- CVMesh2_face_lat:bounds = "CVMesh2_face_lat_bnd" ;
- CVMesh2_face_lat:standard_name = "latitude" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- Die Koordinate bezeichnet einen beliebigen, innerhalb des Kontrollvolumens liegenden Punkt.
Exchanges (Austauschfläche)
double CVMesh2_exch_lon(nCVMesh2_exch) ;
- CVMesh2_exch_lon:long_name = "geografische Laenge der Exchanges" ;
- CVMesh2_exch_lon:units = "degrees_E" ;
- CVMesh2_exch_lon:name_id = 1653 ;
- CVMesh2_exch_lon:standard_name = "longitude" ;
double CVMesh2_exch_lat(nCVMesh2_exch) ;
- CVMesh2_exch_lat:long_name = "geografische Breite der Exchanges" ;
- CVMesh2_exch_lat:units = "degrees_N" ;
- CVMesh2_exch_lat:name_id = 1652 ;
- CVMesh2_exch_lat:standard_name = "latitude" ;
Hinweise:
- Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
- Diese Koordinate bezeichnet einen beliebigen, auf der Austauschfläche liegenden Ort. Z. B. die Mitte einer Kante, welche zu dieser Austauschfläche gehört.
Begrenzung der Kanten
double CVMesh2_edge_lon_bnd(nCVMesh2_edge, two) ; \\ keine Metadaten erforderlich
double CVMesh2_edge_lat_bnd(nCVMesh2_edge, two) ; \\ keine Metadaten erforderlich
Begrenzung der Faces (Kontrollvolumina)
double CVMesh2_face_lon_bnd(nCVMesh2_face, nCVMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nCVMaxMesh2_face_nodes definiert
- CVMesh2_face_lon_bnd:_FillValue = 1.e+31 ;
double CVMesh2_face_lat_bnd(nCVMesh2_face, nCVMaxMesh2_face_nodes) ; \\ _FillValue erforderlich, da nicht immer nCVMaxMesh2_face_nodes definiert
- CVMesh2_face_lat_bnd:_FillValue = 1.e+31 ;
Hinweise:
- Koordinaten der Knoten (Kontrollvolumina) entgegen dem Uhrzeigersinn angeben.
- Fehlende Punkte mit ungültigen Werten werden mit _FillValue gekennzeichnet. Diese dürfen nur am Ende vorhanden sein.
Topologische Daten
Berechnungsgitter
Die Konnektivitäts-Listen des Berechnungsgitters stimmen mit derjenigen eines unstrukturierten Gitters ohne SubGrid überein. Siehe NetCDF Unstrukturiertes Gitter unter "Topologische Daten".
Aggregations-Gitter
Knotenverzeichnis der Kontrollvolumina
int CVMesh2_face_nodes(nCVMesh2_face, nCVMaxMesh2_face_nodes) ;
- CVMesh2_face_nodes:long_name = "Knotenverzeichnis der Kontrollvolumina" ;
- CVMesh2_face_nodes:cf_role = "face_node_connectivity" ;
- CVMesh2_face_nodes:_FillValue = -999 ;
- CVMesh2_face_nodes:start_index = 0 ;
Hinweise:
- Nummern der Knoten (des Aggregations-Gitters) der Kontrollvolumina.
- Die Knoten müssen entgegen dem Uhrzeigersinn angegeben werden.
- Nicht vorhandene Knoten mit dem _FillValue kennzeichnen.
- Nicht vorhandene Knoten müssen für jedes Kontrollvolumen die letzten Einträge sein.
Kantenverzeichnis der Kontrollvolumina
int CVMesh2_face_edges(nCVMesh2_face, nCVMaxMesh2_face_nodes) ;
- CVMesh2_face_edges:long_name = "Kantenverzeichnis der Kontrollvolumina" ;
- CVMesh2_face_edges:cf_role = "face_edge_connectivity" ;
- CVMesh2_face_edges:_FillValue = -999 ;
- CVMesh2_face_edges:start_index = 0 ;
Hinweise:
- Nummern der Kanten (des Aggregations-Gitters) der Kontrollvolumina.
- Die Kanten müssen entgegen dem Uhrzeigersinn angegeben werden.
- Nicht vorhandene Kanten mit dem _FillValue kennzeichnen.
- Nicht vorhandene Kanten müssen für jedes Kontrollvolumen die letzten Einträge sein.
Exchangeverzeichnis der Kontrollvolumina
int CVMesh2_face_exchs(nCVMesh2_face, nCVMaxMesh2_face_exchs) ;
- CVMesh2_face_exchs:long_name = "Exchangeverzeichnis der Kontrollvolumina" ;
- CVMesh2_face_exchs:cf_role = "face_exch_connectivity" ;
- CVMesh2_face_exchs:_FillValue = -999 ;
- CVMesh2_face_exchs:start_index = 0 ;
Hinweise:
- Nummern der Austauschflächen (Exchanges) der Kontrollvolumina.
- Die Austauschflächen müssen entgegen dem Uhrzeigersinn angegeben werden.
- Nicht vorhandene Austauschflächen mit dem _FillValue kennzeichnen.
- Nicht vorhandene Austauschflächen müssen für jedes Kontrollvolumen die letzten Einträge sein.
Knotenverzeichnis der Kontrollvolumen-Kanten
int CVMesh2_edge_nodes(nCVMesh2_edge, two) ;
- CVMesh2_edge_nodes:long_name = "Knotenverzeichnis der Kontrollvolumen-Kanten" ;
- CVMesh2_edge_nodes:cf_role = "edge_node_connectivity" ;
- CVMesh2_edge_nodes:start_index = 0 ;
Hinweise:
- Nummern der Knoten (des Aggregations-Gitters) aller Kanten (des Aggregations-Gitters).
- Der erste Knoten kennzeichnet den Beginn, der zweite das Ende der Kante.
Kantenverzeichnis der Exchanges
int CVMesh2_exch_edges(nCVMesh2_exch, nCVMaxMesh2_exch_edges) ;
- CVMesh2_exch_edges:long_name = "Kantenverzeichnis (unsortiert) der Exchanges" ;
- CVMesh2_exch_edges:cf_role = "exch_edge_connectivity" ;
- CVMesh2_exch_edges:_FillValue = -999 ;
- CVMesh2_exch_edges:start_index = 0 ;
Hinweise:
- Nummern der Kanten (des Aggregations-Gitters) aller Austauschflächen (Exchanges).
- Die Kanten sind entlang der Austauschfläche unsortiert angegeben. Austauschflächen können Lücken aufweisen.
- Nicht vorhandene Kanten mit dem _FillValue kennzeichnen.
- Nicht vorhandene Kanten müssen für jede Austauschfläche die letzten Einträge sein.
Kontrollvolumenverzeichnis der Kontrollvolumen-Kanten
int CVMesh2_edge_faces(nCVMesh2_edge, two) ;
- CVMesh2_edge_faces:long_name = "Kontrollvolumenverzeichnis der Kontrollvolumen-Kanten" ;
- CVMesh2_edge_faces:cf_role = "edge_face_connectivity" ;
- CVMesh2_edge_faces:_FillValue = -999 ;
- CVMesh2_edge_faces:start_index = 0 ;
Hinweise:
- Nummern der Kontrollvolumina aller Kanten des Aggregations-Gitters.
- Auf Kanten des (Aggregations-Gitter-) Randes darf ein Nachbar-Kontrollvolumen fehlen; _FillValue verwenden.
Kontrollvolumenverzeichnis der Exchanges
int CVMesh2_exch_faces(nCVMesh2_exch, two) ;
- CVMesh2_exch_faces:long_name = "Kontrollvolumenverzeichnis der Exchanges" ;
- CVMesh2_exch_faces:cf_role = "exch_face_connectivity" ;
- CVMesh2_exch_faces:_FillValue = -999 ;
- CVMesh2_exch_faces:start_index = 0 ;
Hinweise:
- Nummern der Kontrollvolumina aller Austauschflächen (Exchanges) des Aggregations-Gitters.
- Auf Austauschflächen des (Aggregations-Gitter-) Randes darf ein Nachbar-Kontrollvolumen fehlen; _FillValue verwenden.
Topologievariable
Berechnungsgitter
int Mesh2 ;
- Mesh2:long_name = "Berechnungsgitter" ;
- Mesh2:cf_role = "mesh_topology" ; \\ UGRID required
- Mesh2:topology_dimension = 2 ; \\ UGRID required
- Mesh2:node_coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ; \\ UGRID required
- Mesh2:edge_coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ; \\ UGRID optionally required for data at edges
- Mesh2:face_coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat" ; \\ UGRID optionally required for data at faces
- Mesh2:face_node_connectivity = "Mesh2_face_nodes" ; \\ UGRID required
- Mesh2:face_edge_connectivity = "Mesh2_face_edges" ; \\ UGRID optional
- Mesh2:edge_node_connectivity = "Mesh2_edge_nodes" ; \\ UGRID optional
- Mesh2:edge_face_connectivity = "Mesh2_edge_faces" ;
- Mesh2:parent_mesh = "Combined_Mesh2_and_CVMesh" ;
Hinweise:
- In der Praxis müssen nicht alle Verknüpfungslisten (connectivity) angegeben werden, da manche Informationen redundant sind. Sie sollten aber angegeben werden können.
- Die in 2D flexible mesh (mixed triangles, quadrilaterals, etc.) topology aufgeführten Attribute face_dimension und edge_dimension werden in der BAW nicht unterstützt. Dies ist auch nicht erforderlich, da die Reihenfolge der Dimensionen in den Konnektivitäts-Variablen standardkonform sind.
- Das Attribut "parent_mesh" verweist auf das kombinierte Gitter (Parent Mesh) dessen erster Bestandteil das Berechnungsgitter ist.
Aggregations-Gitter
int CVMesh2 ;
- CVMesh2:long_name = "Aggregations-Gitter" ;
- CVMesh2:cf_role = "mesh_topology" ;
- CVMesh2:topology_dimension = 2 ;
- CVMesh2:node_coordinates = "CVMesh2_node_x CVMesh2_node_y CVMesh2_node_lon CVMesh2_node_lat" ;
- CVMesh2:edge_coordinates = "CVMesh2_edge_x CVMesh2_edge_y CVMesh2_edge_lon CVMesh2_edge_lat" ;
- CVMesh2:face_coordinates = "CVMesh2_face_x CVMesh2_face_y CVMesh2_face_lon CVMesh2_face_lat" ;
- CVMesh2:exch_coordinates = "CVMesh2_exch_x CVMesh2_exch_y CVMesh2_exch_lon CVMesh2_exch_lat" ;
- CVMesh2:face_node_connectivity = "CVMesh2_face_nodes" ;
- CVMesh2:face_edge_connectivity = "CVMesh2_face_edges" ;
- CVMesh2:edge_node_connectivity = "CVMesh2_edge_nodes" ;
- CVMesh2:edge_face_connectivity = "CVMesh2_edge_faces" ;
- CVMesh2:face_exch_connectivity = "CVMesh2_face_exchs" ;
- CVMesh2:exch_edge_connectivity = "CVMesh2_exch_edges" ;
- CVMesh2:exch_face_connectivity = "CVMesh2_exch_faces" ;
- CVMesh2:parent_mesh = "Combined_Mesh_and_CVMesh" ;
Hinweise:
- Das Attribut "parent_mesh" verweist auf das kombinierte Gitter (Parent Mesh) dessen zweiter Bestandteil das Aggregationsgitter ist.
Kombiniertes Gitter
int Combined_Mesh_and_CVMesh ;
- Combined_Mesh_and_CVMesh:long_name = "Berechnungs- und Aggregations-Gitter" ;
- Combined_Mesh_and_CVMesh:cf_role = "mesh_topology" ;
- Combined_Mesh_and_CVMesh:sub_meshes = "Mesh2 CVMesh2" ;
- Combined_Mesh_and_CVMesh:mesh_contacts = "CVMesh2_node_contact CVMesh2_edge_contact CVMesh2_face_contact CVMesh2_edge_exch_contact" ;
Hinweise:
- Das Konzept der Parent Mesh Variable ist nicht in den UGRID Conventions enthalten.
- Das Attribut "sub_meshes" verweist auf die beiden, zu dem Parent Mesh gehörenden Gitternetze (Berechnungsgitter, Aggregations-Gitter).
- Das Attribut "mesh_contacts" verweist auf Variablen, welche den Zusammenhang zwischen den zu dem Parent Mesh gehörenden Gitternetzen beschreiben.
Kontaktlisten
Kontaktliste Knoten <-> Aggregations-Gitter-Knoten
int CVMesh2_node_contact(nMesh2_node, two) ;
- CVMesh2_node_contact:long_name = "Liste aller Kontakte zwischen Berechnungs- und CV-Gitter-Knoten" ;
- CVMesh2_node_contact:cf_role = "mesh_topology_contact" ;
- CVMesh2_node_contact:_FillValue = -999 ;
- CVMesh2_node_contact:coordinates = "Mesh2_node_x Mesh2_node_y Mesh2_node_lon Mesh2_node_lat" ;
- CVMesh2_node_contact:grid_mapping = "Mesh2_crs" ;
- CVMesh2_node_contact:contact_meshes = "Mesh2 CVMesh2" ;
- CVMesh2_node_contact:contact_type = "node node" ;
- CVMesh2_node_contact:start_index = 0 ;
Hinweise:
- Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
- Indizes starten mit Null.
- Jeder Knoten des Berechnungsgitters verweist auf einen Knoten des Aggregations-Gitters, und umgekehrt.
- Knoten des Berechnungsgitters, die keinen Kontakt zu Knoten des Aggregations-Gitters haben enthalten den _FillValue.
Kontaktliste Kanten <-> Aggregations-Gitter-Kanten
int CVMesh2_edge_contact(nMesh2_edge, two) ;
- CVMesh2_edge_contact:long_name = "Liste aller Kontakte zwischen Berechnungs- und CV-Gitter-Kanten" ;
- CVMesh2_edge_contact:cf_role = "mesh_topology_contact" ;
- CVMesh2_edge_contact:_FillValue = -999 ;
- CVMesh2_edge_contact:coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ;
- CVMesh2_edge_contact:grid_mapping = "Mesh2_crs" ;
- CVMesh2_edge_contact:contact_meshes = "Mesh2 CVMesh2" ;
- CVMesh2_edge_contact:contact_type = "edge edge" ;
- CVMesh2_edge_contact:start_index = 0 ;
Hinweise:
- Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
- Indizes starten mit Null.
- Jede Kante des Berechnungsgitters verweist auf eine Kante des Aggregations-Gitters, und umgekehrt.
- Kanten des Berechnungsgitters, die keinen Kontakt zu Kanten des Aggregations-Gitters haben enthalten den _FillValue.
Kontaktliste Face (Polygon) <--> Kontrollvolumen
int CVMesh2_face_contact(nMesh2_face, two) ;
- CVMesh2_face_contact:long_name = "Liste aller Kontakte zwischen Berechnungs- und CV-Gitter-Polygonen" ;
- CVMesh2_face_contact:cf_role = "mesh_topology_contact" ;
- CVMesh2_face_contact:_FillValue = -999 ;
- CVMesh2_face_contact:coordinates = "Mesh2_face_x Mesh2_face_y Mesh2_face_lon Mesh2_face_lat" ;
- CVMesh2_face_contact:grid_mapping = "Mesh2_crs" ;
- CVMesh2_face_contact:contact_meshes = "Mesh2 CVMesh2" ;
- CVMesh2_face_contact:contact_type = "face face" ;
- CVMesh2_face_contact:start_index = 0 ;
Hinweise:
- Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
- Indizes starten mit Null.
- Jedes Face (Polygon) des Berechnungsgitters verweist auf ein Face (Kontrollvolumen) des Aggregations-Gitters.
- Umgekehrt sind jedem Kontrollvolumen i.d.R. mehr als ein Face des Berechnungsgitters zugeordnet.
- Faces (Polygone) des Berechnungsgitters, die keinen Kontakt zu Faces (Kontrollvolumina) des Aggregations-Gitters haben enthalten den _FillValue.
Kontaktliste Kante <--> Austauschfläche
int CVMesh2_edge_exch_contact(nMesh2_edge, two) ;
- CVMesh2_edge_exch_contact:long_name = "Liste aller Kontakte zwischen Berechnungs-Kanten und CV-Exchanges" ;
- CVMesh2_edge_exch_contact:cf_role = "mesh_topology_contact" ;
- CVMesh2_edge_exch_contact:_FillValue = -999 ;
- CVMesh2_edge_exch_contact:coordinates = "Mesh2_edge_x Mesh2_edge_y Mesh2_edge_lon Mesh2_edge_lat" ;
- CVMesh2_edge_exch_contact:grid_mapping = "Mesh2_crs" ;
- CVMesh2_edge_exch_contact:contact_meshes = "Mesh2 CVMesh2" ;
- CVMesh2_edge_exch_contact:contact_type = "edge exch" ;
- CVMesh2_edge_exch_contact:start_index = 0 ;
Hinweise:
- Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
- Indizes starten mit Null.
- Jede Kante des Berechnungsgitters verweist auf eine Austauschfläche (Exchange) des Aggregations-Gitters.
- Umgekehrt sind jeder Austauschfläche i.d.R. mehr als eine Kante des Berechnungsgitters zugeordnet.
- Kanten des Berechnungsgitters, die keinen Kontakt zu Austauschflächen (Exchanges) des Aggregations-Gitters haben enthalten den _FillValue.
zurück zu NetCDF