Wykład 15 Formaty Danych Meteorologicznych
description
Transcript of Wykład 15 Formaty Danych Meteorologicznych
Wykład 15Wykład 15Formaty Danych Formaty Danych
MeteorologicznychMeteorologicznych
Krzysztof MarkowiczKrzysztof Markowicz
[email protected]@igf.fuw.edu.pl
Formaty danych metrologicznychFormaty danych metrologicznych
Zapisywanie danych meteorologicznych obejmujących Zapisywanie danych meteorologicznych obejmujących dane: synoptyczne, klimatyczne, satelitarne czy też dane: synoptyczne, klimatyczne, satelitarne czy też wyniki obliczeń numerycznych prognoz pogody w wyniki obliczeń numerycznych prognoz pogody w odpowiednim formacie stanowi zasadnicza kwestia w odpowiednim formacie stanowi zasadnicza kwestia w sensie ich przesyłania, archiwizacji i budowy baz danych sensie ich przesyłania, archiwizacji i budowy baz danych z możliwością dostępu dla użytkowników.z możliwością dostępu dla użytkowników.
Niestety nie stanieje żaden standardowy format, w Niestety nie stanieje żaden standardowy format, w
którym zapisywane byłby wyżej wspominane dane.którym zapisywane byłby wyżej wspominane dane. Dlatego też czytanie danych meteorologicznych wymaga Dlatego też czytanie danych meteorologicznych wymaga niejednokrotnie używania specjalnych programów, które niejednokrotnie używania specjalnych programów, które zależą od systemów operacyjnych i rodzajów używanych zależą od systemów operacyjnych i rodzajów używanych komputerów. komputerów.
Pliki tekstowe i binarnePliki tekstowe i binarne
Rozróżniamy dwa rodzaje plików: tekstowe i binarne. Nazwy są Rozróżniamy dwa rodzaje plików: tekstowe i binarne. Nazwy są trochę mylące, bo wszystkie pliki są binarne, czyli ,,zero-trochę mylące, bo wszystkie pliki są binarne, czyli ,,zero-jedynkowe''. jedynkowe''. Jednak pliki tekstowe zajmują wśród nich wyróżnioną pozycję, Jednak pliki tekstowe zajmują wśród nich wyróżnioną pozycję, sposób ich odczytywania jest bowiem najbardziej sposób ich odczytywania jest bowiem najbardziej rozpowszechnionym Znajdują się w nich litery, zamienione na bity.rozpowszechnionym Znajdują się w nich litery, zamienione na bity.Zapisany w ten sposób plik można odczytać na dowolnym Zapisany w ten sposób plik można odczytać na dowolnym komputerze, niezależnie od systemu operacyjnego itp. W komputerze, niezależnie od systemu operacyjnego itp. W dodatku ,,odczytać'' możemy tu rozumieć dosłownie, gdyż po dodatku ,,odczytać'' możemy tu rozumieć dosłownie, gdyż po zamianie bitów na litery (czyli wyświetleniu pliku ASCII) pojawia się zamianie bitów na litery (czyli wyświetleniu pliku ASCII) pojawia się tekst, zwykle zrozumiały dla człowieka. tekst, zwykle zrozumiały dla człowieka. Ogólnie, pliki binarne to wszystkie pliki nietekstowe. Mogą zawierać Ogólnie, pliki binarne to wszystkie pliki nietekstowe. Mogą zawierać obrazy, lub dowolne dane. Jeśli zapisano je w jednym z ogólnie obrazy, lub dowolne dane. Jeśli zapisano je w jednym z ogólnie przyjętych standardów to zwykle daje się je odczytać na większości przyjętych standardów to zwykle daje się je odczytać na większości komputerów, jeśli tylko zainstalowano na nich odpowiednie komputerów, jeśli tylko zainstalowano na nich odpowiednie programy. To jednak znacznie komplikuje i utrudnia zadanie programy. To jednak znacznie komplikuje i utrudnia zadanie użytkownikom którzy zajmują się analiza tego typu danychużytkownikom którzy zajmują się analiza tego typu danych
Hierarchical Data Format- HDFHierarchical Data Format- HDF
HDFHDF jest biblioteka oraz wielowymiarowym formatem jest biblioteka oraz wielowymiarowym formatem plików używanym do przesyłania danych w postaci plików używanym do przesyłania danych w postaci graficznej oraz numerycznej po miedzy komputerami.graficznej oraz numerycznej po miedzy komputerami.Format HDF zawiera kilka modułów danych: Format HDF zawiera kilka modułów danych: wielowymiarowe macierze, grafikę rastowa oraz tablice. wielowymiarowe macierze, grafikę rastowa oraz tablice. Każdy z nich zawiera zespół zmiennych, które mogą być Każdy z nich zawiera zespół zmiennych, które mogą być zapisywane, czytane oraz dodawane przez użytkownikazapisywane, czytane oraz dodawane przez użytkownikaFormat HDF jest samoopisujący się co oznacza, że Format HDF jest samoopisujący się co oznacza, że czytając plik z danymi nie musimy posiadać żadnej czytając plik z danymi nie musimy posiadać żadnej informacji o strukturze pliku. informacji o strukturze pliku. Pliki w formacie HDF mogą być wymieniane pomiędzy Pliki w formacie HDF mogą być wymieniane pomiędzy większością komputerów i systemów operacyjnych. Z większością komputerów i systemów operacyjnych. Z czym nie radzi sobie większość formatów binarnych. czym nie radzi sobie większość formatów binarnych. Format HDF używany jest najczęściej dla danych Format HDF używany jest najczęściej dla danych satelitarnychsatelitarnych
GRIBGRIB ( (GRIdded BinaryGRIdded Binary))
To matematyczny format używany na potrzeby To matematyczny format używany na potrzeby meteorologii do archiwizowania danych historycznych meteorologii do archiwizowania danych historycznych oraz numerycznych prognoz pogodyoraz numerycznych prognoz pogodyGRIP jest formatem standardowym zaakceptowanym GRIP jest formatem standardowym zaakceptowanym przez przez WorldWorld MeteorologicalMeteorological OrganizationOrganization jakos GRIB FM jakos GRIB FM 92-IX, opisany w raporach WMO (Manual on Codes 92-IX, opisany w raporach WMO (Manual on Codes No.306). No.306). Obecnie funkcjonują dwie wersje GRIB-ow:Obecnie funkcjonują dwie wersje GRIB-ow:Edycja pierwsza GRIB-ow jest szeroko używana przez Edycja pierwsza GRIB-ow jest szeroko używana przez centra meteorologiczne na potrzeby numerycznych centra meteorologiczne na potrzeby numerycznych prognoz pogodyprognoz pogodyNowej generacji (druga edycja) nie jest używana tak Nowej generacji (druga edycja) nie jest używana tak powszechnie. Wyjątkiem jest Eumetcast, gdzie w powszechnie. Wyjątkiem jest Eumetcast, gdzie w GRIBAch zapisuje się produkty związane z Meteosatem GRIBAch zapisuje się produkty związane z Meteosatem drugiej generacji (Meteosat Second Generation)drugiej generacji (Meteosat Second Generation)
NetCDFNetCDF ( (Network Common Data FormNetwork Common Data Form Cechy Formatu NetCDFCechy Formatu NetCDF
samo-opisujący się (plik netCDF zawiera informacje o samo-opisujący się (plik netCDF zawiera informacje o zawartych w nim danych). zawartych w nim danych). niezależny od architektury komputera niezależny od architektury komputera bezpośredni dostęp do danych (dowolna część danych bezpośredni dostęp do danych (dowolna część danych może być efektywnie czytana bez wcześniejszego może być efektywnie czytana bez wcześniejszego czytania poprzedzający danych) czytania poprzedzający danych) dane mogą być dopisywane do pliku w jednym wymiarze dane mogą być dopisywane do pliku w jednym wymiarze bez przedefiniowania struktury pliku. bez przedefiniowania struktury pliku. istnieje możliwość zmiany struktury pliku oraz istnieje możliwość zmiany struktury pliku oraz kopiowanie innych ustawień kopiowanie innych ustawień równoczesna dostępność do pliku przez osobę równoczesna dostępność do pliku przez osobę zapisującą dane jak i użytkowników czytając do zapisującą dane jak i użytkowników czytając do
języki w jakich napisane zostały biblioteki NetCDFjęzyki w jakich napisane zostały biblioteki NetCDFC C
C++ C++
Fortran Fortran
Perl Perl
Jave Jave
niektóre programy służące do czytania plików niektóre programy służące do czytania plików
NetCDF:NetCDF: IDL Interface IDL Interface
MATLAB MATLAB
NCAR Graphics NCAR Graphics
FERRET FERRET
GrADS GrADS
HDF Interface HDF Interface
Struktura pliku NetCDFStruktura pliku NetCDF
a) header - część opisująca zmienne zawierająca informacje o: a) header - część opisująca zmienne zawierająca informacje o: wymiarach wymiarach atrybutach atrybutach zmiennych zmiennych b) sekcja danych - zawiera właściwe dane o: b) sekcja danych - zawiera właściwe dane o: ograniczonych wymiarach ograniczonych wymiarach nieograniczonym (jednym) wymiarze nieograniczonym (jednym) wymiarze c) typy zmiennych: c) typy zmiennych: ncbyte 1 Byte ncbyte 1 Byte ncchar 1 Byte ncchar 1 Byte ncshort 2 Byte ncshort 2 Byte ncint 4 Byte ncint 4 Byte ncfloat 4 Byte ncfloat 4 Byte ncdouble 8 Byte ncdouble 8 Byte
netcdf uwnd10m.mon.mean {netcdf uwnd10m.mon.mean {dimensions:dimensions: lon = 192 ;lon = 192 ; lat = 94 ;lat = 94 ; time = UNLIMITED ; // (694 currently)time = UNLIMITED ; // (694 currently)variables:variables: float lat(lat) ;float lat(lat) ; lat:units = "degrees_north" ;lat:units = "degrees_north" ; lat:actual_range = 88.542f -88.542f ;lat:actual_range = 88.542f -88.542f ; lat:long_name = "Latitude" ;lat:long_name = "Latitude" ; float lon(lon) ;float lon(lon) ; lon:units = "degrees_east" ;lon:units = "degrees_east" ; lon:long_name = "Longitude" ;lon:long_name = "Longitude" ; lon:actual_range = 0.f, 358.125f ;lon:actual_range = 0.f, 358.125f ; double time(time) ;double time(time) ; time:units = "hours since 1-1-1 00:00:0.0" ;time:units = "hours since 1-1-1 00:00:0.0" ; time:long_name = "Time" ;time:long_name = "Time" ; time:actual_range = 17067072., 17573304. ;time:actual_range = 17067072., 17573304. ; time:delta_t = "0000-01-00 00:00:00" ;time:delta_t = "0000-01-00 00:00:00" ; time:avg_period = "0017-00-00 00:00:00" ;time:avg_period = "0017-00-00 00:00:00" ; time:prev_avg_period = "0000-00-01 00:00:00" ;time:prev_avg_period = "0000-00-01 00:00:00" ; float uwnd(time, lat, lon) ;float uwnd(time, lat, lon) ;
float uwnd(time, lat, lon) ;float uwnd(time, lat, lon) ; uwnd:long_name = "Monthly Mean of U-Wind" ;uwnd:long_name = "Monthly Mean of U-Wind" ; uwnd:valid_range = -102.2f, 102.2f ;uwnd:valid_range = -102.2f, 102.2f ; uwnd:actual_range = -13.76903f, 14.4571f ;uwnd:actual_range = -13.76903f, 14.4571f ; uwnd:units = "m/s" ;uwnd:units = "m/s" ; uwnd:add_offset = 0.f ;uwnd:add_offset = 0.f ; uwnd:scale_factor = 1.f ;uwnd:scale_factor = 1.f ; uwnd:missing_value = 32766s ;uwnd:missing_value = 32766s ; uwnd:precision = 2s ;uwnd:precision = 2s ; uwnd:least_significant_digit = 1s ;uwnd:least_significant_digit = 1s ; uwnd:GRIB_id = 11s ;uwnd:GRIB_id = 11s ; uwnd:var_desc = "u-wind" ;uwnd:var_desc = "u-wind" ; uwnd:dataset = "CDC Derived NCEP Reanalysis Products\n",uwnd:dataset = "CDC Derived NCEP Reanalysis Products\n", "AC" ;"AC" ; uwnd:level_desc = "10 m\n",uwnd:level_desc = "10 m\n", "P" ;"P" ; uwnd:statistic = "Mean\n",uwnd:statistic = "Mean\n", "M" ;"M" ; uwnd:parent_stat = "Individual Obs\n",uwnd:parent_stat = "Individual Obs\n", "I" ; "I" ;
// global attributes:// global attributes: :Conventions = "COARDS" ;:Conventions = "COARDS" ; :title = "monthly mean u wind" ;:title = "monthly mean u wind" ; :history = "renamevars Thu Feb 1 09:41:58 2001 from :history = "renamevars Thu Feb 1 09:41:58 2001 from uwnd10m.mon.mean.nc\n",uwnd10m.mon.mean.nc\n", "Tue Jul 6 00:21:54 1999: ncrcat uwnd10m.mon.mean.nc "Tue Jul 6 00:21:54 1999: ncrcat uwnd10m.mon.mean.nc /Datasets/ncep.reanalysis.derived/surface_gauss/uwnd10m.mon.m/Datasets/ncep.reanalysis.derived/surface_gauss/uwnd10m.mon.mean.nc ean.nc /dm/dmwork/nmc.rean.ingest/combinedMMs/uwnd10m.mon.mean.n/dm/dmwork/nmc.rean.ingest/combinedMMs/uwnd10m.mon.mean.nc\n",c\n", "created 97/10/04 by CAS (netCDF2.3)" ;"created 97/10/04 by CAS (netCDF2.3)" ; :description = "Data is from NMC initialized reanalysis\n",:description = "Data is from NMC initialized reanalysis\n", "(4x/day). It consists of T62 variables interpolated to\n","(4x/day). It consists of T62 variables interpolated to\n", "pressure surfaces from model (sigma) surfaces." ;"pressure surfaces from model (sigma) surfaces." ; :platform = "Model" ;:platform = "Model" ;
Sekcja danychSekcja danych
lon = 0, 1.875, 3.75, 5.625,lon = 0, 1.875, 3.75, 5.625,……
lat = 88.542, 86.6531, 84.7532, 82.8508,…lat = 88.542, 86.6531, 84.7532, 82.8508,…
time = 17067072, 17067816, 17068512, 17069256,time = 17067072, 17067816, 17068512, 17069256,……
uwnd= -2.035805, -2.166451, -2.145482, -2.277421, -uwnd= -2.035805, -2.166451, -2.145482, -2.277421, -2.800644,…2.800644,…
Kod SYNOPKod SYNOPFormat SYNOP jest międzynarodowym formatem Format SYNOP jest międzynarodowym formatem danych meteorologicznych używanym do ich transmisji w danych meteorologicznych używanym do ich transmisji w trybie rzeczywistym.trybie rzeczywistym.
Używany jest od ponad 50 lat. Używany jest od ponad 50 lat.
W kodzie SYNOP zawarte są W kodzie SYNOP zawarte są następujące grupy obserwacjinastępujące grupy obserwacji
Grupa 000 – oznaczana numer stacji i lokalizacjeGrupa 000 – oznaczana numer stacji i lokalizacje
Grupa 111 – opisuje obserwacje nad lądemGrupa 111 – opisuje obserwacje nad lądem
Grupa 222 – opisuje pomiary powierzchni mórz i Grupa 222 – opisuje pomiary powierzchni mórz i oceanów oceanów
Grupa 333 – zawiera dane klimatologiczneGrupa 333 – zawiera dane klimatologiczne
Struktura formatu SYNOP Struktura formatu SYNOP
IIiiiIIiii lub lub IIIIIIIIII YYGGiYYGGi 99LLL QLLLL99LLL QLLLL
iihVViihVV NddffNddff 00fff00fff 1sTTT1sTTT 2sTTT2sTTT 3PPPP3PPPP 4PPPP4PPPP 5appp5appp 6RRRt6RRRt 7wwWW7wwWW 8NCCC8NCCC 9GGgg9GGgg
222Dv222Dv 0sTTT0sTTT 1PPHH1PPHH 2PPHH2PPHH 3dddd3dddd 4PPHH4PPHH 5PPHH5PPHH 6IEER6IEER 70HHH70HHH 8aTTT8aTTT
333 333 0....0.... 1sTTT 2sTTT 3Ejjj 4Esss 5jjjj jjjjj 6RRRt 7RRRR 1sTTT 2sTTT 3Ejjj 4Esss 5jjjj jjjjj 6RRRt 7RRRR 8Nchh 9SSss 8Nchh 9SSss
Inne formaty danychInne formaty danych
SHIPSHIP
TEMPTEMP
METARMETAR, , TAFTAF, TEMP , TEMP
BOUY, AMDAR, AIREP. BOUY, AMDAR, AIREP.