NetCDF Grid Mapping Variable
Aus BAWiki
Kurze Beschreibung
Falls die horizontalen Koordinatenvariablen einer Variablen nicht "longitude" und "latitude" sind, so muss der Hinweis auf die wahre geografische Länge und Breite über das Attribut coordinates erfolgen. Zusätzlich ist es wünschenswert auf die benutzte Koordinatentransformation mit dem Attribut grid_mapping hinzuweisen. Da letzteres ein Attribut von (Daten-) Variablen ist, können verschiedene Variablen unterschiedliche Koordinatentransformationen verwenden. Das Attribut grid_mapping verweist hierbei auf eine skalare Variable, deren Attribute die Koordinatentransformation beschreiben.
Falls beispielsweise die Komponente einer vektoriellen Größe nicht in Richtung der geografischen Koordinaten gegeben ist, so muss auf die benutzte Koordinatentransformation ebenfalls mit dem Attribut grid_mapping hingewiesen werden.
Grid Mapping Variable
Eine ausführliche Beschreibung aller Möglichkeiten ist in dem Anhang F der CF Metadaten Konvention enthalten. Nacholgend werden drei für die BAW wichtige Beispiele vorgestellt.
Transverse Mercator Projektion
Dieser Transformationstyp kann für UTM-Koordinaten und Gauß-Krüger-Koordinaten benutzt werden.
- integer crs ; \\ no value for this container variable must be specified
- crs:grid_mapping_name = "transverse_mercator" ;
- crs:scale_factor_at_central_merdian = value ;
- crs:longitude_of_central_meridian = value ;
- crs:latitude_of_projection_origin = value ;
- crs:false_easting = value ;
- crs:false_northing = value ;
- crs:longitude_of_prime_meridian = value ; // optional but recommended
- crs:semi_major_axis = value ; // optional but recommended
- crs:inverse_flattening = value ; // optional but recommended
- crs:comment = "X , Y : beschreibender Text zu akt. Transformation\\nLON, LAT : Ellipsoid - European Terrestrial Reference System 1989" ; // additional BAW-DH
- crs:epsg_code = "EPSG:epsg-code" ; // see EPSG Geodetic Parameter Registry
- integer crs ; \\ no value for this container variable must be specified
Gängige EPSG-Codes sind beispielsweise 31466, 31467, 31468, 31469 (alle Gauß-Krüger) oder 25831, 25832 (alle UTM).
Geografische Koordinaten (ETRS 1989)
- integer crs ; \\ no value for this container variable must be specified
- crs:grid_mapping_name = "latitude_longitude" ;
- crs:semi_major_axis = 6378137.00 ; // optional but recommended
- crs:inverse_flattening = 298.257222101 ; // optional but recommended
- crs:comment = "X , Y : beschreibender Text zu akt. Transformation; // optional
- crs:epsg_code = "EPSG:4258" ; // see EPSG Geodetic Parameter Registry
- integer crs ; \\ no value for this container variable must be specified
Rotierte geografische Koordinaten
- integer crs ; \\ no value for this container variable must be specified
- crs:grid_mapping_name = "rotated_latitude_longitude" ;
- crs:grid_north_pole_longitude = value ;
- crs:grid_north_pole_latitude = value ;
- integer crs ; \\ no value for this container variable must be specified
Beispiele
Verweis auf Grid Mapping Variable
Eine (Daten-) Variable deren (horizontale) Koordinaten nicht "longitude" und "latitude" sind, muss mit dem Attribut coordinates auf die eigentlichen geografischen Koordinaten verweisen. Zusätzlich kann das Attribut grid_mapping zur Kennzeichnung der benutzten Koordinatentransformation angegeben werden. Beispiel:
- double Mesh0_node_water_depth_2d(time,nMesh0_node) ;
- Mesh0_node_water_depth_2d:standard_name = "sea_floor_depth_below_sea_surface" ;
- Mesh0_node_water_depth_2d:long_name = "water depth at locations, vertically integrated" ;
- Mesh0_node_water_depth_2d:units = "m" ;
- Mesh0_node_water_depth_2d:coordinates = "Mesh0_node_lon Mesh0_node_lat" ;
- Mesh0_node_water_depth_2d:_FillValue = fillvalue ;
- Mesh0_node_water_depth_2d:valid_range = valid minimum, valid maximum ;
- Mesh0_node_water_depth_2d:grid_mapping = "crs" ;
- double Mesh0_node_water_depth_2d(time,nMesh0_node) ;
Die Attribute zeigen an, dass geografische Länge und Breite in den Variablen "Mesh0_node_lon" und "Mesh0_node_lat", und die Informationen zur benutzten Koordinatentransformation in der Variablen "crs" abgelegt sind.
Wind in rotierten geografischen Koordinaten
Die Komponenten des Windes liegen als lokaler Wind ("x_wind", "y_wind") in geografischen Koordinaten vor. Die in dem Attribut "grid_mapping" bezeichnete Variable "crs" verweist auf die Koordinatentransformation.
- float ugrd10m(time, latitude, longitude) ;
- ugrd10m:name_id = 557s ;
- ugrd10m:grid_mapping = "crs" ;
- ugrd10m:standard_name = "x_wind" ;
- ugrd10m:units = "m/s" ;
- ugrd10m:_FillValue = 9.999e+20 ;
- ugrd10m:long_name = "10 m above ground u-component of wind" ;
- float ugrd10m(time, latitude, longitude) ;
- float vgrd10m(time, latitude, longitude) ;
- vgrd10m:name_id = 558s ;
- vgrd10m:grid_mapping = "crs" ;
- vgrd10m:standard_name = "y_wind" ;
- vgrd10m:units = "m/s" ;
- vgrd10m:_FillValue = 9.999e+20 ;
- vgrd10m:long_name = "10 m above ground v-component of wind" ;
- float vgrd10m(time, latitude, longitude) ;
- int crs ;
- crs:grid_mapping_name = "rotated_latitude_longitude" ;
- crs:grid_north_pole_longitude = -170. ;
- crs:grid_north_pole_latitude = 40. ;
- int crs ;
Eine generische Anwendung erkennt, dass die Komponenten des Windes in lokalen Koordinaten definiert sind ("x_wind", "y_wind"). Werden die Komponenten als "eastward_wind" und "northward_wind" benötigt, so kann mit Hilfe der in der Variablen "crs" abgelegten Parameter eine Umrechnung aus dem rotierten geografischen System durchgeführt werden. Für eine korrekte Transformation müssen hier sowohl die Standardnamen der Variablen als auch die Grid-Mapping-Variable ausgewertet werden.
Sonstiges
Koordinatensystem in ArcGIS
Siehe hierzu ArcGIS: Daten aus CF-NetCDF-Datei importieren.
zurück zu NetCDF