ul. Warszawska 24, 31-155 Kraków tel/fax (+48 12) 628 20 41 e-mail: sekretariat@iigw.pl internet: www.iigw.pl
INSTYTUT INśYNIERII I GOSPODARKI WODNEJ
POLITECHNIKA KRAKOWSKA im. TADEUSZA KOŚCIUSZKI
Kowal Justyna
IMPORT I EKSPORT DANYCH
HYDROMETEOROLOGICZNYCH Z
WYKORZYSTANIEM FORMATU XML
ORAZ INTERFEJSU SAX
praca magisterska
studia dzienne
kierunek studiów: informatyka
specjalność: informatyka stosowana w inżynierii środowiska
promotor: dr inż. Robert Szczepanek
nr pracy:
2164
KRAKÓW 2008
Składam serdeczne podziękowania
moim Rodzicom i siostrze
za wsparcie i wiarę we mnie przez wszystkie lata edukacji,
Dr inż. Robertowi Szczepankowi
za cenne uwagi, poświęcony mi czas i pomoc udzieloną przy pisaniu niniejszej pracy.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
3
SPIS TREŚCI
1.
Wstęp ....................................................................................................................4
1.1.
Opis problemu ................................................................................................5
1.2.
Cel pracy ........................................................................................................6
1.3.
Zakres pracy ...................................................................................................6
2.
Podstawy pomiarów wielkości hydrometeorologicznych .......................................8
2.1.
Hydrologia......................................................................................................9
2.1.1.
Pomiary hydrologiczne.........................................................................10
2.1.2.
Przyrządy do pomiarów hydrologicznych .............................................13
2.2.
Meteorologia.................................................................................................17
2.2.1.
Pomiary meteorologiczne .....................................................................18
2.2.2.
Przyrządy do pomiarów meteorologicznych .........................................25
3.
Narzędzia i metody wykorzystane do budowy systemu ........................................37
3.1.
Opis formatu XML .......................................................................................38
3.1.1.
Definicja XML.....................................................................................38
3.1.2.
Pochodzenie XML ...............................................................................38
3.1.3.
Języki znacznikowe..............................................................................39
3.1.4.
Składnia XML......................................................................................41
3.1.5.
Przykładowy dokument XML ..............................................................44
3.1.6.
Najważniejsze cechy XML...................................................................45
3.1.7.
Sposoby wykorzystania formatu XML .................................................46
3.2.
Programowe przetwarzanie XML..................................................................49
3.3.
Parsery XML ................................................................................................52
3.3.1.
SAX - zbiór interfejsów do zdarzeniowego przetwarzania plików XML.
.............................................................................................................54
3.3.2.
DOM - zestaw funkcji do manipulowania plikami XML ......................58
3.3.3.
SimpleXML – biblioteka do parsowania dokumentów XML ................64
3.3.4.
Modele przetwarzania XML- porównanie DOM, SimpleXML oraz SAX
.............................................................................................................69
3.4.
Opis formatu CSV ........................................................................................70
3.5.
Flash oraz Action Script 3.0 jako narzędzia prezentacji danych .....................71
4.
Implementacja .....................................................................................................72
4.1.
Struktura systemu tajFUN v.0.2 ....................................................................73
4.2.
Import danych hydrometeorologicznych do bazy danych ..............................74
4.2.1.
Modele parsowania pliku XML z rejestratora RC10 .............................76
4.2.2.
Testy wydajnościowe zaimplementowanych modeli parsowania ..........78
4.3. Export pomiarów hydrometeorologicznych do plików o formacie: .pdf, .csv,
.xml ...............................................................................................................82
4.4.
Wizualizacja danych pomiarowych ...............................................................84
5.
Podsumowanie.....................................................................................................86
6.
Wnioski ...............................................................................................................89
Słownik terminów .......................................................................................................91
Bibliografia .................................................................................................................95
Zasoby internetowe .....................................................................................................97
Spisy tabel...................................................................................................................99
Spis rysunków ...........................................................................................................101
Abstrakt ....................................................................................................................104
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
4
1.
Wstęp
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
5
1.1.
Opis problemu
Postęp w dziedzinie hydrometeorologii jest mocno zaawansowany. Coraz
bardziej popularne jest wdrażanie nowoczesnych urządzeń pomiarowych i systemów
komputerowych do przetwarzania danych pomiarowych. Problemem do rozwiązania
jest takie zaprojektowanie systemu komputerowego, aby podczas realizacji importu do
bazy proces przetwarzania danych hydrometeorologicznych pochodzących z
automatycznego systemu pomiarowego był jak najbardziej wydajny. Źródłem danych
jest rejestrator cyfrowy RC10 firmy „TRAX – Elektronik”. Rejestrator RC10 jest
wyspecjalizowanym, programowalnym, mikroprocesorowym urządzeniem służącym do
rejestracji warunków meteorologicznych Zarejestrowane dane gromadzone są w
blokach binarnych. Dane dostarczone do tworzonego systemu pochodzą z
zdekodowanych binarnych bloków rejestratora RC10, wyeksportowanych do pliku
tekstowego XML. Szczególnie istotne jest, aby proces przetwarzania otrzymanych
(zdekodowanych) wartości pomiarowych, przeprowadzony za pośrednictwem
zaimplementowanego systemu był kompletny oraz prosty w obsłudze dla zwykłego
użytkownika.
Dodatkowym problemem do rozwiązania jest integracja danych pomiarowych
pochodzących z dekodera RC10. Plik XML będący źródłem zdekodowanych danych
hydrometeorologicznych zawiera numer określający rodzaj czujnika zamontowanego na
linii pomiarowej, datę i czas przeprowadzenia odczytu z czujnika oraz odczytaną
wartość. Niestety brak jest informacji opisującej rodzaj czujnika przyporządkowany do
danego numeru. Wzbogacenie danych zawartych w pliku XML o dodatkowy parametr
jest pomocne przy wyszukiwaniu oraz analizie danych hydrometeorologicznych.
Podstawową informacją hydrometeorologiczną są dane pomiarowe, dlatego
tak ważne jest, aby stworzony system (tajFUN v. 0.2) umożliwiał szybki dostęp do
przechowywanych wartości pomiarów hydrometeorologicznych. oraz wygodny i
przejrzysty sposób ich prezentacji co znacznie może ułatwić pracę osobom zajmującym
się analizą hydrometeorologiczną.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
6
1.2.
Cel pracy
Celem niniejszej pracy jest zaprojektowanie komputerowego systemu
umożliwiającego import oraz eksport danych hydrometeorologicznych w sposób jak
najbardziej wydajny. Ważnym zagadnieniem poruszonym w pracy jest analiza
dostępnych rozwiązań dotyczących przetwarzania dokumentów o formacie XML,
zbadanie wydajności wybranych rozwiązań oraz zaimplementowanie najwydajniejszej
metody przetwarzania. Dodatkowym celem zaprojektowanego systemu jest prezentacja
przetworzonych danych przy użyciu narzędzi korzystających z wyżej wymienionego
formatu oraz innych formatów użytkowych.
System tajFUN v.0.2 ma w założeniu umożliwić import zdekodowanych
wartości pomiarów hydrometeorologicznych pochodzących z automatycznego systemu
pomiarowego do bazy danych. Założeniem projektowym jest również, aby system
oferował możliwość eksportowania przechowywanych w bazie danych wartości
pomiarowych do plików o formacie: .pdf, .csv, .xml. Wprowadzenie funkcji eksportu
ma na celu umożliwienie dalszej obróbki danych pomiarowych w innych aplikacjach.
Wymiernym efektem zastosowania opracowanego systemu będzie ułatwienie
analizy w oparciu
o usystematyzowane zestawienia mierzonych wartości
hydrometeorologicznych oraz szybki i łatwy dostęp do zarejestrowanych na
posterunkach badawczych danych pomiarowych.
1.3.
Zakres pracy
Rozdział pierwszy stanowi wstęp, który ma na celu wprowadzenie w tematykę
pracy.
Drugi
rozdział
to
ogólna
charakterystyka
zagadnień
dotyczących
hydrometeorologii. Wiedza o pomiarach hydrologicznych i meteorologicznych jest
niezbędna, by określić czego dotyczą importowane dane oraz pomóc w przygotowaniu
odpowiedniej formy ich prezentacji.
Trzeci rozdział pracy został poświęcony omówieniu narzędzi i metod
wykorzystanych w procesie tworzenia systemu tajFUN v.0.2. Na początku
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
7
zamieszczono opis formatu XML. W ciągu ostatnich lat XML stał się jednym z
najważniejszych formatów. Przeznaczony początkowo do wymiany informacji w sieci
WWW, zdobył szersze zastosowania, które krótko zostały przedstawione w tym
rozdziale. Omówiono w nim także główne cechy formatu XML i wymieniono w
punktach zasady tworzenia dokumentów XML. W kolejnym kroku przedstawiono
sposoby przetwarzania XML’a. Opisane również zostały najczęściej spotykane parsery,
zajmujące się analizowaniem tekstu. W części tej został zawarty także opis formatu-
CSV. Na końcu rozdziału trzeciego zostały przedstawione podstawy popularnych
technologii informatycznych: Flash oraz Action Script 3.0 użytych w pracy do
prezentacji danych.
W rozdziale czwartym został zawarty dokładny opis procesu implementacji
systemu.
Opisano
w
nim
procedurę
importu
wartości
pomiarów
hydrometeorologicznych pochodzących z automatycznych systemów pomiarowych do
bazy danych. Na tym etapie również przedstawione zostały algorytmy parsowania pliku
XML oraz testy wydajnościowe porównujące metody przetwarzania dokumentu o
formacie XML takie jak SAX i SimpleXML. Celem testów było sprawdzenie, która z
zaimplementowanych metod przetwarzania XML jest wydajniejsza. W tym rozdziale
został zawarty również opis procedury eksportu poszczególnych pomiarów
hydrometeorologicznych, przechowywanych w bazie danych, do plików o formacie:
.pdf, .csv, .xml. Część dotycząca implementacji kończy się wizualizacją danych
pomiarowych z wykorzystaniem narzędzia FusionCharts zaimplementowanego we
Flashu.
Rozdział piąty zawiera podsumowanie pracy a szósty wnioski.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
8
2.
Podstawy pomiarów wielkości
hydrometeorologicznych
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
9
Hydrometeorologia, to dział hydrologii obejmujący zagadnienia dotyczące wody
w atmosferze, parowania, kondensacji pary wodnej w atmosferze, opadów
atmosferycznych.
Monitoring zjawisk hydrologicznych i meteorologicznych jest jednym z
najważniejszych zadań realizowanych przez hydrometeorologów. Wyniki obserwacji i
pomiarów dokonywanych na stacjach pomiarowych są podstawowym źródłem poznania
zjawisk i procesów zachodzących w atmosferze. Właściwe rozpoznanie warunków
hydrometeorologicznych jest podstawą oceny funkcjonowania geoekosystemów.
Obserwacje, jakich dokonuje się na stacjach hydrometeorologicznych stanowią zarówno
pomiary hydrologiczne jak i również meteorologiczne. Pomiary i obserwacje są
wykonywane w określonych przedziałach czasowych oraz określonych cyklach przy
wykorzystaniu aparatury standardowej i automatycznej a następnie uzupełniają je
obserwacje wizualne. Ostatnio następują duże zmiany w technikach pomiarowych.
Rośnie liczba automatycznych stacji pogodowych, urządzeń samorejestrujących, a
zmniejsza się liczba stacji obsługiwanych przez obserwatorów. Pomimo tego rozwoju,
na licznych stacjach pomiarowych nadal korzysta się ze standardowych przyrządów, na
które można liczyć, gdy wszelki sprzęt zawiedzie (Janiszewski, 1988).
2.1.
Hydrologia
Hydrologia, to nauka zajmująca się obiegiem wody w przyrodzie, z
wyłączeniem części obiegu odbywającego się w atmosferze (co należy do
meteorologii). (Jaworowska, Szuster, Utrysko, 2008)
Przedmiotem badań hydrologii są m.in. wody powierzchniowe i wody
podziemne. Zadaniem każdego hydrologa jest zbadanie prędkości i objętości
przepływu oraz amplitudy wahań poziomu wody w danym przekroju poprzecznym.
Takie informacje można uzyskać dzięki obserwacjom i pomiarom hydrologicznym.
Dzięki znajomości stosunków wodnych na danym terenie można właściwie
gospodarować wodą, jak również minimalizować skutki powodzi. W przypadku
zagrożenia powodziowego prognoza hydrologiczna umożliwia podjęcie odpowiednich
kroków, np. opróżnienie dodatkowej pojemności zbiornika, aby przyjąć falę.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
10
Opracowania hydrologiczne są także niezbędne przy projektowaniu budowli
inżynierskich, zwłaszcza tych, które są realizowane w korycie cieku (np. mosty).
2.1.1.
Pomiary hydrologiczne
Na posterunkach wodowskazowych dokonywane są obserwacje i pomiary
hydrologiczne dotyczące niżej wymienionych i krótko scharakteryzowanych wielkości:
a)
Stan wody. Jest to wysokość zwierciadła wody ponad umownie przyjęty
poziom porównawczy (zerowy). Stan wody jest podstawowa charakterystyka
hydrologiczną rzeki. Mierzy się ją za pomocą wodowskazów. Na podstawie
wieloletnich pomiarów można określić charakterystyczny rozkład stanów wody dla
danej rzeki w danym miejscu. Wyznacza się wówczas następujące strefy stanów wody:
-
strefę stanów niskich
-
strefę stanów średnich
-
strefę stanów wysokich
b)
Przepływ (natężenie przepływu). Jest to ilość wody, przepływającej przez
poprzeczny przekrój koryta rzeki w jednostce czasu. Najczęściej podawany w [m3/s].
Do określenia przepływu niezbędne jest określenie prędkości wody, przekroju
poprzecznego koryta rzecznego, głębokości koryta itd. Do pomiaru natężenia przepływu
służą metody pośrednie i bezpośrednie.
Metody bezpośrednie dają możliwość szybkiej oceny natężenia przepływu
małych cieków. Są one dokładne, przy założeniu, że stosuje się je w warunkach, gdzie
istnieje możliwość całościowego uchwycenia strumienia przepływającej wody.
Jeden z najczęściej stosowanych sposobów określania przepływu w sposób
pośredni „polega na dokonywaniu szeregu pomiarów prędkości lokalnych w przekroju
hydrometrycznym cieku”. (Jaworowska, Szuster , Utrysko, 2008)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
11
c)
Temperatura wody. Terminowego pomiaru temperatury wody dokonuje się
przy użyciu termometrów rtęciowych, tak skonstruowanych aby po wyjęciu z wody ich
wskazanie nie uległo zmianie. Temperatura wody ma duży wpływ na życie biologiczne
rzeki oraz kształtowanie się zjawisk lodowych w okresie zimowym. (Jaworowska,
Szuster , Utrysko, 2008)
d)
Zjawiska lodowe. Są to formy zlodzenia rzeki pojawiające się w fazie
zamarzania, trwałej pokrywy lodowej i spływu lodu (Jaworowska, Szuster , Utrysko,
2008). W przebiegu zlodzenia rzeki wyróżnia się trzy fazy:
-
fazę zamarzania rzeki (np. śryż, lepa, lód denny, lód brzegowy)
-
fazę trwałej pokrywy śnieżnej (trwała i nieruchoma pokrywa lodowa)
-
fazę spływu lodów (kra, zator)
W każdej z nich występują charakterystyczne formy zlodzenia, które określa się
wizualnie na podstawie ich wyglądu zewnętrznego.
2.1.1.1.
Częstotliwość pomiarów hydrologicznych
Częstość i terminy wykonywania pomiarów hydrologicznych są różne-
zależne od sytuacji hydrologicznej.
Wyróżniamy obserwacje terminowe, ciągłe, zwyczaje i nadzwyczajne.
Obserwacje terminowe są wykonywane przez specjalnie do tego powołanych
obserwatorów wodowskazowych, którzy oprócz pomiaru stanu wody, dostarczają
informacji o wyglądzie wody, zjawiskach lodowych i temperaturze wody w wybranych
posterunkach wodowskazowych z godziny 06:00 UTC.
Obserwacje ciągłe, wykonywane przy użyciu samopisów (np. limnigraf), które
umożliwiają ciągłą rejestrację stanu i zmian poziomu wody.
Na sygnalizacyjnych posterunkach wodowskazowych, w zależności od
ważności i przydatności odczytywany jest stan wody raz dziennie o godzinie 06:00
UTC, dwa razy dziennie o godzinie: 06:00 i 18:00 UTC lub trzy razy dziennie o
godzinie: 06:00, 12:00 i 18:00 UTC. W okresie normalnym (stan wody poniżej stanów
ostrzegawczych i alarmowych), wyniki obserwacji przekazuje się rano po godzinie
06:00 UTC. [L1]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
12
Tab.1. Zestawienie parametrów pomiarów hydrologicznych wraz z dokładnością
[źródło: IMGW, 2006 r.]
Parametr
Dokładność Jednostka Warunki pomiarów i obserwacji
Stan wody
1 [cm]
[cm]
- miejsce prowadzenia pomiarów-
posterunek wodowskazowy, natomiast
punkt na rzece, w którym zainstalowany jest
wodowskaz, nosi nazwę profilu
wodowskazowego
- pomiar stanu wody łatą wodowskazową
( w określonych terminach obserwacji) oraz
limnigrafem umożliwiającym ciągłą
rejestrację stanu i zmian poziomu wody
Przepływ
[m3/s]
- pomiar wieloparametrowy- do określenia
przepływu niezbędne jest określenie
prędkości wody, przekroju poprzecznego
koryta rzecznego, głębokości koryta, itd.
- przeciętna liczba pomiarowa wynosi od 6
do 12 w ciągu roku
Temperatura
wody
0.2 [˚C]
[˚C]
- pomiar temperatury cieku termometrem
rtęciowym
- częstość: zazwyczaj raz na dobę o
godzinie 6 UTC
Zjawiska
lodowe
1 [cm]
10 [%]
[cm]
[%]
- określenie grubości lodu kosą lodową
- określenie stopnia [%] pokrycia rzeki
ś
ryżem, lodem lub krą, drabinką
SOMMERA- pomiar wykonuje się z
wyznaczonego stanowiska pomiarowego(
most, brzeg rzeki)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
13
W okresie, gdy stan wody przekroczy stany ostrzegawcze i alarmowe (okres
wezbrań) wykonuje się obserwacje nadzwyczajne, które trwają aż do opadnięcia stanu
wody poniżej stanu ostrzegawczego. W momencie osiągnięcia stanu ostrzegawczego,
obserwacje sygnalizuje się, bez specjalnego zarządzenia, trzy razy dziennie o godzinie:
06:00, 12:00, 18:00 UTC. W czasie trwania stanu alarmowego, lub po jego
przekroczeniu, obserwacje dokonuje się co trzy, dwie, a nawet co godzinę.
2.1.2.
Przyrządy do pomiarów hydrologicznych
W hydrologii stosowane są różnego rodzaju przyrządy pomiarowe. Obecne
czasy zmuszają nas, aby wraz z postępem techniki, korzystać z przyrządów nowej
generacji, które nie tylko umożliwiają ciągłą rejestrację, ale również pozwalają na
rejestrację i obserwację wielu parametrów jednocześnie. Oprócz automatycznej
aparatury, korzysta się nadal z klasycznych przyrządów pomiarowych.
W odniesieniu do obserwowanych wielkości hydrologicznych, zostały w
skrócie przedstawione podstawowe informacje na temat przyrządów służących do ich
pomiaru.(Bac, Rojek, 1979) [L1]
a)
Stan wody. Najprostszym i najczęściej spotykanym przez służby
hydrologiczne urządzeniem do pomiaru stanu wody jest łata wodowskazowa [Rys.1.].
Najważniejszą częścią składową tego wodowskazu jest konstrukcja nośna z
przymocowaną do niej podziałką, w postaci segmentowanych tablic. Najczęściej
podziałka składa się z segmentów o długości od 60 do 100 [cm]. Wartość elementarna
podziału ma długość 2 [cm], a opis cyfrowy podany jest co 10 [cm]. Istotnym
elementem wodowskazu jest poziom zera podziałki wodowskazowej. Poziom ten w
praktyce przyjmuje się poniżej najniższego stanu wody. (Byczkowski,1996)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
14
Rys.1. Łata wodowskazowa
[źródło:
www.hydrometria.pl
,
http://picasaweb.google.com
]
Przyrząd rejestrujący, w sposób graficzny i ciągły, zmiany stanu wody w
czasie to limnigraf pływakowy [Rys.2.]. Urządzeniem pomiarowym jest wodowskaz
pływakowy. Rejestrator znajdujący się w budce limnigraficznej, zapisuje na taśmie
pionowy ruch pływaka.
Wyróżnia się także limnigraf oparty na układach elektronicznych (nadążny).
W limnigrafach tego typu, urządzenie pomiarowe stanowi czujnik (sonda) zawieszona
na lince przewodzącej. Urządzenie to nie zapewnia jednak zadowalającej dokładności
pomiaru, przy szybkich zmianach poziomu zwierciadła wody. (Byczkowski, 1996)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
15
Rys.2. Limnigraf
[źródło:
www.wigry.win.pl
]
b)
Przepływ wody. Powszechnie stosowanymi przyrządami do pomiaru
przepływu jest młynek hydrometryczny [Rys.3.]. Jest to urządzenie w formie
wiatraczka służące do pomiarów prędkości punktowych w ciekach. Jest wiele rodzajów
młynków, które różnią się konstrukcją, jednak zasada ich działania jest taka sama.
Pomiar prędkości przepływu polega na zliczeniu obrotów wirnika w zadanym czasie
trwania pomiaru. Każdy młynek hydrometryczny powinien być okresowo tarowany,
aby uniknąć zbyt dużych błędów pomiarowych.(Byczkowski, 1996)
Rys.3. Młynek hydrometryczny.
[źródło: IMGW, 2006 r.]
Jedną z nowoczesnych technik pomiaru prędkości przepływu cieczy jest
metoda elektromagnetyczna, która wykorzystując prawo indukcji elektromagnetycznej
Faradaya [P20], pozwala na dokonanie bardzo precyzyjnych pomiarów za pomocą
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
16
przepływomierza elektromagnetycznego [Rys.4.]. Umożliwia również wykonanie
pomiarów, w miejscach trudno dostępnych dla zwykłego młynka, np. w zarastających
rzekach.
Rys.4. Przepływomierz elektromagnetyczny.
[źródło: IMGW, 2006 r.]
c)
Temperatura wody. Pomiar temperatury wody wykonuje się za pomocą
termometrów rtęciowych, ze skalą od -5 do 37 [°C] [Rys.5.]. Oprawy metalowe, w
których są umieszczone, chronią je przed stłuczeniem, a zbiornik u dołu oprawy
zabezpiecza termometry „aby po wyjęciu z wody ich wskazanie nie uległo zmianie”
[Jaworowska, Szuster , Utrysko, 2008].
Rys. 5. Termometr rtęciowy.
[źródło: IMGW, 2006 r.]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
17
d)
Zjawiska lodowe. Wśród urządzeń służących do pomiaru zjawisk lodowych
rozróżnia się kosę lodową i drabinkę Sommera [Rys.6.]. Pierwszy z nich służy do
pomiaru grubości lody, drugi określa stopień pokrycia rzeki śryżem, lodem lub krą. [L1]
Rys.6. Kosa lodowa (po lewej) i drabinka Sommera (po prawej).
[źródło: IMGW, 2006 r.]
2.2.
Meteorologia
Meteorologia, to nauka zajmująca się badaniem i wyjaśnianiem zjawisk
fizycznych i procesów, zachodzących w atmosferze. Meteorolog bada, jak te procesy
wpływają na przebieg procesów atmosferycznych i stan pogody na danym obszarze.
W zależności od położenia geograficznego i właściwości podłoża procesy
zachodzące w atmosferze mogą wykazywać dużą zmienność w czasie i przestrzeni. Raz
zaobserwowane warunki mogą już się nie powtórzyć, ta „niepowtarzalność” powoduje,
ż
e tak ważne jest rejestrowanie możliwie dużej liczby parametrów meteorologicznych.
Uzyskane dane są materiałem do prac naukowych na temat atmosfery ziemskiej, a
przede wszystkim są wykorzystywane do prognozowania pogody. Na szczególną uwagę
zasługują obecnie intensywnie rozwijane badania zmian i wahań klimatu.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
18
Jak widać, dane obserwacyjno-pomiarowe z zakresu meteorologii są
wykorzystywane bardzo szeroko i różnorodnie. Obserwacje atmosfery są prowadzone
na różnego rodzaju stacjach (w miejscu zwanym ogródkiem meteorologicznym [P1]), a
podstawowe wyniki obserwacji podlegają wymianie międzynarodowej.
Tradycyjne naziemne obserwacje meteorologiczne od dawna jednak przestały
być jedynym źródłem wiedzy o procesach zachodzących w atmosferze, aczkolwiek ich
znaczenie nadal jest bardzo duże. Są one uzupełniane wynikami pomiarów
radiosondażowych, obserwacji radarowych, satelitarnych, i innych.
2.2.1.
Pomiary meteorologiczne
Na stacjach i posterunkach meteorologicznych dokonuje się pomiarów
instrumentalnych różnych elementów meteorologicznych, w tym szczególności cech
stanu fizycznego powietrza i cech ilościowych procesów zachodzących w atmosferze.
Pomiarom podlegają niżej wymienione i krótko scharakteryzowane elementy
meteorologiczne. (Bac, Rojek, 1979)
a)
Temperatura powietrza. Jest to wielkość fizyczna określająca stopień
nagrzania ciała. Temperatura powietrza jest jednym z podstawowych elementów
meteorologicznych. Pomiar temperatury powietrza jest dokonywany systematycznie w
sieci stacji i posterunków meteorologicznych.
Temperaturę określa się w stopniach skali termometrycznej. W pomiarach
meteorologicznych, a także we wszystkich innych pomiarach temperatury,
najpowszechniej stosowana jest skala Celsjusza, w której temperatura topnienia lodu
oznaczona jest jako 0 [˚C], a temperatura wrzenia wody destylowanej jako 100 [˚C]. W
niektórych państwach używana jest skala Fahrenheita, w której temperatura topnienia
lodu oznaczona jest jako 32 [˚F], a temperatura wrzenia wody jako 212 [˚F].
Temperaturze ciała odpowiada w przybliżeniu 100 [˚F]. W układzie SI stosowana jest
skala Kelvina (bezwzględna skala temperatury Istnieją jeszcze inne skale
termometryczne (np. Reaumura), które nie znajdują już zastosowania w praktyce,
przeszły do historii. (Bac, Rojek, 1979)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
19
b)
Temperatura przy gruncie i w gruncie. Temperatura gleby mierzona jest na
kilku, ustalonych głębokościach: (5, 10, 20, 50, 100) [cm]. Temperatura gruntu zależy
od
wielu
czynników,
takich
jak:
temperatura
i
przewodność
cieplna
podpowierzchniowych
warstw
[P2],
wilgotność
powietrza,
porowatość
powierzchniowej warstwy gruntu [P3], nasłonecznienie [P4]. Temperatura ta jest
zmienna zarówno w czasie, jak też zmienny jest jej rozkład na powierzchni. Głównym
czynnikiem wpływającym na jej zmienność w czasie jest dynamika procesów cieplnych
oddziałujących na powierzchnię. (Bac, Rojek, 1979)
c)
Ciśnienie atmosferyczne. Jest to stosunek wartości wektora siły [P5], z jaką
słup powietrza naciska na powierzchnię ziemi do powierzchni na jaką dany słup
naciska. Wartość ciśnienia zależy od :
-
wysokości słupa atmosfery znajdującego się nad powierzchnią pomiaru,
-
gęstości powietrza znajdującego się w słupie atmosfery nad powierzchnią
pomiaru,
-
wartości przyspieszenia ziemskiego.
Tradycyjnie stosowaną jednostką pomiaru ciśnienia są milimetry słupa rtęci [mm Hg].
Ciśnienia w układzie SI należy wyrażać w jednostkach siły działającej na jednostkę
powierzchni, tzn. w pascalach [Pa= N/m2]. Używając tej jednostki, uzyskiwałoby się
duże wartości, w związku z czym używa się jako jednostki podstawowej jednostki
stukrotnie większej- hektopaskala [hPa]. Wartość ciśnienia wyrażana w milibarach [mb]
odpowiada dokładnie takiej samej wartości ciśnienia mianowanej w hektopaskalach.
(Bac, Rojek, 1979)
d)
Wilgotność powietrza. Jest to zawartość pary wodnej w powietrzu.
Maksymalna wilgotność, czyli maksymalna ilość pary wodnej w określonej ilości
powietrza silnie zależy od temperatury powietrza. Im wyższa temperatura powietrza,
tym więcej pary wodnej może się w nim znajdować. Przekroczenie maksymalnej
wilgotności (np. w wyniku obniżenia temperatury powietrza) powoduje skraplanie się
pary wodnej. Dlatego właśnie powstaje wieczorna (nocna) rosa. Nagrzane w dzień
powietrze może zawierać w sobie dużo pary wodnej, gdy przychodzi noc, powietrze
ochładza się i spada przez to maksymalna ilość pary wodnej, która może być w nim
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
20
zawarta. Nadmiar pary wodnej skrapla się, tworząc na powierzchni ziemi kropelki rosy.
(Bac, Rojek, 1979) Ze względu na skomplikowany charakter zależności wilgotności
powietrza
od
temperatury
powietrza,
stosuje
się
szereg
różnych
miar,
charakteryzujących wilgotność. Najpopularniejsze to:
-
wilgotność bezwzględna [P6]
-
wilgotność właściwa [P7]
-
wilgotność względna [P8]
-
ciśnienie pary wodnej (aktualne) [P9]
-
ciśnienie pary wodnej (maksymalne) [P10]
-
niedosyt wilgotności powietrza [P11]
e)
Wielkość opadu. Mianem opadu atmosferycznego określa się opadające z
chmur na powierzchnię Ziemi w stanie ciekłym (deszcz) lub stałym (śnieg, grad)
produkty kondensacji pary wodnej. Od opadów należy odróżnić osady [P12] (które
również stanowią produkt kondensacji) ze względu na odmienny sposób ich
formowania.
Opady
należą
do
grupy
zjawisk
atmosferycznych
zwanych
hydrometeorami [P13]. Pomiar opadu polega na wyznaczeniu wysokości warstwy
wody, jaka powstałaby na terenie gdyby był szczelny, płaski i nie byłoby parowania.
Wysokość opadu wyraża się w [mm]. Opad wyrażony w [mm] odnosi się do punktu
pomiarowego i jego najbliższego otoczenia. Jeżeli pod uwagę bierze się obszar objęty
opadem, wówczas wygodniej jest posługiwać się objętością opadu, jaka spada na dany
teren w jednostce czasu. Opady atmosferyczne charakteryzujemy przez określenie
postaci (rodzaju) opadów, ilości spadłej (bądź uzyskanej ze śniegu, gradu, krupy) wody,
czasu ich trwania i natężenia. (Bac, Rojek, 1979) Do najczęściej występujących opadów
zalicza się:
-
deszcz [P14]
-
mżawkę [P15]
-
ś
nieg [P16]
-
ś
nieg z deszczem [P17]
-
krupy śnieżne [P18]
-
grad [P19]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
21
f)
Grubość pokrywy śnieżnej. Pokrywa śnieżna to warstwa śniegu o grubości
ponad 1 [cm], pokrywająca więcej niż połowę obserwowanej powierzchni. Wyniki
pomiarów grubości pokrywy śnieżnej wykonywanych na stacjach meteorologicznych
służą nie tylko turystom i narciarzom ale także klimatologom i meteorologom do
sporządzenia wieloletnich charakterystyk jak również do prognozowania i zapobiegania
ewentualnym powodziom. Pomiary pokrywy śnieżnej prowadzone są przez stacje i
posterunki meteorologiczne od dnia pojawienia się pokrywy śnieżnej, aż do dnia jej
ostatecznego zaniku. (Bac, Rojek, 1979) Obejmują one:
-
ocenę wielkości pokrycia terenu przez śnieg w otoczeniu ogródka
meteorologicznego
-
pomiar grubości pokrywy śnieżnej
-
pomiar grubości warstwy śniegu świeżo spadłego
-
określenie gatunku śniegu
-
określenie ukształtowania pokrywy śnieżnej (np. gładka, sfalowana,
pomarszczona, nieregularna z zaspami itp.)
-
pomiar zawartości wody w śniegu
g)
Kierunek i prędkość wiatru. Wiatr to poziomy ruch powietrza względem
powierzchni Ziemi, spowodowany różnicą ciśnienia atmosferycznego. Obserwacje
dotyczące wiatru polegają na określeniu ruchu powietrza, który jest (może być) opisany
wektorem o określonej wielkości (prędkość wiatru) i zwrocie (kierunek wiatru).
Prędkość wiatru określa drogę, jaką powietrze pokona w jednostce czasu względem
przyrządu pomiarowego. Prędkość wyrażona jest w [m/s] bądź w [km/h]. Kierunek
wiatru jest kierunkiem z jakiego wiatr wieje. Wyznacza się go w stopniach miary
kątowej według 16- stopniowej skali lub w rumbach. (Bac, Rojek, 1979)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
22
2.2.1.1.
Częstotliwość pomiarów meteorologicznych
W określonych godzinach, zwanych terminami głównymi i pośrednimi, stacja
meteorologiczna mierzy i sporządza zestawienia, na bazie których powstają prognozy
pogody, bazy danych służące do prac badawczych i opracowań statystycznych. Obecnie
obserwacje na stacjach meteorologicznych są prowadzone w pełnych godzinach od
00:00 do 23:00 (24 obserwacje na dobę).
Na stacjach synoptycznych pracujących na potrzeby prognoz pogody, wykonuje
się co najmniej 8 pomiarów na dobę, o godzinie: 00:00, 03:00, 06:00, 09:00, 12:00,
15:00, 18:00, 21:00 czasu uniwersalnego (UTC). Terminy: 00:00, 06:00, 12:00, 18:00
UTC stanowią główne, międzynarodowe terminy synoptyczne, natomiast pozostałe
terminy pośrednie. [L1]
W obecnych czasach coraz większego znaczenia nabiera automatyzacja
pomiarów meteorologicznych. Automatyczne urządzenia pomiarowe są programowane
tak, że częstość pomiarów jest dostosowana do potrzeb odbiorców informacji.
Co godzinę każda stacja, obserwuje i oblicza poszczególne elementy
meteorologiczne, tworząc odpowiednie zestawienia. Przykładowe zestawienia
przedstawione są poniżej.
Tab.2. Zestawienie parametrów pomiarów meteorologicznych wraz z dokładnością
[źródło: IMGW, 2006 r.]
Parametr
Dokładność Warunki pomiarów i obserwacji
Temperatura
powietrza
0.1 [˚C]
- w klatce meteorologicznej
- pomiar termometrem zwykłym
- jest to temperatura powietrza w cieniu
Parametry
wilgotności
powietrza
(termometrem
zwykłym i
zwilżonym)
0.1 [˚C]
- w klatce meteorologicznej
- z pomiaru temperatury powietrza termometrem
zwilżonym wraz z termometrem zwykłym oblicza
się parametry wilgotnościowe powietrza:
temperaturę punktu rosy, niedosyt wilgotności,
wilgotność względną i prężność pary wodnej
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
23
Ciśnienie
atmosferyczne
0.1 [hPa]
- w pomieszczeniu stacji, barometrem
- ciśnienie atmosferyczne, czyli ciśnienie powietrza
wyraża się w milimetrach słupa rtęci [mm Hg] lub
w hektopaskalach [hPa]
- w polskiej służbie meteorologicznej jednostką
ciśnienia atm. jest hektopaskal
- ciśnienie maleje wraz ze wzrostem
Kierunek wiatru 5 [°]
- wiatromierzem zlokalizowanym na wysokości 10
[m] w ogródku meteorologicznym
- podawany jest średni kierunek,
z którego w ciągu ostatnich 10 minut wiał wiatr
Prędkość wiatru 1 [m/s]
- j.w.
- to średnia z 10 minut oraz porywy wiatru - czyli
nagły wzrost prędkości wiatru, przewyższający co
najmniej
o 5 [ m/s] średnią prędkość wiatru i trwający nie
dłużej niż 2 minuty
- w warunkach polskich prędkość wiatru
przekraczająca 25 [m/s] należy do rzadkości,
wiatromierzom europejskim skala kończy się na 50
[m/s]
- w Arktyce spotyka się wiatry o prędkości
przekraczającej 100 [m/s]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
24
Tab.3. Zestawienie parametrów pomiarów meteorologicznych wraz z dokładnością
cd.
[źródło: IMGW, 2006 r.]
Parametr
Dokładność
Warunki pomiarów
Temperatura
maksymalna
powierza
0.1 [˚C]
- w klatce, termometrem (o konstrukcji
zbliżonej do termometru lekarskiego)
mierzy się maksymalną temperaturę, jaka
wystąpiła w wybranym okresie (w
służbie IMGW za okres 12 godzin)
Temperatura
minimalna
powietrza
0.1 [˚C]
- analogicznie do maksymalnej
- termometrem minimalnym
wskazującym najniższą temperaturę
powietrza, jaka wystąpiła w danym
okresie (w służbie IMGW za okres 12
godzin)
Temperatura w
gruncie
0.1 [˚C]
- temperatura gruntu jest mierzona na
specjalnym poletku na głębokościach:
5, 10, 20, 50, 100 [cm]
Temperatura
minimalna przy
gruncie
0.1 [˚C]
- najniższa temperatura powietrza jest
mierzona 5 [cm] nad gruntem
- termometrem minimalnym (w służbie
IMGW za okres 12 godzin)
Wielkość opadu
0.1 [mm]
- deszczomierz o konstrukcji
cylindrycznej, o powierzchni wlotu
200 [cm2], pozwala na gromadzenie się
w nim spadającego opadu, który mierzy
się co 6 godzin
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
25
Grubość
pokrywy
ś
nieżnej
1 [cm]
- grubość śniegu zalegającego w ogródku
meteorologicznym, z uwzględnieniem
ś
wieżo spadłego śniegu
- ponadto (w określonych terminach)
mierzy się ilość wody zawartej w
standardowej próbce śniegu, pobranej
przy pomiarze grubości pokrywy
Stacje meteorologiczne dokonują dużo więcej, różnych dodatkowych pomiarów, które
nie zostały ujęte w powyższych zestawieniach.
2.2.2.
Przyrządy do pomiarów meteorologicznych
Do pomiarów meteorologicznych stosowana jest różnorodna aparatura. W
miarę rozwoju techniki dochodzą wciąż nowe metody pomiarów, rejestracji i
przekazywania wyników. Poprzestanę tu na omówieniu przyrządów podstawowych,
powszechnie stosowanych i niekiedy obsługiwanych przez osoby tylko przyuczone.
Przyrządy takie powinny charakteryzować się:
-
prostą konstrukcją, aby nie sprawiały trudności obserwatorowi,
-
niewielkimi rozmiarami, aby nie zakłócały warunków obserwacji,
-
trwałością i odpornością na wpływy atmosferyczne,
-
właściwą czułością, stałą w całym zakresie pomiarowym,
-
znanym błędem, zawartym w określonym, nieprzekraczalnym przedziale.
Rozpatrując poszczególne elementy meteorologiczne można w skrócie
przedstawić następujące przyrządy służące do ich pomiaru. (Bac, Rojek, 1979) [L1]
a)
Temperatura powietrza. Do pomiaru chwilowej temperatury powietrza służy
termometr stacyjny, umieszczony w klatce meteorologicznej [Rys.7.]. Wraz z drugim
takim samym termometrem, lecz o stale zwilżanym zbiorniczku, jako tzw. termometr
suchy, stanowi jednocześnie przyrząd do pomiaru wilgotności powietrza, wilgotności
względnej, niedosytu wilgotności powietrza, temperatury punktu rosy oraz ciśnienia
pary wodnej zawartej w powietrzu- psychrometr Augusta [patrz rozdział 2.4.2.d]. Jest to
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
26
termometr rtęciowy, o zakresie mierzonej temperatury od -37 [˚C] do 50 [˚C]. (Bac,
Rojek, 1979) [L1]
Rys.7. Termometry stacyjne (suchy i zwilżony).
[źródło: IMGW, 2006 r.]
W klatce też umieszcza się termometry ekstremalne, tzn. minimalny i
maksymalny, które służą do pomiaru temperatury najniższej i najwyższej w ciągu doby,
bez względu na porę ich wystąpienia [Rys.8.]. (Bac, Rojek, 1979) [L1]
Rys.8. Termometry ekstremalne.
[źródło: IMGW, 2006 r.]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
27
Termometr minimalny służy do pomiaru najniższej temperatury powietrza
jaka wystąpiła po poprzedniej obserwacji. Termometr ten nie jest wypełniony rtęcią (ze
względu na stosunkowo wysoką temperaturę krzepnięcia tej cieczy). Jest to termometr
alkoholowy, o zakresie temperatury od -40 [˚C] do 40 [˚C].
Termometr maksymalny służy do pomiaru najwyższej temperatury powietrza
jaka wystąpiła po poprzedniej obserwacji. Jest to termometr rtęciowy o zakresie
mierzonej temperatury od -30 [˚C] do 50 [˚C].
Przyrząd mierzący temperaturę i rejestrujący jej przebieg w funkcji czasu to
termograf [Rys.9]. Należy on do grupy przyrządów z czujnikami deformacyjnymi
(mechanicznymi), działających na zasadzie odkształceń czujnika pod wpływem zmian
temperatury. Termometry deformacyjne są mniej czułe i dokładne niż cieczowe.
Ważnym elementem pomiarowym termografu jest płytka z bimetalu (wykonana z
dwóch spojonych warstw metali o różnym współczynniku rozszerzalności cieplnej).
Ruchy swobodnego jej końca wywołane za pomocą dźwigni są przekazywane ramienia
zakończonego pisakiem, który kreśli linię na obracającym się bębnie, na który
naciągnięty jest termogram, będący paskiem papieru z wydrukowaną skalą czasową i
skalą temperatury. Pisak (jakim zakończone jest ramię przenoszące ruch czujnika
temperatury) kreśli na termogramie linię, odpowiadającą ciągłemu zapisowi
temperatury powietrza. (Bac, Rojek, 1979) [L1]
Rys.9. Termograf. [źródło: Hajduk, 2007]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
28
b)
Temperatura gruntu. Podstawowe pomiary temperatury gruntu prowadzi się
na następujących głębokościach: (5, 10, 20, 50, 100) [cm] za pomocą termometrów
gruntowych [Rys.10.]. Ponadto niektóre stacje mierzą temperaturę gruntu na większych
głębokościach. Do głębokości 50 [cm] stosujemy termometry zgięte zwane
kolankowymi, zaś do pomiarów na większych głębokościach termometry wyciągowe.
Zarówno pierwsze jak i drugie są termometrami rtęciowymi. Termometry kolankowe
działają na zasadzie termometru zwykłego. Termometry wyciągowe są osadzone w
gruncie, w plastikowej osłonie , zakończonej na głębokości pomiaru miedzianym
klockiem, którego dotyka zbiorniczek termometru, zatopiony w parafinie. Termometr
jest wyciągany na zewnątrz tylko w celu odczytania temperatury. Należy pamiętać o
tym, że co pewien czas trzeba przeprowadzić kontrolę szczelności, zwłaszcza po
okresach mrozu. (Bac, Rojek, 1979) [L1]
Rys.10. Termometry gruntowe.
[źródło: IMGW, 2006 r.]
c)
Ciśnienie atmosferyczne. W pomiarach ciśnienia atmosferycznego używane
są przyrządy działające na różnych zasadach. Są to barometry cieczowe oraz
deformacyjne. W barometrach cieczowych ciśnienie atmosferyczne jest równoważone
ciśnieniem wywieranym przez słup rtęci, który może być ważony za pomocą specjalnej
wagi lub też jest mierzona jego wysokość. W pomiarach meteorologicznych najczęściej
mierzy się wysokość słupa rtęci. Wyróżnia się trzy rodzaje barometrów rtęciowych:
naczyniowe, lewarowe i lewarowo-naczyniowe. (Bac, Rojek, 1979) [L1]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
29
Barometry deformacyjne działają na zasadzie równoważenia ciśnienia
atmosferycznego przez siły sprężystości materiałów, z których jest wykonany przyrząd.
Barometry deformacyjne to przede wszystkim aneroidy [Rys.11.]. Aneroidy są
przyrządami mniej dokładnymi niż barometry rtęciowe, ale ze względu na mniejsze
rozmiary i ciężar oraz większą odporność na wstrząsy są szczególnie przydatne w
pomiarach terenowych i na morzu.
Rys.11. Aneroid.
[źródło:
http://
ocean.wsm.gdynia.pl
]
Innym przykładem barometru deformacyjnego jest Barograf [Rys.12.]. Jest to
rodzaj barometru, ze zdolnością do rejestrowania ciśnienia atmosferycznego w funkcji
czasu. Wyniki są zapisywane na specjalnej taśmie papierowej (tzw. barogramie)
umieszczonej na obrotowym bębnie, który porusza się zgodnie z ruchem wskazówek
zegara. Zazwyczaj bęben wykonuje jeden obrót na dzień, tydzień lub miesiąc, wybór
należy do użytkownika barometru. Jako, że ciśnienie zmienia się wraz z wysokością,
barograf może być używany do odnotowywania różnic wysokości, np. na statkach
powietrznych. (Bac, Rojek, 1979) [L1]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
30
Rys.12. Barograf.
[źródło:
www.quido.cz
]
d)
Wilgotność powietrza. Podstawowym urządzeniem do pomiaru wilgotności
powietrza na polskiej stacji meteorologicznej jest psychrometr Augusta [Rys.13.]. Jest
to zestaw dwóch jednakowych termometrów stacyjnych, z których jeden (termometr
zwilżony znajdujący się po prawej stronie) ma zbiorniczek rtęci owinięty cienką
warstwą tkaniny (tzw. batyst). Końcówka batystu zanurzona jest w zbiorniczku z wodą
destylowaną. Termometr suchy umieszczony po lewej stronie wskazuje temperaturę
powietrza jaka występuje w chwili dokonywania pomiaru. Koniec tkaniny, stale
zanurzony w pojemniku z wodą paruje, powodując obniżenie temperatury. W rezultacie
termometr wilgotny wskazuje temperaturę niższą niż termometr suchy. Różnica będzie
tym większa, im więcej wody będzie parować z termometru wilgotnego. Parowanie
odbywa się tym bardziej intensywnie, im mniej pary wodnej zawiera powietrze
atmosferyczne. (Bac, Rojek, 1979) [L1]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
31
Rys.13. Psychrometr Augusta.
[źródło:
www.zefir.jawnet.pl/stuff/Meteo.ppt
]
Do standardowego wyposażenia stacji meteorologicznej zalicza się higrometr
włosowy [Rys.14]. Pozwala on bezpośrednio zmierzyć wilgotność względną powietrza.
W przyrządzie tym wykorzystano właściwości wydłużania się odtłuszczonego włosa
ludzkiego w miarę wzrostu wilgotności powietrza i kurczenia się przy jej spadku. Na
stacjach meteorologicznych z reguły jest używany jako przyrząd pomocniczy, służący
do pomiaru wilgotności powietrza, zwłaszcza przy bardzo niskich temperaturach, w
momencie gdy są utrudnione odczyty wskazań psychrometru Augusta, z powodu
stałego zamarzania wody na batyście termometru wilgotnego. (Bac, Rojek, 1979) [L1]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
32
Rys.14. Higrometr włosowy.
[źródło:
www.fizyka.net.pl
]
e)
Wielkość opadu. Pomiary opadów atmosferycznych polegają głównie na
zgromadzeniu wody opadowej, która spadła w określonym czasie, i wyznaczeniu
wysokości warstwy wody, która utworzyłaby się na poziomej powierzchni gruntu.
Podstawowym
przyrządem
do
pomiaru
wysokości
opadów
na
stacjach
meteorologicznych jest deszczomierz Hellmanna [Rys.15.]. Stosowany jest do
wysokości 500 [m n.p.m.]. Składa się z odbiornika, podstawy oraz trzymadła służącego
do zawieszenia przyrządu na paliku. Powierzchnia chwytna (odbiornik) wynosi 200
[cm2], a na górskich stacjach meteorologicznych używa się deszczomierzy o
powierzchni znacznie większej- 500 [cm2]. Deszczomierz przytwierdza się do słupka
tak, by wlot do niego znajdował się w poziomie na wysokości 1 [m] nad powierzchnią
terenu. Powyżej 500 [m n.p.m] deszczomierze montuje się tak , by ich powierzchnia
wlotowa znajdowała się na wysokości 1.5 [m] nad powierzchnia terenu. Wystający
koniec słupka jest ścięty pod kątem 45 [˚], aby ograniczyć gromadzenie się na nim
ś
niegu. Gdy w deszczomierzu znajduje się woda, od razu mierzy się wysokość opadu,
przelewając wodę do specjalnej menzurki, przystosowanej do powierzchni wlotu 200
[cm2]. W przypadku pomiaru opadów w postaci stałej (śnieg, grad, zamarznięta woda)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
33
należy odczekać do ich stopnienia w temperaturze pokojowej pamiętając o tym by
deszczomierz był szczelnie zakryty. (Bac, Rojek, 1979) [L1]
Rys.15. Deszczomierze.
[źródło: IMGW, 2006 r.]
Urządzeniem rejestrującym przebieg opadu, dostarczając tym samym pełnej
informacji o przebiegu procesu w ciągu całego rozpatrywanego okresu czasu jest
pluwiograf pływakowy [Rys.16.]. Wspomniane urządzenie służy do automatycznego
pomiaru ciągłych opadów, rejestrowania ich ilości, czasu trwania i natężenia. Jego
powierzchnia chwytna składa się z otworu wlotowego o powierzchni standardowej 200
[cm2], zakończonej dnem wykształconym w postaci lejka. Woda opadowa dostaje się
przez lejek i gumowego węża do zbiorniczka w którym znajduje się pływak. Pływak w
zbiorniku jest połączony z piórkiem samopisu, przylegającym do taśmy papieru
nawiniętej na metalowy bęben poruszany mechanizmem zegarowym, kreślącym wykres
zwany pluwiogramem. Spływająca do naczynia woda powoduje podniesienia się
pływaka. Jeśli deszcz nie pada, piórko kreśli linię poziomą, a w przypadku opadu kreśli
linię wznoszącą się. Wielkość nachylenia linii zależy od natężenia opadu. Analiza
zarejestrowanych w ten sposób pojedynczych opadów pozwala na odczytanie początku
i końca opadu, czasu jego trwania, wyodrębnienia okresów o różnych natężeniach
opadu w przyjętych jednostkach czasu. (Bac, Rojek, 1979) [L1]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
34
Rys.16. Pluwiograf pływakowy.
[źródło: Hajduk, 2007]
d)
Grubość pokrywy śnieżnej. Zasoby wody w śniegu określa się na podstawie
pomiarów punktowych grubości szaty śnieżnej wykonywanych za pomocą przyrządów
stałych (łata śniegowa) lub przenośnych (laska śniegowa). Pomiary muszą być
wykonywane na większym obszarze w wielu punktach, ponieważ różnice wysokości
szaty śnieżnej są bardzo duże. (Bac, Rojek, 1979) [L1]
Pomiar śniegowskazem przenośnym polega na trzykrotnym, prostopadłym
wbiciu go w śnieg, aż do powierzchni gruntu, za każdym razem w innym miejscu i
odczytaniu jej grubości. Pokrywę śnieżną bada się na wybranym poletku, odpowiednio
przygotowanym: wyrównanym, bez krzewów i drzew. Aby zapobiec wywiewaniu
ś
niegu należy zadbać o to, żeby poletko było niezupełnie otwarte.
W miejscach, gdzie pokrywa śnieżna jest gruba i twarda (np. na stacjach
górskich) stosuje się śniegowskazy stałe. Łaty śniegowe wkopuje się w grunt, tak aby
zero skali znajdowało się na poziomie gruntu. Grubość pokrywy śnieżnej odczytuje się
wtedy z łaty z odległości kilku metrów.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
35
W meteorologii ze względu na prostotę i koszty wykorzystuje się wyżej
wymienione śniegomierze nie rejestrujące.
e)
Kierunek i prędkość wiatru. Przyrządy do pomiaru kierunku i prędkości
wiatru montuje się na drewnianych, metalowych bądź żelbetowych masztach, w
miejscu odległym od wysokich obiektów o co najmniej ich 10-krotną wysokość.
Standardowo, pomiary prowadzi się na wysokości 10 [m] nad poziomem gruntu.
Do pomiaru kierunku i prędkości wiatru na posterunkach klimatologicznych
najczęściej wykorzystuje się wiatromierz Wilda [Rys.17.]. Wychylenie pod wpływem
wiatru, pionowej płytki pozwala na oszacowanie jego prędkości, a osiem
umieszczonych poziomo prętów róży wiatrów oraz obracający się wskaźnik wskazuje w
przybliżeniu kierunek skąd wieje wiatr. Wiatromierz Wilda pozwala na określenie
kierunku i chwilowej prędkości wiatru w chwili obserwacji o wartościach od 1 [m/s] do
wartości nie większych niż 20 [m/s]. (Bac, Rojek, 1979) [L1]
Rys.17. Tradycyjny wiatromierz Wilda.
[źródło: IMGW, 2006 r.]
W pomiarach prędkości wiatru używa się także anemometr czaszowy
Robinsona. [Rys.18.]. Podobnie jak wiatromierz Wilda, przyrząd ten należy do
wiatromierzy mechanicznych. Obracające się pod wpływem wiatru czasze, połączone
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
36
na stałe z osią i ślimacznicą, wprawiają w ruch licznik obrotów. Stan licznika odczytuje
się dwukrotnie: przed i po pomiarze. Równocześnie z uruchomieniem dźwigni należy
włączyć stoper, a po upływie np. 100 [s] należy wyłączyć stoper i ponownie odczytać
jego stan. Z różnicy tych stanów, podzielonych przez czas pomiaru, wyznacza się
ś
rednią prędkość wiatru w tym okresie. (Bac, Rojek, 1979) [L1]
Rys.18. Anemometr ręczny Robinsona.
[źródło:
www.zefir.jawnet.pl/stuff/Meteo.ppt
]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
37
3.
Narzędzia i metody wykorzystane do budowy
systemu
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
38
3.1.
Opis formatu XML
Rozdział ten porusza podstawowe fakty związane z językiem XML - formatem
cieszącym się dużą popularnością w dobie Internetu.
3.1.1.
Definicja XML
XML (skrót od eXtensible Markup Language - rozszerzalny język znaczników),
to otwarty standard opracowany i rekomendowany przez niezależne konsorcjum WC3
(World Wide Web Consortium, http://www.w3c.org). Dlaczego rozszerzalny? Otóż
XML nie jest kolejnym językiem do przechowywania konkretnych danych, jak np.
język HTML opisujący wygląd stron sieciowych. XML to język opisujący dane, czyli
metajęzyk. W uproszczeniu można powiedzieć, że XML służy do tworzenia innych
języków (aplikacji XML) służących do przechowywania informacji. Dzięki temu XML
jest nadzbiorem innych języków znacznikowych, takich jak np. HTML.[L2]
3.1.2.
Pochodzenie XML
Przodkiem języka XML był SGML, standardowy uogólniony język znaczników
służący do ujednolicania struktury i formatu różnego typu informacji (danych). Pozwala
zapisać je w formie dokumentu tekstowego i dzięki temu łatwo przenosić, wyświetlać i
drukować w różnych systemach elektronicznego przekazu danych. SGML w
odróżnieniu od języków znaczników dedykowanych do konkretnych zastosowań (takich
jak np. HTML), nie jest zbiorem określonych znaczników i reguł ich użytkowania, lecz
ogólnym, nadrzędnym językiem służącym do definiowania dowolnych znaczników i
ustalania zasad ich poprawnego użytkowania. Języka SGML używa się praktycznie do
dwóch celów:
-
precyzyjnego definiowania zbiorów znaczników przeznaczonych do
konkretnych zastosowań – przykładem jest język HTML
-
ujednolicania zasad pisania i przekazywania dokumentów tekstowych w
obrębie dużych firm lub instytucji.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
39
Jest to język o dużych możliwościach, ale przez swoje rozmiary i poziom
skomplikowania niezbyt łatwy do stosowania. W związku z trudnościami
implementacyjnymi powstał język i standard XML. XML oferuje 80% możliwości
SGML, przy dziesięciokrotnie łatwiejszym ich wykorzystaniu. (North, 2000)
3.1.3.
Języki znacznikowe
Języki HTML, XHTML oraz XML należą do rodziny języków znacznikowych
(ang. MarkUp Languages). Wszystkie języki znacznikowe opisują postać dokumentu,
czyli sposób jego interpretacji. W językach takich, zawartość dokumentu przeplata się z
pewnymi specjalnymi znacznikami (ang. tag). Ogólnie, znaczniki spełniają trzy funkcje:
-
nadają dokumentowi strukturę, definiując różne jego elementy, takie jak
rozdziały, podrozdziały czy akapity,
-
określają prezentacyjne cechy takie jak kolor i krój czcionki,
-
definiują semantyczne znaczenie fragmentów dokumentu.
W językach HTML oraz XHTML rola znaczników w głównej mierze ogranicza się do
pierwszego punktu: ustalenia struktury zawartości. Prezentacyjną stronę dokumentów
HTML oraz XHTML określamy stosując język CSS.
Jednym z najpopularniejszych obecnie języków znaczników jest HTML,
używany do tworzenia stron sieciowych. Oto taka przykładowa strona:
Rys.19. Strona HTML. [źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
40
Należy zwrócić uwagę, że znaczniki HTML, umieszczone w tej stronie:
-
<head>
-
<center>
-
<h1>
-
<body>
służą tylko po to, aby poinstruować przeglądarkę, co ma zrobić. I do tego właśnie
używa się znaczników: jak już wspomniano wcześniej, wskazują sposób interpretacji
treści dokumentu.
Jak zatem XML działa? Oto przykład pokazanego wcześniej kodu HTML:
Rys.20. Dokument XML. [źródło: opracowanie własne]
Należy zwrócić uwagę na podobieństwo do pokazywanej wcześniej strony, choć tam
wszystkie znaczniki są predefiniowane i przeglądarka potrafi je obsłużyć, natomiast
nasze elementy:
-
<DOKUMENT>
-
<POZDROWIENIA>
-
<KOMUNIKAT>
dopiero powstały.
Pracownik dużego banku chcąc wymieniać dane z innymi przedsiębiorstwami,
wolałby zastosować znaczniki <ROKPODATKOWY>, <NUMERKONTA> i
<TRANSFER> niż <B>, <UL> i <FONT>, ale niestety HTML ich nie zawiera. Tak
naprawdę zresztą i takie języki są tworzone, między innymi Rozszerzalny język
raportowania biznesowego (Extensible Business Reporting Language). Istnieje tyle
powodów tworzenia nowych języków, ile jest sposobów obsługiwania danych, czyli
nieskończenie wiele. Tutaj właśnie jest miejsce dla XML: metaznacznikowej
specyfikacji umożliwiającej tworzenie własnych języków znacznikowych.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
41
3.1.4.
Składnia XML
XML składa się przede wszystkim z tekstu, w którym wplecione są znaczniki
oznaczające różne elementy języka.[L3] Elementy to np. akapity, nagłówki, odnośniki.
Pora na najbardziej chyba typowy przykład — „Hello world”, w XML-u [Rys.21.].
Rys.21. Plik hello_world.xml. [źródło: opracowanie własne]
Na początku znajduje się prolog dokumentu. W prologu umieszcza się zwykle
deklaracje. Może to być standardowa deklaracja XML (pierwsza linia na rysunku
powyżej), czy np. deklaracja arkusza stylów. W linii drugiej rozpoczyna się element
główny – absolutnie nieodłączna część każdego dokumentu XML. Ten nazywa się po
prostu „przykład” (nazwę elementu głównego można oczywiście ustalić samemu), a
wewnątrz niego znajduje się treść „Witaj świecie!”. Można powiedzieć, że jest to jego
zawartość tekstowa. Poniżej znajduje się lista tego wszystkiego, z czego może składać
się dokument XML.
3.1.4.1.
Znaczniki i elementy
Każdy element zaczyna się i kończy znacznikiem. Między znacznikiem
otwierającym, a zamykającym znajduje się zawartość elementu. Element może zawierać
tekst oraz inne elementy (dla przykładu akapit może zawierać tekst i odnośniki). Każdy
znacznik otoczony jest nawiasami trójkątnymi (< i >). Warto jeszcze wspomnieć o
pustych elementach. W XML’u każdy niepusty element musi składać się z pary
otwierającej i zamykającej. Jeśli element nie zawiera żadnej zawartości, można
oczywiście zastosować element otwierający i występujący bezpośrednio za nim
zamykający, np.: <Ala ma= ”kota”><Ala> ale krótsze jest użycie elementu pustego:
<Ala ma= ”kota”/>. warto jeszcze wspomnieć, że w XML-u rozróżniana jest wielkość
liter. Nieprawidłowy będzie więc kod: „<Ala></ala>”. Przy zamykaniu elementów
należy również pamiętać o zachowaniu struktury dokumentu.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
42
3.1.4.2.
Atrybuty
Chcąc dodać do wyżej przedstawionego dokumentu [Rys.21.] właściwość o
nazwie „typ” można użyć atrybutu [Rys.22.].
Rys.22. Atrybut w XML. [źródło: opracowanie własne]
Jak taki atrybut wygląda? Składa się z nazwy, znaku równości i ujętej w cudzysłów
(pojedynczy lub podwójny) wartości. Należy pamiętać, że w przeciwieństwie do języka
HTML, w XML-u wartości atrybutów muszą być ujęte w cudzysłów. Jest tak dlatego,
ż
e programy odczytujące dokumenty XML (parsery) nie muszą znać ich struktury.
W związku z tym składania dokumentów XML musi być bardziej precyzyjna, niż
składnia SGML czy HTML.
3.1.4.3.
Komentarze
Pozwalają na dodanie uwag widocznych (zwykle) tylko w czasie edycji
dokumentu. Komentarz rozpoczyna ciąg „<!--” a kończy „-->”.Oto przykład:
Rys.23. Komentarz w XML. [źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
43
3.1.4.4.
Instrukcje przetwarzania
Nadają się do „przemycania” w dokumentach XML np. skryptów.
Funkcjonalność instrukcji przetwarzania jest tym większa, że pozwalają one na
identyfikację swojej zawartości, po prostu poprzez nazwę. Nazwa ta występuje na
samym początku, po znakach „<?” i funkcjonuje dokładnie tak samo, jak nazwa
każdego elementu.
Rys.24. Instrukcja przetwarzania w XML. [źródło: opracowanie własne]
Instrukcja przetwarzania kończy się ciągiem „?>” [Rys.24.]. Zresztą, wspomniana na
samym
początku
rozdziału
4.1.4
deklaracja
XML:
<?xml
version=”1.0”
standalone=”yes”?> również jest instrukcją przetwarzania.
3.1.4.5.
Prolog
Prolog nie jest obowiązkową częścią dokumentu. Jeśli można go tam znaleźć,
to na samym jego początku, jeszcze przed elementem głównym. Składa się z
rozmaitych deklaracji (które, jak już wiadomo, najczęściej są jednocześnie instrukcjami
przetwarzania). Taką deklaracją jest np. wspomniana już standardowa deklaracja XML:
<?xml version=”1.0”?>. Jedynym jej wymaganym atrybutem jest „version” – wersja o
wartość „1.0”. Nieobowiązkowymi atrybutami są: „encoding”- kodowanie znaków i
„standalone”, który określa, czy dokument jest samodzielny (tzn., czy nie zawiera
odwołań do źródeł zewnętrznych).
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
44
3.1.5.
Przykładowy dokument XML
Jak wygląda dokument XML? Poniżej został przedstawiony przykładowy
dokument XML przechowujący dane osobowe [Rys.25.]. Zawarte zostały w nim
elementy, atrybuty i jeden komentarz. Na następnym rysunku [Rys.26.] umieszczony
jest ten sam dokument wyświetlony w prostym widoku drzewa.
Rys.25. Przykładowy dokument XML. [źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
45
Rys.26. Dokument XML w prostym widoku drzewa. [źródło: opracowanie własne]
3.1.6.
Najważniejsze cechy XML
XML ma szereg ważnych cech, dzięki którym jest wygodnym i uniwersalnym
ś
rodkiem zapisu i wymiany danych. Niektóre z nich zostały omówione poniżej.
(Holzner, 2001)
Jeśli masz potrzebę zapisywania określonych danych o określonej strukturze,
XML okaże się najlepszym narzędziem, bez względu jakie by te dane nie były. W
przeciwieństwie do np. HTML, XML nie ma ograniczonej liczby znaczników, bo
pozwala przechowywać dowolne dane i to w jak najbardziej wygodny dla nas sposób,
bo sami go określamy. Sami określamy strukturę danych, która może być tabelaryczna,
ale może także tworzyć drzewo. W ten sposób nie jesteś, jako twórca zbiorów XML w
ż
aden sposób ograniczony. Na tym przede wszystkim polega wyższość XML nad
innymi formatami zapisu danych.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
46
W XML-u dane przechowywane są w sposób tekstowy, opisywane poprzez
znaczniki, w obrębie których te dane się znajdują. Dużą zaletą postaci tekstowej jest to,
ż
e użytkownik, jeśli to tylko konieczne, może przeglądać dane bez potrzeby korzystania
z dodatkowych aplikacji. Ostatecznie można odczytać dane korzystając z edytora
tekstu. Postać tekstowa pozwala również wykonawcy na łatwiejsze lokalizowanie i
usuwanie błędów w aplikacjach. Warto wspomnieć, że dane nie są w żaden sposób
kodowane, wręcz przeciwnie, są łatwo dostępne.
Potrzeba uniwersalnego i czytelnego formatu danych jest widoczna od dawna,
a w czasach gwałtownego powiększania się sieci stała się koniecznością. XML to
format pozwalający na łatwe przechowywanie dowolnych danych. Dzięki oddzieleniu
treści od formy - czego nie umożliwia wspomniany HTML - łatwo skupić się na
samych danych.
W języku XML wystarczającym opisem dla danych są one same. Dokument
XML sam się opisuje. Czytelność XML, nawet bez użycia specjalnych narzędzi, to
jedna z jego ważniejszych zalet.
Plusem jest także niebywała elastyczność i rozszerzalność. Wbudowany
mechanizm przestrzeni nazw zapewnia łatwość rozbudowy istniejących dokumentów
przy zachowaniu kompatybilności wstecz. Dodatkowe informacje mogą być dodane do
dokumentu XML w sposób dowolny i niezależny od wcześniejszej wersji dokumentu.
3.1.7.
Sposoby wykorzystania formatu XML
3.1.7.1.
Typowe zastosowania XML
XML początkowo miał służyć jako język, który mógłby zastąpić HTML jako
narzędzie do tworzenia stron WWW w tych zastosowaniach, w których niezbędna jest
większa formalizacja przekazu informacji, gdyż informacja ma być dalej przetwarzana.
Tymczasem rzeczywiste zastosowania XML ukształtowały się inaczej, przede
wszystkim koncentrując się wokół elektronicznej wymiany danych. Ważniejsze typowe
zastosowania XML zostały krótko scharakteryzowane poniżej. (Kazienko, Gwiazda,
2002)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
47
a)
Tworzenie stron internetowych. XML ciągle nie jest zbyt popularny w tym
zastosowaniu, gdyż wciąż króluje tu HTML. Strony w XML spotyka się wyłącznie w
zastosowaniach specjalistycznych, głównie związanych z gospodarką elektroniczną.
b)
Reprezentacja informacji semistrukturalnej. XML jest niezastąpionym
ś
rodkiem reprezentowania informacji semistrukturalnej, czyli takiej gdzie informacje
mają pewną strukturę, ale jest ona zmienna, słabo ustalona, czy też częściowo
nieistotna. Przykładem takiej informacji są złożone dokumenty tekstowe, mające
wprawdzie strukturę akapitów, rozdziałów i podrozdziałów, ale słabo sformalizowaną.
Tego typu informacje dają się bez większych trudności zapisywać w XML, zaś bardzo
ź
le reprezentuje się je w relacyjnych bazach danych. XML może tu zatem stanowić
dobre uzupełnienie możliwości typowych baz danych.
c)
Multimedia. XML znalazł dość szerokie zastosowanie związane z
multimediami, w co najmniej dwóch aspektach: bezpośredniego zapisu informacji
multimedialnej, np. grafiki wektorowej (Scalable Victor Graphics- SVG) oraz
sterowania przetwarzaniem informacji multimedialnej (np. Voice-ML).
d)
Specjalistyczne struktury danych. XML jest wykorzystywany do tworzenia
specjalistycznych struktur służących do przekazywania informacji w społeczności
specjalistów z danej dziedziny. Powstają zarówno specjalistyczne dialekty (np.
MathML do zapisu wzorów matematycznych), jak i struktury tworzone na potrzeby
konkretnych organizacji czy projektów.
e)
Komunikacja w sferze publicznej. Specjalną rolę XML może odegrać w
komunikacji w sferze publicznej, zwłaszcza w wymianie informacji między
obywatelem czy przedsiębiorstwem a urzędem. Zastosowanie do takiej wymiany
standardu XML likwiduje przewagę, którą uzyskują firmy tworzące oprogramowanie
dla urzędów. W XML informacje wymieniać może nawet podmiot nie posiadający
specjalistycznego oprogramowania, do utworzenia odpowiedniego pliku danych
wystarczyć bowiem powinien dowolny edytor tekstowy.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
48
f)
Konfiguracja oprogramowania. XML stał się bardzo popularny jako format
zapisu różnego rodzaju plików konfiguracyjnych oprogramowania. XML jest prosty,
łatwy w interpretacji przez użytkownika, a do interpretacji zawartości plików
konfiguracyjnych użyć można standardowych parserów.
g)
Protokoły komunikacyjne. XML znalazł także zastosowanie w różnego
rodzaju protokołach wymiany komunikatów, zdalnego wywoływania procedur itp. Jego
zastosowanie zapewnia czytelność przesyłanych komunikatów, umożliwia też
zastosowanie standardowych parserów XML do interpretacji tych komunikatów.
Przykładem takiego zastosowania jest protokół SOAP.
3.1.7.2.
XML w technologiach programistycznych
Język XML wykorzystuje się do zapisu skomplikowanych danych, ponieważ
stworzony w ten sposób dokument ma strukturę, która jest łatwa do odczytania i
parsowania, niezależnie od stopnia złożoności. Użycie XML w połączeniu z
istniejącymi technologiami zostało przedstawione poniżej.
a)
Flash. Korzystając z XML można przygotować animację we Flash’u w taki
sposób, że ponowna edycja w celu aktualizacji zawartości nie jest konieczna. Dotyczy
to również klientów, którzy mogą wprowadzać zmiany na swoich stronach, ale nie
uzyskują dostępu do samego kodu. Ponadto połączenie multimedialności Flasha z XML
pozwala na tworzenie niezwykle złożonych animacji. W przypadku chęci zmiany
dowolnego elementu, np. grafiki, wystarczy że podda się edycji plik XML.
b)
Web Service. Jest to komponent programowy niezależny od platformy i
implementacji, dostarczający określonej funkcjonalności, zdefiniowanym za pomocą
języka opisu usług- WSDL (Web Services Description Language), który jest
standaryzowanym językiem bazującym na XML’u. Na bazie usług sieciowych można
konstruować rozproszone systemy i aplikacje. Aplikacje komunikują się z usługami
sieciowymi z wykorzystaniem internetowych protokołów (najczęściej jest to protokół
SOAP) i formatów danych, w których XML znajduje także zastosowanie [4.1.7.1.]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
49
c)
Ajax. Tworzenie z danych pobranych z bazy danych własnych struktur XML
w oprogramowaniu po stronie serwera oraz zwracanie ich jako odpowiedzi na żądanie
XHR [P21] jest krokiem niezbędnym do integracji technologii Ajax z bazami danych.
d)
WML (Wireless Markup Language). W świecie telefonów komórkowych
powszechnie używanym językiem jest bezprzewodowy język znaczników (WML)
będący aplikacją XML.
Ponadto XML można użyć w połączeniu z wieloma innymi istniejącymi
technologiami działającymi po stronie serwera, takimi jak np. ASP (Active Server
Pages) i JSP (Java Server Pages).
3.2.
Programowe przetwarzanie XML
Jedną z najważniejszych zalet XML jest łatwość przetwarzania. Już sama
składnia języka, z restrykcyjnymi regułami domykania znaczników, sprzyja łatwemu
przetwarzaniu. Po co pisać programy, które będą przetwarzać dokument XML? Poniżej
kilka możliwych powodów:
-
publikowanie tych samych danych w różnych postaciach
-
publikowanie danych dla różnych grup odbiorców
-
dodawanie i usuwanie danych oraz zmiana ich postaci
-
ładowanie danych do baz danych
-
tworzenie raportów i zestawień
Przetwarzanie można realizować różnymi sposobami, w zależności od tego jak
się patrzy na dane XML:
-
jako na zwykły tekst
-
jako na ciąg zdarzeń
-
jako na strukturę drzewiastą
Na plik XML można patrzeć jako na zwykły plik tekstowy, w którym
wymieszane są dane z zestawem znaczników. Na rynku dostępnych jest mnóstwo
darmowych narzędzi do obróbki tekstu, w których używane są wyrażenia regularne
[P22]: awk, grep, perl czy pyton.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
50
Czytając (sekwencyjnie) plik XML można napotkać wszelkiego rodzaju
sytuacje: napotkać początek dokumentu, odczytać znaczniki początkowe i końcowe,
napotkać komentarze i instrukcje przetwarzania, i tak dalej. Wszystkie te przypadki
można potraktować jako zdarzenia związane z danymi. Zadaniem programisty jest
zakodować odpowiedzi na te zdarzenia, zwane procedurami obsługi zdarzeń. Są to
fragmentu kodu uruchamiane, gdy dane zdarzenie ma miejsce. W przypadku pliku
muzycy.xml [Rys.27.], procesor zorientowany na obsługę zdarzeń, wygeneruje
zdarzenie takie, jak pokazano na rysunku poniżej [Rys.28.]. (Holzner, 2001)
Rys.27. muzycy.xml- plik XML. [źródło: opracowanie własne]
Rys.28. Zdarzenie wygenerowane w wyniku przetworzenia pliku muzycy.xml.
[źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
51
Ważne jest, aby dostrzec, że dokument XML przetwarzany jest według hierarchii, od
lewej strony do prawej.
Poniżej pokazano kolejność analizy poszczególnych węzłów w strukturze XML
[Rys.29.].
Rys.29. Struktura drzewiasta XML- kolejność prowadzenia analizy.
[źródło: opracowanie własne]
Zalety wynikające ze stosowania przetwarzania zorientowanego na obsługę zdarzeń to:
-
prostota
-
szybkość działania
-
nie obciążanie pamięci
Wady to:
-
niemożność spojrzenia wprzód
Do przetwarzania zorientowanego na obsługę zdarzeń używa się pakietu SAX, który
zostanie omówiony w rozdziale [3.3.1.].
Procesory bazujące na strukturach drzewiastych przekształcają dokument
XML na wewnętrzną strukturę drzewiastą i pozwalają aplikacji po tym drzewie się
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
52
poruszać. (Arciniegas, 2002) W przypadku pliku muzycy.xml [Rys.27.] uzyskana
struktura może być taka jak pokazano na rysunku [Rys.30.].
Rys.30. Plik muzycy.xml jako struktura drzewiasta. [źródło: opracowanie własne]
W przypadku, gdy struktura drzewiasta zostanie raz w pamięci utworzona, można się po
niej poruszać. Mają tu miejsce dwa przebiegi:
-
przebieg pierwszy: analiza dokumentu i budowa drzewa
-
przebieg drugi: przetwarzanie samych danych
Zaletą takiego podejścia jest dostęp do całego dokumentu, łatwo więc jest zajrzeć do
przodu. Wadą jest to, że trudniej jest najpierw zbudować drzewo i później się po nim
poruszać- wymaga to więcej pamięci, działa wolniej i wymaga zrobienia dwóch
przebiegów.
Standardem opartym na analizie struktur drzewiastych jest Obiektowy Model
Dokumentu (DOM). Narzędzie to szerzej zostanie omówione w rozdziale [3.3.2.].
3.3.
Parsery XML
Programista wcale nie musi zajmować się bezpośrednio analizowaniem tekstu-
robią to za niego gotowe, biblioteczne analizatory (parsery). Podczas generowania
dokumentu XML struktura danych narzuca strukturę dokumentu XML. Z kolei
struktura wczytywanego pliku XML ma wpływ na strukturę danych, która powstaje w
pamięci komputera. Proces odtwarzania struktury hierarchicznej nazywamy parsingiem.
W przypadku XML dotyczy to np. rozbicia dokumentu na składniki, identyfikacji
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
53
znaczników, zbudowania struktury zagnieżdżenia itp. na podstawie ciągu znaków.
Parsing zajmuje się składniowym aspektem przetwarzania XML.
Rozróżnia się dwa paradygmaty parsingu XML:
-
parsing odtwarzający strukturę drzewa XML w pamięci
-
parsing strumieniowy oparty na wydarzeniach
Parsery strumieniowe nie budują drzewa w pamięci, tylko
generują strumień
zdarzeń, które są przechwytywane oraz przetwarzane na bieżąco przez tzw. funkcje callback.
Odpowiednie zdarzenia są generowane w momentach, gdy parser w momencie wczytywania
natrafia np. na znaczniki otwierające, znaczniki zamykające itp. Parser strumieniowy udostępnia
dane z dokumentu XML w trakcie przetwarzania dokumentu. Nie musi być wczytana całość
dokumentu. Wymagania pamięciowe takich parserów są niskie w związku z czym można
przetwarzać wielkie dokumenty XML.
Z kolei w przypadku parserów odtwarzających strukturę drzewiastą dokumentów, cały
dokument XML jest konwertowany na pojedynczą strukturę danych. Podobnie jak sam
dokument XML ta struktura danych ma strukturę drzewa, w którym węzły reprezentują
elementy, atrybuty, dane tekstowe, i inne fragmenty dokumentu XML. Cała struktura danych
jest przechowywana w pamięci, co może stanowić poważny problem w przypadku dużych
dokumentów XML.
Oto lista niektórych dostępnych parserów: (Holzner, 2001)
-
SAX: The Simple API for XML- jest popularnym parserem działającym
na podstawie obsługi zdarzeń, którego autorem jest David Megginson
[www.megginson.com/SAX/index.htm]
-
DOM: Document Object Model- standard oparty na analizie struktur
drzewiastych utworzony przez Konsorcjum W3C [www.w3.org/DOM/]
-
Java Standard Extension for XML- z uwagi na to, że XML i Java firmy Sun
Microsystems są ze sobą tak często łączone, Sun proponuje własny pakiet Javy
do XML
-
The Microsoft XML Parser- parser używany w Internet Explorer
-
expat- słynny parser XML napisany w języku C przez Jamesa Clarka
[www.jclark.com/xml/expat.html], używany w Netscape Nawigator 6 oraz w
module Perla XML::Parser
-
expat w postaci modułu Perla- modułem XML::Parser opiekuje się Clark
Cooper [ftp://ftp.perl.org/pub/CPAN/modules/by-module/XML/]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
54
-
LT XML- jest to pakiet dla projektantów XML pochodzący z Uniwersytetu w
Edynburgu, z Language Technology Group [www.ltg.ed.ac.uk/software/xml/]
-
XML for Java (XML4J)- autorstwa IBM AlphaWorks, znany i szeroko
stosowany parser XML [www.alphaworks.ibm.com/tech/xml4j]
-
Python and XML Processing Preliminary XML Parser- umożliwia obsługę
XML w języku programowania Python [www.python.org]
-
OmniMark 5 Programming Language- zawiera wbudowaną obsługę
parsowania i walidacji XML [www.omnimark.com]
Jak widać istnieje wiele analizatorów leksykalnych XML, jednak do
najbardziej znanych zalicza się wymienione standardy DOM i SAX, które zostały
omówione poniżej.
3.3.1.
SAX - zbiór interfejsów do zdarzeniowego przetwarzania plików XML
SAX to skrót od Simple API for XML. Jest to prosty interfejs programistyczny
do sekwencyjnego parsowania dokumentów XML. Jest to jeden z mechanizmów, który
pozwala odczytywać dane zapisane w dokumentach XML. SAX jest popularną
alternatywą dla DOM. (Arciniegas, 2002)
Parser, który implementuje SAX, działa jako parser strumieniowy sterowany
zdarzeniami. Użytkownik określa szereg metod, które obsługują zdarzenia pojawiające
się podczas przetwarzania danych. SAX rozpoznaje m.in. następujące elementy
dokumentu XML:
-
węzły tekstowe
-
elementy
-
instrukcje przetwarzania
-
komentarze
Zdarzenia wywoływane są podczas napotkania któregokolwiek z powyższych
elementów- dwukrotnie, na początku i na końcu. Atrybuty są dostępne jako część
danych przekazywanych do procedury obsługi danego zdarzenia. Przetwarzanie z
użyciem SAX jest jednokierunkowe- wcześniej przetworzone dane nie mogą być
ponownie odczytane bez ponownego uruchomienia całej procedury.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
55
Rys.31. Fragment kodu XML zawierającego dane hydrometeorologiczne.
[źródło: opracowanie własne]
Dla powyżej umieszczonego przykładowego fragmentu dokumentu XML
[Rys.31.] parser może wygenerować następujące sekwencje zdarzeń, wskazujących na
wystąpienie kolejnych elementów dokumentu:
-
prolog dokumentu, nazwa xml, z atrybutem version o wartości "1.0" oraz
encoding o wartości "UTF-8"
-
początek elementu, nazwa ROOT, z atrybutem xmlns:xsi o wartości
”http://www.w3.org/2001/XMLSchema-instance”
-
początek elementu, nazwa row
-
początek elementu, nazwa field, z atrybutem name o wartości ”Typ kanału”
-
węzeł tekstowy o treści ”1”
-
koniec elementu, nazwa field
-
początek elementu, nazwa field, z atrybutem name o wartości ”Data pomiaru”
-
węzeł tekstowy o treści ”1998-12-31 07:40:00”
-
koniec elementu, nazwa field
-
początek elementu, nazwa field, z atrybutem name o wartości ”Wartosc”
-
węzeł tekstowy o treści ”B-1”
-
koniec elementu, nazwa field
-
koniec elementu, nazwa row
SAX składa się z wielu interfejsów [P23] i klas [P24]. Dostępne są one w
pakiecie org.xml.sax. Oprócz najważniejszego interfejsu XMLReader, są tam także
interfejsy implementowane przez użytkownika (np. ContentHandler, ErrorHandler).
Interfejs XMLReader zawiera metody pozwalające zarejestrować obiekty
obsługujące zdarzenia i rozpocząć przetwarzanie dokumentu XML. Interfejs
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
56
ContentHandler powiadamia o wystąpieniu takich zdarzeń jak napotkanie znacznika
początkowego lub końcowego, a ErrorHandler zajmuje się obsługą błędów. Proste
aplikacje XML oraz parsery można tworzyć przy użyciu samego tylko interfejsu
DocumentHandler, ewentualnie jeszcze ErrorHandler. Poniżej wyliczono najważniejsze
metody należące do interfejsu DocumentHandler: (Arciniegas, 2002)
-
startDocument()- pozwala uzyskać informację o rozpoczęciu przetwarzania
dokumentu
-
endDocument()- pozwala uzyskać informację o zakończeniu przetwarzania
dokumentu
-
ignorableWhiteSpace()- pozwala uzyskać informację o przetwarzaniu białych
znaków, które można pominąć
-
startElement(string nazwa, AttributeList atrybuty)- pozwala uzyskać
informację o rozpoczęciu przetwarzania podanego elementu, parametry
według tabeli [Tab.4.]
-
endElement(string nazwa)- pozwala uzyskać informację o zakończeniu
przetwarzania elementu, parametry według tabeli [Tab.5.]
-
characters(char ch[], int start, int długość)- pozwala uzyskać informację o
przetwarzaniu danych tekstowych, parametry według tabeli [Tab.6.]
-
processingInstruction(string docelowo string dane)- pozwala uzyskać
informację o analizie instrukcji przetwarzania, parametry według tabeli
[Tab.7.]
Tab.4. Parametry metody startElement interfejsu DocumentHandler.
[źródło: opracowanie własne]
Nazwa
Znaczenie
Typ
nazwa
Nazwa elementu
string
atrybuty
Atrybuty związane z elementem
AtributeList
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
57
Tab.5. Parametry metody endElement interfejsu DocumentHandler.
[źródło: opracowanie własne]
Nazwa
Znaczenie
Typ
nazwa
Nazwa elementu
string
Tab.6. Parametry metody Characters interfejsu DocumentHandler.
[źródło: opracowanie własne]
Nazwa
Znaczenie
Typ
ch
Znaki z dokumentu XML
Tablica wartości typu char
start
Pozycja początkowa w tablicy
integer
długość
Ilość znaków tablicy, które mają zostać
odczytane
integer
Tab.7. Parametry metody processingInstruction interfejsu DocumentHandler.
[źródło: opracowanie własne]
Nazwa
Znaczenie
Typ
docelowo
Cel działania instrukcji przetwarzania
string
dane
Dane instrukcji przetwarzania
string
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
58
Poniżej zostało przedstawione działanie modelu SAX wykorzystującego
metody interfejsu DocumentHandler [Rys.32.].
Rys.32. Działanie modelu SAX- przykład.
[źródło:
www.mimuw.edu.pl/~sziolo/W05_Programowanie.ppt
]
3.3.2.
DOM - zestaw funkcji do manipulowania plikami XML
DOM to skrót od Document Object Model (obiektowy model dokumentu)- jest
to model, w którym dokument zawiera obiekty mające własności (atrybuty) oraz
metody, które pozwalają tym obiektem manipulować. (Arciniegas, 2002) Oznacza to, że
specyfikacja DOM umożliwia:
-
dodawanie, usuwanie i modyfikowanie elementów
-
dodawanie, usuwanie i modyfikowanie atrybutów
-
modyfikowanie zawartości elementów
Pierwotnie nie istniał standardowy model DOM. Twórcy najpopularniejszych
przeglądarek internetowych (Netscape i Microsoft) tworzyli własne niezgodne ze sobą
modele. Organizacja W3C przygotowała ujednolicony standard obiektowego modelu
dokumentu, w którym dostęp do elementów dokumentu możliwy jest poprzez
wywołanie odpowiedniej metody.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
59
Jako, że opisywany model zaprojektowany został metodą obiektową, interfejsy
zdefiniowano w formie klas [P23]. (Holzner, 2001) Do najważniejszych obiektów
zalicza się [Rys.33.]:
-
Node (węzeł)
-
Dokument (dokument)
-
Atrr (atrybut)
-
Element (element)
-
Text (tekst)
-
Comment (komentarz)
-
ProcessingInstruction (instrukcja przetwarzania)
-
CDATASection (sekcja CDATA)
Opisane wyżej obiekty są ze sobą w pewien sposób powiązane. Obiekty leżące
niżej w strukturze drzewa dziedziczą własności i metody z obiektów leżących wyżej.
Powiązania te przedstawione zostały na rysunku znajdującym się poniżej [Rys.33.].
Rys.33. DOM- najważniejsze interfejsy. [źródło: opracowanie własne]
Interfejs Node reprezentuje pojedynczy węzeł w strukturze dokumentu, są
różne rodzaje węzłów i każdy z nich posiada odpowiedni kod DOM. Obiekt typu Node
zawiera uogólnione własności i metody pozwalające pobierać i ustawiać informację o
węzłach.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
60
W umieszczonej poniżej strukturze pliku [Rys.34.] obiektami Node są:
”znacznik”, ”atrybut”, ”tag” oraz ”tekst”. Różnią się one rodzajem: ”znacznik” oraz
”tag” jest typu Element, ”atrybut” typu Attr, a ”tekst” typu Text.
Rys.34. Obiekt typu Node.
[źródło: opracowanie własne]
Ogólne własności obiektu Node umieszczone zostały w tabeli [Tab.8.],
natomiast metody w tabeli [Tab.9.]. (Arciniegas, 2002)
Tab.8. Własności/atrybuty obiektu Node. [źródło: opracowanie własne]
Nazwa
Wartość
nodeName
Nazwa węzła (typ String; np.
znacznik.nazwaatrybutu)
nodeValue
Wartość węzła (typ String; np. wartość
atrybutu)
nodeType
Kod reprezentujący rodzaj obiektu (np. 1
dla elementu, 2 dla atrybutu)
parentNode
Węzeł-rodzic węzła danego (typ: Node)
childNodes
Obiekt NodeList zawierający wszytskie
węzły-dzieci węzła bieżącego
firstChild
Pierwszy węzeł-dziecko węzła bieżącego
(typ: Node)
lastChild
Ostatni węzeł-dziecko węzła bieżącego
(typ: Node)
previusSibling
Węzeł znajdujący się bezpośrednio przed
węzłem bieżącym (typ: Node)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
61
nextSibling
Węzeł znajdujący się bezpośrednio za
węzłem bieżącym (typ: Node)
attributes
Nazwana mapa węzła zawierająca
wszytskie atrybuty (typ:
NamedNodeMap)
Tab.9. Metody obiektu Node. [źródło: opracowanie własne]
Nazwa
Wartość
insertBefore(noweDziecko, Dziecko0)
Wstawiany węzeł; noweDziecko to
węzeł, który ma być dodany, a Dziecko0
to węzeł, przed którym nowy ma być
wstawiony
replaceChild(noweDziecko, Dziecko0)
Podmieniany węzeł; węzeł noweDziecko
zastępuje węzeł Dziecko0
removeChild(dziecko)
Usuwany węzeł
appendChild(dziecko)
Węzeł, przy czym dziecko to węzeł
dodawany do listy węzłów-dzieci
hasChildNodes()
True lub false (odpowiednio prawda lub
fałsz) w zależności od tego, czy węzeł ma
węzły-dzieci, czy nie
cloneNode(dalej)
Duplikowany węzeł; jeśli parametr dalej
ma wartość true/prawda, duplikowanie
realizowane jest rekursywnie, wraz ze
wszystkimi węzłami potomnymi
Obiekt typu Document jest reprezentacją całego dokumentu XML. Klasa ta
dziedziczy wszystkie właściwości i metody z klasy Node. W tabeli [Tab.10.]
zestawione są własności i atrybuty obiektu Document. (Arciniegas, 2002)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
62
Tab.10. Własności/atrybuty obiektu Document. [źródło: opracowanie własne]
Nazwa
Wartość
documentElement
Obiekt Element reprezentujący element
główny dokumentu.
doctype
Obiekt DocumentType zawierający dane na
temat typu dokumentu; jeżeli typ nie jest
zdefiniowany zwraca null.
implementation
Obiekt implementacji DOMImplementation
W tabeli [Tab.11.] pokazano metody obiektu Document.
Tab.11. Metody obiektu Document. [źródło: opracowanie własne]
Nazwa
Wartość
create Element(znacznik)
Nowy obiekt Element o nazwie znacznik.
createtextNode(dane)
Nowy węzeł tekstowy z przekazanymi
danymi
createComment
Nowy węzeł komentarza z przekazanym
tekstem.
getElementsByTagName
Obiekt NodeList wszystkich elementów-
potomków o wskazanej nazwie.
Obiekt Attr reprezentuje atrybut węzła typu Element. Obiekt ten dziedziczy
wszystkie własności i metody obiektu Node (Arciniegas, 2002). W strukturze
umieszczonej na rysunku [Rys.34.] obiektem typu Attr jest węzeł ”atrybut”.
Właściwości interfejsu Attr przedstawione są w tabeli [Tab.12.].
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
63
Tab.12. Własności obiektu Attr. [źródło: opracowanie własne]
Nazwa
Wartość
name
Zwraca nazwę atrybutu.
specified
Zwraca true jeżeli wartość atrybutu
została zdefiniowana; false jeżeli wartość
jest domyślna, nie zdefiniowana
ownerElement
Zwraca obiekt typu
Element
do którego
należy atrybut
value
Podczas odczytu zwraca ciąg znaków
będący wartością atrybutu; podczas
ustawiania tworzy obiekt
Text
z pustym
ciągiem znaków
Obiekt Element jest to podstawowy typ węzła (Holzner, 2001). Elementy są
obiektami które powstają poprzez definiowanie znaczników. W strukturze umieszczonej
na rysunku [Rys.34.] zarówno ”znacznik” jak i ”tag” jest obiektem typu Element.
Obiekt
ten dziedziczy wszystkie własności i metody obiektu Node.
Obiekt typu Text reprezentuje typ węzła zawierający dane tekstowe (Holzner,
2001). W strukturze umieszczonej na rysunku [Rys.34.] obiektem typu Text jest węzeł
”tekst”.Interfejs Text dziedziczy wszystkie własności i metody obiektów CharacterData
(interfejs rozszerzony) oraz Node.
Obiekt typu Comment jest klasą reprezentującą komentarz (Holzner, 2001).
Dziedziczy on wszystkie własności i metody obiektów CharacterData (interfejs
rozszerzony) oraz Node.
Obiekt typu ProcessingInstruction reprezentuje instrukcję przetwarzania.
(Holzner, 2001) Dziedziczy on wszystkie własności i metody obiektu Node.
Obiekt typu CDATASection reprezentuje dane tekstowe, które nie podlegają
parsowaniu XML. Dziedziczy on wszystkie własności i metody obiektów: Text,
CharakterData (interfejs rozszerzony) oraz Node. (Holzner, 2001)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
64
Obiekty typu: Element, Dokument, Atrr, Element, Text, Comment,
ProcessingInstruction, CDATASection, po prostu stanowią rozszerzenie ogólnego
obiektu Node i zawierają jedynie kilka dodatkowych własności i metod pozwalających
używać nowego obiektu nieco łatwiej.
3.3.3.
SimpleXML – biblioteka do parsowania dokumentów XML
SimpleXML- jest to biblioteka prosta w obsłudze, wygodna do parsowania
niezbyt skomplikowanych dokumentów XML za pomocą PHP5. SimpleXML działa
trochę inaczej niż DOM. Poprzez wywołanie jednej funkcji otrzymuje się drzewo
obiektów i tablic. Każdy element drzewa daje dostęp do tablicy swoich "potomków",
tablicy asocjacyjnej z atrybutami, oraz do przechowywanego przez siebie tekstu. I to
jest esencja zarówno prostoty tego rozwiązania, gdyż całą resztę robi się przy użyciu
najzwyklejszych w świecie pętli (np. foreach()).[L7]
Konstruktor SimpleXMLElement oraz funkcje simplexml_load_file() i
simplexml_load_string() tworzą drzewo obiektów SimpleXML na podstawie kodu
XML podanego jako parametr. Metoda asXML() działa w odwrotną stronę. Generuje
kod XML drzewa obiektów dla którego została wywołana.
Funkcja simplexml_load_file() wczytuje dokument XML z pliku i
przekształca go w obiekt. Zwraca ona referencję do obiektu reprezentującego główny
element pliku XML (korzeń drzewa). Pobierany przez nią parametr może być adresem
URL lub ścieżką lokalną [Rys.35.].[L7]
Rys.35. Funkcja simplexml_load_file().
[źródło:
http://serwis.magazynyinternetowe.pl
]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
65
Przy tworzeniu obiektu SimpleXMLElement z ciągu wykorzystuje się funkcję
simplexml_load_string() [Rys.36.]. Jako argument przekazuje się nazwę stałej tekstowej
lub zmiennej, w której znajduje się drzewo XML. Dzięki temu kod XML może
pochodzić z dowolnego źródła (np. z bazy danych), a nie tylko z pliku.
Rys.36. Funkcja simplexml_load_string().
[źródło:
http://serwis.magazynyinternetowe.pl
]
Konstruktor klasy SimpleXMLElement pozwala na korzystanie z obu
powyższych funkcji. Aby obiekt został utworzony na podstawie pliku, konstruktor
należy wywołać z trzema parametrami [Rys.37.].
Rys.37. Konstruktor klasy SimpleXMLElement z trzema parametrami.
[źródło:
http://serwis.magazynyinternetowe.pl
]
Jeśli natomiast do konstruktora przekazywany jest napis, stosuje się wówczas
tylko i wyłącznie jeden parametr [Rys.38.].
Rys.38. Konstruktor SimpleXMLElement z jednym parametrem.
[źródło:
http://serwis.magazynyinternetowe.pl
]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
66
Każdy znacznik pliku XML jest reprezentowany przez obiekt SimpleXML. W
zależności, jak się odwołuje do tego obiektu, można pobrać różne dane ze znacznika.
Oto możliwe warianty dostępu do węzłów drzewa:
-
echo $element;
-
echo $element -> element_pochodny;
-
echo $element -> element_pochodny[0];
-
echo $element[‘atrybut’];
Pierwszego wariantu używa się, gdy chce się pobrać tekst z danego znacznika
(<x>tekst do pobrania</x>). Wszystkie elementy potomne są reprezentowane jako pola
naszego obiektu i noszą takie same nazwy, jakie miały w pliku XML (no i także są
obiektami SimpleXML). Jeśli dany element pochodny pojawił się w danym znaczniku
tylko raz, sprawa jest prosta – stosuje się wariant drugi. Gdy jest ich więcej, pole w
obiekcie będzie tablicą, której każdy element będzie odwoływał do kolejnych
egzemplarzy danego znacznika. Należy tylko pamiętać, że jak zawsze elementy tablicy
numeruje się od zera.
Na przykładowym pliku data.xml [Rys.39.] pokazano jak można uzyskać
dostęp do węzłów drzewa.
Rys.39. Zawartość pliku data.xml.
[źródło:
http://serwis.magazynyinternetowe.pl
]
Rys.40. Pobieranie danych ze znacznika.
[źródło:
http://serwis.magazynyinternetowe.pl
]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
67
Do modyfikowania drzewa obiektów służą metody AddChild() oraz
AddAttribute(). Pozwalają one na dodawanie węzłów i atrybutów.
Metoda xpath() służy do wyszukiwania danych przy użyciu zapytań XPath, zaś
funkcja simplexml_import_dom() umożliwia konwersję formatu DOMDocument do
formatu SimpleXML.
Nazwę elementu głównego zwraca metoda getName() [Rys.41.].
Rys.41. Metoda getName().
[źródło:
http://serwis.magazynyinternetowe.pl
]
Składowe można przetwarzać pętlą foreach, wykorzystując metodę children(),
która zwraca tablicę obiektów SimpleXMLElement reprezentujących elementy potomne
[Rys.42.].
Rys.42. Metoda children().
[źródło:
http://serwis.magazynyinternetowe.pl
]
Atrybuty elementu są zwracane w postaci tablicy asocjacyjnej przez metodę
attributes(). Wykorzystując pętle foreach dwukrotnie: raz po przetworzeniu tablicy
elementów, drugi raz do przetworzenia tablicy atrybutów, można zamienić dokument
XML na dwupoziomową listę ul [P25]. Po odczytaniu z pliku pracownicy.xml [Rys.43.]
listy pracowników, można przetworzyć wszystkie elementy i ich atrybuty jak na
poniższym przykładzie [Rys.44.].
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
68
Rys.43. Zawartość pliku pracownicy.xml.
[źródło:
http://serwis.magazynyinternetowe.pl
]
Rys.44. Przetwarzanie elementów i atrybutów.
[źródło:
http://serwis.magazynyinternetowe.pl
]
Pełne zestawienie metod klasy SimpleXML jest zawarte w załączonej poniżej
tabeli [Tab.13.].
Tab.13. Interfejs klasy SimpleXML. [źródło: opracowanie własne]
Funkcje/Metody
Rodzaj
Opis
__construct()
metoda
Konstruktor klasy. Tworzy drzewo na
podstawie kodu XML.
simplexml_load_file()
simplexml_load_string()
funkcje
Tworzenie drzewa obiektów na
podstawie kodu XML.
attributes()
children()
getName()
metody
Dostęp do elementów oraz atrybutów.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
69
AddChild()
AddAttribute()
metody
Dodawanie węzłów drzewa.
asXML()
metoda
Generowanie kodów XML na
podstawie drzewa.
getDocNamespaces()
getNamespaces()
metody
Sprawdzanie przestrzeni nazw.
simplexml_import_dom()
funkcja
Konwersja formatu DOM do formatu
SimpleXML.
xpath()
registerXPathNamespace()
metody
Wydawanie zapytań XPath.
3.3.4.
Modele przetwarzania XML- porównanie DOM, SimpleXML oraz SAX
DOM, będący dziełem W3C, służy do przetwarzania dokumentu XML
reprezentowanego przez drzewo obiektów. Parser typu DOM umożliwia dokonanie
transformacji dokumentu na drzewo, manipulacje na tym drzewie oraz serializacje, tzn.
przekształcenie drzewa z powrotem w tekst XML. DOM pozwala stosunkowo łatwo
operować na dokumencie i dokonywać jego modyfikacji, ale wymaga sporych zasobów,
ponieważ cały dokument jest przekształcany na strukturę w pamięci operacyjnej. W
przypadku konieczności operowania na dużych dokumentach DOM może nie
zapewniać dostatecznej wydajności.
SimpleXML ma wiele zalet, choćby intuicyjny sposób użycia interfejsów.
Zalety powodują, że model ten wykorzystywany jest dość często ale do niezbyt
skomplikowanych dokumentów XML. Nie we wszystkich zastosowaniach można
posługiwać się tym modelem. Ma on kilka wad, a najważniejszą z nich jest szybkość
przetwarzania danych. SimpleXML może być do czterech razy wolniejszy niż
konkurencyjne rozwiązania DOM czy SAX. Wynika to z faktu, że w trakcie całego
procesu struktura elementów i właściwości tworzona jest na bieżąco. Aby uzyskać
elementy z danej przestrzeni nazw, należy wywołać metodę children(), która w efekcie
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
70
zwróci obiekt z elementami tej przestrzeni jako właściwościami. Dlatego też powstał
konkurencyjny SAX.
W przeciwieństwie do DOM i SimpleXML, przetwarzanie za pomocą SAX
nie wymaga tworzenia obrazu dokumentu w pamięci, opiera się zaś na programowaniu
zdarzeniowym. Parser wczytuje dokument i natrafiając na charakterystyczne jego
części, np. początki i końce znaczników, generuje zdarzenia. Programista może
obsługiwać te zdarzenia i dzięki temu analizować treść dokumentu. Przetwarzanie za
pomocą SAX jest zwykle zdecydowanie wydajniejsze od użycia DOM i SimpleXML.
Ponieważ jednak nie jest tworzony obraz całego dokumentu, ten sposób przetwarzania
nie jest właściwy wtedy, gdy na dokumencie chce się dokonać pewnych manipulacji i
tak zmieniony dokument zapisać w XML.
3.4.
Opis formatu CSV
Format CSV jest właściwie szeroką klasą formatów tekstowych Jego nazwa
pochodzi od angielskiego Comma Separated Values, czyli wartości rozdzielone
przecinkiem. Jest to format przechowywania danych tabelarycznych w plikach
tekstowych. W formacie tym poszczególne linie tekstu stanowią rekordy danych. Linie
tekstu zawierają separatory oddzielające wartości poszczególnych pól rekordu. Według
standardu, wartości powinny być rozdzielone przecinkiem (zwanym znakiem
rozdzielającym), lecz dopuszcza się stosowanie np. znaków średnika, tabulatora lub
znak końca linii.[L4]
Oprócz wspomnianego znaku rozdzielającego, dane CSV mogą korzystać z
cudzysłowu w celu oznaczenia danych tekstowych. Jeśli jakiś fragment tekstu zawiera
np. przecinek, wtedy potrzebne jest opatrzenie go cudzysłowem.
Większość programów bazodanowych, a także komercyjne i niekomercyjne
programy biurowe (np. Microsoft Excel, Microsoft Word, Open Office) obsługują
format CSV. Jeśli jednak bezpośrednia wymiana danych między dwoma programami
nie jest możliwa, eksportowanie danych do plików w formacie CSV umożliwia ich
pośrednią wymianę. Po dokonaniu eksportu można otworzyć plik CSV np. w arkuszu
kalkulacyjnym. Ma to też taką zaletę, że dane w plikach można łatwo zachować jako
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
71
kopia bezpieczeństwa. Do minusów można zaliczyć, wspomnianą dowolność wyboru
separatorów, która ogranicza przenośność omawianego pliku. Aby obejść to utrudnienie
pozwala się na konfigurowanie separatorów.
3.5.
Flash oraz Action Script 3.0 jako narzędzia prezentacji danych
Flash jest to program komputerowy- technologia tworzenia animacji z
wykorzystaniem grafiki wektorowej. Powstałe pliki .swf, zwane często "plikami Flash"
można odtwarzać na stronie za pomocą przeglądarki internetowej z zainstalowaną
odpowiednią wtyczką (np. Adobe Flash Player) lub w oddzielnym programie do tego
przeznaczonym. Pliki Flash są najczęściej wykorzystywane do reklam internetowych,
internetowych prezentacji i animacji. („Programming ActionScript 3.0”, 2007)
Ciekawym narzędziem webmasterskim, zaimplementowanym we Flash’u jest
FusionCharts. [L6] Pozwala ono na zagnieżdżanie na stronie internetowej animowanych
wykresów 3D w formacie .swf. Wymaga to ustawienia parametrów wyświetlania a na
końcu pobrania kodu (pliku XML) z zestawem informacji liczbowych, który
wstawiamy do źródła strony. FusionCharts sprawia, że proces tworzenia wykresów jest
„bezbolesnym doświadczeniem” dla programistów. Od momentu kiedy XML jest
głównym interfejsem danych, wymaga się jedynie konwersji danych do formatu XML
przy użyciu odpowiednich języków programowych (np. PHP). FusionCharts udostępnia
zestaw gotowych elementów Flash’a napisanych w ActionScript 3.0, które parsują
przygotowane wcześniej pliki XML i dzięki wykorzystaniu gotowych funkcji
JavaScriptu renderują wykresy w przeglądarce.
ActionScript 3.0 jest to najnowsza wersja programowania aplikacji Flash,
służąca do sterowania animacjami i aplikacjami, tworzenia praktycznie każdego rodzaju
treści- od sekwencerów dźwięku, gier i animowanych wygaszaczy ekranu do
graficznego interfejsu użytkownika. Zarówno ActionScript, jak i JavaScript są oparte na
podobnej składni, więc można je łatwo przekładać. Składniowo jest dostosowany do
obsługi elementów stworzonych w programie Flash. („Programming ActionScript 3.0”,
2007)
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
72
4.
Implementacja
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
73
4.1.
Struktura systemu tajFUN v.0.2
System tajFUN v.0.2 jest podzielony na kilka modułów, z których każdy
spełnia odrębną funkcjonalność. Zaimplementowane przeze mnie moduły to moduł
importu oraz eksportu danych. Pozostałe moduły systemu to (Gorzan,2008):
- main – jest to moduł startowy, w którym ładowana jest strona domowa
systemu z krótką informacją na jego temat.
- security – jest to moduł odpowiedzialny za autentykację i dostep do
pozostałych modułów.
- stacje – jest to moduł, który odpowiada za: tworzenie stacji pomiarowych, z
których dane będą przechowywane w systemie, określanie jej odpowiednich
parametrów (np. położenie) oraz przyporządkowywanie odpowiednich
znajdujących się na danej stacji.
- czujniki – jest to moduł, który odpowiada za tworzenie oraz opis urządzeń
pomiarowych. Moduł ten tworzy również słownik jednostek pomiarowych.
- pomiary – jest to moduł odpowiedzialny za uzupełnianie bazy pomiarami. Z
poziomu modułu dodawania pomiarów dostępna jest funkcja importowania
danych.
- szukaj – jest to prosta w obsłudze wyszukiwarka pomiarów. Po wejściu do
modułu wyszukiwania są do dyspozycji pewne okna kryterialne, w których
odpowiednio znajdują się lata, miesiące stacje, oraz czujniki pomiarowe. Po
wybraniu odpowiednich kryteriów pojawia się przycisk szukaj. Rezultatem
wyszukiwania jest tabelka z danymi odpowiadającymi kryteriom. Z poziomu
okna rezultatu wyszukiwania dostępna jest funkcja eksportu danych
odpowiedzialna za eksportowanie danych do formatów: XML, CSV oraz PDF.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
74
4.2.
Import danych hydrometeorologicznych do bazy danych
Pobieranie zawartości utworzonych przez system RC10 Decoder (M. Kowal,
2008) dokumentów w formacie XML odbywa się na poziomie modułu dodawania
pomiarów
(Gorzan, 2008).
Po kliknięciu na link „Import z xml” następuje
przekierowanie do modułu importu [Rys.45.]. Przycisk „Przeglądaj…” wygeneruje
nowe okno, w którym należy określić lokalizację pliku z importowanymi danymi
hydrometeorologicznymi. Po kliknięciu na przycisk „Wyślij” nastąpi proces zapisu
importowanych wartości pomiarów hydrometeorologicznych do bazy danych.
Rys.45. Moduł importu pliku XML do bazy danych. [źródło: opracowanie własne]
Warunkiem koniecznym do skorzystania z funkcji importu jest:
-
posiadanie pliku XML wygenerowanego przez system RC10 Decoder
-
posiadanie informacji na temat konfiguracji rejestratora RC10 dla
pomiarów w podanym pliku XML (np. plik opisu o rozszerzeniu CONF)
Informacja na temat danej konfiguracji powinna zawierać numer linii
pomiarowej oraz odpowiadający jej opis tekstowy (M. Kowal, 2008).
.
Rys.46. Fragment zewnętrznego pliku (konfiguracyjnego) opisów danych
hydrometeorologicznych. [źródło: (M. Kowal, 2008)]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
75
Jest to niezbędna informacja ponieważ plik XML zawiera jedynie wartości
pomiarów meteorologicznych, datę i czas wykonania oraz numer określający rodzaj
czujnika zamontowanego na linii pomiarowej.
Przy wykonywaniu operacji exportu system tworzy słownik dla danej serii
pomiarów z informacjami jakie parametry były mierzone na danym kanale. Istnieją
dwie możliwości budowy słowniku:
-
manualne zdefiniowanie jaki parametr był mierzony na jakiej linii pomiarowej,
przez wybór odpowiednich wartości z okna wyboru dla danego kanału [Rys.47.]
-
wysłanie do sytemu pliku konfiguracyjnego [Rys.47.]
Rys.47. Możliwości budowy słownika. [źródło: opracowanie własne]
Po wybraniu odpowiedniej opcji budowy słownika i zaakceptowaniu wyboru
poprzez kliknięcie na przycisk importuj rozpocznie się w pierwszej fazie zapis słownika
do bazy danych a następnie proces parsowania i zapisu pomiarów do bazy danych.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
76
4.2.1.
Modele parsowania pliku XML z rejestratora RC10
Na poniższych rysunkach zostały przedstawione modele parsowania pliku
XML pochodzącego z rejestratora RC10.
Rys.48. Fragment modelu parsowania- SimpleXML. [źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
77
Rys.49. Fragment modelu parsowania- SAX. [źródło: opracowanie własne]
Pierwszy z nich to parser, który wykorzystuje podstawowe, udostępnione
przez PHP5 narzędzie zwane SimpleXML. Na początku zaimplementowanego parsera
otwierane jest połączenie do bazy danych. Parser tworzy obiekt klasy SimpleXML, a
następnie wykorzystując pętlę foreach() przetwarza każdy element ”row” dokumentu
zwracając przy każdym wywołaniu pętli trzyelementowy bufor elementów ”field”.
Kolejnym etapem jest tworzenie stringu z zapytaniem SQL’owym (z bufora) i
wykonanie zapytania. Po przejściu wszystkich pętli zamykane jest połączenie do bazy
danych.
Drugim zaimplementowanym modelem przetwarzania jest SAX. Na początku
otwierane jest połączenie, a następnie tworzony jest nowy parser XML za pomocą
funkcji xml_parser_create(). Funkcja zwraca uchwyt zasobów umożliwiający użycie go
przez kolejne funkcje XML. Przy pomocy funkcji xml_set_character_data_handler()
określa się nazwę funkcji obsługi zdarzeń dla naszego parsera. Kolejnym krokiem jest
definicja funkcji obsługującej zdarzenie. W tej funkcji wykonywane są operacje
tworzenia bufora z przetworzonymi danymi, tworzenia stringa z zapytaniem oraz
wykonanie zapytania. Kolejny etap to otwarcie pliku do parsowania, stworzenie pętli w
której czytany jest strumień danych o określonej ilości bajtów do momentu napotkania
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
78
końca pliku. Aktualny strumień wysyłany jest do funkcji xml_pars() wraz z uchwytem
parsera oaz znacznikiem określającym koniec pliku. W tym momencie parser
uruchamia funkcję parsującą. Dodatkowo zaimplementowana jest obsługa błędu dla
parsera. Po sparsowaniu zawartości pliku zamykane jest połączenie z bazą danych .
Na rynku dostępnych jest wiele implementacji modeli przetwarzania
dokumentów XML, ale nie wszystkie spełniają oczekiwania programisty. O tym który z
powyższych
parserów
zapewni
dostateczną
wydajność
zadecydowały
testy
wydajnościowe.
4.2.2.
Testy wydajnościowe zaimplementowanych modeli parsowania
Testy wydajnościowe powinny być wykonywane przy procesie projektowania i
implementacji. Celem przeprowadzenia testów było sprawdzenie, który z
zaimplementowanych metod przetwarzania XML, tj. SAX i SimpleXML, może
zapewnić lepszą wydajność. Ich rezultaty umożliwią usprawnienie procesu
przetwarzania i zapisu importowanych wartości pomiarów hydrometeorologicznych do
bazy danych. Testy zostały przeprowadzone przy użyciu „the symfony web debugger”.
The symfony web debugger jest integralną częścią aplikacji symfony monitorującą
każdy aspekt jej działania. Podstawowe informacje jakie on udostępnia to czas
wykonywania skryptów oraz informacje na temat połączeń z bazą danych. Dodatkowo
udostępnia on informacje o konfiguracji systemu, konfiguracji serwera oraz sesji
użytkownika. Testy zostały przeprowadzone na sześciu plikach XML, po dziesięć razy
na każdym z nich. Pliki zawierały odpowiednio:
-
10 rekordów
-
1 000 rekordów
-
10 000 rekordów
-
20 000 rekordów
-
100 000 rekordów
-
1 000 000 rekordów
Kluczowym czynnikiem decydującym, o tym który spośród dwóch
zaimplementowanych parserów jest wydajniejszy, jest czas trwania procesu
przetwarzania i zapisu importowanych danych hydrometeorologicznych w bazie
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
79
danych. Tabela znajdująca się poniżej [Tab.14.] przedstawia zestawienie wyników
testów przeprowadzonych na modelach przetwarzania SAX i SimpleXML. Przy
przeprowadzeniu testu dla SimpleXML plik z milionem rekordów spowodował
zawieszenie systemu.
Tab.14. Zestawienie nr1- wyniki testów przeprowadzonych na modelach parsowania
SAX i SimpleXML. [źródło: opracowanie własne]
Czas trwania procesu przetwarzania i zapisu danych
Liczba rekordów
SAX [s]
SimpleXML [s]
1,0
0,61
1,16
0,84
1,72
0,93
1,84
0,79
1,85
0,63
1,8
0,72
1,2
0,78
1,75
0,88
1,0
0,74
10
1,82
0,65
2,77
5,28
3,79
4,79
3,93
5,73
3,96
4,25
3,98
5,79
3,93
5,12
3,56
4,99
3,77
5,73
3,48
4,55
1 000
3,79
5,29
17,96
27,30
18,11
26,72
19,16
29,88
19,58
26,70
20,16
33,07
19,96
26,60
18,61
26,66
19,36
28,23
19,88
28,70
10 000
20,96
29,07
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
80
33,62
54,78
33,82
56,81
34,36
57,08
34,62
59,31
34,90
56,07
34,68
55,45
33,62
57,81
34,66
57,82
34,92
59,44
20 000
34,99
59,83
162,70
266,57
165,38
264,10
166,84
259,93
167,20
263,57
167,54
399,68
164,74
278,33
162,76
270,10
166,24
299,33
166,60
310,76
100 000
165,54
312,67
1474,81
brak
1496,32
brak
1506,61
brak
1525,07
brak
1551,23
brak
1514,11
brak
1516,39
brak
1496,21
brak
1495,67
brak
1 000 000
1501,16
brak
Poniżej przedstawiono przykładowy zrzut ekranu przedstawiający „the symfony
web debugger” określający rozmiar pliku oraz czas przetwarzania i zapisu pliku
zawierającego 1 mln rekordów z wykorzystaniem SAX.
Rys.50. The symfony web debugger- test przeprowadzony na pliku z 1 mln rekordów z
wykorzystaniem SAX. [źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
81
Za końcowy wynik przeprowadzonego testu przyjęto średnią arytmetyczną z
dziesięciu pomiarów dla danego pliku. Wyniki obliczeń zostały przedstawione w tabeli
[Tab.15.] oraz na wykresie poniżej [Rys.51.].
Tab.15. Czasy przetwarzania i zapisu importowanych danych z wykorzystaniem SAX i
SimpleXML.
[źródło: opracowanie własne]
Liczba rekordów
SAX [s]
SimpleXML [s]
10
1,51
0,76
1 000
3,70
5,15
10 000
19,37
28,29
20 000
34,42
57,44
100 000
165,55
292,50
1 000 000
1507,76
brak
0,10
1,00
10,00
100,00
1000,00
10000,00
Czas [s]
10
1000
10000
20000
100000
1000000
Ilo
ść
rekordów
Porównanie SAX i Simple XML
SAX
SimpleXML
Rys.51. Porównanie SAX i SimpleXML- końcowy wynik przeprowadzonego testu.
[źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
82
. Na podstawie wykresu można potwierdzić tezę przedstawioną w rozdziale
[4.3.4.], że model SimpleXML powinien być wykorzystywany, ale do niezbyt
skomplikowanych, małych dokumentów XML. Poradził on sobie z plikiem z
dziesięcioma rekordami dużo szybciej niż SAX, który był dwukrotnie wolniejszy, ale
wraz ze wzrostem rekordów wzrastała wydajność parsera SAX w stosunku do
SimpleXML, który zupełnie sobie nie poradził z plikiem zawierającym milion rekordów
i tym samym spowodował zawieszenie systemu.
Wyniki
przeprowadzonych
testów
wpłynęły
na
wybór
algorytmu
przetwarzania pliku XML. Przetwarzanie za pomocą SAX jest zdecydowanie
wydajniejsze od użycia SimpleXML, dlatego też to on został modelem implementacji.
4.3.
Export pomiarów hydrometeorologicznych do plików o formacie: .pdf, .csv,
.xml
Dla umożliwienia dalszej obróbki danych pomiarowych w innych aplikacjach
(np. w arkuszu kalkulacyjnym lub programie graficznym) oraz ich odczytu bądź
wydruku
wprowadzono
możliwość
eksportu
zarejestrowanych
danych
hydrometeorologicznych w postaci plików: .pdf, .csv, .xml.
Format PDF jest standardem wyświetlania informacji, niezależnym od
platformy sprzętowej. Eksport do tego formatu oparłam o istniejącą klasę php - fpdf.
Klasa ta udostępnia szybki i prosty interfejs do tworzenia tego formatu.
Format CSV jest obsługiwany przez większość aplikacji bazodanowych, a
także przez komercyjne programy biurowe typu: Microsoft Excel, Microsoft Word i
niekomercyjne Open Office.
Format XML jest uniwersalnym formatem mającym szerokie zastosowanie w
aplikacjach webowych jak i stacjonarnych.
Import danych do formatu XML oraz CSV opiera się na stworzeniu
odpowiedniego strumienia danych. Funkcja eksportująca tworzy ciąg znaków. W
przypadku XML jest to ciąg zawierający definicje drzewa dokumentu oraz węzłów z
informacjami o danym pomiarze. W przypadku CSV, ciąg znaków zawiera dane na
temat pomiaru, oddzielone znakiem „;” oraz znakiem końca linii (jako separatora
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
83
oddzielającego kolejne pomiary). Tak przygotowany strumień jest objęty nagłówkami
(Header) [Rys.52.], które powodują, że przeglądarka traktuje strumień jako plik.
Rys.52. Fragment funkcji eksportującej.
Warunkiem koniecznym do skorzystania z funkcji eksportu jest wyszukanie
wartości, które powinny być eksportowane. Po przeprowadzeniu operacji wyszukiwania
dla odpowiednich kryteriów (Gorzan, 2008) otrzymuje się tabele wyników [Rys.53.],
którą można eksportować do trzech wcześniej wymienionych formatów.
Rys.53. Fragment tabeli wyników wyszukiwania.
[źródło: opracowanie własne]
Opcja exportu pomiarów do wybranego formatu jest dostępna z poziomu
modułu wyszukiwania. Po kliknięciu na link: PDF, XML lub też CSV, system
wygeneruje odpowiednio sformatowany dokument do którego ma wyeksportować
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
84
wyszukane dane [Rys.53]. Nazwa wygenerowanego pliku składa się z kryteriów
wyszukiwania, np. r_RRRR_m_MM_s_X_c_Y.xml:
-
RRRR - rok
-
MM - miesiąc
-
X - stacja
-
Y- czujnik
Rys.54. Okno zapisu pliku o nazwie r_1950_m_1_s_1_.xml.
[źródło: opracowanie własne]
4.4.
Wizualizacja danych pomiarowych
Wykorzystanie możliwości narzędzia FusionCharts w zakresie budowania
animowanych wykresów w przeglądarce umożliwia przygotowanie doskonale
wyglądających zestawień pomiarów hydrometeorologicznych.
Pobrane i przetworzone dane mogą być prezentowane w systemie na szereg
sposobów. Jednym z nich jest graficzna prezentacja danych za pomocą wykresów.
Opcja generowania wykresów dostępna jest z poziomu modułu wyszukiwania.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
85
Warunkiem koniecznym do skorzystania z funkcjonalności wizualizacji
danych pomiarowych jest wyszukanie wartości, które powinny być wyświetlone w
postaci animowanych wykresów. Po przeprowadzeniu operacji wyszukiwania dla
odpowiednich kryteriów i kliknięciu na link „Wykres” [Rys.53.] otrzymuje się poniższe
wykresy przedstawiające wartości pomiarowe z: rana, południa i wieczora.
Rys.55. Wykres 3D przedstawiający miesięczny rozkład temperatury mierzonej
termometrem zwilżonym. [źródło: opracowanie własne]
Rys.56. Wykres 2D przedstawiający miesięczny rozkład temperatury mierzonej
termometrem zwilżonym. [źródło: opracowanie własne]
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
86
5.
Podsumowanie
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
87
Celem niniejszej pracy było zaprojektowanie systemu komputerowego,
realizującego import oraz eksport pomiarów hydrometeorologicznych (pochodzących z
rejestratora RC10) z wykorzystaniem formatu XML oraz interfejsu SAX.
W
pracy
przedstawiono
podstawowe
zagadnienia
dotyczące
hydrometeorologii, tj. zasady działania wykorzystywanych urządzeń pomiarowych oraz
danych hydrometeorologicznych, które system miał zaimportować do bazy,
wyeksportować do pliku lub zaprezentować w postaci animowanych wykresów 2 i 3D.
Na początku zapoznano się z technologią XML. Format XML ma szereg
ważnych cech, dzięki którym jest elastycznym i uniwersalnym środkiem zapisu i
wymiany danych. Zaimplementowany system w wielu aspektach wykorzystuje
powyższy format. Szerokie możliwości formatu XML sprawiły, że został on
wykorzystany
jako
podstawowe
ź
ródło
informacji
dotyczącej
pomiarów
hydrologicznych i meteorologicznych, które system pozwala zapisać w bazie danych.
XML także znalazł zastosowanie przy generowaniu wykresów. Na uwagę zasługuje
FusionCharts (oferowany przez technologie Flash oraz Action Script 3.0), który jest
doskonałym narzędziem służącym do prezentacji danych w postaci animowanych
wykresów. W tym celu, narzędzie FusionCharts wymaga konwersji danych do formatu
XML.
Stworzenie kompletnego systemu wymagało także zapoznania się z metodyką
przetwarzania dokumentu XML. System powinien być zaprojektowany tak, aby
zapewniał jak największą wydajność oraz efektywność. Z tego względu zostały
przeprowadzone testy wydajnościowe (przy użyciu „the symfony web debugger”) na
dwóch modelach parsowania: SAX oraz SimpleXML. Zalety interfejsu SAX, takie jak
niskie wymagania pamięciowe oraz szybkość działania ( w przypadku dużych
dokumentów XML) potwierdzona przeprowadzonymi testami, zadecydowały o
wyborze wyżej wymienionego parsera jako głównego modelu przetwarzania
dokumentu
XML.
Zaimplementowany system rozwiązuje problem integracji (uzupełnienia) danych
pomiarowych pochodzących z dekodera RC10. Przy wykonywaniu operacji importu,
zdekodowanych pomiarów hydrometeorologicznych do bazy danych, system tworzy
słownik dla danej serii pomiarów z informacją jaki element hydrologiczny lub
meteorologiczny był mierzony na danej linii pomiarowej.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
88
Stworzony
system
udostępnia
funkcję
eksportowania
danych
hydrometeorologicznych, pochodzących z automatycznych systemów pomiarowych
oraz wartości pomiarów nieautomatycznych (wprowadzonych do systemu manualnie),
do najbardziej popularnych formatów plików: CSV oraz XML, co stwarza możliwość
dalszego przetwarzania pomiarów poza zaprojektowanym systemem, w innych
aplikacjach (np. w arkuszu kalkulacyjnym lub programie graficznym). Dane mogą być
także zapisane do pliku o formacie PDF najbardziej popularnego standardu
wyświetlania informacji, niezależnego od platformy sprzętowej.
Reasumując można uznać, że system został zaimplementowany zgodnie z
założonymi celami, zapewniając wydajny i szybki sposób wprowadzania pomiarów
hydrometeorologicznych do bazy danych. Ponadto stworzony system tajFUN v.0.2
zapewnia usystematyzowane zestawienia mierzonych wartości hydrometeorologicznych
oraz szybki i łatwy dostęp do zarejestrowanych na posterunkach badawczych danych
pomiarowych.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
89
6.
Wnioski
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
90
Parser typu SAX okazał się najlepszym, wygodnym w użyciu i wydajnym
sposobem przetwarzania danych.
Przeprowadzone testy wykazały, że SimpleXML może być wykorzystany, ale do
niezbyt skomplikowanych, małych dokumentów.
SAX nie wymaga tworzenia obrazu dokumentu w pamięci, w związku z czym
nie obciąża jej, co znacznie przyspiesza proces jego działania zwłaszcza w przypadku
dokumentów o dużych rozmiarach.
W przypadku pliku zawierającego 10 rekordów, czas przetwarzania i zapisu
importowanych danych hydrometeorologicznych z wykorzystaniem SAX wyniósł 1,51
[s], natomiast z wykorzystaniem SimpleXML 0,76 [s]. W przypadku pliku
zawierającego 1 000 000 rekordów czas przetwarzania i zapisu z wykorzystaniem SAX
wyniósł 1507,76 [s]. Przy przeprowadzeniu testu dla SimpleXML plik z milionem
rekordów spowodował zawieszenie systemu.
Użyta w systemie tajFUN v.0.2. metoda parsowania SAX zapewnia wydajny i
szybki sposób wprowadzenia pomiarów hydrometeorologicznych do bazy danych,
natomiast popularny format danych XML, czyni go otwartym na ewentualne
modyfikacje w przyszłości. Już w chwili obecnej może on pełnić funkcję źródła danych
dla odrębnych systemów oraz aplikacji wykorzystujących format XML ze względu na
prostotę, dostępność narzędzi, a przede wszystkim ze względu na dobrą standaryzację.
XML będzie czytelny w przyszłości dzięki samodokumentacji.
XML osiągnął już dojrzałość i znalazł liczne ważne zastosowania. Jednak jako
rozwiązanie stosunkowo młode, XML stale się rozwija. Standardy z nim związane są
stale udoskonalane i rozbudowywane, powstają też nowe idee i związane z nimi
propozycje standaryzacji.
Istotne zalety XML zostały docenione, można więc pokusić się o stwierdzenie,
ż
e język ten znalazł stałe miejsce wśród najważniejszych technologii współczesnej
informatyki.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
91
Słownik terminów
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
92
P1. Ogródek meteorologiczny- jest to miejsce wykonywania obserwacji i pomiarów.
Przyjęte minimalne rozmiary ogródka to około 15 [m] x 15 [m]. Teren ogródka
powinien być wyrównany, bez dołów i górek, porośnięty trawą i ogrodzony.
Powinien być urządzony w terenie otwartym. Najlepsze miejsce to takie z dala od
wysokich przedmiotów terenowych (budynków, drzew), otwartej wody, czyli
wszystkiego co mogłoby utrudniać wymianę powietrza i mieć bezpośredni wpływ
na wyniki pomiarów.
P2. Przewodność cieplna- Jest to wielkość fizyczna opisująca prędkość wyrównywania
się temperatur. Określa zdolność substancji do przewodzenia ciepła.
P3. Porowatość powierzchniowa- jest wyrażana stosunkiem powierzchni porów w
przekroju gruntu do powierzchni całego przekroju.
P4. Nasłonecznienie- nazywane insolacją, jest stosunkiem energii promieni
słonecznych do powierzchni, na którą padają te promienie.
P5. Wektor siły- siła jest wielkością wektorową, miarą oddziaływań fizycznych między
ciałami. Jednostką siły w układzie SI jest niuton [N]. Siła ma wartość jednego
niutona (1 N) jeżeli ciału o masie jednego kilograma [1 kg] nadaje przyspieszenie
jeden metr na sekundę do kwadratu [1 m/s
2
].
P6. Wilgotność bezwzględna- to ilość gramów pary wodnej w jednostce objętości
powietrza. Określa się w [g/cm3].
P7. Wilgotność właściwa- to ilość gramów pary wodnej zawarta w 1 [kg] powietrza
wilgotnego.
P8. Wilgotność względna- jest to stosunek aktualnego ciśnienia pary wodnej do
maksymalnego w danej temperaturze wyrażony w [%].
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
93
P9. Ciśnienie pary wodnej (aktualne)- ciśnienie wywierane przez parę wodną zawartą
aktualnie w powietrzu. Określa się je w [hPa].
P10. Ciśnienie pary wodnej (maksymalne)- jest to największe ciśnienie wywierane
przez parę wodną względem płaskiej powierzchni wody w danej temperaturze.
Określa się je w [hPa].
P11. Niedosyt wilgotności- różnica pomiędzy maksymalny ciśnieniem pary wodnej i
aktualnym w danej temperaturze.
P12. Osady- produkty kondensacji pary wodnej, osadzania kropelek mgły a także
opadu deszczu, pojawiające się na wychłodzonych powierzchniach podłoża
(ziemi, roślin, przedmiotów). Za osad atmosferyczny uważa się takie formy, które
wytwarzają się dopiero na powierzchni ciał stałych. Osad atmosferyczny może
pojawić się w wyniku wytrącenia się wody z pary wodnej, lub w wyniku
przetworzenia opadu atmosferycznego. Do najczęściej występujących zalicza się:
rosę, szron, szadź.
P13. Hydrometeory- w wąskiej definicji to różnego rodzaju cząstki wody: deszcz,
ś
nieg, grad, krople chmurowe.
P14. Deszcz- opad złożony z kropel wody o średnicy większej niż 0.5 [mm]. Jest to
najczęściej pojawiający się opad w naszym klimacie.
P15. Mżawka- opad drobnych kropelek wody o średnicy mniejszej od 0.5 [mm], które
spadają bardzo wolno i są łatwo przenoszone przez wiatr w kierunku poziomym.
P16. Śnieg- opad kryształków lodu, które mają zwykle delikatną, rozgałęzioną
strukturę. Podstawową forma cząstek tego opadu są gwiazdki sześcioramienne o
pięknej i bogatej kompozycji.
P17. Śnieg z deszczem- opad śniegu i deszczu lub mokrego śniegu, występujący w
temperaturach zbliżonych do zera i wyższych od zera.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
94
P18. Krupy śnieżne- opad białych, kulistych lub stożkowatych ziarenek o średnicy od
2 do 5 [mm]. Podczas spadania na twarde podłoże odbijają się i rozpryskują.
P19. Grad- opad kulek lub bryłek lodu nieforemnego kształtu o średnicy do 50 [mm],
czasami większych. Pada przy temperaturach wyższych od 0 [˚C].
P20. Prawo indukcji elektromagnetycznej Faradaya- gdy pole magnetyczne
otaczające przewodnik się zmienia, w przewodniku jest indukowana siła
elektromotoryczna. Jej wielkość E jest proporcjonalna do szybkości zmian pola,
a jej zwrot zależy od kierunku zmiany pola, czyli E = –dF/dt, gdzie F jest
strumieniem indukcji magnetycznej.
P21. XHR- obiekt będący sercem mechanizmu Ajax. To właśnie on pozwala na
pobieranie przez stronę WWW danych z serwera (za pomocą metody GET) lub
wysyłanie do serwera (za pomocą metody POST) w formie żądania
przetwarzanego w tle, co oznacza, że proces nie wymaga odświeżenia strony.
P22. Wyrażenie regularne- to specjalny rodzaj wyrażeń tekstowych, w których część
znaków (bądź wszystkie) mogą być zastąpione znakami ogólnymi, takimi jak znak
zapytania czy gwiazdka (znanymi z DOS-a).
P23. Interfejs klasy- to specjalna klasa, która definiuje zestaw metod (własności i
zachowania typowych obiektów).
P24. Klasy- to pewnego rodzaju szablony, na podstawie których można tworzyć
poszczególne obiekty. Opisują one własności i zachowania (metody).
P25. ul – znacznik służący do zdefiniowania listy nieuporządkowanej. Ten typ listy
najczęściej jest stosowany na stronach www. Służą one do wpisywania
nieposortowanych elementów, np. wykazu odnośników do innych stron.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
95
Bibliografia
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
96
1.
Bac Stanisław, Rojek Marian, „Meteorologia i klimatologia”, Państwowe
Wydawnictwo Naukowe, Warszawa 1979 r.
2.
Kożuchowski Krzysztof, „Meteorologia i klimatologia”, Wydawnictwo Naukowe
PWN, Warszawa 2005 r.
3.
Jaworowska Barbara, Szuster Andrzej, Utrysko Bohdan, „Hydraulika i
hydrologia”, Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2008 r.
4.
Byczkowski Andrzej, „Hydrologia”, tom.1, Wydawnictwo SGGW, Warszawa
1996 r.
5.
Janiszewski Feliks, „Instrukcja dla stacji meteorologicznych”, Wydawnictwo
Geologiczne, Warszawa 1988 r.
6.
Wojtala Krystyna, „Międzynarodowy Słownik Hydrologiczny”, Wydawnictwo
Naukowe PWN SA, Warszawa 2001 r.
7.
Adobe Documentation „Programming ActionScript 3.0”, 2007 Adobe Systems
Incorporated
8.
Microsoft Official Course Documentation „2663A: Programming with XML in
the Microsoft .NET Framework”, 2002 Microsoft Corporation
9.
North Simon, „XML dla każdego”, Wydawnictwo Helion, Gliwice 2000 r.
10.
Holzner Steven, „XML Vademecum Profesjonalisty”, Wydawnictwo Helion,
Gliwice 2001 r.
11.
Kazienko Przemysław, Gwiazda Krzysztof, „XML na poważnie”, Wydawnictwo
Helion, Gliwice 2002 r.
12.
Arciniegas Fabio, „XML Kompendium programisty”, Wydawnictwo Helion,
Gliwice 2002 r.
13.
Kowal Marcin, „RC10 decoder- system dekodowania i gromadzenia pomiarów
hydrometeorologicznych”, Praca magisterska, Politechnika Krakowska 2008 r.
14.
Gorzan Marcin, „Wykorzystanie framework’a Symfony do zaimplementowania
systemu tajFUN v.0.2.”, Praca magisterska, Politechnika Krakowska 2008 r.
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
97
Zasoby internetowe
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
98
L1. Oficjalna strona Instytutu Meteorologii i Gospodarki Wodnej
http://www.imgw.pl/wl/internet/zz/wiedza/ogolna/pom_prog.html
L2. Specyfikacja formatu XML
http://www.w3.org/XML/
L3. Specyfikacja formatu XML
http://www.w3.org/TR/2000/REC-xml-20001006
L3. Strona domowa interfejsu SAX
http://www.saxproject.org/
L4. Specyfikacja formatu CSV
http://supercsv.sourceforge.net/csvSpecification.html
L5. Oficjalna dokumentacja PHP
http://pl2.php.net/manual/pl/refs.xml.php
L6. Dokumentacja FusionCharts v3
http://www.fusioncharts.com/Docs/Index.html
L6. Dokumentacja SimpleXML
http://www.ibm.com/developerworks/library/x-simplexml.html
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
99
Spisy tabel
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
100
Tab.1. Zestawienie parametrów pomiarów hydrologicznych wraz z dokładnością .......12
Tab.2. Zestawienie parametrów pomiarów meteorologicznych wraz z dokładnością....22
Tab.3. Zestawienie parametrów pomiarów meteorologicznych wraz z dokładnością
cd.
....................................................................................................................................24
Tab.4. Parametry metody startElement interfejsu DocumentHandler. ..........................56
Tab.5. Parametry metody endElement interfejsu DocumentHandler. ...........................57
Tab.6. Parametry metody Characters interfejsu DocumentHandler. ............................57
Tab.7. Parametry metody processingInstruction interfejsu DocumentHandler..............57
Tab.8. Własności/atrybuty obiektu Node. ....................................................................60
Tab.9. Metody obiektu Node. ......................................................................................61
Tab.10. Własności/atrybuty obiektu Document............................................................62
Tab.11. Metody obiektu Document..............................................................................62
Tab.12. Własności obiektu Attr. ..................................................................................63
Tab.13. Interfejs klasy SimpleXML.............................................................................68
Tab.14. Zestawienie nr1- wyniki testów przeprowadzonych na modelach parsowania
SAX i SimpleXML......................................................................................................79
Tab.15. Czasy przetwarzania i zapisu importowanych danych z wykorzystaniem SAX i
SimpleXML. ...............................................................................................................81
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
101
Spis rysunków
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
102
Rys.1. Łata wodowskazowa.........................................................................................14
Rys.2. Limnigraf .........................................................................................................15
Rys.3. Młynek hydrometryczny. ..................................................................................15
Rys.4. Przepływomierz elektromagnetyczny................................................................16
Rys. 5. Termometr rtęciowy. .......................................................................................16
Rys.6. Kosa lodowa (po lewej) i drabinka Sommera (po prawej). ................................17
Rys.7. Termometry stacyjne (suchy i zwilżony)...........................................................26
Rys.8. Termometry ekstremalne. .................................................................................26
Rys.9. Termograf ........................................................................................................27
Rys.10. Termometry gruntowe. ...................................................................................28
Rys.11. Aneroid. .........................................................................................................29
Rys.12. Barograf. ........................................................................................................30
Rys.13. Psychrometr Augusta. .....................................................................................31
Rys.14. Higrometr włosowy. .......................................................................................32
Rys.15. Deszczomierze................................................................................................33
Rys.16. Pluwiograf pływakowy. ..................................................................................34
Rys.17. Tradycyjny wiatromierz Wilda. ......................................................................35
Rys.18. Anemometr ręczny Robinsona. .......................................................................36
Rys.19. Strona HTML. ................................................................................................39
Rys.20. Dokument XML .............................................................................................40
Rys.21. Plik hello_world.xml ......................................................................................41
Rys.22. Atrybut w XML..............................................................................................42
Rys.23. Komentarz w XML.........................................................................................42
Rys.24. Instrukcja przetwarzania w XML....................................................................43
Rys.25. Przykładowy dokument XML.........................................................................44
Rys.26. Dokument XML w prostym widoku drzewa ...................................................45
Rys.27. muzycy.xml- plik XML ..................................................................................50
Rys.28. Zdarzenie wygenerowane w wyniku przetworzenia pliku muzycy.xml. ..........50
Rys.29. Struktura drzewiasta XML- kolejność prowadzenia analizy. ...........................51
Rys.30. Plik muzycy.xml jako struktura drzewiasta .....................................................52
Rys.31. Fragment kodu XML zawierającego dane hydrometeorologiczne. ..................55
Rys.32. Działanie modelu SAX- przykład. ..................................................................58
Rys.33. DOM- najważniejsze interfejsy.......................................................................59
Rys.34. Obiekt typu Node. ..........................................................................................60
Rys.35. Funkcja simplexml_load_file(). ......................................................................64
Rys.36. Funkcja simplexml_load_string()....................................................................65
Rys.37. Konstruktor klasy SimpleXMLElement z trzema parametrami........................65
Rys.38. Konstruktor SimpleXMLElement z jednym parametrem.................................65
Rys.39. Zawartość pliku data.xml................................................................................66
Rys.40. Pobieranie danych ze znacznika......................................................................66
Rys.41. Metoda getName(). .........................................................................................67
Rys.42. Metoda children(). ..........................................................................................67
Rys.43. Zawartość pliku pracownicy.xml. ...................................................................68
Rys.44. Przetwarzanie elementów i atrybutów.............................................................68
Rys.45. Moduł importu pliku XML do bazy danych. ...................................................74
Rys.46. Fragment zewnętrznego pliku (konfiguracyjnego) opisów danych
hydrometeorologicznych. ............................................................................................74
Rys.47. Możliwości budowy słownika. [źródło: opracowanie własne] .........................75
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
103
Rys.48. Fragment modelu parsowania- SimpleXML....................................................76
Rys.49. Fragment modelu parsowania- SAX. ..............................................................77
Rys.50. The symfony web debugger- test przeprowadzony na pliku z 1 mln rekordów z
wykorzystaniem SAX..................................................................................................80
Rys.51. Porównanie SAX i SimpleXML- końcowy wynik przeprowadzonego testu. ...81
Rys.53. Fragment tabeli wyników wyszukiwania.........................................................83
Rys.54. Okno zapisu pliku o nazwie r_1950_m_1_s_1_.xml. ......................................84
Rys.55. Wykres 3D przedstawiający miesięczny rozkład temperatury mierzonej
termometrem zwilżonym. ............................................................................................85
Rys.56. Wykres 2D przedstawiający miesięczny rozkład temperatury mierzonej
termometrem zwilżonym. ............................................................................................85
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
104
Abstrakt
”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal
105
W pracy przedstawiono najważniejsze zagadnienia związane z technologią
XML. Od kilku lat XML jest jedną z najbardziej popularnych technologii
informatycznych, stosowaną szeroko, m.in. dzięki swojej prostocie i dostępności
narzędzi, a przede wszystkim dzięki dobrej standaryzacji. W pracy umieszczono
podstawowe fakty związane z językiem XML, rolę poszczególnych narzędzi ściśle
powiązanych z XML oraz obecne osiągnięcia w dziedzinie ich implementacji. Krótko
omówiono typowe zastosowania XML. Sam w sobie XML nie wnosi żadnych
rewolucyjnych rozwiązań: idea języków znakowania jest stara, koncepcja
hierarchicznych struktur danych jeszcze starsza. Jednak, XML „podał” tę koncepcję w
nowym, atrakcyjnym dla użytkowników opakowaniu: pojawił się też w odpowiednim
momencie, trafiając na wielkie zapotrzebowanie. To co jest w XML warte uwagi, to
szeroka akceptacja standardów oraz duża dostępność darmowych narzędzi.
Zaimplementowany system w wielu aspektach wykorzystuje format XML.
Celem pracy było zaprojektowanie systemu umożliwiającego import i eksport danych
hydrometeorologicznych z wykorzystaniem formatu XML oraz interfejsu SAX.
Zapewniającego usystematyzowane zestawienia parametrów pomiarowych w danym
okresie pomiarowym oraz szybki dostęp do zarejestrowanych, na posterunkach
badawczych, danych pomiarowych. Szerokie możliwości XML sprawiły że format ten
został wykorzystany przy imporcie zdekodowanych danych pomiarowych do bazy
danych, jako podstawowe źródło reprezentacji informacji o pomiarach. Podczas
generowania wykresów XML także znalazł swoje zastosowanie. W celu
zaprezentowania danych w postaci animowanych wykresów, narzędzie FusionCharts
wymaga konwersji danych do formatu XML.
Pozycja XML szybko się ugruntowała i nie wydaje się zagrożona, a obszar
jego zastosowań wciąż rośnie.