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 
 

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 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

Wstę

 

background image

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

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 
 

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 
 

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 

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 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

 

Podstawy pomiarów wielkości 

hydrometeorologicznych 

background image

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

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 

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.  

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.