NetCDF Kompression von Daten durch Aufsammeln: Unterschied zwischen den Versionen
Aus BAWiki
imported>Lang Guenther Keine Bearbeitungszusammenfassung |
imported>Lang Guenther (Sicherheitskopie) |
||
Zeile 6: | Zeile 6: | ||
=Beispiel= | =Beispiel= | ||
==Unkomprimierte Daten== | ==Unkomprimierte Daten== | ||
:: double Mesh2_poly_salinity_3d(time,poly_depth_3d,nMesh2_poly) ; | |||
::: Mesh2_poly_salinity_3d:standard_name = "'''sea_water_salinity'''" ; | |||
::: Mesh2_poly_salinity_3d:long_name = "salinity for 2D mesh polygons, vertically structured" ; | |||
::: Mesh2_poly_salinity_3d:units = "0.001" ; | |||
::: Mesh2_poly_salinity_3d:coordinates = "Mesh2_poly_lon Mesh2_poly_lat" ; | |||
::: Mesh2_poly_salinity_3d:_FillValue = ''fillvalue'' ; | |||
::: Mesh2_poly_salinity_3d:valid_range = ''valid minimum'', ''valid maximum'' ; | |||
::: Mesh2_poly_salinity_3d:cell_methods = "poly_depth_3d: mean nMesh2_poly: mean" ; | |||
::: Mesh2_poly_salinity_3d:cell_measures = "volume: Mesh2_poly_water_volume_3d" ; | |||
::: Mesh2_poly_salinity_3d:grid_mapping = "crs" ; | |||
Für jeden Zeitschritt werden ''poly_depth_3d'' mal ''nMesh2_poly'' Werte erzeugt. Diese Zahl kann bei Verwendung von z-Schichten sehr viel größer als die Anzahl aktiver Datenpunkte sein, da die Anzahl der über einem Polygon befindlichen (aktiven) Datenpunkte von Polygon zu Polygon bei variabler Topografie sehr stark schwanken kann. Mit dieser Definition der Variablen würden dann unnötig viele, dauerhaft ungültige Datenwerte mit ''_FillValue'' in der Datei abgelegt werden. | |||
==Komprimierte Daten== | ==Komprimierte Daten== | ||
:: double Mesh2_poly_salinity_3d(time,<font color=blue>nMesh2_cell</font>) ; | |||
::: Mesh2_poly_salinity_3d:standard_name = "'''sea_water_salinity'''" ; | |||
::: Mesh2_poly_salinity_3d:long_name = "salinity for 2D mesh polygons, vertically structured" ; | |||
::: Mesh2_poly_salinity_3d:units = "0.001" ; | |||
::: Mesh2_poly_salinity_3d:coordinates = "Mesh2_poly_lon Mesh2_poly_lat" ; | |||
::: Mesh2_poly_salinity_3d:_FillValue = ''fillvalue'' ; | |||
::: Mesh2_poly_salinity_3d:valid_range = ''valid minimum'', ''valid maximum'' ; | |||
::: Mesh2_poly_salinity_3d:cell_methods = "nMesh2_cell: mean" ; | |||
::: Mesh2_poly_salinity_3d:cell_measures = "volume: Mesh2_poly_water_volume_3d" ; | |||
::: Mesh2_poly_salinity_3d:grid_mapping = "crs" ; | |||
Für jeden Zeitschritt werden nur noch ''nMesh2_cell'' Werte erzeugt. Dies entspricht der maximalen Anzahl aktiver Datenpunkte. Hierdurch wird der Speicherplatzbedarf um typischer Weise 60 bis 80 % reduziert. Der Zusammenhang von ''nMesh2_cell'' mit ''poly_depth_3d'' und ''nMesh2_poly'' wird mit Hilfe der (zusätzliche) Koordinatenvariable ''nMesh2_cell'' beschrieben: | |||
:: integer <font color=blue>nMesh2_cell</font>(<font color=blue>nMesh2_cell</font>) ; | |||
::: nMesh2_cell:compress = "poly_depth_3d nMesh2_poly" ; | |||
---- | ---- |
Version vom 14. September 2010, 08:22 Uhr
Kurze Beschreibung
Kompression von Daten durch Aufsammeln. Darunter versteht man den Vorgang, dauerhaft fehlende Daten eines Datensatzes (einer Variablen) vor dem Schreiben der Daten in eine Datei aus dem Datensatz zu entfernen.
Beispiel
Unkomprimierte Daten
- double Mesh2_poly_salinity_3d(time,poly_depth_3d,nMesh2_poly) ;
- Mesh2_poly_salinity_3d:standard_name = "sea_water_salinity" ;
- Mesh2_poly_salinity_3d:long_name = "salinity for 2D mesh polygons, vertically structured" ;
- Mesh2_poly_salinity_3d:units = "0.001" ;
- Mesh2_poly_salinity_3d:coordinates = "Mesh2_poly_lon Mesh2_poly_lat" ;
- Mesh2_poly_salinity_3d:_FillValue = fillvalue ;
- Mesh2_poly_salinity_3d:valid_range = valid minimum, valid maximum ;
- Mesh2_poly_salinity_3d:cell_methods = "poly_depth_3d: mean nMesh2_poly: mean" ;
- Mesh2_poly_salinity_3d:cell_measures = "volume: Mesh2_poly_water_volume_3d" ;
- Mesh2_poly_salinity_3d:grid_mapping = "crs" ;
- double Mesh2_poly_salinity_3d(time,poly_depth_3d,nMesh2_poly) ;
Für jeden Zeitschritt werden poly_depth_3d mal nMesh2_poly Werte erzeugt. Diese Zahl kann bei Verwendung von z-Schichten sehr viel größer als die Anzahl aktiver Datenpunkte sein, da die Anzahl der über einem Polygon befindlichen (aktiven) Datenpunkte von Polygon zu Polygon bei variabler Topografie sehr stark schwanken kann. Mit dieser Definition der Variablen würden dann unnötig viele, dauerhaft ungültige Datenwerte mit _FillValue in der Datei abgelegt werden.
Komprimierte Daten
- double Mesh2_poly_salinity_3d(time,nMesh2_cell) ;
- Mesh2_poly_salinity_3d:standard_name = "sea_water_salinity" ;
- Mesh2_poly_salinity_3d:long_name = "salinity for 2D mesh polygons, vertically structured" ;
- Mesh2_poly_salinity_3d:units = "0.001" ;
- Mesh2_poly_salinity_3d:coordinates = "Mesh2_poly_lon Mesh2_poly_lat" ;
- Mesh2_poly_salinity_3d:_FillValue = fillvalue ;
- Mesh2_poly_salinity_3d:valid_range = valid minimum, valid maximum ;
- Mesh2_poly_salinity_3d:cell_methods = "nMesh2_cell: mean" ;
- Mesh2_poly_salinity_3d:cell_measures = "volume: Mesh2_poly_water_volume_3d" ;
- Mesh2_poly_salinity_3d:grid_mapping = "crs" ;
- double Mesh2_poly_salinity_3d(time,nMesh2_cell) ;
Für jeden Zeitschritt werden nur noch nMesh2_cell Werte erzeugt. Dies entspricht der maximalen Anzahl aktiver Datenpunkte. Hierdurch wird der Speicherplatzbedarf um typischer Weise 60 bis 80 % reduziert. Der Zusammenhang von nMesh2_cell mit poly_depth_3d und nMesh2_poly wird mit Hilfe der (zusätzliche) Koordinatenvariable nMesh2_cell beschrieben:
- integer nMesh2_cell(nMesh2_cell) ;
- nMesh2_cell:compress = "poly_depth_3d nMesh2_poly" ;
- integer nMesh2_cell(nMesh2_cell) ;
zurück zu NetCDF