Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML oraz interfejsu SAX

background image

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

background image

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.

background image

”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

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

4

1.

Wstęp

background image

”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ą.

background image

”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

background image

”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.

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

8

2.

Podstawy pomiarów wielkości

hydrometeorologicznych

background image

”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ę.

background image

”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)

background image

”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]

background image

”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)

background image

”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)

background image

”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)

background image

”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ą

background image

”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.]

background image

”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.

background image

”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)

background image

”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

background image

”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]

background image

”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)

background image

”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

background image

”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]

background image

”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

background image

”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

background image

”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.]

background image

”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]

background image

”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]

background image

”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]

background image

”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]

background image

”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]

background image

”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)

background image

”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]

background image

”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.

background image

”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

background image

”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

]

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

37

3.

Narzędzia i metody wykorzystane do budowy

systemu

background image

”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.

background image

”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]

background image

”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.

background image

”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.

background image

”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]

background image

”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).

background image

”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]

background image

”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.

background image

”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)

background image

”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.

background image

”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.]

background image

”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.

background image

”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]

background image

”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ę

background image

”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

background image

”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/]

background image

”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.

background image

”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

background image

”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

background image

”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

background image

”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.

background image

”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.

background image

”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)

background image

”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)

background image

”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.].

background image

”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)

background image

”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

]

background image

”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

]

background image

”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

]

background image

”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.].

background image

”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.

background image

”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

background image

”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

background image

”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)

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

72

4.

Implementacja

background image

”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.

background image

”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)]

background image

”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.

background image

”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]

background image

”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

background image

”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

background image

”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

background image

”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]

background image

”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]

background image

”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

background image

”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ć

background image

”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.

background image

”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]

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

86

5.

Podsumowanie

background image

”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.

background image

”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.

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

89

6.

Wnioski

background image

”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.

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

91

Słownik terminów

background image

”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 [%].

background image

”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.

background image

”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.

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

95

Bibliografia

background image

”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.

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

97

Zasoby internetowe

background image

”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

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

99

Spisy tabel

background image

”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

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

101

Spis rysunków

background image

”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

background image

”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

background image

”Import i eksport danych hydrometeorologicznych z wykorzystaniem formatu XML
oraz interfejsu SAX”, Justyna Kowal

104

Abstrakt

background image

”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.


Wyszukiwarka

Podobne podstrony:
Import i eksport zboz Polska Czechy
do druku, dynamika importu ,eksportu
import i export danych w excelu
7.Wykorzystanie Pomiarów Optycznych Oraz Podstawowych Przyżą, Lotnictwo, ppl, Nawigacja, Podrecznik
Najwięksi importerzy i eksporterzy
import eksport, Ekonomia
import eksport, Ekonomia, ekonomia
Import i Eksport Polski z Innymi krajami
import eksport-test (6 str), Ekonomia, ekonomia
Ewidencja księgowa i podatkowa WDT, WNT, importu i eksportu towarów, miejsce opodatkowania, faktu(1)
Kalinowski, T Bartosz Narzędziowe wsparcie procesu scoutingu – ocena wyników prac B R z wykorzystan
import i export danych w excelu
Ewidencja ksi©gowa i podatkowa WDT, WNT, importu i eksportu towar˘w, miejsce opodatkowania, fakturow
2Nowa Zelandia surowce, import eksport, powiązania handlu z UE i Polską Magda Gajek
Wykorzystanie formatu SVG w systemach informacji przestrzennej

więcej podobnych podstron