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.