BUFR - BUFR
Binary Uniwersalny Formularz dla reprezentacji danych meteorologicznych ( BUFR ) jest binarny format danych prowadzonego przez Światowej Organizacji Meteorologicznej (WMO). Najnowsza wersja to BUFR Edition 4. BUFR Edition 3 jest również uważana za aktualną do użytku operacyjnego. BUFR został utworzony w 1988 roku w celu zastąpienia dziesiątek znaków meteorologicznych WMO opartych na położeniu , takich jak SYNOP (obserwacje powierzchni), TEMP ( sondaże górnego powietrza) i CLIMAT (comiesięczne dane klimatyczne). BUFR został zaprojektowany jako przenośny, kompaktowy i uniwersalny. Reprezentowane mogą być dowolne dane, wraz z ich specyficznym kontekstem przestrzennym/czasowym oraz wszelkimi innymi powiązanymi metadanymi . W terminologii WMO BUFR należy do kategorii form kodu sterowanych tabelami , gdzie znaczenie elementów danych jest określane przez odwołanie się do zestawu tabel, które są przechowywane i utrzymywane oddzielnie od samego komunikatu.
BUFR to złożony format, który może być trudny w użyciu i ma pewne słabości. Wprowadzenie formatu BUFR doprowadziło do „rozbieżności” danych i wielu błędów formatowania.
Opis formatu
Komunikat BUFR składa się z sześciu sekcji, ponumerowanych od zera do pięciu.
- Sekcje 0, 1 i 5 zawierają statyczne metadane, głównie do identyfikacji wiadomości.
- Sekcja 2 jest opcjonalna; jeśli jest używany, może zawierać dowolne dane w dowolnej formie, o którą prosi twórca wiadomości (jest to zalecane tylko do użytku lokalnego).
- Sekcja 3 zawiera sekwencję tak zwanych deskryptorów, które definiują formę i zawartość produktu danych BUFR.
- Sekcja 4 to strumień bitów zawierający podstawowe dane i wartości metadanych komunikatu zgodnie z sekcją 3.
Opis produktu zawarty w sekcji 3 może być złożony i nietrywialny dzięki zastosowaniu deskryptorów replikacji i/lub operatorów. (Poniżej znajduje się krótki przegląd różnych rodzajów deskryptorów; więcej szczegółów można znaleźć w przewodniku WMO dotyczącym BUFR).
Szablony
Sekcja 3 zawiera krótki nagłówek, po którym następuje sekwencja deskryptorów, która odpowiada zawartości strumienia bitów sekcji 4. Sekwencja deskryptorów w sekcji 3 może być rozumiana jako szablon komunikatu BUFR. Szablon zawiera informacje niezbędne do opisania struktury wartości danych osadzonych w dopasowanym strumieniu bitów. Należy go interpretować krok po kroku, podobnie jak algorytm . Biorąc pod uwagę zestaw depesz BUFR, wartości zawarte w sekcji 4 mogą się różnić w zależności od komunikatu, ale ich kolejność i struktura będą przewidywalne, jeśli szablon podany w sekcji 3 pozostanie niezmieniony. Szablony można zaprojektować tak, aby spełniały wymagania konkretnego produktu danych (na przykład obserwacje pogody). Takie szablony można następnie wykorzystać do standaryzacji zawartości i struktury produktów danych BUFR. WMO opublikowało szereg szablonów BUFR dla danych obserwacyjnych na powierzchni i w górnych warstwach powietrza.
Deskryptory
Wszystkie deskryptory o szerokości 16 bitów mają strukturę FXY , gdzie F odnosi się do dwóch najbardziej znaczących bitów (najbardziej po lewej); X odnosi się do 6 środkowych bitów, a Y do najmniej znaczących (najbardziej z prawej) 8 bitów. Wartość F (0 do 3) określa typ deskryptora.
-
Deskryptory elementów (F=0): Jak sama nazwa wskazuje, deskryptory te są używane do przekazywania danych elementarnych i powiązanych metadanych.
Wartość X określa klasę deskryptora (tj. parametry współrzędnych poziomych, parametry temperatury itp.). Wartość Y to numer deskryptora w jego klasie. Deskryptory elementów klasy od 1 do 9 mają specjalną właściwość pozostawania w mocy od momentu pojawienia się w pozostałej części szablonu BUFR, o ile nie zostaną zaprzeczone lub anulowane. W praktyce deskryptory klas od 1 do 9 są używane dla metadanych przestrzennych, czasowych i innych, które mają zastosowanie do danych podstawowych komunikatu BUFR.
Wszystkie deskryptory elementów są zdefiniowane w sekcji specyfikacji BUFR znanej jako „Tabela B”. Dodanie nowych deskryptorów elementów w Tabeli B nie wymaga zmian w specyfikacji oprogramowania BUFR. Definicja deskryptora elementu w Tabeli B obejmuje jego numer, definicję krótkiego tekstu, parametry dekodowania (szerokość w bitach, współczynnik skali i odchylenie) oraz typ (numeryczny, ciąg znaków, tablicę kodów itp.). - Deskryptory replikacji (F=1): Specjalne deskryptory, które pozwalają na kontrolowane powtarzanie wybranej liczby deskryptorów. Jest to bardzo potężna operacja, która wprowadza struktury przypominające pętle w szablonach BUFR. Wartość X określa liczbę następujących deskryptorów, które mają być uwzględnione w replikacji; Y wartość wskazuje ile razy replikacja ma się odbyć. Jeśli Y =0, to replikacja nazywana jest „replikacją opóźnioną”, a liczbę replikacji należy uzyskać z wartości deskryptora elementu specjalnego.
- Deskryptory operatora (F=2): Deskryptory te przekazują specjalne operacje, które mogą modyfikować charakter danych lub umożliwiają tworzenie i manipulowanie dodatkowymi danymi obok oryginału. Wartość X identyfikuje operator, a wartość Y służy do sterowania jego zastosowaniem. Deskryptory te są zdefiniowane w sekcji specyfikacji BUFR znanej jako „Tabela C”. Dodanie deskryptory operatora w tabeli C nie wymagają zmian w specyfikacji oprogramowania BUFR, a zatem prowadzi do nowego BUFR Edition liczby.
- Deskryptory sekwencji (F=3): Pojedynczy deskryptor sekwencji jest aliasem sekwencji innych deskryptorów, w tym deskryptorów replikacji oraz wpisów w Tabeli B, C i D. Deskryptory te są zdefiniowane w sekcji specyfikacji BUFR znanej jako „Tabela D”. Użycie wartości X i Y jest takie samo, jak w przypadku deskryptorów elementów.
Podzbiory
Struktura danych ustanowiona we wzorze w sekcji 3 może być wielokrotnie wykorzystywana w ramach jednego komunikatu BUFR. W takim przypadku sekcja 4 będzie zawierać następstwo tzw. podzbiorów . Na przykład podzbiory mogą być używane do przekazywania obserwacji z kilku miejsc w jednej wiadomości.
Bibliografia
- ^ https://www.eumetsat.int/website/wcm/idc/idcplg?IdcService=GET_FILE&dDocName=PDF_CONF_P57_S5_01_KARHILA_V&RevisionSelectionMethod=LatestReleased&Rendition=Web
-
^
„O przydatności BUFR i GRIB do archiwizacji danych” . 10 stycznia 2013 r. Cytowanie dziennika wymaga
|journal=
( pomoc ) - ^ Ręka, E. (2016). „Przestarzałe krosna dla danych balonowych” . Nauka . 352 (6283): 281–282. Kod Bibcode : 2016Sci...352..281H . doi : 10.1126/science.352.6283.281 . PMID 27081049 .
-
^ „Radzenie sobie z zanikającymi danymi powierzchniowymi: migracja do BUFR i zaprzestanie raportów tekstowych SYNOP i Buoy” . 25 stycznia 2017 r. Cytowanie dziennika wymaga
|journal=
( pomoc ) - ^ "ECMWF - TAC2BUFR - ECMWF Confluence Wiki" (PDF) .
Zewnętrzne linki
- Oficjalny podręcznik BUFR, tabele i inne operacyjne formularze kodów WMO
- Seria wstępnych prezentacji PowerPoint
- Przewodniki po formularzach kodów opartych na tabelach WMO (rozwija się w podręczniku BUFR, ale należy je traktować jako dodatkowe źródło podręcznika)
- BUFR w pigułce
- Samouczek innej firmy na temat tworzenia szablonów BUFR (od Environment Canada)
Walidatory online BUFR
Biblioteki oprogramowania
- ECMWF dostarczyło bibliotekę BUFRDC i nową bibliotekę ecCodes . Magia i Metview użyć ich do procesu i wizualizację BUFR danych.
- Biblioteka NCEP
- Środowisko Kanada biblioteka
- Biblioteka NCAR wmobufr — biblioteka Java i implementacja XML
- otoki pythona oparte na fortran i c wokół biblioteki ECMWF
- zgłoś bibliotekę Free Software C++ implementującą kodowanie i dekodowanie BUFR i CREX
- trollbufr , czytnik i program do zapisu BUFR FOSS w czystym Pythonie