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