Aktionen

NetCDF Aggregation für unstrukturierte Gitter: Unterschied zwischen den Versionen

Aus BAWiki

imported>Lang Guenther
(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>).)
 
(14 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 ziwschen den beiden Teilnetzen beschreiben.
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:start_index = 0 ;
: CVMesh2_face_nodes:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 280: 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:start_index = 0 ;
: CVMesh2_face_edges:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 294: 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:start_index = 0 ;
: CVMesh2_face_exchs:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 307: 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:start_index = 0 ;
: CVMesh2_edge_nodes:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 319: 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:start_index = 0 ;
: 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 332: 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:start_index = 0 ;
: 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 343: 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:start_index = 0 ;
: 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 379: 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>exch_coordinates</font> = "CVMesh2_exch_x CVMesh2_exch_y CVMesh2_exch_lon CVMesh2_exch_lat" ;
: 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 403: 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 "mesh_contacs" verweist auf Variablen, welche den Zusammenhang zwischen den zu dem ''Parent Mesh'' gehörenden Gitternetzen beschreiben.
# Das Attribut "mesh_contacts" verweist auf Variablen, welche den Zusammenhang zwischen den zu dem ''Parent Mesh'' gehörenden Gitternetzen beschreiben.


==Kontaktlisten==
==Kontaktlisten==
Zeile 417: 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:start_index = 0 ;
: CVMesh2_node_contact:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 423: 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 435: 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:start_index = 0 ;
: CVMesh2_edge_contact:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 441: 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 453: 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:start_index = 0 ;
: CVMesh2_face_contact:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 460: 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 472: 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:start_index = 0 ;
: CVMesh2_edge_exch_contact:start_[[index]] = 0 ;


Hinweise:
Hinweise:
Zeile 479: 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

  1. nMesh2_node : Anzahl der Nodes
  2. nMesh2_edge : Anzahl der Edges
  3. nMesh2_face : Anzahl der Faces (Polygone)
  4. nMaxMesh2_face_nodes : maximale Anzahl der Nodes/Edges in einem Face (Polygon)

Aggregations-Gitter

  1. nCVMesh2_node : Anzahl der Nodes des Aggregations-Gitters
  2. nCVMesh2_edge : Anzahl der Edges des Aggregations-Gitters
  3. nCVMesh2_face : Anzahl der Faces (hier Kontrollvolumina) des Aggregations-Gitters
  4. nCVMaxMesh2_face_nodes : maximale Anzahl der zu einem Face (hier Kontrollvolumen) gehörenden Nodes
  5. nCVMesh2_exch : Anzahl der Exchanges (hier Austauschflächen)
  6. nCVMaxMesh2_face_exchs : maximale Anzahl der zu einem Face (hier Kontrollvolumen) gehörenden Exchanges (hier Austauschflächen)
  7. nCVMaxMesh2_exch_edges : maximale Anzahl der zu einem Face (hier Kontrollvolumen) gehörenden Edges

Konstante

  1. 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:

  1. 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:

  1. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. 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:

  1. Koordinaten der Knoten (Kontrollvolumina) entgegen dem Uhrzeigersinn angeben.
  2. 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:

  1. 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:

  1. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. 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:

  1. Das Attribut "name_id" entspricht der (BAW) PHYDEF-Code-Kennung der Variablen.
  2. 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:

  1. Koordinaten der Knoten (Kontrollvolumina) entgegen dem Uhrzeigersinn angeben.
  2. 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:

  1. Nummern der Knoten (des Aggregations-Gitters) der Kontrollvolumina.
  2. Die Knoten müssen entgegen dem Uhrzeigersinn angegeben werden.
  3. Nicht vorhandene Knoten mit dem _FillValue kennzeichnen.
  4. 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:

  1. Nummern der Kanten (des Aggregations-Gitters) der Kontrollvolumina.
  2. Die Kanten müssen entgegen dem Uhrzeigersinn angegeben werden.
  3. Nicht vorhandene Kanten mit dem _FillValue kennzeichnen.
  4. 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:

  1. Nummern der Austauschflächen (Exchanges) der Kontrollvolumina.
  2. Die Austauschflächen müssen entgegen dem Uhrzeigersinn angegeben werden.
  3. Nicht vorhandene Austauschflächen mit dem _FillValue kennzeichnen.
  4. 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:

  1. Nummern der Knoten (des Aggregations-Gitters) aller Kanten (des Aggregations-Gitters).
  2. 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:

  1. Nummern der Kanten (des Aggregations-Gitters) aller Austauschflächen (Exchanges).
  2. Die Kanten sind entlang der Austauschfläche unsortiert angegeben. Austauschflächen können Lücken aufweisen.
  3. Nicht vorhandene Kanten mit dem _FillValue kennzeichnen.
  4. 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:

  1. Nummern der Kontrollvolumina aller Kanten des Aggregations-Gitters.
  2. 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:

  1. Nummern der Kontrollvolumina aller Austauschflächen (Exchanges) des Aggregations-Gitters.
  2. 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:

  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.
  2. 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.
  3. 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:

  1. 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:

  1. Das Konzept der Parent Mesh Variable ist nicht in den UGRID Conventions enthalten.
  2. Das Attribut "sub_meshes" verweist auf die beiden, zu dem Parent Mesh gehörenden Gitternetze (Berechnungsgitter, Aggregations-Gitter).
  3. 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:

  1. Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
  2. Indizes starten mit Null.
  3. Jeder Knoten des Berechnungsgitters verweist auf einen Knoten des Aggregations-Gitters, und umgekehrt.
  4. 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:

  1. Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
  2. Indizes starten mit Null.
  3. Jede Kante des Berechnungsgitters verweist auf eine Kante des Aggregations-Gitters, und umgekehrt.
  4. 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:

  1. Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
  2. Indizes starten mit Null.
  3. Jedes Face (Polygon) des Berechnungsgitters verweist auf ein Face (Kontrollvolumen) des Aggregations-Gitters.
  4. Umgekehrt sind jedem Kontrollvolumen i.d.R. mehr als ein Face des Berechnungsgitters zugeordnet.
  5. 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:

  1. Das Konzept der Mesh Topology Contact Variable ist nicht in den UGRID Conventions enthalten.
  2. Indizes starten mit Null.
  3. Jede Kante des Berechnungsgitters verweist auf eine Austauschfläche (Exchange) des Aggregations-Gitters.
  4. Umgekehrt sind jeder Austauschfläche i.d.R. mehr als eine Kante des Berechnungsgitters zugeordnet.
  5. Kanten des Berechnungsgitters, die keinen Kontakt zu Austauschflächen (Exchanges) des Aggregations-Gitters haben enthalten den _FillValue.

zurück zu NetCDF


Strukturübersicht