+ All Categories
Home > Documents > DIPLOMOVA PR ACE - cvut.czgeo.fsv.cvut.cz/proj/dp/2011/jan-gurtler-dp-2011.pdf · DIPLOMOVA PR ACE...

DIPLOMOVA PR ACE - cvut.czgeo.fsv.cvut.cz/proj/dp/2011/jan-gurtler-dp-2011.pdf · DIPLOMOVA PR ACE...

Date post: 20-Jan-2019
Category:
Upload: vuliem
View: 218 times
Download: 0 times
Share this document with a friend
102
ˇ CESK ´ E VYSOK ´ EU ˇ CEN ´ I TECHNICK ´ E V PRAZE FAKULTA STAVEBN ´ I DIPLOMOV ´ A PR ´ ACE PRAHA 2011 Jan G ¨ URTLER
Transcript

CESKE VYSOKE UCENI TECHNICKE V PRAZEFAKULTA STAVEBNI

DIPLOMOVA PRACE

PRAHA 2011 Jan GURTLER

CESKE VYSOKE UCENI TECHNICKE V PRAZEFAKULTA STAVEBNI

OBOR GEOINFORMATIKA

DIPLOMOVA PRACETVORBA DATABAZE TIHOVYCH BODU, GRAVIMETRU A

ZAZNAMU GRAVIMETRICKYCH MERENI S WEBOVYM

UZIVATELSKYM ROZHRANIM

Vedoucı prace: Ing. Jirı Cajthaml, Ph.D.Katedra mapovanı a kartografie

leden 2011 Jan GURTLER

ZDE VLOZIT LIST ZADANI

Z duvodu spravneho cıslovanı stranek

ABSTRAKTTato diplomova prace se zabyva navrhem, tvorbou a naplnenım jednotne databaze Post-

greSQL, ktera obsahuje zaznamy gravimetrickych merenı, gravimetru, kterymi se merenı

provadela, a tıhovych bodu, na nichz se merilo. Predmetem diplomove prace je dale

weboveho rozhranı PHP pro spravu a analyzu databaze, graficke znazornenı tıhovych

bodu na mape (Google maps) a generovanı mıstopisu tıhoveho bodu. Diplomova prace

popisuje take vytvoreny program pro hromadny prevod dat do databaze, vytvarenı XML

vystupu pro vyrovnavacı software, tvorbu vystupu pro program Surfer a ukazku da-

tabazove statistiky.

KLICOVA SLOVAPostgreSQL, databaze, dotaz, XML vystup, SQL, PHP, webove rozhranı, Java SE, ex-

trakce dat, Google mapy

ABSTRACTThis thesis deals with proposing, creation and filling of a PostgreSQL database consisting

of information about gravity meters, gravity observations and observation places. Another

point is a web interface for a user-friendly administration and an analysis, a display of

observation places in a map (Google maps) and generating a description of observation

places. This thesis also deals with software for a mass data copy into the database, XML

outputs for adjustment calculus software, database outputs for Surfer software and an

example of the statistics creation.

KEYWORDSPostgreSQL, database, query, XML output, SQL, PHP, web interface, Java SE, data

extraction, Google maps

PROHLASENI

Prohlasuji, ze diplomovou praci na tema”Tvorba databaze tıhovych bodu, gravimetru

a zaznamu gravimetrickych merenı s webovym uzivatelskym rozhranım“ jsem vypracoval

samostatne. Pouzitou literaturu a podkladove materialy uvadım v seznamu zdroju.

V Praze dne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(podpis autora)

PODEKOVANI

Chtel bych podekovat vedoucımu bakalarske prace Ing. Jirımu Cajthamlovi, Ph.D. a ve-

doucımu oddelenı gravimetrie ZU Ing. Martinu Ledererovi, Ph.D. za pripomınky a pomoc

pri zpracovanı teto prace. Dale bych chtel podekovat Ing. Otakaru Nesvadbovi, Ph.D. za

napadite resenı problemu pri zpracovanı zdrojovych dat a za pomoc s nastavenım da-

tabaze a PHP. Dekuji Karolıne za trpelivost, kterou se mnou mela po celou dobu psanı

diplomove prace.

Obsah

Uvod 8

1 Databaze 9

1.1 Zdroje dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.1 FoxPro databaze tıhovych bodu . . . . . . . . . . . . . . . . . 9

1.1.2 Textove soubory zapisnıku a rovnic oprav . . . . . . . . . . . 10

1.1.3 Katalogy programu Gravimzu . . . . . . . . . . . . . . . . . . 15

1.1.4 Ostatnı zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.2 Struktura databaze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.2.1 Struktura ulozenı tıhovych bodu . . . . . . . . . . . . . . . . . 18

1.2.2 Struktura ulozenı dennıch useku merenı . . . . . . . . . . . . . 26

1.2.3 Struktura ulozenı udaju o gravimetrech . . . . . . . . . . . . . 29

1.3 Naplnenı databaze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.3.1 Hromadne kopırovanı CSV souboru . . . . . . . . . . . . . . . 32

1.3.2 Program RegisterImport . . . . . . . . . . . . . . . . . . . . . 34

2 Sprava databaze 42

2.1 PHP webove rozhranı . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.1.1 Obsluha rozhranı . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.1.2 Soubory PHP skriptu . . . . . . . . . . . . . . . . . . . . . . . 45

2.2 SQL upravy s psql . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3 Vystupy z databaze 55

3.1 XML vystup pro Gravimzung . . . . . . . . . . . . . . . . . . . . . . 55

3.2 Vystupy pro program Surfer . . . . . . . . . . . . . . . . . . . . . . . 56

3.3 Tvorba statistik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.4 Prıprava dat pred merenım . . . . . . . . . . . . . . . . . . . . . . . . 59

Zaver 61

Reference 63

Seznam symbolu, velicin a zkratek 65

Seznam prıloh 66

A Zdroje dat 68

A.1 Textove soubory adjustovanych zapisnıku . . . . . . . . . . . . . . . . 68

A.1.1 Typ 4, GS12 a GS11 . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.2 Typ 5, GAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.3 Typ 6, Sharpe a Worden . . . . . . . . . . . . . . . . . . . . . 69

A.1.4 Typ 7, LaCoste & Romberg G CPI . . . . . . . . . . . . . . . 69

A.1.5 Typ 8, LaCoste & Romberg G a Scintrex . . . . . . . . . . . . 70

A.1.6 Typ 9, LaCoste & Romberg D . . . . . . . . . . . . . . . . . . 71

A.1.7 Soubory rovnic oprav . . . . . . . . . . . . . . . . . . . . . . . 71

A.2 Katalogy gravimzu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

A.2.1 Katalog merickych skupin . . . . . . . . . . . . . . . . . . . . 73

A.2.2 Katalog gravimetru . . . . . . . . . . . . . . . . . . . . . . . . 75

A.2.3 Katalog tıhovych bodu . . . . . . . . . . . . . . . . . . . . . . 76

B Struktura databaze 77

B.1 Struktura ulozenı tıhovych bodu . . . . . . . . . . . . . . . . . . . . . 77

B.2 Struktura ulozenı dennıch useku . . . . . . . . . . . . . . . . . . . . . 80

B.3 Struktura ulozenı gravimetru . . . . . . . . . . . . . . . . . . . . . . . 81

C Naplnenı databaze 83

C.1 Skript pro program RegisterImport . . . . . . . . . . . . . . . . . . . 83

D PHP webove rozhranı 84

D.1 Snımky obrazovky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

E Vystupy z databaze 90

E.1 XML vystupy pro Gravimzung . . . . . . . . . . . . . . . . . . . . . . 90

E.1.1 query point.sql . . . . . . . . . . . . . . . . . . . . . . . . . . 90

E.1.2 query section.sql . . . . . . . . . . . . . . . . . . . . . . . . . 91

E.1.3 query calibration.sql . . . . . . . . . . . . . . . . . . . . . . . 95

E.1.4 query observation.sql . . . . . . . . . . . . . . . . . . . . . . . 95

E.2 Vystupy pro program Surfer . . . . . . . . . . . . . . . . . . . . . . . 96

E.2.1 Funkce get points(point id) . . . . . . . . . . . . . . . . . . . 96

E.2.2 Funkce get polygons(usek id) . . . . . . . . . . . . . . . . . . 97

E.3 Tvorba statistik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

E.3.1 Skript get index . . . . . . . . . . . . . . . . . . . . . . . . . . 98

E.3.2 Cetnost merenı na bodech . . . . . . . . . . . . . . . . . . . . 99

E.3.3 Pocet zmerenych dennıch useku s danym poctem bodu . . . . 99

E.4 Graficke znazornenı v programu Surfer . . . . . . . . . . . . . . . . . 100

CVUT Praha UVOD

Uvod

V dalsıch odstavcıch naleznete navrh struktury PostgreSQL relacnı databaze gra-

vimetrickych merenı, gravimetru a tıhovych bodu spolecne se strucnymi informa-

cemi o zdrojıch dat pro tuto databazi. Znacnou cast prvnı kapitoly venuji naplnenı

databaze, ktere probıhalo v zavislosti na vstupnım formatu bud’ hromadnym na-

kopırovanım nebo pomocı vytvoreneho programu v jazyce Java a Bash skriptu.

V kapitole Sprava databaze naleznete detailnı popis weboveho rozhranı pro spravu

ulozenych tıhovych bodu a tıhovych merenı. Soucastı rozhranı je take generovanı

mıstopisu tıhoveho bodu se zobrazenım pozice na mapach Google.

Kapitola Vystupy z databaze se zabyva databazovymi dotazy v jazyce SQL

a PL/pgSQL funkcemi, ktere vytvarejı XML vystupy pro novy vyrovnavacı program

neznamych tızı a vystupy pro graficke znazornenı merenych dennıch useku a tıhovych

bodu v programu Surfer. Poslednı castı teto kapitoly je soubor ukazkovych SQL

dotazu pro vytvarenı databazovych statistik a vyberu potrebnych dat pred merenım.

Prılohy obsahujı ukazky vstupnıch dat, graficke znazornenı struktury databaze,

rozsahlejsı skripty, snımky obrazovky weboveho rozhranı a SQL dotazy pro tvorbu

vystupu XML, vystupu pro program Surfer a pro tvorbu statistik.

8

CVUT Praha 1. DATABAZE

1 Databaze

1.1 Zdroje dat

Oddelenı gravimetrie Zememerickeho uradu do dnesnı doby pouzıvalo ke sprave

udaju o tıhovem bodovem poli databazi vedenou v programu FoxPro. Tato databaze

byla zdrojem dat pro cast nove databaze. Popis dat z databaze FoxPro naleznete

v kapitole 1.1.1. Nejobsahlejsı cast databaze tvorı namerene a vypoctene udaje,

ktere byly zıskany z vystupu vyrovnavacıho programu Gravimzu, z textovych sou-

boru adjustovanych zapisnıku a souboru rovnic oprav. Popisem techto textovych

souboru se zabyva kapitola 1.1.2. Kapitola 1.1.3 popisuje udaje ulozene v katalozıch

gravimetru, merickych skupin a tıhovych bodu, ktere nacıta program Gravimzu pri

spustenı. Poslednı kapitola 1.1.4 obsahuje vsechny ostatnı doplnkove zdroje dat.

1.1.1 FoxPro databaze tıhovych bodu

FoxPro databaze tıhovych bodu obsahuje pet zakladnıch souboru.

• Bod zakl.dbf

• Bod stav.dbf

• Bod udaj.dbf

• Bod tize.dbf

• Bod mist.dbf

Bod zakl.dbf obsahuje zakladnı udaje o zarazenı tıhoveho bodu do ruznych

mıstnıch i mezinarodnıch sıtı. Dale je zde popsano umıstenı bodu od statu az po

obec a urcenı mapoveho listu, na kterem se bod nachazı. Bod zakl.dbf obsahuje

vetsinou informace zadane kody. Popisy kodu jsou ulozeny v techto pomocnych

databazovych souborech:

• bod puv.dbf

• bod stat.dbf

• cis obce.dbf

• cis okr.dbf

• bod list.dbf

• druhbodu.dbf

9

CVUT Praha 1. DATABAZE

• sit m.dbf

• sit s.dbf

• sit v.dbf

• sit 57.dbf

• sit 64.dbf

• sit 95.dbf

• sit 05.dbf

• zakladna.dbf

Bod stav.dbf obsahuje udaje o soucasnem stavu tıhoveho bodu spolu s udaji

o jeho stabilizaci a stavu mıstopisu. Dale obsahuje navrh opatrenı pro udrzbu

tıhovych bodu. Informace jsou v souboru ulozeny pomocı kodu. Informace vzta-

hujıcı se k prıslusnemu kodu jsou ulozeny v pomocnych souborech:

• kod stav.dbf

• kod mist.dbf

Bod udaj.dbf obsahuje zakladnı polohove a dalsı merene udaje o tıhovem bode.

Pomocne kodove soubory jsou nasledujıcı:

• kod sour.dbf

• kod vys.dbf

Bod tize.dbf obsahuje hodnoty tıze pro jednotlive body v platnych tıhovych

systemech.

Bod mist.dbf obsahuje odkazy na ulozene mıstopisne nacrty pro jednotlive body

a dalsı doplnujıcı informace pro tvorbu mıstopisu.

1.1.2 Textove soubory zapisnıku a rovnic oprav

Dosud pouzıvany vyrovnavacı program Gravimzu po zadanı namerenych udaju pro-

vede jejich kontrolu a ulozı je do textovych souboru adjustovanych zapisnıku (napr.

AZ090101.031). Tyto soubory pak program dale zpracovava a pocıta relativnı tıze.

Pri vypoctu relativnıch tızı uzivatel programu zadava stupen chodu gravimetru,

muze vybrana merenı vyloucit z vyrovnanı nebo zadat skok v prubehu merenı. Tyto

tri informace (stupen chodu, vyloucena merenı a skok) se ukladajı do textoveho

soboru rovnic oprav (napr. R1090101.031).

10

CVUT Praha 1. DATABAZE

Pro ukladanı namerenych dat nabızı Gravimzu sest ruznych typu adjustovanych

zapisnıku v zavislosti na typu gravimetru:

typ 4 pro data namerena gravimetrem Gs12 a Gs11

typ 5 pro ukladanı dat namerenych gravimetrem GAG

typ 6 pro gravimetr Sharpe a Worden

typ 7 pro gravimetr LaCoste & Romberg G CPI

typ 8 pro gravimetry LaCoste & Romberg G a Scintrex

typ 9 pro gravimetr LaCoste & Romberg D

Vsechny zapisnıky majı stejnou strukturu nazvu (napr. AZ090102.006). Nazev

zacına pısmeny AZ, pokracuje rokem merenı 09, cıslem mericke skupiny 01, cıslem

gravimetru v ramci skupiny 02 a koncı poradovym cıslem dennıho useku 006. Obsah

zapisnıku se sklada z hlavicky obsahujıcı celkove udaje o dennım useku merenı, ze

zaznamu kalibrace (podle typu zapisnıku) a zaznamu merenı. Hlavicka je pro vsechny

zapisnıky stejna:

8 2 1

31 ’ I vanc i c e − Cerna Hora ’

25 125 1 67 .0 14 7 2009 2 .0 ’ Trakal ’ 1 ’VWC4A74983 ’

Na prvnım radku cıslo 8 znacı pouzity typ zapisnıku. Ve druhem radku cıslo 31

znacı poradove cıslo dennıho useku behem roku. Za cıslem dennıho useku nasleduje

jeho nazev Ivancice - Cerna Hora. Tretı radek zacına udaji o gravimetru. Cıslo

25 znacı typ gravimetru, 125 je cıslo gravimetru, ucel cısla 1 je neznamy a 67.0 je

kontrolnı odectenı teploty gravimetru. Dale ve tretım radku nasleduje datum 14 7

2009 a casovy posun 2.0 = 1 hodina + 1 hodina letnıho casu. Za datem je udane

jmeno merice Trakal, kod dopravy 1 a popis dopravy VWC4A74983.

Adjustovany zapisnık typu 4

Adjustovany zapisnık typu 4 (prıloha A.1.1) pro gravimetr Gs12 nebo Gs11 obsahuje

po udajıch v hlavicce udaje o kalibraci:

2

07 10 45 12 −20.7 45 2 11 .1 45 12 −20.4

12 34 39 91 −15.7 39 81 16 .6 39 91 −15.8

Na prvnım radku je udan pocet nasledujıcıch radku kalibrace 2. Kazdy dalsı

radek zacına casovym udajem 07 10, za kterym nasleduje trojı odectenı hrubeho

merenı 45, odectenı mikrometru 12 a odectenı galvanometru -20.7. Po udajıch

kalibrace nasledujı zaznamy merenı:

11

CVUT Praha 1. DATABAZE

34 2

2003.0000 1 50 2 9 .0 100 .9 6 28 ’ 15 ’ 40 .37 . 4 . 6 −.8 88 .0 0

2003.0000 1 50 2 9 .0 100 .9 6 32 ’ 5 ’ 35 .18 −.3 −1.0 −.8 88 .0 0

2005.0000 1 50 2 14 .0 100 .8 7 5 ’ 25 ’ 44 .83 . 8 1 .3 −.7 88 .0 0

. . .

Na prvnım radku je opet udan pocet radku merenı 34 a navıc pocet odectenı 2.

Kazdy dalsı radek je radkem merenı zacınajıcım cıslem bodu 2003.0000, na kterem

se merilo. Nasledujı udaje o pocası: 1 meteo kod, 50 oblacnost v procentech, 2 stupen

sıly vetru Beaufortovy stupnice, 9.0 teplota vzduchu ve stupnıch Celsia a 100.9 tlak

v kilopascalech. Po meteorologickych udajıch je zaznamenan cas 6 28. Dalsı data

udavajı nastavenı pomocnych hmot ’ 15 ’ , odectenı merıtka 40.37, odectenı si

jemnych ctenı .4 .6 a odectenı s0 -.8. Na zaver je udana vyska stroje nad merıcım

bodem v centimetrech 88.0.

Adjustovany zapisnık typu 5

Zapisnık typu 5 (prıloha A.1.2) pouzıvany pro gravimetry GAG nema kalibraci.

Obsahuje udaje o merenı na jednotlivych bodech v nasledujıcı podobe:

12 1

40.0000 0 0 0 . 0 . 0 9 15 150 7 21 .0 . 0 147 9 6 .2 . 0 . 0 0

40 .0000 0 0 0 . 0 . 0 9 17 210 27 24 .2 . 0 207 29 10 .0 . 0 . 0 0

40 .0000 0 0 0 . 0 . 0 9 19 270 47 23 .8 . 0 267 49 11 .6 . 0 . 0 0

41 .0000 0 0 0 . 0 . 0 12 25 270 52 54 .8 . 0 267 51 16 .2 . 0 . 0 0

. . .

Na prvnım radku je zadan pocet radku merenı 12. Kazdy dalsı radek zacına

cıslem bodu 40.0000. Udaje o pocası nebyly pro merenı GAG zaznamenany nebo

se je nepodarilo dochovat, proto dalsı informace pokracujı az casem merenı 9 15,

ctyrmi ciframi odectenı t1 150 7 21.0 .0 a ctyrmi ciframi odectenı t2 147 9 6.2

.0. Vyska stroje nad bodem .0 nebyla taktez zaznamenana nebo nebyla dochovana.

Adjustovany zapisnık typu 6

Tento zapisnık (prıloha A.1.3) se pouzıval pro data namerena gravimetrem Sharpe

a Worden. Zapisnık neobsahuje kalibraci a ma nasledujıcı zaznamy merenı:

17 3

2014.0100 1 10 2 16 .0 96 .4 8 33 .00 1919.00 1918.80 1918.90 41 .00 3

2015.0000 1 10 1 16 .0 94 .4 8 53 .00 1524.80 1524.80 1524.80 41 .00 3

. . .

Prvnı radek zacına opet poctem merenı 17, po kterem nasleduje pocet odectenı

jemneho ctenı 3. Dalsı radky zacınajı cıslem bodu, pokracujı udaji o pocası a casem

merenı stejne jako u zapisnıku typu 4. Po casovem udaji nasleduje hrube ctenı .00,

opakovane jemne ctenı 1919.00 1918.80 1918.90 a vyska stroje v centimetrech

41.00.

12

CVUT Praha 1. DATABAZE

Adjustovany zapisnık typu 7

Zapisnık typu 7 (prıloha A.1.4) slouzı k zaznamu dat namerenych gravimetrem La

Coste & Romberg s odectenım CPI. Tento zapisnık ma po udajıch z hlavicky zapsane

udaje o kalibraci:

2 4 .00000000

9 50 4428 306 −1 4428 406 −265 4428 206 +287 4428 306 +8

14 43 4428 232 +1 4428 332 −266 4428 132 +272 4428 232 −8

Na prvnım radku je udan nejprve pocet radku kalibrace 2. Pocet odectenı hrubeho

a jemneho ctenı s CPI udava druhe cıslo 4 a poslednı cıslo .00000000 je nepouzıvana

konstanta ε pro prıpad vynechanı kalibrace. Nasledujıcı radky zacınajı casovym

udajem odectenı prostrednıho ctenı 9 50 (zde cas hodin mezi 2. a 3. ctenım). Po

casovem udaji nasleduje serie odectenı hrubeho ctenı 4428, jemneho ctenı 306 a

odectenı CPI -1. V ukazkovem prıpade se provadı ctenı o 100 jednotek jemneho

ctenı vetsı 406, o 100 jednotek mensı 206 a znovu stejne jemne ctenı jako na zacatku

306. K temto ctenım se odecıta prıslusne CPI -265 +287 +8. Po kalibraci nasledujı

zaznamy merenı:

9 3

272.0100 1 0 2 18 .0 97 .0 9 48

4428 . 296 .0 304 .0 306 .0 26 .0 0

21 .00 2 .00 −1.00

2011.0200 1 0 1 16 .0 96 .0 10 21

4405 . 921 .0 921 .0 920 .0 26 .0 0

−4.00 −5.00 −1.00

. . .

Na prvnım radku v zaznamech merenı nalezneme opet pocet merenı 9, za kterym

nasleduje pocet odectenı CPI a jemneho ctenı 3. Po prvnım radku nasledujı zaznamy

merenı na jednotlivych bodech, ktere zabırajı tri radky. Prvnı z kazde trojice zacına

cıslem bodu, pokracuje udaji o pocası a koncı zaznamem casu stejne jako u zapisnıku

typu 4. Druhy radek obsahuje na zacatku hrube ctenı 4428. a dale serii jemnych

ctenı 296.0 304.0 306.0 zakoncenou vyskou stroje nad urovnı bodu v centimetrech

26.0. Na tretım radku, poslednım z trojice, se naleza pouze serie odectenı CPI

21.00 2.00 -1.00

Adjustovany zapisnık typu 8 a 9

Do zapisnıku typu 8 a 9 (prılohy A.1.5 a A.1.6) se ukladajı data namerena gravi-

metrem La Coste & Romberg G a La Coste & Romberg D, ktere merı bez odectenı

CPI a tım padem nemajı kalibraci. Zaznamy merenı nasledujı hned po hlavicce a

majı nasledujıcı podobu:

13 2

3346.0200 1 10 2 19 .0 97 .5 9 18 4403.00 5 .0 4 .0 46 .80 0

3346.7100 1 10 1 22 .9 97 .8 10 12 4421.00 331 .0 332 .0 46 .80 0

. . .

13

CVUT Praha 1. DATABAZE

Struktura ulozenı namerenych dat je shodna se zapisnıkem typu 6 pro gravimetry

Sharpe a Worden.

Adjustovane zapisnıky typu 7, 8 a 9 umoznujı na konec souboru ulozit poznamku,

ktera zacına symbolem *.

Soubor rovnic oprav

Struktura souboru rovnic oprav (prıloha A.1.7) je shodna pro vsechny typy zapisnıku.

Nazev souboru (napr. R3930102.004) zacına pısmenem R, nasleduje stupen chodu

gravimetru 3, rok merenı 93, cıslo skupiny 01, cıslo gravimetru v ramci skupiny 02

a za teckou cıslo dennıho useku v danem roce 004. Soubor zacına prehledem udaju

o dennım useku a neznamych pouzitych pri vypoctu:

ROV. OPRAV DENNIHO USEKU: 930102.004 DATUM=27.12.1999 CAS=10:05

GRAVIMETR = 22 961

ROVNIC OPRAV = 16

NEZNAMYCH TIZI = 5

1 2014.0100 VOTICE

2 2015.0000 MILICIN

3 2016.0000 PLANA N LUZ

4 2017.0000 RIPEC

5 2019.0000 CHOTYCANY

POCET NEZN. CHODU = 4

6 a ’

7 b

8 c

9 d

POCET SKOKU = 1

10

MER. FAKTOR

11 Y1 ’

12 Y2 ’

ROVNICE OPRAV:

. . .

Na prvnım radku se nachazı identifikacnı cıslo dennıho useku 930102.004, da-

tum 27.12.1999 a cas vypoctu 10:05. Na dalsıch radcıch je uveden typ 22 a cıslo

gravimetru 961, pocet rovnic oprav (pocet pouzitych merenı k vyrovnanı) 16, pocet

vyrovnavanych tızı (pocet bodu) 5 a vycet bodu, na kterych se opakovane merilo

1 2014.0100 VOTICE

2 2015.0000 MILICIN

3 2016.0000 PLANA N LUZ

4 2017.0000 RIPEC

5 2019.0000 CHOTYCANY

Dale je uveden pocet neznamych chodu 4 a vycet neznamych pouzitych pro vypocet

chodu.

6 a’

14

CVUT Praha 1. DATABAZE

7 b

8 c

9 d

Predposlednım udajem je pocet skoku 1. Poslednım udajem jsou nezname pouzite

pro vypocet merıtkoveho faktoru.

11 Y1’

12 Y2’

Soubor pokracuje maticı planu vyrovnanı neznamych. Zde je ukazka zjistenı

mısta, od ktereho je zaznamenan skok (3. a 4. vyrovnavane merenı) v ukazkovem

souboru rovnic oprav (prıloha A.1.7):

. . .

. 00000 .00000 1.00000 .00000 .00000

−1.00000 −.95000 −.90250 −.85737 .00000

.00000 198.47400

1.00000 198.47400

.00000 .00000 .00000 1.00000 .00000

−1.00000 −1.83333 −3.36111 −6.16204 1.00000

.00000 418.73200

1.00000 418.73200

. . .

Matice je zapsana po radcıch, ktere jsou ale po peti hodnotach zalomeny. Kazdy

radek matice potom tvorı n = dnt

5e radku v textovem souboru. Pokud je v merenı

uveden skok, pribude do vyrovnanı dalsı neznama. V ukazkovem souboru rovnic

oprav je skok desata neznama. Proto v desatem sloupci v kazdem radku matice,

na konci druheho radku v souboru, nalezneme od urciteho mısta 1.00000 mısto

.00000. Toto mısto znacı, od ktereho merenı uz bylo pocıtano se skokem v merenı.

V ukazkovem souboru mezi 3. a 4. vyrovnavanym merenım.

Prvnıch n (kde n je pocet vyrovnavanych tızı) sloupcu matice znacı, jestli se

bude pocıtat dana neznama tıze. Pokud je v n-tem sloupci daneho radku matice

1.00000 (na ostatnıch .00000), pak se bude vyrovnavat n-ta neznama tıze. Pokud

je pocet vyrovnavanych tızı v rovnicıch oprav roven poctu merenı vstupujıcıch do

vyrovnanı, byla pouzita vsechna merenı. Pokud tomu tak nenı, muzeme pomocı

hodnot z prvnıch n sloupcu odhalit vynechanı merenı pri vyrovnanı a zıskat tak

informaci o vyloucenych bodech.

1.1.3 Katalogy programu Gravimzu

Program gravimzu pouzıva dvou textovych souboru pro nactenı konstant gravi-

metru. Jsou to Kat ms.txt a Kat grav.txt (prılohyA.2.1 a A.2.2). Udaje o tıhovych

bodech nacıta Gravimzu z katalogu tıhovych bodu KAT BODY.txt (prıloha A.2.3).

15

CVUT Praha 1. DATABAZE

Katalog merickych skupin

V souboru Kat ms.txt jsou ulozene udaje o gravimetrech pouzıvanych prıslusnou

merickou skupinou dany rok. Tady je ukazka casti zaznamu pro merickou skupinu

cıslo 1 v roce 2010.

MERICKA SKUPINA 10 1 ZEMEMERICKY URAD PRAHA + VUGTK ZDIBY

SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 25 125 1 SCINTREX ZU PRAHA

2 6 1068 1 LA COSTE G ZU PRAHA

Kazda mericka skupina je urcena rokem 10 (2010) a cıslem 1. Pro kazdy pouzity

gravimetr je urceno cıslo v ramci skupiny 1, ktere je take napsane v nazvu adjusto-

vaneho zapisnıku, typ gravimetru 25, cıslo gravimetru 125, poradove cıslo ruzneho

nastavenı stejneho typu a cısla gravimetru v katalogu gravimetru 1, nazev a uzivatel

gravimetru SCINTREX ZU PRAHA.

Katalog gravimetru

V ukazce zaznamu (prıloha A.2.2) pro gravimetr SCINTREX v katalogu gravimetru

jsou v casti zacınajıcı V E T A S O U B O R U K T G R P ulozene zakladnı udaje

o gravimetru: typ 25, cıslo gravimetru 0125, poradove cıslo v ramci stejneho typu

a cısla gravimetru 01, nazev gravimetru SCINTREX a majitel gravimetru ZU. Dale

je uvedeno datum ulozenı 050617, datum urcenı 050617, datum zacatku platnosti

050617, datum konce platnosti 100617, kod zpusobu urcenı 1, kod vzoru zapisnıku

2, kod vypoctu 5, dolnı 0 a hornı 7000 mez stupnice cıslo 1, dolnı 0 a hornı 1100 mez

stupnice cıslo 2, dolnı 0 a hornı 0 mez stupnice cıslo 3, kod termostatu 1, teplota

gravimetru 67.0 a svisla vzdalenost merıcıho zarızenı od prıstorjove desky v mm

-202.

Cast zaznamu zacınajıcı textem V E T Y S O U B O R U K T G K S T udava

konstanty vnitrnıch vlivu gravimetru. Gravimetry Gs11 a Gs12 obsahujı v matici

cısel v 1. radku v 1. az 5. sloupci koeficienty kalibracnıho polynomu jemneho ctenı

a v 6. sloupci runovou chybu. Ve 2. radku v 1. az 5. sloupci jsou zaznamenany

konstanty pro vypocet prıdavnych hmot. Gravimetry GAG 2 a GAG 3 majı v teto

casti zaznamu pouze jeden radek obsahujıcı 6 konstant.

Ostatnı gravimetry majı strukturu ulozenych konstant vnitrnıch vlivu v matici

o peti nebo devıti radcıch. V 1. radku v prvnım sloupci je udana konstanta galvano-

meru ε = 0, ve 2. sloupci je potom ulozena standartnı teplota gravimetru t0 = 67,

3. sloupec udava hodnotu merıtka sroubu ζ = 1000. Ve 2. radku jsou v 1. az 5. sloupci

uvedeny konstanty kalibracnıho polynomu jemneho ctenı. Ve 3. radku jsou uvedeny

amplitudy periodickych chyb, ve 4. radku jsou uvedeny faze a v 5. radku periody

periodickych chyb. Pokud ma zaznam vnitrnıch vlivu o ctyri radky vıce, obsahuje

16

CVUT Praha 1. DATABAZE

zaznam v 6. radku 5 konstant kalibracnıho polynomu hrubeho ctenı a v 7. az 9. radku

amplitudy, faze a periody prıslusnych periodickych chyb.

Katalog tıhovych bodu

KAT BODY.txt (prıloha A.2.3) obsahuje informace o tıhovych bodech nutne k vypoctu

vyrovnanı v programu Gravimzu. Z tohoto katalogu byly prevzaty souradnice 48

36 40.00 14 24 26.00, vyska bodu 661.930 a tıze 9807840.10 (pokud jiz nebyly

souradnice, vyska nebo tıze zıskany z databaze Foxpro, kapitola 1.1.1), vertikalnı

gradient -3245 a jeho kod 1, horizontalnı gradient 100 a azimut horizontalnıho

gradientu 346. Ukazka radku katalogu tıhovych bodu:

2026 H DVORISTE 880603 48 36 40 .00 14 24 26 .00 661.930 100 346

−3245 1 64 9807840.10 68 1 .40

1.1.4 Ostatnı zdroje

Mezi dalsı zdroje dat vytvarene databaze patrı seznam identifikacnıch cısel vsech

obcı a jejich nazvu, identifikatoru okresu a jejich nazvu a identifikatoru kraju a jejich

nazvu na uzemı CR. Seznamy identifikacnıch cısel jsou propojeny v relacnı tabulce.

Vsechna tato data z roku 2009 jsem zıskal ze stranek CSU (Cesky statisticky urad)

[1].

Zdrojem souradnic tıhovych bodu sıte 1995 byla data zıskana z revize provedene

oddelenım gravimetrie ZU v roce 2009 a 2010. Tyto souradnice jsou v systemu

ETRS89 a vznikly vypoctem z dvojıho urcenı. Prvnım urcenım bylo odectenı z mapy

Google [3] a druhym vysledek geodetickych vypoctu z podkladu katastralnı mapy

geoportalu CUZK [2] a mıstopisnych nacrtu.

1.2 Struktura databaze

Struktura databaze se sklada ze trı schemat. Prvnı schema je obecne public, ktere

obsahuje vsechny tabulky tykajıcı se tıhovych bodu. Toto schema obsahuje dalsı

dve schemata useky a gravimetry. Vsechny informace o schematu public nalez-

nete v kapitole 1.2.1. Schema useky zahrnuje vsechny tabulky obsahujıcı ulozena

data dennıch useku merenı. O tomto schematu pojednava kapitola 1.2.2. Poslednım

schematem se zabyva kapitola 1.2.3, ve ktere naleznete strukturu ulozenı udaju

o gravimetrech. Vsechna schemata a tabulky byly vytvoreny pomocı dotazu v ja-

zyce SQL. Zde je ukazka vytvorenı tabulky, tabulky s popisem kodu a propojenı

techto tabulek pomocı cizıho klıce.

CREATE TABLE body vyska (

bod id numeric ( 6 , 2 ) ,

17

CVUT Praha 1. DATABAZE

vyska numeric ( 6 , 3 ) DEFAULT NULL,

vyska kod integer DEFAULT NULL,

PRIMARY KEY ( bod id )

) ;

CREATE TABLE kody vyska (

kod integer ,

typ varchar (50) DEFAULT NULL,

PRIMARY KEY ( kod )

) ;

ALTER TABLE body vyska ADD FOREIGN KEY ( vyska kod ) REFERENCES kody vyska ( kod ) ;

1.2.1 Struktura ulozenı tıhovych bodu

Zakladem pro strukturu ulozenı tıhovych bodu byl system ulozenı zdrojovych dat

v databazi FoxPro (kapitola 1.1.1). Pet zakladnıch souboru s koncovkou .dbf bylo

rozdeleno do nasledujıcıch 10 tabulek:

Bod zakl.dbf byl rozdelen na tabulky body zakladni a body site

Bod stav.dbf byl zakladem k vytvorenı tabulek body stabilizace a body stav

Bod udaj.dbf jsem rozdelil na body souradnice, body vyska, body gradient

a body korekce

Bod tize.dbf byl predlohou pro body tize

Bod mist.dbf byl predlohou pro body mistopis

Zde je popis vsech tabulek struktury ulozenı tıhovych bodu:

body zakladni

Graficke znazornenı je na obrazku v prıloze B.3.

bod id je primarnım klıcem tabulky. Toto identifikacnı cıslo bodu ma ctyri mısta

pred desetinou teckou a dve mısta za desetinnou teckou (napr. 2014.01).

bod nazev je nazev tıhoveho bodu. Muze se skladat maximalne ze 40-ti znaku.

cislo puvodni je puvodnı cıslo bodu. Obsahuje max. 20 znaku.

okres id je zastarale identifikacnı cıslo okresu. Sklada se z 9 cıslic.

obec id je zastarale identifikacnı cıslo obce. Sklada se z 9 cıslic.

druh kod urcuje druh bodu pomocı kodu. S tımto kodem je cizım klıcem provazana

tabulka kody druh bodu.

18

CVUT Praha 1. DATABAZE

stat id urcuje stat, ve kterem se tıhovy bod nachazı. Id je provazano cizım klıcem

s tabulkou staty.

list100 kod je kod listu mapy merıtka 1:100 000 urceny v tabulce kody list100.

Tato tabulka je opet propojena cizım klıcem.

obec 2009 id je identifikatorem obce, ve ktere se dany tıhovy bod nachazı. Cizım

klıcem je tento identifikator propojen s tabulkou obcı, okresu a kraju struk-

tura obce 2009.

lists52 je kod urcenı mapoveho listu mapy v systemu S-52. Tento kod je propojen

cizım klıcem s tabulkou kody lists52.

polygony

bod je identifikacnım cıslem tıhoveho bodu, pomocı ktereho je cizım klıcem tabulky

polygony propojena s tabulkou body zakladni.

polygon kod je kod prıslusneho polygonu, pres ktery je cizım klıcem pripojena ta-

bulka kody polygon.

kody polygon

kod je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

polygony.

nazev je nazev polygonu. Obsahuje maximalne 50 znaku.

velikost je blizsı urcenı velikosti polygonu. Obsahuje max. 10 znaku.

kody druh bodu

kod je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body zakladni.

popis je popis polygonu (napr.”Karpatsky polygon“). Obsahuje max. 50 znaku.

staty

stat id je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body zakladni.

stat nazev je nazev statu, ve kterem se tıhovy bod nachazı (napr.”Ceska republika“).

Obsahuje max. 40 znaku.

19

CVUT Praha 1. DATABAZE

kody list100

kod je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body zakladni.

cislo je cıslo mapoveho listu mapy 1:100 000.

list nazev je nazev mapoveho listu.

nomenklatury list100

nomenklatura id je primarnı klıc tabulky.

nomenklatura nazev

list kod je nazev mapoveho listu, ke kteremu prıslusı dana nomenklatura.

kody lists52

kod je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body zakladni.

list nazev je nazev mapoveho listu v systemu S-52.

struktura obce 2009

obec id je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body zakladni a tabulka obce 2009.

okres id je identifikator okresu slouzıcı k propojenı s tabulkou okresy 2009.

kraj id je identifikator kraju slouzıcı k propojenı s tabulkou kraje 2009.

obce 2009

obec id je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

struktura obce 2009.

obec nazev

okresy 2009

okres id je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

struktura obce 2009.

okres nazev

20

CVUT Praha 1. DATABAZE

kraje 2009

kraj id je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

struktura obce 2009.

kraj nazev

body souradnice

Graficke znazornenı je na obrazku B.1.

bod id je primarnı klıc tabulky. Format primarnıho klıce bod id je stejny jako v ta-

bulce body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

sirka st udava stupne zemepisne sırky daneho tıhoveho bodu v systemu S-52.

sirka min udava minuty zemepisne sırky daneho tıhoveho bodu v systemu S-52.

sirka vt udava vteriny zemepisne sırky daneho tıhoveho bodu v systemu S-52.

delka st udava stupne zemepisne delky daneho tıhoveho bodu v systemu S-52.

delka min udava minuty zemepisne delky daneho tıhoveho bodu v systemu S-52.

delka vt udava vteriny zemepisne delky daneho tıhoveho bodu v systemu S-52.

sirka je zemepisna sırka v systemu S-52 prepoctena na desetitisıciny stupne.

delka je zemepisna delka v systemu S-52 prepoctena na desetitisıciny stupne.

souradnice kod kod typu souradnic v systemu S-52.

sirka etrs89 je zemepisna sırka v systemu ETRS-89 zıskana revizı souradnic (ka-

pitola 1.1.4) nebo transformacı souradnic ze systemu S-52 uvedena na deseti-

tisıciny stupne.

delka etrs89 je zemepisna delka v systemu ETRS-89 zıskana revizı souradnic nebo

transformacı souradnic ze systemu S-52 uvedena na desetitisıciny stupne.

nadbytecna mereni etrs89 je pocet nadbytecnych merenı prı urcovanı souradnic

v systemu ETRS-89 zıskanych revizı souradnic.

chyba etrs89 m je smerodatna odchylka urcenı souradnic v systemu ETRS-89, ktere

byly zıskany revizı v prıpade poctu nadbytecnych merenı vetsım nez nula.

souradnice etrs89 kod je kod urcenı souradnic v systemu ETRS89, ktery slouzı

k propojenı s tabulkou kody souradnice etrs89.

21

CVUT Praha 1. DATABAZE

sirka etrs89 st udava stupne zemepisne sırky daneho tıhoveho bodu v systemu

ETRS-89.

sirka etrs89 min udava minuty zemepisne sırky daneho tıhoveho bodu v systemu

ETRS-89.

sirka etrs89 vt udava vteriny zemepisne sırky daneho tıhoveho bodu v systemu

ETRS-89.

delka etrs89 st udava stupne zemepisne delky daneho tıhoveho bodu v systemu

ETRS-89.

delka etrs89 min udava minuty zemepisne delky daneho tıhoveho bodu v systemu

ETRS-89.

delka etrs89 vt udava vteriny zemepisne delky daneho tıhoveho bodu v systemu

ETRS-89.

chyba transformace89 je chyba z transformace souradnic do systemu ETRS-89

kody souradnice etrs89

kod je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body souradnice.

popis je popis puvodu souradnic v systemu ETRS-89.

body vyska

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

vyska je nadmorska vyska bodu v metrech.

vyska kod je kod urcenı nadmorske vysky. Cizım klıcem je tento sloupec propojen

s tabulkou kody vyska.

kody vyska

kod je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body vyska.

typ je popis urcenı vysky (napr.”Jadran“). Obsahuje maximalne 50 znaku.

22

CVUT Praha 1. DATABAZE

body gradient

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

vertikalni je hodnota vertikalnıho gradientu v jednotkach E (Eotvos).

vertikalni kod je kod urcenı vertikalnıho gradientu. Cizım klıcem je tento sloupec

propojen s tabulkou kody vertikalni gradient.

horizontalni je hodnota horizontalnıho gradientu v jednotkach E (Eotvos).

azimut je azimut horizontalnıho gradientu ve stupnıch.

kody vertikalni gradient

kod je primarnı klıc tabulky. Cizım klıcem je k teto tabulce pripojena tabulka

body gradient.

typ urcuje typ vertikalnıho gradientu (napr.”normalnı“). Obsahuje maximalne 50

znaku.

body korekce

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

topo je hodnota topograficke korekce v jednotkach E (Eotvos).

stavby je hodnota vlivu stavby v jednotkach E (Eotvos).

body tize

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

tize 1957 udava hodnotu vyrovnane tıze v systemu 1957 v µms−2

tize 1964 udava hodnotu vyrovnane tıze v systemu 1964 v µms−2

tize 1968 udava hodnotu vyrovnane tıze v systemu 1968 v µms−2

tize 1995 udava hodnotu vyrovnane tıze v systemu 1995 v µms−2

chyba 1995 udava strednı chybu tıze v systemu 1995 v µms−2

priblizna udava hodnotu priblizne tıze v µms−2.

23

CVUT Praha 1. DATABAZE

tize 2010 pripraveny sloupec pro vyrovnanou tızi v systemu 2010 v µms−2

chyba 2010 pripraveny sloupec pro chybu tıze v systemu 2010 v µms−2

body stabilizace

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem. Dale je k teto

tabulce pres bod id navazana tabulka navstevy.

stabilizoval je jmeno osoby, ktera bod stabilizovala. Obsahuje max. 30 znaku.

rok stabilizace

rok zruseni

typ je popis stabilizace.

navstevy

bod id ma stejny format jako bod id v tabulce body stabilizace, ktera je k teto

tabulce pripojena cizım klıcem.

datum je datum poslednı”navstevy“, poslednı navstevy pri zjist’ovanı stavu bodu.

body site

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

sit57 kod je kod zarazenı bodu do radu v systemu 1957. Cizım klıcem je na tento

kod navazana tabulka kody sit57.

sit64 kod je kod zarazenı bodu do radu v systemu 1964. Cizım klıcem je na tento

kod navazana tabulka kody sit64.

sit95 kod je kod zarazenı bodu do radu v systemu 1995. Cizım klıcem je na tento

kod navazana tabulka kody sit95.

zakladna kod je kod zarazenı bodu do radu na mericke zakladne.

sit2010 kod je pripraveny kod zarazenı bodu do radu v systemu 2010. Cizım klıcem

je na tento kod navazana tabulka kody zakladna.

24

CVUT Praha 1. DATABAZE

body stav

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

stav celkovy kod je kod urcujıcı celkovy stav tıhoveho bodu. Cizım klıcem je pres

tento kod pripojena tabulka kody stav celkovy.

nalezeni kod je kod hodnotıcı vyhledatelnost bodu. Cizım klıcem je pres tento kod

pripojena tabulka kody stav.

prijezd kod je kod hodnotıcı mıstopisny popis prıjezdu k tıhovemu bodu. Cizım

klıcem je pres tento kod pripojena tabulka kody stav oz.

mistopis kod je kod hodnotıcı mıstopisny popis tıhoveho bodu. Cizım klıcem je pres

tento kod pripojena tabulka kody stav.

zpusob prijezdu kod je kod hodnotıcı moznost prıjezdu k tıhovemu bodu. Cizım

klıcem je pres tento kod pripojena tabulka kody stav.

umisteni kod je kod hodnotıcı umıstenı tıhoveho bodu. Cizım klıcem je pres tento

kod pripojena tabulka kody stav.

stabilizace kod je kod hodnotıcı stabilizaci tıhoveho bodu. Cizım klıcem je pres

tento kod pripojena tabulka kody stav.

ochrana kod je kod hodnotıcı ochranne prostredky tıhoveho bodu. Cizım klıcem je

pres tento kod pripojena tabulka kody stav oz.

stabilizace nova urcuje jestli ma bod novou stabilizaci.

tabulka nova urcuje jestli ma bod novou ochranou tabulku.

tyc nova urcuje jestli ma bod novou ochranou tyc.

poznamka

body mistopis

bod id je primarnı klıc tabulky. Ma stejny format jako primarnı klıc bod id v tabulce

body zakladni, ktera je k teto tabulce pripojena cizım klıcem.

nacrt je cesta k ulozenemu souboru s mıstopisnym nacrtem.

foto je cesta k ulozenemu souboru s fotografiı bodu.

pripojeni je popis vyskoveho pripojenı tıhoveho bodu.

25

CVUT Praha 1. DATABAZE

prijezd je popis prıjezdu k tıhovemu bodu.

popis je popis umıstenı tıhoveho bodu.

poznamka

1.2.2 Struktura ulozenı dennıch useku merenı

Struktura ulozenı dennıch useku je tvorena vsemi tabulkami schematu useky. Gra-

ficke znazornenı se nachazı v prıloze B.2. Zdrojem dat a zaroven podkladem pro

navrh struktury ulozenı dennıch useku byly soubory zapisnıku a rovnic oprav (ka-

pitola 1.1.2). Tabulka denni useky obsahuje hlavickove udaje z adjustovanych

zapisnıku resp. vsechny udaje, jejichz hodnoty se v danem useku merenı zazna-

menavajı pouze jednou. Jeden zaznam tabulky mereni obsahuje data jednoho radku

merenı adjustovaneho zapisnıku, ktera se pro dane merenı zaznamenavajı pouze

jednou. Neobsahuje jemne ctenı. Jeden zaznam tabulky kalibrace obsahuje jeden

zaznam kalibracnıho ctenı. Zaznam tabulky cteni obsahuje jedno odectenı jemneho

ctenı a pokud je, tak i CPI. Tabulka kody doprava a kody meteo jsou pomocnymi

popisnymi tabulkami pro kod dopravy a kod stavu pocası.

denni useky

usek id je identifikacnı cıslo a primarnı klıc tabulky (napr. 20100101.001). Prvnı

ctyri cifry 2010 udavajı rok merenı, dalsı dve 01 cıslo mericke skupiny a po-

slednı dve 01 pred desetinnou teckou cıslo gravimetru v ramci skupiny.1 Za

desetinnou teckou nasledjujı tri cıslice poradoveho cısla dennıho useku v ramci

roku 001. Pomocı cizıho klıce jsou tımto cıslem pripojeny tabulky kalibrace

a mereni.

cislo je poradove cıslo dennıho useku v ramci roku. To same, co za desetinnou

teckou hodnoty ve sloupci usek id.

nazev je nazev dennıho useku. Obsahuje maximalne 50 znaku.

gravimetr typ udava typ gravimetru napr. 25

gravimetr cislo udava cıslo gravimetru napr. 125

gravimetr teplota je kontrolnı odecet teploty gravimetru ve stupnıch Celsia.

datum udava datum merenı

1Cıslo skupiny a cıslo gravimetru v ramci skupiny jsou pozustatkem stareho systemu ukladanınamerenych dat. Lze je u novych dennıch useku zmenit na cokoliv uzitecnejsıho.

26

CVUT Praha 1. DATABAZE

posun casu je celkovy casovy posun od Greenwichskeho casu a posun letnıho casu,

pokud je, v hodinach.

observator je jmeno merice. Obsahuje maximalne 20 znaku.

doprava kod je kod dopravnıho prostredku. Cizım klıcem je tımto kodem pripojena

tabulka kody doprava.

doprava popis je popis dopravnıho prostredku. Obsahuje maximalne 20 znaku.

stupen chodu udava stupen chodu pouzity pri zpracovanı programem Gravimzu,

pokud se dochovaly rovnice oprav.

cas skoku je udan v prıpade pokud skok nastal jako datovy typ Time without

timezone.

vynechane body udava pocet bodu, ktere byly pri zpracovanı programem Gravimzu

vynechany, pokud se dochovaly rovnice oprav.

poznamka

gravimetr id jednotne identifikacnı cıslo gravimetru v tabulce gravimetry, ktera

je cizım klıcem s touto tabulkou propojena (kapitola 1.2.3)

epsilon je konstanta pro vypocet ctenı pri odectenı CPI pri vynechanı kalibrace.

chod0 je absolutnı clen polynomu chodu gravimetru

chod0 skok je absolutnı clen polynomu chodu gravimetru od okamziku skoku

chod1 je linearnı clen polynomu chodu gravimetru

chod2 je kvadraticky clen polynomu chodu gravimetru

chod3 je kubicky clen polynomu chodu gravimetru

cas skoku h udava tu samou hodnotu jako cas skoku v desetitisıcinach hodiny.

mereni

mereni id je identifikacnı cıslo merenı a primarnı klıc tabulky. Cizım klıcem je

pomocı tohoto cısla pripojena tabulka cteni. Identifikacnı cıslo je prirozene

cıslo. Zacına cıslem 1, narusta po jedne az do cısla poslednıho zaznamu merenı.

usek id je identifikacnı cıslo dennıho useku. Cizım klıcem je pres toto cıslo pripojena

tabulka denni useky

27

CVUT Praha 1. DATABAZE

bod id je identifikacnı cıslo bodu. Cizım klıcem je pres toto cıslo pripojena tabulka

body zakladni

meteo kod je kod uvedenych meteorologickych udaju. Pokud je roven nule, jsou

vsechny udaje rovne nule. Cizım klıcem je na tento kod pripojena tabulka

kody meteo.

oblacnost je procentualnı zatazenı oblohy oblacnostı v desıtkach procent.

vitr kod je kod Beaufortovy stupnice vetru.

teplota je okolnı teplota na bode ve stupnıch Celsia.

tlak je tlak na bode v kilopascalech (prevazne).

cas je cas merenı v hodinach (napr. 14.3833).

cteni hrube je odectenı sroubu hrubeho ctenı.

vyska stroje je vyska stroje nad bodem.

vaha je vaha merenı. Standartne nastavena na 1. V prıpade vynechanı bodu je

vaha 0.

poznamka

cteni jednotne je jednotne vypoctene ctenı pro vsechny druhy gravimetrun.

gs12 phm je odectenı pomocnych hmot pri merenı gravimetrem Gs12 nebo Gs11.

gs12 meritko je odectenı merıtka pri merenı gravimetrem Gs12 nebo Gs11.

gs12 s0 je odectenı S0 pri merenı gravimetrem Gs12 nebo Gs11.

gag t1 cifra1-4 je odectenı pri merenı gravimetrem GAG.

gag t2 cifra1-4 je odectenı pri merenı gravimetrem GAG.

kalibrace

usek id je identifikacnı cıslo useku. Pomocı tohoto cısle je cizım klıcem pripojena

tabulka denni useky.

cas je cas jednoho odectenı kalibrace. (Vıce odectenı tj. vıce zaznamu se stejnym

casem znamena jeden radek kalibrace v zapisnıku.)

cteni hrube je odectenı sroubu hrubeho ctenı.

28

CVUT Praha 1. DATABAZE

cteni jemne je odectenı sroubu jemneho ctenı.

cpi je odectenı CPI.

gs12 mer je odectenı merıtka pri merenı gravimetrem Gs12 nebo Gs11.

gs12 mikr je odectenı mikrometru pri merenı gravimetrem Gs12 nebo Gs11.

gs12 galv je odectenı galvanometru pri merenı gravimetrem Gs12 nebo Gs11.

cas hodiny je hodnota cas v hodinach.

cteni

mereni id je identifikacnı cıslo merenı. Cizım klıcem je tımto cıslem pripojena ta-

bulka mereni.

cteni jemne je odectenı sroubu jemneho ctenı.

cpi je odectenı CPI.

gs12 si je odectenı Si pri merenı gravimetrem Gs12 nebo Gs11.

kody doprava

kod je primarnım klıcem tabulky a kodem dopravnıho prostredku. Cizım klıcem je

pres tento kod pripojena tabulka denni useky.

nazev je nazev dopravnıho prostredku.

kody meteo

kod je primarnım klıcem tabulky a kodem udaju o pocası. Cizım klıcem je pres

tento kod pripojena tabulka mereni.

nazev je popis stavu pocası (napr.”Krupobitı“).

1.2.3 Struktura ulozenı udaju o gravimetrech

Veskere udaje o gravimetrech pochazı z katalogu gravimetru (kapitola 1.1.3) a jsou

ulozeny v jedine tabulce gravimetry ve schematu gravimetry (prıloha B.3). Jeden

zaznam v tabulce gravimetry se da chapat jako jedno nastavenı konstant gravime-

tru.

29

CVUT Praha 1. DATABAZE

gravimetry

gravimetr id je jedenactimıstne identifikacnı cıslo jednoho zaznamu a primarnı klıc

tabulky (napr. 12500125001). Prvnı cifra je vzdy 1.2 2. a 3. cıslice jsou vyhra-

zene pro typ gravimetru 25, 4.-8. cıslice zaznamenavajı cıslo gravimetru 00125

a poslednı tri cifry ukazujı poradove cıslo zaznamu pri stejnem typu a cısle

gravimetru 001.

typ je typ gravimetru napr. 25.

cislo je cıslo gravimetru napr. 125

tabulka cislo je puvodne poradove cıslo v katalogu gravimetru v ramci stejneho

typu a cısla gravimetru.

nazev je nazev gravimetru napr. SCINTREX.

uzivatel je vlastnık nebo drıve uzivatel gravimetru (napr. ZU PRAHA).

datum ulozeni je datum ulozenı zaznamu. Puvodne datum ulozenı konstant v ka-

talogu gravimetru.

datum urceni je datum urcenı konstant zaznamu.

zacatek platnosti je datum, od ktereho jsou urcene konstanty zaznamu platne.

konec platnosti je datum, do ktereho jsou urcene konstanty zaznamu platne.

zpusob urceni je kod urcenı konstant.

vzor zapisniku je kod vzoru zapisnıku z programu Gravimzu.

kod vypoctu je kod vypoctu konstant.

stupnice1 dolni je dolnı mez stupnice 1.

stupnice1 horni je hornı mez stupnice 1.

stupnice2 dolni je dolnı mez stupnice 2.

stupnice2 horni je hornı mez stupnice 2.

stupnice3 dolni je dolnı mez stupnice 3.

stupnice3 horni je hornı mez stupnice 3.

2Pozustatek problemu odstranovanı pocatecnıch nul pri kopırovanı.

30

CVUT Praha 1. DATABAZE

termostat je kod existence termostatu. 1 znacı prıtomnost, 0 nebo NULL neprıtomnost.

teplota je teplota gravimetru ve stupnıch Celsia.

svisla vzdalenost je svisla vzdalenost merıcıho zarızenı od prıstrojove desky v mm.

epsilon je konstanta galvanometru ε.

t0 je standartnı teplota gravimetru t0.

zeta je hodnota merıtka sroubu ζ.

gag konstanta1-6 jsou konstanty gravimetru GAG.

gs12 runova chyba

gs12 hmota1-5 jsou konstanty pro vypocet prıdavnych hmot.

vaha je vaha gravimetru.

a-e jemne jsou konstanty kalibracnıho polynomu jemneho ctenı.

amplituda1-6 jemne jsou amplitudy periodickych chyb jemneho ctenı.

faze1-6 jemne jsou faze periodickych chyb jemneho ctenı.

perioda1-6 jemne jsou periody periodickych chyb jemneho ctenı.

a-e hrube jsou konstanty kalibracnıho polynomu hrubeho ctenı.

amplituda1-6 hrube jsou amplitudy periodickych chyb hrubeho ctenı.

faze1-6 hrube jsou faze periodickych chyb hrubeho ctenı.

perioda1-6 hrube jsou periody periodickych chyb hrubeho ctenı.

amp sin1-6 jemne jsou amplitudy sinovych vln periodickych chyb jemneho ctenı

ve tvaru souctu sin. a kosin. vln.

amp cos1-6 jemne jsou amplitudy cosinovych vln periodickych chyb jemneho ctenı

ve tvaru souctu sin. a kosin. vln.

freq cos1-6 jemne jsou frekvence sinovych a cosinovych vln periodickych chyb jemneho

ctenı ve tvaru souctu sin. a kosin. vln.

amp sin1-6 hrube jsou amplitudy sinovych vln periodickych chyb hrubeho ctenı ve

tvaru souctu sin. a kosin. vln.

31

CVUT Praha 1. DATABAZE

amp cos1-6 hrube jsou amplitudy cosinovych vln periodickych chyb hrubeho ctenı

ve tvaru souctu sin. a kosin. vln.

freq cos1-6 hrube jsou frekvence sinovych a cosinovych vln periodickych chyb hrubeho

ctenı ve tvaru souctu sin. a kosin. vln.

1.3 Naplnenı databaze

Naplnenı databaze probıhalo ve trech fazıch. V prvnı fazi (kapitola 1.3.1) byla

prevedena data z databaze FoxPro (kapitola 1.1.1) do nove struktury tıhovych bodu

(kapitola 1.2.1). Tato struktura byla dale doplnena o aktualnı udaje o obcıch okre-

sech a krajıch. Pote byl vyvıjen program RegisterImport (kapitola 1.3.2) v jazyce

Java, ktery pomocı skriptu v Bash interpretu naplnil strukturu dennıch useku a

samostatne spusteny i strukturu gravimetru.

1.3.1 Hromadne kopırovanı CSV souboru

Nejprve byla data z databaze FoxPro (kapitola 1.1.1) exportovana do textovych

souboru formatu CSV. Potom byly tyto soubory prevedeny do kodovanı UTF-8

pomocı nasledujıcıho skriptu, ktery zaroven ze souboru odstranı prazdne retezce.

#!/ bin /bash

for f i l e in ∗ .TXT; do

i f [ −f ‘ ‘ $ f i l e ’ ’ ] ; then

i conv −f WINDOWS−1250 −t UTF−8//IGNORE $ f i l e > temp1

vyskyt=$ ( grep ’ , ” ’ temp1 | wc − l )

whi l e [ $vyskyt != 0 ] ; do

sed ’ s / , ” / ,/ ’ < temp1 > temp2

mv temp2 temp1

vyskyt=$ ( grep ’ , ” ’ temp1 | wc − l )

done

sed ’/ˆ $/d ’ < temp1 > $ f i l e

f i

done

Pri manipulaci s daty v CSV souborech byly pouzity ruzne prıkazy v interpretu

Bash. Zde jsou jejich ukazky.

# ods t ran i po s l edn i radek

sed ’ $d ’

# vezme 1 az 8 s loupec odde leny carkami

cut −d ’ , ’ −f 1−8 soubor

# obecne n a j i t a nahradi t

sed ’ s / n a j i t / nahradit ’ < soubor

#zmena kodovani

i conv −f encoding −t encoding −o vystupnisoubor vstupnisoubor

#inve r zn i grep

grep −v

#vytahne z bod s tav . t x t c i s l o bodu a poznamku , k t e ra j e okomentovana ” a l e zaroven

v ni j sou carky , k t e r e s l o u z i jako odde lovace

32

CVUT Praha 1. DATABAZE

cut −d ’ , ’ −f 1,5− BOD STAV.TXT| s o r t | grep ’ ” ’ | cut −d ’ ” ’ −f 1−2 | sed ’ s /$/” / ’

| l e s s

Samotne kopırovanı do struktury databaze probıhalo pomocı dotazu jazyka SQL.

Pouzıval jsem prıme kopırovanı do jiz vytvorenych tabulek nebo nakopırovanı do

pomocne tabulky, ze ktere pak bylo mozne data kontrolovane pridavat i do castecne

zaplnenych tabulek. Behem kopırovanı bylo pouzito mnoho ruznych SQL dotazu.

Tady je ukazka prımeho kopırovanı, kontrolovaneho kopırovanı a pripojenı noveho

systemu obcı, okresu a kraju pomocı nazvu.

−−nakopirovani dat do r e l a c e body vyska

COPY body vyska ( bod id , vyska , vyska kod )

FROM ’ /home/ share s / a l l u s e r s /smazat/body vyska . csv ’

WITH CSV;

−−nakopirovani t i z e z pomocne r e l a c e z ka ta l ogu t ihovych bodu do p r i b l i z n e t i z e

r e l a c e b o d y t i z e

UPDATE body t i z e U

SET p r i b l i z n a = t i z e konecna

FROM (

SELECT KAT. t i z e AS t i z e konecna , T. bod id AS id

FROM body t i z e T

LEFT JOIN pom kat body KAT

ON T. bod id = KAT. c i s l o b od

LEFT JOIN body zak ladni ZAKL

ON T. bod id = ZAKL. bod id

WHERE ( t i z e 1995 , t i z e 1968 , t i z e 1964 , t i z e 1 9 5 7 ) IS NULL

) V

WHERE V. id = U. bod id ;

−−p r i p o j en i noveho c i s l o v a n i obc i

UPDATE body zak ladni AS zaklad

SET obec2009 id = nove id

FROM

(SELECT Z . bod id AS c i s l o bodu , F . f i d , F . nid AS nove id

FROM body zak ladni Z

LEFT JOIN

(SELECT DISTINCT S . id AS f i d , N. obec id AS nid , S . obec , N. obec nazev , S . okres ,

N. okres nazev

FROM

(SELECT OB. obec id AS id , OB. obec nazev AS obec , OK. okres nazev AS okres

FROM obce OB

JOIN okresy OK ON SUBSTRING(CAST(OK. ok r e s i d AS varchar (10) ) FROM ’ ˆ .4 ’ )

= SUBSTRING(CAST(OB. obec id AS varchar (10) ) FROM ’ ˆ .4 ’ )

) AS S

LEFT JOIN

(SELECT obec id , obec nazev , ok r e s i d , okres nazev , k r a j i d , k ra j nazev

FROM pom struktura obce

) AS N

ON S . obec = UPPER(N. obec nazev ) AND S . okres = UPPER(N. okres nazev )

) AS F

ON Z . obec id = F. f i d

WHERE s t a t i d = 1 AND Z . obec id IS NOT NULL

) AS konecne

WHERE zaklad . bod id = konecne . c i s l o bodu ;

33

CVUT Praha 1. DATABAZE

1.3.2 Program RegisterImport

Program RegisterImport jsem zacal vyvıjet v jazyce Java spolecne s Kristynou Ki-

tzbergerovou a Lindou Krikavovou v ramci predmetu Projekt informatika 2 v letnım

semestru v roce 2010. Vysledkem projektu byl program pro prıkazovou radku systemu

GNU/Linux, kteremu se zadala cesta k textovemu souboru adjustovaneho zapisnıku

a program z tohoto souboru nacetl a ulozil vsechna data do databaze. Tento program

jsem rozsıril o moznost nacıst rovnice oprav a zjistit tak dalsı informace o zpracovanı

zapisnıku v programu Gravimzu. Dalsım rozsırenım bylo nactenı katalogu merickych

skupin pro dodanı cısla tabulky, specifickeho poradoveho cısla nastavenı gravime-

tru v katalogu gravimetru pri stejnem typu a cısle gravimetru. Toto specificke cıslo

bylo potreba jako soucast identifikatoru gravimetru, kterym se meril dany dennı

usek. Poslednım rozsırenım programu bylo nactenı katalogu gravimetru a ulozenı

udaju z katalogu do databaze, do struktury pro gravimetry. Program jsem vytvarel

a rozsiroval v JDK - Java Development Kit verze 1.6.0 14.

Pouzitı programu

Program RegisterImport.jar je zabaleny zkompilovany spustitelny soubor. Pro

jeho spustenı je potreba nainstalovat Java SE Runtime Environment3. Program se

spoustı z prıkazoveho radku nasledujıcım prıkazem

java − j a r Reg i s ter Import . j a r

Za tımto prıkazem nasledujı parametry:

-r souborZapisniku kde souborZapisniku znacı cestu k souboru s adjustovanym

zapisnıkem. Pokud nenı zadana, program nezacne nic nacıtat.

-e souborRovnicOprav kde souborRovnicOprav znacı cestu k souboru s rovni-

cemi oprav. Pokud nenı zadana a je zadana cesta k adjustovanemu zapisnıku,

nebudou se zjist’ovat data o zpracovanı programem Gravimzu. Adjustovany

zapisnık se ulozı do databaze bez udaju o stupni chodu, vynechanych bodech

ci casu skoku.

-gp katalogMerickychSkupin kde katalogMerickychSkupin znacı cestu k sou-

boru s katalogem merickych skupin. Pokud nenı cesta zadana a je zadana cesta

k souboru adjustovaneho zapisnıku, nactou se data adjustovaneho zapisnıku

bez nastaveneho identifikacnıho cısla gravimetru.

-gm katalogGravimetru kde katalogGravimetru znacı cestu k souboru s kata-

logem gravimetru. Tento parametr je nezavisly na predchozıch parametrech.

Slouzı pro jednorazove nactenı katalogu gravimetru do databaze.

3Pro jednorazove nakopırovanı do databaze byla pouzita verze build 1.6.0 14-b08

34

CVUT Praha 1. DATABAZE

Pro hromadne nakopırovanı byl pouzit skript v interpretu Bash (prıloha C.1).

Trıdy programu RegisterImport

V jazyce Java bylo vytvoreno 16 trıd a jedno rozhranı, ktere majı nıze zobrazenou

strukturu.

Obrazek 1.1: Struktura programu Registerimport

Trıda main

Trıda Main obsahuje nasledujıcı metody:

void main (String[] args) nejdrıve spustı program, potom zkontoluje argu-

menty zadane na prıkazove radce a podle jejich popisu priradı prıslusne cesty

ke zpracovavanym souborum. Dale zkontroluje, jestli jsou cesty k souborum

platne a jestli jsou soubory, na ktere ukazujı, urcene ke ctenı.

Pokud je zadana cesta k souboru adjustovanych zapisnıku, vytvorı se z tohoto

souboru novy objekt Register a nastavı se jeho buffer, ze ktereho se urcı typ

zapisnıku pomocı metody getRegisterType(). Dale se podle prıslusneho typu

vytvorı dany objekt trıdy Registernazev, kde nazev je nazev gravimetru, pro

ktery je dany typ zapisnıku urcen. Metoda extractSectionID zıska z cesty

k souboru zapisnıku identifikacnı cıslo dennıho useku sectionID, ktere vlozı

do atributu sectionID objektu DaySection daneho objektu zapisnıku trıdy

35

CVUT Praha 1. DATABAZE

Registernazev. Objekt trıdy Registernazev zavola metody extractData().

Pokud existujı cesty k souborum s rovnicemi oprav a katalogem merickych

skupin, vytvorı se nove objekty Equations a Groups. Metody techto objektu

setAdditionalVariables(measurementList,daySection) nastavı prıslusne

atributy (stupen chodu, vynechane body, cas skoku, vahy merenı a id gra-

vimetru) objektu DaySection a Measurement, ktere jsou atributy objektu

Registernazev. Nakonec se provedou metody printExtractedData(), pri-

ntSpecificData(), ktere vytisknou ukladana data na standartnı vystup. Me-

tody saveData(connection), saveSpecificData(connection) ulozı data do

databaze.

Pokud je zadana cesta k souboru katalogu gravimetru, vytvorı se novy objekt

trıdy Gravimeters a zavolajı se metody extractData(), saveData(connecti-

on), ktere nactou data z katalogu gravimetru a ulozı je do databaze.

Connection openConnection () vytvarı pripojenı do databaze.

void closeConnection () ukoncuje pripojenı do databaze.

BigDecimal extractSectionID (String sectionID) vytvarı typ BigDecimal ze za-

dane cesty k souboru s adjustovanym zapisnıkem.

int getLastMeasurementID () zjist’uje poslednı identifikacnı cıslo zaznamu merenı

v tabulce mereni.

boolean testEquationSourcePath (String registerSourcePath,

String equationSourcePath) kontroluje, zda zadany nazev rovnic oprav od-

povıda nazvu adjustovaneho zapisnıku.

boolean validFile (String sourcePath) pokusı se vytvorit soubor ze zadane cesty

a vyzkousı, jestli je dany soubor citelny.

Trıda DaySection

Objekt trıdy DaySection reprezentuje hlavicku textoveho souboru adjustovaneho

zapisnıku. Zaroven jsou jeho atributy shodne s atributy jednoho zaznamu v ta-

bulce denni useky. Vedle metod nastavujıcıch a zıskavajıcıch promenne obsahuje

jedinou dulezitou metodu void sendToDatabase(Connection connection), ktera

vlozı jednım dotazem v jazyce SQL vsechny atributy do jednoho zaznamu tabulky

denni useky.

36

CVUT Praha 1. DATABAZE

Trıda Measurement

Objekt trıdy Measurement predstavuje jeden zaznam tabulky mereni, jeden radek

adjustovaneho zapisnıku obsahujıcı zaznam merenı. Neobsahuje ale udaje o jemnem

ctenı ani o CPI. Vedle metod nastavujıcıch a zıskavajıcıch promenne obsahuje je-

dinou dulezitou metodu void sendToDatabase(Connection connection), ktera

vlozı jednım dotazem v jazyce SQL vsechny atributy do jednoho zaznamu tabulky

mereni.

Trıda Calibration

Objekt trıdy Calibration predstavuje jeden zaznam tabulky kalibrace, jedno

odectenı kalibracnıho ctenı. Obsahuje take metodu void sendToDatabase(Connec-

tion connection) pro ulozenı zaznamu do databaze.

Trıda Reading

Objekt trıdy Reading predstavuje jeden zaznam tabulky cteni, jedno zapsane jemne

ctenı. Obsahuje metodu void sendToDatabase(Connection connection) pro ulo-

zenı zaznamu do databaze.

Trıda Equations

Objekt trıdy Equations reprezentuje soubor rovnic oprav. Obsahuje jediny atri-

but BufferedReader buffer, do ktereho se nacıta textovy soubor rovnic oprav a

nasledujıcı seznam konstruktoru a metod:

Equations(String sourcePath) je konstruktor, ktery vytvorı novy objekt trıdy

Equations ze zadane cesty k souboru s rovnicemi oprav.

void setAdditionalVariables(ArrayList<Measurement> measurementList,

DaySection daySection) nacte nezbytna data z bufferu rovnic oprav a vy-

tvorı seznam identifikacnıch cısel bodu a casu merenı, ktery potom porovnava

se zadanymi cısly a casy merenı v seznamu measurementList. V objektu

daySection nastavı pocet vynechanych bodu a pokud nastal skok, nastavı cas

skoku. V objektech seznam merenı measurementList nastavı u jednotlivych

merenı spravnou vahu. Pokud byl bod vynechan 0, pokud ne 1.

int findPointIndex (BigDecimal number, int from, int skip, ArrayList

<BigDecimal> list) vyhledava ve vlozenem seznamu identifikacnıch cısel

bodu (ze zapisnıku) list skip + prvnı vyskyt zadaneho identifikacnıho cısla

bodu number od zadane pozice from. Pri neuspesnem hledanı vratı -1, jinak

pozici daneho vyskytu.

37

CVUT Praha 1. DATABAZE

int findReference (int init skip, ArrayList<BigDecimal> equationPoint-

IdList, ArrayList<GregorianCalendar> equationTimesList, ArrayLi-

st<BigDecimal> registerPointIdList,ArrayList<GregorianCalendar>

registerTimes List, ArrayList<Integer> indexReference) vezme prvnı

identifikacnı cıslo bodu ze seznamu zıskaneho z rovnic oprav equationPoint-

IdList a pokusı se k nemu vyhledat od zacatku init skip-ty vyskyt v se-

znamu zıskaneho ze souboru adjustovaneho zapisnıku registerPointIdList

metodou findPointIndex. Pokud ho nenalezne je nutne manualnı zpracovanı.

Pokud ano, prida jeho index do seznamu referencı indexReference a nacte

do lokalnı promenne cas ze seznamu registerTimesList o dane pozici. Po-

tom pro vsechny nasledujıcı identifikacnı cısla bodu v seznamu z rovnic oprav

equationPointIDList provede metoda znvou vyhledavanı findPointIndex v se-

znamu registerPointIdList od pozice nasledujıcı poslednı nalezenou. Pokud

nejaky bod nenalezne, zahlası metoda chybu. Pokud nalezne, spocıta se rozdıl

casu od casu nastaveneho na zacatku do lokalnı promenne a casu na nalezene

pozici v seznamu registerTimesList. Tento rozdıl casu porovna s casem

v equationTimesList a pokud se rovna, prida prıslusny index nalezeneho

cısla bodu do seznamu referencı indexReference. Pokud se rozdıl casu ne-

rovna casu ze seznamu equationTimesList a je tento rozdıl mensı, provede

se hledanı jeste jednou a hleda se dalsı vyskyt cısla bodu.

Trıda Register

Objekt trıdy Register popisuje data textovych souboru adjustovanych zapisnıku,

ktera jsou pro vsechny typy stejna. Jednotlive typy zapisnıku jsou popsany dale ve

trıdach RegisterGS12, RegisterGAG, RegisterSW, RegisterLCRcpi, RegisterLCRg

a RegisterLCRd, ktere jsou rozsırenım trıdy Register. Nejdulezitejsı atributy trıdy

Register jsou:

BufferedReader buffer je buffer, do ktereho se nacte textovy soubor zapisnıku

a dale se z nej po radcıch nacıtajı data.

DaySection daySection je novy objekt trıdy DaySection, reprezentujıcı hlavicku

zapisnıku.

ArrayList<Measurement> je seznam merenı, seznam objektu Measurement.

int registerType je typ nacteneho zapisnıku.

int lastMeasurementID je poslednı identifikacnı cıslo zaznamu v databazi v ta-

bulce mereni.

38

CVUT Praha 1. DATABAZE

Konstruktory a metody objektu trıdy Register jsou v tomto seznamu:

Register(String sourcePath) je konstruktor, ktery vytvorı novy objekt trıdy

Register ze zadane cesty k souboru s adjustovanym zapisnıkem.

Register(BufferedReader buffer, int registerType, int lastMeasureme-

ntID) je konstruktor, ktery vytvorı novy objekt trıdy Register ze zadaneho

existujıcıho bufferu, typu zapisnıku a identifikacnıho cısla poslednıho zaznamu

v tabulce mereni.

void extractRegisterType() nacte prvnı radek z bufferu a zjsitı z neho typ

zapisnıku.

void printExtractedData() posle na standartnı vystup vsechny hodnoty atri-

butu objektu daySection.

void closeBuffer() zavre buffer.

void saveData(Connection connection) pokud je platne pripojenı do databaze

tak zavola metodu sendToDatabase(connection) objektu daySection, ktera

se pokusı ulozit sve atributy do databaze.

RegisterGS12, RegisterGAG, RegisterSW, RegisterLCRcpi, RegisterL-

CRg a RegisterLCRd

Vsechny tyto trıdy rozsirujı trıdu Register. Objekty techto trıd predstavujı nactene

adjustovane zapisnıky prıslusneho typu podle gravimetru a obsahujı nasledujıcı atri-

buty:

ArrayList<Calibration> calibrationList je seznam objektu Calibration, se-

znam vsech zaznamu kalibrace. Je definovan pouze u objektu RegisterGS12

a RegisterLCRcpi.

ArrayList<Reading> readingList je seznam objektu Reading, seznam vsech za-

znamu jemneho ctenı.

Konstruktory a metody trıd jsou nasledujıcı:

Registernazev(Register register) je konstruktor, pomocı ktereho novy objekt

prevezme data z objektu Register. nazev je nazev gravimetru, pro ktery se

dany zapisnık nejcasteji pouzıval.

void extractData() postupne nacıta radky bufferu souboru adjustovaneho za-

pisnıku a zıskava z nej udaje o merenı, ktera zapisuje do prıslusnych atri-

butu objektu DaySection, Measurement, Reading a u nekterych zapisnıku i

Calibration.

39

CVUT Praha 1. DATABAZE

void printSpecificData() vytiskne na standartnı vystup zıskana data o merenı

prıslusejıcı danemu typu zapisnıku.

void saveSpecificData(Connection connection) ulozı do databaze seznam je-

mneho ctenı readingList a u objektu RegisterGS12 a RegisterLCRcpi se-

znam odectenı kalibrace calibrationList.

Gravimeter

Objekt trıdy Gravimeter predstavuje cast souboru katalogu gravimetru popisujıcı

nastavenı gravimetru. Obsahuje asi 80 atributu a nasledujıcı nejdulezitejsı metody:

void sendToDatabase(Connection connection) odesle vsechna data jednım prı-

kazem v jazyce SQL do databaze.

void printData() odesle vsechny hodnoty ulozenych atributu na standartnı vystup.

Gravimeters

Objekt trıdy Gravimeters predstavuje vsechna data ulozena v katalogu gravimetru

a obsahuje nasledujıcı atributy.

BufferedReader buffer je buffer, do ktereho se nacte textovy soubor katalogu

gravimetru.

ArrayList<Gravimeter> gravimeterList je seznam objektu Gravimeter

Zde je konstruktor a metody trıdy Gravimeters:

Gravimeters(String sourcePath) je konstruktor vytvarejıcı objekt s bufferem

vytvorenym ze souboru s katalogem gravimetru, ke kteremu je zadana cesta.

int setProperYear int year je staticka metoda nastavujıcı cely nazev roku.

void extractData() nacıta postupne radky bufferu a zıskava z nej data o gravi-

metrech, ktera uklada do prıslusnych atributu objektu Gravimetr v seznamu

gravimeterList.

void printExtractedData() zavola metodu printData vsech objektu Gravimeter

ulozenych v seznamu gravimeterList.

void saveData(Connection connection) ulozı postupne vsechny objekty ze se-

znamu gravimeterList do databaze pomocı jejich metod sendToDatabase

(connection), odesle vsechna nactena data z katalogu gravimetru do databaze

do tabulky gravimetry.

40

CVUT Praha 1. DATABAZE

Groups

Objekt trıdy Groups predstavuje nacteny zaznam katalogu merickych skupin. Je-

dinym atributem objektu je BufferedReader buffer. Objekt teto trıdy obsahuje

nasledujıcı nejdulezitejsı konstruktor a metodu:

Groups(String sourcePath) je konstruktor vytvarejıcı objekt trıdy Groups s buf-

ferem vytvorenym ze souboru katalogu merickych skupin, ke kteremu je zadana

cesta.

setAdditionalVariables(DaySection daySection) zıska z objektu daySection

z atributu sectionID rok merenı, cıslo skupiny a poradove cıslo gravimetru

v ramci skupiny. Pomocı techto dat dohleda v bufferu prıslusne poradove

cıslo gravimetru (pri stejnem typu a cısle gravimetru) v katalogu gravimetru

a ulozı do atributu gravimeterID objektu daySection identifikacnı cıslo gra-

vimetru skladajıcı se z cısla 1, typu gravimetru, cısla gravimetru a zıskaneho

poradoveho cısla gravimetru z katalogu gravimetru.4

4Kdo se prihlası, ze se procetl az sem, toho zvu na pivo. Autor

41

CVUT Praha 2. SPRAVA DATABAZE

2 Sprava databaze

Pro spravu ulozenych bodu a dennıch useku merenı bylo naprogramovano PHP

webove rozhranı. Jak toto rozhranı pouzıt a jake soubory PHP pouzıva, o tom

se doctete v kapitole 2.1. O moznostech upravovat databazi pomocı jazyka SQL a

prıkazu psql pojednava kapitola 2.2.

2.1 PHP webove rozhranı

2.1.1 Obsluha rozhranı

Webove rozhranı je umısteno na adrese <http://database.nesvadba.eu/modify/>.

Pred samotnym zobrazenım je nutne zadat prihlasovacı jmeno a heslo. Odhlasenı

z celeho rozhranı probehne bud’ po dvaceti minutach necinnosti nebo po zavrenı

celeho prohlızece. Po prihlasenı se zobrazı na obrazovce nadpis, vlevo nabıdka dalsıch

odkazu a vpravo vyhledavanı bodu a dennıch useku (prıloha D.1). Cele rozhranı

funguje tak, ze se nejdrıve vyhleda bod nebo dennı usek a potom se k tomuto bodu

nebo useku pomocı odkazu v nabıdce v leve casti obrazovky zobrazı pozadovane

informace v prave casti obrazovky.

Tıhove body se dajı vyhledat podle kompletnıho identifikacnıho cısla nebo podle

jeho cele casti, napr. 2016.70 nebo 2016. Pokud je zadana cela cast, jsou k nı do-

plneny nuly. Dale se dajı tıhove body vyhledat pomocı casti nebo celeho nazvu bodu.

Naprıklad rum nalezne body s nazvem Brumov a Ces Krumlov (Obrazek 2.1). Dennı

useky se dajı vyhledavat pomocı roku merenı, cele casti nebo kompletnıho identi-

fikacnıho cısla dennıho useku merenı. Naprıklad 2010 nalezne vsechny dennı useky

zmerene v tomto roce, 20100102 nalezne vsechny dennı useky zmerene v roce 2010,

skupinou 1 a gravimetrem cıslo 2. Kompletnı zadanı 20100102.001 nalezne dennı

usek zmereny v roce 2010, skupinou 1, gravimetrem cıslo 2, ktery ma poradove

cıslo 1.

42

CVUT Praha 2. SPRAVA DATABAZE

Obrazek 2.1: Vyhledavanı podle casti nazvu

Nabıdka odkazu je rozdelena do dvou castı. Prvnı cast Body obsahuje nasledujıcı

odkazy:

Zakladnı udaje zobrazı identifikacnı cıslo bodu, pole s nazvem bodu, pole s puvo-

dnım cıslem bodu, roletove menu s urcenım druhu bodu, roletove menu vyberu

statu, roletove menu s vyberem mapoveho listu mapy 1:100 000 se zobraznenım

nomenklatury, roletove menu mapoveho listu S-52, roletove menu s vıce mo-

znostmi vyberu urcujıcı zarazenı bodu do polygonu, roletove menu s urcenım

nazvu obce, okresu a kraje, roletova menu se zarazenım tıhoveho bodu do sıte

1957, 1964 a 1995 a roletove menu zarazenı bodu k prıslusne zakladne (prıloha

D.2).

Stav zobrazı pole s nazvem osoby, ktera bod stabilizovala. Dale se zobrazı pole

s rokem stabilizace, pole s rokem zrusenı, pole s datem poslednı navstevy, tex-

tove pole s popisem stabilizace bodu, roletova menu s urcenım celkoveho stavu

bodu, s klasifikacı vyhledatelnosti bodu, popisu prıjezdu k bodu, mıstopisu

bodu, prıjezdu k bodu, umıstenı bodu, kvality stabilizace a roletove menu

s klasifikacı ochraneho zarızenı. Dale jsou zde zaskrtavacı polıcka pro novou

stabilizaci, tabulku a ochranou tyc a nakonec pole s poznamkou (prılohy D.3

a D.4)

Udaje zobrazı pole pro zadavanı stupnu, minut a vterin souradnic v systemu

ETRS-89, pole pro zadanı strednı chyby urcenych souradnic, pocet nadby-

tecnych merenı a chyby transformace souradnic. Dale se zobrazuje roletove

menu s popisem souradnic, souradnice v systemu S-52, pole pro zadanı vysky

bodu, roletove menu urcujıcı druh vysky, pole s vertikalnım gradientem, role-

tove menu s typem vertikalnıho gradientu, pole s horizontalnım gradientem,

pole s azimutem horizontalnıho gradientu, pole s topografickou korekcı a pole

s vlivem stavby.

43

CVUT Praha 2. SPRAVA DATABAZE

Tıze zobrazı pole s vypoctenou tızı v systemech 1957, 1964, 1968 a 1995. U tıze

systemu 1995 zobrazı jejı strednı chybu (Obrazek 2.2).

Obrazek 2.2: Tıze

Mıstopis zobrazı vygenerovany mıstopis bodu s fotografiı, nacrtem a umıstenım

bodu v mapach Google (prıloha D.5).

Vlozit novy nabıdne zadanı noveho cısla bodu. Do vsech tabulek body * je vlozen

novy zaznam (Obrazek 2.3).

Obrazek 2.3: Vlozit novy bod

Druha cast nabıdky odkazu s nadpisem Dennı useky obsahuje nasledujıcı od-

kazy:

Zobrazit udaje pokud je vyhledan dennı usek, zobrazı vsechna data zapsana v ad-

justovanem zapisnıku daneho typu. Zobrazı udaje z hlavicky: identifikacnı cıslo

dennıho useku, pole s nazvem dennıho useku, roletova menu s nastavenım iden-

tifikacnıho cısla, typu a cısla gravimetru, pole s teplotou gravimetru, datem

merenı, casovym posunem a jmenem merice, roletove menu s kodem a nazvem

dopravnıho prostredku a pole s popisem dopravnıho prostredku. Nasledujı

udaje o kalibraci, pokud je dany typ zapisnıku obsahuje, a dale udaje o merenı

(prıloha D.7).

Vlozit novy zobrazı nastavitelne udaje pred vytvorenım vlastnıho zapisnıku: Iden-

tifikacnı cıslo dennıho useku, roletove menu s vyberem identifikacnıho cısla

44

CVUT Praha 2. SPRAVA DATABAZE

gravimetru, zaskrtavacı polıcko odectenı CPI, pocet radku kalibrace a pocet

odectenı kalibrace, pocet radku merenı a pocet odectenı merenı. Po vyplnenı

a kliknutı na tlacıtko Vytvorit zapisnık se vygeneruje dany zapisnık pro

vyplnenı.

2.1.2 Soubory PHP skriptu

Cele rozhranı se sklada z nasledujıcıch souboru:

modify/index.php se automaticky spustı pokud se zada do internetoveho prohlı-

zece adresa <http://database.nesvadba.eu/modify/>. Nejdrıve otestuje, jestli

je nekdo prihlasen. Na zacatku nikdo prihlasen nenı a tak presmeruje zobra-

zenı na skript auth.php, ktery zprostredkuje prihlasenı a presmeruje zobra-

zenı zpet na index.php. Po prihlasenı rozdelı skript zobrazenı do trech castı.

V prvnı casti se odkazuje na soubor header.php, v druhe casti se vola funkce

getMain() a ve tretı casti se odkazuje na soubor menu.php. Funkce getMain(),

ktera je jako vetsina funkcı ulozena v souboru functions.php, nacte inromace

o nazvu zobrazovaneho souboru z promenne $ REQUEST[‘‘show’’] zıskane

metodou GET z URL adresy a pokusı se nejdrıve zobrazit html soubor a

nasledne php soubor s tımto nazvem. Naprıklad adresa .../modify/index.

php?show=pointCondition odesle do promenne nazev zobrazovaneho sou-

boru pointCondition. Funkce getMain() pak bude nejdrıve hledat soubor

pointCondition.html a nasledne pointCondition.php, ktery opravdu na-

lezne a zobrazı ve tretı casti.

modify/header.php obsahuje pouze to, co se ma zobrazit v casti nadpisu.

modify/menu.php obsahuje dva seznamy odkazu. Prvnı seznam obsahuje odkazy,

ktere metodou GET odkazujı na vsechny PHP soubory zobrazujıcı informace

o tıhovem bode (pointBase.php, pointCondition.php, pointData.php,

pointGravity.php a pointPlaceDescription.php) a odkaz na soubor pro

zadanı noveho zaznamu bodu pointInsert.php. Druhy seznam obsahuje od-

kaz na PHP soubor sectionShow.php zobrazujıcı data ulozena ve vyhledanem

dennım useku a odkaz na PHP soubor sectionInsert.php pro vytvorenı

noveho zapisnıku.

modify/auth.php zobrazı formular pro zadanı prihlasovacıch udaju a po jejich

odeslanı zavola funkci getUserID($username, $password), ktera odesle uzi-

vatelske jmeno a otisk md5 do databaze. Pokud se z databaze vratı zaznam, na-

stavı se id zaznamu do promenne $ SESSION[‘‘id’’]. Existence teto promenne

45

CVUT Praha 2. SPRAVA DATABAZE

pak dale zarucuje prıstup na vsechny dalsı stranky. Pokud prihlasenı probehlo

uspesne, odkaze se tento skript na index.php

modify/connections.php obsahuje konstanty nutne k pripojenı do databaze.

modify/functions.php obsahuje vetsinu funkcı pouzitych v ruznych PHP soubo-

rech. Vedle funkce getMain() jsou zde nasledujıcı funkce:

getDateCzech($date) prevadı datum z iso formatu do ceskeho.

getDateISO($date) prevadı datum z ceskeho formatu do iso formatu.

checkDateCzech($date) kontroluje datum v ceskem formatu.

getDegMinSec($coordinate, $prec) prepocıtava desetinne stupne na cele

stupne, minuty a vteriny.

getDegrees($deg, $min, $sec) prevede stupne, minuty a vteriny zpet na

desetinne stupne.

getPointName($number, $connection) zıska nazev bodu z databaze k za-

danemu identifikacnımu cıslu bodu.

getFirstPointID($connection) zıska prvnı identifikacnı cıslo tıhoveho bodu

ze serazeneho seznamu z databaze.

getLastPointID($connection) zıska poslednı identifikacnı cıslo tıhoveho

bodu ze serazeneho seznamu z databaze.

getNextPointID($pointNumber, $connection) zıska nasledujıcı identifika-

cnı cıslo bodu z databaze.

getPreviousPointID($pointNumber, $connection) zıska predchozı iden-

tifikacnı cıslo bodu z databaze.

getFirstSectionID($connection) zıska prvnı identifikacnı cıslo dennıho

useku ze serazeneho seznamu z databaze.

getLastSectionID($connection) zıska poslednı identifikacnı cıslo dennıho

useku ze serazeneho seznamu z databaze.

getNextSectionID($sectionNumber, $connection) zıska nasledujıcı iden-

tifikacnı cıslo dennıho useku z databaze.

getPreviousSectionID($sectionNumber, $connection) zıska predchozı i-

dentifikacnı cıslo dennıho useku z databaze.

getPointNumber() nastavı id bodu z URL adresy do promenne

$ SESSION[‘‘pointID’’].

getSectionNumber() nastavı id dennıho useku z URL adresy do promenne

$ SESSION[‘‘sectionID’’].

46

CVUT Praha 2. SPRAVA DATABAZE

addZeros($number) prida za cele ctyrciferne cıslo .00.

createRollMenu($items, $name, $is multiple, $variable) vytvorı ro-

letove menu pro zadane pole polozek $items, zadany nazev menu $name,

zadany parametr $is multiple urcujıcı menu s vıce moznostmi a para-

metr $variable definujıcı prednastavnou polozku menu.

getSelection($key, $names, $table, $connection) vracı pole pro role-

tove menu ze zadaneho nazvu sloupce s klıci $key, nazvu dalsıch sloupcu

tabulky $names, nazvu tabulky $table a pripojenı k databazi

$connection.

getSelectionQuery($key, $name, $query, $connection) vracı take pole

pro roletove menu. Mısto nazvu tabulky je treba zadat cely dotaz do

databaze $query.

getRows($query, $connection) odesle databazovy dotaz $query a vratı

retezec, ve kterem jsou jednotlive radky oddelene oddelovacem |.

getInputRow ($rowID, $cssName, $arrayInput) vytvarı jeden radek html

tabulky s jednotlivymi vstupnımi poli v jejıch bunkach, kde $rowID je

nazev pro dany radek (cast nazvu formulare pro identifikaci pri ukladanı),

$cssName je nazev trıdy kaskadoveho stylu pro tento radek a $arrayInput

je vıcerozmerne pole, ktere obsahuje pro kazdou bunku, kazdy formular

parametry: type, name, value, size, maxlength.

getReadingCalCount($sectionID, $connection) zjistı maximalnı pocet cte-

nı pro kalibraci pro dennı usek.

getReadingMesCount($name, $sectionID, $connection) zıska maximalnı

pocet ctenı zadaneho nazvu sloupce $name pri merenı v danem useku

$sectionID.

getRoughMesCount($sectionID, $connection) zjistı jestli zadany dennı

usek mel merene hrube ctenı.

getMaxLength($name, $table, $condition, $connection) zıska maximal-

nı pocet znaku dane veliciny z dane tabulky, kde $name je nazev sloupce,

$table je nazev tabulky nebo vıce spojenych tabulek, $condition je

podmınka jako pokracovanı SQL dotazu od WHERE.

modify/notfound.php zobrazı informace, ktere se majı zobrazit, kdyz nenı mozne

nalezt pozadovanou stranku. Tento soubor pouzıva funkce getMain().

modify/pointBase.php zobrazı zakladnı udaje o tıhovem bodu. Na zacatku nacıta

soubor selectPoint.php, dal se nachazı kontroly dat, ktera byla jiz odeslana

47

CVUT Praha 2. SPRAVA DATABAZE

a je nutne je pred ulozenım zkontrolovat. Kontroly dat vyuzıvajı skript

validity.php. Pokud uz byla data z formulare odeslana a zkontrolovana, jsou

ulozena do databaze pomocı prıkazu v SQL. Dale jsou v souboru prıkazy SQL

pro zıskanı prıslusnych udaju o tıhovem bode a na zaver samotny formular

s textovymi poli a roletovymi nabıdkami.

modify/pointCondition.php zobrazı udaje o stavu tıhoveho bodu. Ma podobnou

strukturu jako soubor pointBase.php.

modify/pointData.php zobrazı dalsı udaje jako souradnice, vysku a gradient

tıhoveho bodu. Ma podobnou strukturu jako soubor pointBase.php.

modify/pointGravity.php zobrazı vypoctene tıze na danem bode v ruznych sys-

temech. Ma podobnou strukturu jako soubor pointBase.php

pointPlaceDescription.php vytvarı mıstopis bodu na samostatne strance. Mısto-

pis obsahuje krome popisnych informacı take fotografii, nacrt bodu a zobra-

zenı bodu na mapach Google. Nejdrıve se jednım dotazem do databaze zıskajı

vsechny potrebne udaje, ktere se dale zobrazı v jednotlivych castech (div).

Umıstenı castı, jejich velikost a ohranicenı je definovano v souboru

stylePlace.css. Pro zobrazenı tıhoveho bodu na mape se nejdrıve vytvorı

novy objekt trıdy GoogleMapApi (ze souboru GoogleMap.php), nastavı se po-

mocı clenskych metod standartnı zoom, typ mapy, velikost ovladacıch tlacıtek,

sırka a delka mapoveho vyrezu a na zaver se prida znacka se souradnicemi.

$map = new GoogleMapAPI ( ‘ ‘map ’ ’ ) ;

$map−> min i f y j s = i s set ($ REQUEST[ ‘ ‘min ’ ’ ] ) ?FALSE:TRUE;

$map−>setZoomLevel ( ‘ ‘ 14 ’ ’ ) ;

$map−>setMapType ( ‘ ‘ roadmap ’ ’ ) ;

$map−>s e tCon t r o l S i z e ( ‘ ‘ smal l ’ ’ ) ;

$map−>setWidth ( ‘ ‘ 397 ’ ’ ) ;

$map−>s e tHe ight ( ‘ ‘ 398 ’ ’ ) ;

$map−>addMarkerByCoords ( $lon89 , $ lat89 , $ t i t l e ) ;

Potom uz stacı v useku html kodu v hlavicce zadat metody pro tisk skriptu

pro hlavicku

$map−>printHeaderJS ( ) ;

$map−>printMapJS ( ) ;

a nakonec v tele html kodu zadat metodu pro zobrazenı mapy.

$map−>printOnLoad ( ) ;

$map−>printMap ( ) ;

modify/pointInsert.php zobrazı formular pro zadanı noveho identifikacnıho cısla

tıhoveho bodu. Pokud uz bylo cıslo zadano zkontroluje se jeho spravnost, jestli

48

CVUT Praha 2. SPRAVA DATABAZE

uz nenı v databazi a nakonec se s tımto identifikacnım cıslem bodu vlozı do

vsech tabulek body * prazdny zaznam.

modify/sectionInsert.php zobrazı formular pro vygenerovanı noveho zapisnıku a

provede kontrolu zadanych dat. Dal zobrazı vygenerovany zapisnık, zkontroluje

vyplnena namerena data a odesle je do databaze.

modify/sectionShow.php zobrazı vygenerovany zapisnık podle vyhledaneho iden-

tifikacnıho cısla dennıho useku. Po odeslanı formulare zapisnıku data zkontro-

luje a ulozı do databaze. Ma podobnou strukturu jako pointBase.php. Data

ve formularıch jsou odesılana ve vıcerozmernych polıch.

modify/selectPoint.php zobrazı formular pro vyhledavanı tıhoveho bodu a nacte

soubor shiftPoint.php. Po odeslanı vyhledavaneho identifikacnıho cısla tıho-

veho bodu nebo nazvu tıhoveho bodu nebo jeho casti, odeslana data zkontro-

luje a pokud jsou spravne, provede vyhledavacı dotaz do databaze.

modify/selectSection.php zobrazı formular pro vyhledavanı dennıho useku a

nacte soubor shiftSection.php. Po odeslanı vyhledavaneho identifikacnıho

cısla nebo jeho casti nebo nazvu dennıho useku nebo jeho casti, odeslana data

zkontroluje a pokud jsou spravne, provede vyhledavacı dotaz do databaze.

modify/shiftPoint.php zobrazı tlacıtka pro pohyb o jeden tıhovy bod vpred nebo

vzad.

modify/shiftSection.php zobrazı tlacıtka pro pohyb o jeden dennı usek vpred

nebo vzad.

modify/validity.php obsahuje funkci pro testovanı spravnosti zadavanych udaju

do formularu pomocı regularnıch vyrazu.

modify/style.css definuje trıdy kaskadovych stylu. Pouzıva ho soubor index.php

stylePlace.css definuje trıdy kaskadovych stylu pro vygenerovany mıstopis soubo-

rem pointPlaceDescription.

googleMap/GoogleMap.php obsahuje trıdu GoogleMapAPI, ktera umoznuje snad-

ne vytvorenı jednoducheho zobrazenı souradnic na mapach Google.

googleMap/JSMin.php obsahuje trıdu JSMin, ktera umoznuje minimalizaci kodu

v JavaScriptu.

49

CVUT Praha 2. SPRAVA DATABAZE

2.2 SQL upravy s psql

Pro spravu ulozenych dat dennıch useku nebo tıhovych bodu lze pouzıt vytvorene

webove rozhranı. Pro spravu ulozenych dat gravimetru zadne rozhranı vytvorene

nebylo, a proto je potreba pouzıt jineho rozhranı. Nejuniverzalnejsı, nejrychlejsı ale

take asi nejslozitejsı je sprava pomocı dotazu jazyka SQL. Nenı mozne abych zde

obsahl vsechny pouzite SQL dotazy pri tvorbe a sprave databaze, ale popısi zde

alespon zakladnı prıkazy pri sprave ulozenych dat gravimetru.

psql

Jednım z mnoha nastroju, ktere odesılajı SQL dotazy do databaze je interaktivnı

terminal psql fungujıcı prımo na serveru, kde je databaze v provozu. Tento terminal

se da spustit jen pro serii prıkazu nactenych ze souboru nebo v interaktivnım modu.

Zde je ukazka pouzitı pro serii prıkazu ulozenych v souboru gravimetry vyber.sql:

psq l −d te s tovac idb −U honza −f grav imetry vyber . s q l

Parametr -d testovacidb zadava nazev databaze, ke ktere se ma psql pripojit. Pa-

rametr -U honza zadava jmeno uzivatele databaze1. Parametr -f gravimetry vyber.sql

zadava nazev vstupnıho souboru s prıkazy. Pokud se prıkaz spustı bez vstupnıho

souboru s SQL dotazy, objevı se prıkazovy radek interaktivnıho terminalu:

psq l −d te s tovac idb

Welcome to psq l 8 . 3 . 1 2 , the PostgreSQL i n t e r a c t i v e te rmina l .

Type : \ copyr ight f o r d i s t r i b u t i o n terms

\h f o r he lp with SQL commands

\? f o r he lp with psq l commands

\g or terminate with semico lon to execute query

\q to qu i t

Zde jsou nektere uzitecne prıkazy psql pro zobrazenı seznamu databazı, schemat,

tabulek a nazvu sloupcu tabulek.

\l vypıse seznam vsech databazı

\dn vypıse seznam vsech schemat.

\d vypıse seznam vsech tabulek, ke kterym je nastavena prohledavacı cesta. Na-

stavenı prohledavacı cesty se da zmenit SQL prıkazem SET search path TO

gravimetry, useky, public na vsechna zatım vytvorena schemata.

\d useky.denni useky vypıse nazvy sloupcu v tabulce useky.denni useky

\? zobrazı napovedu k prıkazum v psql

1Nemusı byt nutne zadavano pokud je databazovy uzivatel stejne pojmenovan jako uzivatelserveru.

50

CVUT Praha 2. SPRAVA DATABAZE

\h select zobrazı napovedu k dotazu SELECT v sql

Nejvıce informacı o pouzitı psql jsou k nalezenı na manualovych strankach. Stacı na

serveru zadat man psql v prıkazovem interpretu Bash.

Dotazy SELECT

Nasledujıcı SQL dotazy SELECT pouze vybırajı a zobrazujı pozadovana data z da-

tabaze. Vsechny dotazy jsou oddelene strednıkem.

SELECT ∗ FROM gravimetry . gravimetry

WHERE g rav imet r id = 12500125001;

SELECT typ , c i s l o , nazev FROM gravimetry . gravimetry

WHERE g rav imet r id = 12500125001;

SELECT grav imetr id , nazev , u z i va t e l , k on e c p l a tno s t i

FROM gravimetry . gravimetry

WHERE u z i v a t e l LIKE ’%ZU%’ ;

−−WHERE kone c p l a t no s t i > date ’2009−01−01 ’;

−−WHERE typ IN (2 ,22) AND u z i v a t e l LIKE ’%PRAHA%’;

Prvnı dotaz zobrazı vsechny atributy zaznamu tabulky gravimetry ve schematu

gravimetry, u ktereho je primarnı klıc gravimetr id roven 12500125001. Druhy

dotaz zobrazı typ, cıslo a nazev gravimetru s identifikacnım cıslem 12500125001.

Tretı dotaz zobrazı identifikacnı cıslo gravimetru, jeho nazev, jmeno vlastnıka a da-

tum konce platnosti zaznamu pro vsechny zaznamy, ktere obsahujı v nazvu vlastnıka

ZU. Pokud by se pred radkem zacınajıcım WHERE pridala dvojice znaku “–”, bude

tento radek ignorovan. Dvojice znaku “–” znacı komentar v SQL. Pokud by se potom

postupne zanechaly bez komentare druhy a tretı radek zacınajıcı WHERE, provedl

by dotaz vyber zaznamu nasledujıcım zpusobem.

WHERE kone c p l a tno s t i > date ’2009−01−01 ’;

Zobrazı vsechny zaznamy, ktere jeste platı po 1.1.2009.

WHERE typ IN (2 ,22 ) AND uz i v a t e l LIKE ’%PRAHA% ’;

Zobrazı vsechny zaznamy, ktere majı typ gravimetru rovny 2 nebo 22 a nazev

vlastnıka u nich obsahuje slovo PRAHA. Vysledek druheho a tretıho dotazu je

nasledujıcı:

typ | c i s l o | nazev

−−−−−+−−−−−−−+−−−−−−−−−−25 | 125 | SCINTREX

(1 row )

g rav imet r id | nazev | u z i v a t e l | kone c p l a tno s t i

−−−−−−−−−−−−−−+−−−−−−−−−−−−+−−−−−−−−−−+−−−−−−−−−−−−−−−−−12400253004 | SODIN | ZU PRAHA | 1999−12−31

12500125001 | SCINTREX | ZU PRAHA | 2010−06−17

10600176001 | LA COSTE G | ZU PRAHA | 2001−07−12

10600176003 | LA COSTE G | ZU PRAHA | 2001−07−12

51

CVUT Praha 2. SPRAVA DATABAZE

10600176002 | LA COSTE G | ZU PRAHA | 2001−07−12

10601068001 | LA COSTE G | ZU PRAHA | 2001−07−12

(6 rows )

Prıkazy INSERT

Vsechny prıkazy INSERT vkladajı jeden nebo vıce radku do tabulky databaze. Zde

jsou ukazky dvou prıkazu.

INSERT INTO gravimetry . gravimetry ( g rav imet r id )

VALUES (12500125002) ;

INSERT INTO gravimetry . gravimetry ( grav imetr id , typ , c i s l o , t a bu l k a c i s l o , nazev ,

u z i v a t e l )

SELECT 12500125003 , typ , c i s l o , 3 , nazev , u z i v a t e l

FROM gravimetry . gravimetry

WHERE g rav imet r id = 12500125001;

Prvnı prıkaz vlozı do tabulky gravimetry jeden zaznam s identifikacnım cıslem

12500125002. Druhy prıkaz vlozı do te same tabulky zaznam, ktery ma id gravimetru

rovne 12500125003 a atribut tabulka cislo roven 3. Atributy typ, cislo, nazev,

uzivatel se zkopırujı ze zaznamu, ktere ma id gravimetru rovno 12500125001.

Vsechny ostatnı atributy jsou nastaveny na hodnoty DEFAULT. Zde je vystup z da-

tabaze:

INSERT 0 1

INSERT 0 1

Prıkazy UPDATE

Vsechny prıkazy UPDATE aktualizujı udaje jiz vlozenych zaznamu. Zde je ukazka

dvou prıkazu.

UPDATE ONLY gravimetry . gravimetry

SET datum ulozeni = ’ 2010−12−09 ’

WHERE g rav imet r id = 12500125002;

UPDATE ONLY gravimetry . gravimetry

SET

zpusob urcen i = NOVE. zpusob urcen i ,

v zo r zap i sn i ku = NOVE. vzor zap i sn iku ,

kod vypoctu = NOVE. kod vypoctu

FROM

(

SELECT zpusob urcen i , vzo r zap i sn iku , kod vypoctu

FROM gravimetry . gravimetry

WHERE g rav imet r id = 12500125001

) NOVE

WHERE g rav imet r id = 12500125002;

Prvnı prıkaz nastavı atribut datum ulozeni zaznamu s identifikacnım cıslem gra-

vimetru 12500125002 na 9.12.2010, druhy prıkaz nastavı atributy zpusob urceni,

52

CVUT Praha 2. SPRAVA DATABAZE

vzor zapisniku a kod vypoctu na hodnoty stejne jako ma zaznam s id gravimetru

12500125001. Zde je vystup z databaze:

UPDATE 1

UPDATE 1

Prıkaz DELETE

Prıkaz DELETE vymaze jeden nebo vıce radku z tabulky databaze.

DELETE FROMONLY gravimetry . gravimetry

WHERE g rav imet r id IN (12500125002 , 12500125003) ;

Tento prıkaz vymaze zaznamy, jejichz identifikacnı cısla jsou rovna 12500125002

nebo 12500125003. Zde je vystup z databaze:

DELETE 2

Prıkaz ALTER

Prıkazy ALTER upravujı strukturu tabulek, strukturu ulozenych dat. Zde je ukazka

pouzitı pri praci s novym sloupcem tabulky.

ALTER TABLE gravimetry . gravimetry ADDCOLUMN novy s loupec r e a l DEFAULT NULL;

ALTER TABLE gravimetry . gravimetry ALTER COLUMN novy s loupec SET DEFAULT 1 ;

ALTER TABLE ONLY gravimetry . gravimetry ALTER COLUMN novy s loupec TYPE integer ;

ALTER TABLE ONLY gravimetry . gravimetry DROPCOLUMN novy s loupec ;

Prvnı prıkaz prida do tabulky gravimetry ve schematu gravimetry jeden sloupec

s nazvem novy sloupec, datovym typem real a nastavenou standartnı hodnotou

NULL. Druhy prıkaz zmenı hodnotu DEFAULT na 1, tretı prıkaz zmenı datovy typ

sloupce na integer a ctvrty prıkaz tento sloupec odstranı. Zde je vystup z databaze:

ALTER TABLE

ALTER TABLE

ALTER TABLE

ALTER TABLE

Slozitejsı prıkazy, JOIN

Zde je ukazka dvou slozitejsıch prıkazu propojujıcıch vıce tabulek.

SELECT U. datum , U. observator , G. nazev , G. grav imetr id , M. cten i hrube ,

round (CAST(SUM(C. c t en i j emne ) /COUNT(C. c t en i j emne ) AS numeric ) , 2) AS prumer

FROM useky . mereni M

JOIN useky . denni useky U

ON U. usek id = M. usek id

JOIN gravimetry . gravimetry G

ON G. grav imet r id = U. g rav imet r id

JOIN useky . c t e n i C

ON C. meren i id = M. meren i id

JOIN body zak ladni B

ON B. bod id = M. bod id

53

CVUT Praha 2. SPRAVA DATABAZE

WHERE B. bod id = 3402.02

GROUP BY U. datum , U. observator , G. nazev , G. grav imetr id , M. c t en i h rube

ORDER BY U. datum ;

SELECT U. datum , U. usek id , G. grav imetr id , G. nazev

FROM gravimetry . gravimetry G

JOIN useky . denni useky U

ON G. grav imet r id = U. g rav imet r id

WHERE typ IN (1 , 11 )

ORDER BY U. datum DESC

LIMIT 10 ;

Prvnı prıkaz vyhleda vsechna merenı na bode s identifikacnım cıslem 3402.02. Tato

merenı seskupı podle data merenı, jmena merice, nazvu gravimetru, id gravime-

tru a hrubeho ctenı. Vsechny tyto atributy take zobrazı spolecne s vypoctenym

prumernym jemnym ctenım. Druhy prıkaz vyhleda poslednıch 10 dennıch useku

namerenych gravimetry typu 1 nebo 11, gravimetry Gs11 nebo Gs12.

datum | obse rvator | nazev | g rav imet r id | c t en i h rube | prumer

−−−−−−−−−−−−+−−−−−−−−−−−−+−−−−−−−−−−−−+−−−−−−−−−−−−−−+−−−−−−−−−−−−−+−−−−−−−−−1980−05−06 | DIVIS | WORDEN | 12200961013 | 0 | 1646.29

1980−05−06 | TRAKAL | SHARPE | 10200174023 | 763 | 528 .41

1990−07−11 | DIVIS | WORDEN | 12200961014 | 0 | 1830.18

1990−07−11 | TRAKAL | SHARPE | 10200174024 | 788 | 739 .94

2001−07−18 | LEDERER | LA COSTE G | 10601068001 | 4538 | 734 .56

2001−07−18 | TRAKAL | LA COSTE G | 10600176001 | 4471 | 631 .44

(6 rows )

datum | usek id | g rav imet r id | nazev

−−−−−−−−−−−−+−−−−−−−−−−−−−−+−−−−−−−−−−−−−−+−−−−−−−1988−07−21 | 19880704.008 | 10100194002 | GS 12

1988−07−21 | 19880703.008 | 10100181011 | GS 12

1988−07−20 | 19880704.007 | 10100194002 | GS 12

1988−07−20 | 19880703.007 | 10100181011 | GS 12

1988−07−19 | 19880704.006 | 10100194002 | GS 12

1988−07−19 | 19880703.006 | 10100181011 | GS 12

1988−07−18 | 19880703.005 | 10100181011 | GS 12

1988−07−18 | 19880704.005 | 10100194002 | GS 12

1988−07−15 | 19880703.004 | 10100181011 | GS 12

1988−07−15 | 19880704.004 | 10100194002 | GS 12

(10 rows )

54

CVUT Praha 3. VYSTUPY Z DATABAZE

3 Vystupy z databaze

Tato kapitola popisuje ruzne vyuzitı databaze. Nejdulezitejsım ukolem databaze je

poskytovat data o merenı novemu programu pro zpracovanı tıhovych merenı Gra-

vimzung. O vystupech ve formatu XML pro program Gravimzung pojednava ka-

pitola 3.1. Prıpravu dat pro graficke znazornenı v programu Surfer popisuje kapi-

tola 3.2. Kapitola 3.3 pojednava o SQL dotazech, ktere vytvarı souhrne statistiky

namerenych dat. V poslednı kapitole 3.4 se zabyvam zjist’ovanım informacı z da-

tabaze, pomocı kterych se urcujı mısta budoucıch merenı.

3.1 XML vystup pro Gravimzung

Soucasne s obnovenım systemu ukladanı namerenych dat vyvıjı Otakar Nesvadba

novy software pro vyrovnanı tıhovych merenı Gravimzung. Protoze software nacıta

vsechna data z XML formatu, bylo nutne vytvorit system databazovych dotazu SQL

a funkcı PL/pgSQL, ktery by data z databaze prevedl do prıslusne struktury v XML.

Protoze se Gravimzung stale vyvıjı, menı se i system dotazu a funkcı. Databazvove

dotazy pouzivajı jiz preddefinovane nasledujıcıcı PostgreSQL funkce:

xmlelement je funkce pro vytvarenı XML tagu s ruznymi atributy. V nasledujıcı

ukazce jsou nazev a nazev atributu retezce znaku. obsah a hodnota mohou

byt nazvy sloupcu tabulky, za ktere se dosadı prıslusne atributy zaznamu.

Volanı funkce xmlelement lze retezit v obsahu a vytvaret tak vnorene XML

tagy.

SELECT xmlelement (name nazev , xmla t t r i bu t e s ( ’ hodnota ’ as nazev\ a t r i bu tu ) , ’

obsah ’ ) ;

Vytvorı XML tag, ktery ma nasledujıcı podobu:

<nazev nazev at r ibutu = ’ ’ hodnota ’ ’>obsah</nazev>

xmlconcat pouze spojı dve XML promenne k sobe.

SELECT xmlconcat ( ’<ema/> ’ , ’<mele>maso</mele > ’) ;

Vytvorı XML tag, ktery ma nasledujıcı podobu:

<ema/><mele>maso</mele>

xmlagg je funkce, ktera dokaze seskupit do jedne XML promenne (jednoho XML

tagu) atributy vıce zaznamu.

SELECT XMLAGG(XMLELEMENT(name ‘ ‘ mereni ’ ’ , meren i id ) )

FROM useky . mereni

WHERE usek id = 20090102.002

GROUP BY usek id ;

55

CVUT Praha 3. VYSTUPY Z DATABAZE

Vytvorı XML tag, ktery ma nasledujıcı podobu:

<mereni >24542</mereni><mereni >24543</mereni><mereni >24544</mereni><mereni

>24545</mereni><mereni >24546</mereni><mereni >24547</mereni><mereni >24548</

mereni><mereni >24549</mereni><mereni >24550</mereni><mereni >24551</mereni><

mereni >24552</mereni>

Zde je popis souboru obsahujıcıch dotazy a funkce aktualnı k datu 10. 12. 2010.

query point.sql vytvarı XML tagy station pro vsechny body, na kterych se dany

dennı usek meril (prıloha E.1.1).

query section.sql vytvarı XML tag du s vnorenym tagem instrument, ktery ob-

sahuje udaje o pouzitem gravimetru. Do tagu du se doplnujı tagy obs s udaji

o kalibraci a tagy obs s udaji o merenı na tıhovych bodech (prıloha E.1.2).

query calibration.sql vytvarı XML tagy obs s udaji o kalibracnım merenı pro

dany dennı usek (prıloha E.1.3).

query observation.sql vytvarı XML tagy obs s udaji o merenı na tıhovem bode

(prıloha E.1.4).

3.2 Vystupy pro program Surfer

Pro graficke znazornenı bodu a liniı potrebuje program Surfer dva odlisne textove

soubory. Textovy soubor, podle ktereho se zobrazujı body, obsahuje pro kazdy bod

cıslo bodu, zemepisnou sırku, zemepisnou delku a kod bodu. Pro vypsanı jednoho

radku tohoto souboru jsem vytvoril funkci get points(point id) v jazyce PL/-

pgSQL, ktera zadanemu identifikacnımu cıslu bodu vedle souradnic priradı i kod

sit95 kod z tabulky body site. Pokud zaznamy souradnic obsahujı hodnotu NULL,

objevı se mısto nich text not found. Pokud hodnotu NULL obsahuje kod sıte, zob-

razı se kod 99 (prıloha E.2.1). Jednoduchy SQL dotaz volajıcı tuto funkci pro vsechny

body, na kterych se merilo v ramci ctyr zadanych dennıch useku, vypada nasledovne:

SELECT g e t po i n t s (M. bod id )

FROM useky . denni useky U

JOIN useky . mereni M

ON M. usek id = U. us ek id

WHERE U. usek id IN (

20080102.022 ,

20080102.023 ,

20080102.024 ,

20080102.027

)

GROUP BY M. bod id

ORDER BY M. bod id ;

Vysledek dotazu vypada takto:

56

CVUT Praha 3. VYSTUPY Z DATABAZE

2027.01 14.316444 48.812814 4

2029.00 14.28357 48.865113 4

2031.00 14.267799 48.877443 4

2032.00 14.285008 48.874653 4

2033.00 14.295999 48.876382 4

2035.00 14.309223 48.845718 4

2036.00 14.29097 48.851057 4

2037.00 14.274747 48.863892 4

3346.02 15.993524 49.842899 4

3427.01 16.102858 49.763745 4

3428.01 16.265504 49.711642 4

3429.00 16.4707 49.7524 99

3429.01 16.459921 49.757426 3

Textovy soubor zadavany Surferu pro zobrazenı liniı udava celkovy pocet bodu

v linii nasledovany seznamem souradnic techto bodu. Pro vypsanı jedne linie jsem

vytvoril funkci get polygons(usek id) v PL/pgSQL. Tato funkce pro zadane id

dennıho useku nejdrıve spocıta pocet bodu, ktere majı v dennım useku rozdılne

souradnice,1 a potom vytvorı seznam souradnic techto bodu (prıloha E.2.2). Pouzitı

funkce get polygons(usek id) ukazuje nasledujıcı SQL dotaz:

SELECT ge t po lygons (U. u s ek id )

FROM useky . denni useky U

WHERE U. usek id IN (

20070102.034 ,

20070102.035 ,

20070102.036

) ;

Vysledek dotazu vypada takto:

4

17.647609 49.025848

17.7904 49.0338

17.9639 49.0695

18.05573 49.186167

3

14.148765 49.309801

14.468176 49.295237

14.700721 49.366238

4

15.593266 49.394931

15.587219 49.281491

15.7899 49.0418

15.808131 49.051206

Ze souboru obsahujıcı body a linie ve spravnem formatu doplnene o linie statnı

hranice a tıhove body v zahranicı vykreslı program Surfer obrazek (prıloha E.1).

1Pocet ruznych identifikacnıch cısel bodu nelze pouzıt, protoze nektere blızke excentricke bodymajı zadane stejne souradnice.

57

CVUT Praha 3. VYSTUPY Z DATABAZE

3.3 Tvorba statistik

Ulozena data v databazi nabızı mnoho moznostı ke statistickemu zpracovanı. Jednou

z nich je vytvarenı statistik pro dennı useky merenı, ktere byly pouzity k vypoctu

tıhoveho systemu v roce 1995. Hromadne vyrovnanı a s nım spojeny vyber sou-

boru adjustovanych zapisnıku resp. rovnic oprav se drıve provadel nakopırovanım

textovych souboru do prıslusne adresarove struktury. Pro zıskanı seznamu identi-

fikacnıch cısel dennıch useku, ktery se dale pouzıva v SQL dotazech k vymezenı

vyberu, byl napsan kratky Bash skript get index.sh (prıloha E.3.1). Skriptu mo-

hou byt zadany tri ruzne argumenty.

-r adresar Po argumentu -r nasleduje cesta ke korenovemu adresari ve strukture

ulozenı souboru rovnic oprav.

-a adresar Po argumentu -a nasleduje cesta ke korenovemu adresari ve strukture

ulozenı souboru adjustovanych zapisnıku.

-h zobrazı napovedu.

Zde je ukazka spustenı skriptu:

. / g e t index . sh −r c e s t a k ad r e s a r y /Rovopr/ S i t 2 /

Vystupem je seznam identifikacnıch cısel dennıch useku oddelenych carkami:

19720101.001 ,

19720101.002 ,

19720101.003 ,

19720101.004 ,

19720101.005 ,

. . .

20100102.059 ,

Tento seznam poslouzı k omezenı vyberu dennıch useku v nasledujıcıch dotazech.

Nejdrıve bylo treba zjistit pocet dennıch useku, ktere nebyly mereny gravimetrem

Gs12 nebo Gs11 a ktere byly zmereny do roku 1994 vcetne.

SELECT COUNT(∗ )FROM useky . denni useky U

JOIN gravimetry . gravimetry G

ON G. grav imet r id = U. g rav imet r id

WHERE G. typ NOT IN (1 , 11 ) ANDEXTRACT (YEARFROM(U. datum) ) < 1995 AND U. usek id IN

(

19720101.001 ,

. . .

20100102.059

) ;

count

−−−−−−−3703

(1 row )

58

CVUT Praha 3. VYSTUPY Z DATABAZE

Dale byla zjist’ovana cetnost merenı na jednotlivych bodech pro celou etapu (prıloha

E.3.2), pocet zmerenych dennıch useku s urcitym poctem bodu (prıloha E.3.3) a

pocet merenı namerenych urcitym typem gravimetru:

SELECT G. typ , COUNT(G. typ )

FROM gravimetry . gravimetry G

JOIN useky . denni useky U

ON U. g rav imet r id = G. g rav imet r id

WHERE G. typ NOT IN (1 , 11 ) ANDEXTRACT (YEARFROM(U. datum) ) < 1995 AND U. usek id IN

(

19720101.001 ,

. . .

20100102.059

)

GROUP BY G. typ

ORDER BY G. typ ;

typ | count

−−−−−+−−−−−−−2 | 1846

6 | 135

21 | 14

22 | 1599

24 | 56

61 | 53

(6 rows )

Pocet merenı, ktera byla zpracovana s danym stupnem chodu gravimetru, ukazuje

nasledujıcı dotaz odeslany do databaze.

SELECT COALESCE (U. stupen chodu , −1) AS stupen , COUNT(COALESCE(U. stupen chodu , −1)

) AS pocet

FROM gravimetry . gravimetry G

JOIN useky . denni useky U

ON U. g rav imet r id = G. g rav imet r id

WHERE G. typ NOT IN (1 , 11 ) ANDEXTRACT (YEARFROM(U. datum) ) < 1995 AND U. usek id

IN (

19720101.001 ,

. . .

20100102.059

)

GROUP BY stupen

ORDER BY stupen ;

stupen | pocet

−−−−−−−−+−−−−−−−1 | 1560

2 | 896

3 | 1247

(3 rows )

3.4 Prıprava dat pred merenım

Pred merenım nebo kontrolou stavu bodu je dobre vedet, jak dlouho se na bode

nemerilo resp. nekontroloval jeho stav. Zde je ukazka jednoho slozitejsıho SQL

59

CVUT Praha 3. VYSTUPY Z DATABAZE

dotazu, ktery zjist’uje cıslo a nazev bodu, nazev okresu a kraje, datum poslednı

navstevy a datum poslednıho merenı na bodech, ktere jsou na uzemı Ceske repub-

liky, nejsou zniceny a jsou soucastı sıte systemu 1995.

−− vyber bodu , k t e r e by l y napos ledy navs t i veny pred rokem 2000 a zaroven se na nich

napos ledy meri lo pred rokem 2000 , nejsou zruseny , j sou z CR a jsou to body s i t e

95

SELECT BZ. bod id , bod nazev , KR. kra j nazev , OK. okres nazev , N. dat AS navsteva , M.

dat AS mereni

FROM body zak ladni BZ

JOIN

(

SELECT MER. bod id AS bod , MAX(DU. datum) AS dat

FROM useky . mereni MER

JOIN useky . denni useky DU

ON MER. usek id = DU. usek id

GROUP BY MER. bod id

) M

ON M. bod = BZ. bod id

JOIN

(

SELECT N. bod id AS bod , MAX(N. datum) AS dat

FROM navstevy N

GROUP BY N. bod id

) N

ON N. bod = BZ. bod id

JOIN body stav BS

ON BZ. bod id = BS . bod id

JOIN body s i t e BSI

ON BZ. bod id = BSI . bod id

LEFT JOIN s t ruktura obce 2009 STR

ON STR. obec id = BZ. obec2009 id

LEFT JOIN obce 2009 OB

ON OB. obec id = STR. obec id

LEFT JOIN okresy 2009 OK

ON OK. ok r e s i d = STR. ok r e s i d

LEFT JOIN kra j e 2009 KR

ON KR. k r a j i d = STR. k r a j i d

WHERE s t a t i d = 1 AND BS . s tav ce lkovy kod != 5 AND ( ( ( (EXTRACT (YEARFROM (N. dat )

) ) < 2000 ) OR N. dat IS NULL) AND ( ( (EXTRACT (YEARFROM (M. dat ) ) ) < 2000 )

OR M. dat IS NULL) ) AND BSI . s i t 9 5 kod IS NOT NULL

ORDER BY BZ. bod id , KR. kra j nazev , OK. okres nazev ;

Ukazka jednoho radku vysledku dotazu:

1737.00 | Kurim | Jihomoravsky kraj| Brno-venkov | 1999-08-25 | 1997-08-28

60

CVUT Praha ZAVER

Zaver

Hlavnım vysledkem diplomove prace je relacnı databaze gravimetru, tıhovych bodu

a zaznamu merenı provadenych oddelenım gravimetrie ZU od roku 1959. Databaze

v systemu PostgreSQL verze 8.3.12 obsahuje pres 2400 zaznamu tıhovych bodu,

148 zaznamu nastavenı 17 ruznych typu gravimetru, 12728 zaznamu dennıch useku,

147177 zaznamu merenı na tıhovych bodech a 407230 zaznamu odectenı jemneho

ctenı. Strukturu databaze tvorı 49 tabulek, ze kterych 42 obsahuje zaznamy dat

tıhovych bodu a pomocne zaznamy, 6 tabulek data zaznamu tıhovych merenı a 1

tabulka obsahuje nastavenı gravimetru. Struktury ulozenych gravimetru, tıhovych

bodu a zaznamu merenı navzajem propojujı cizı klıce tak, ze je mozne klast dotazy

na data z cele databaze. Pri navrhu struktury databaze jsem se snazil dodrzovat

12 pravidel E. F. Codda [7]. Jen ve vyjimecnych prıpadech vytvorena struktura

databaze tyto pravidla nedodrzuje. Jednım prıpadem je existence integritnıch ome-

zenı prednostne ve webovem rozhranı, druhym jsou chybejıcı primarnı klıce tabulek

s ulozenym jemnym ctenım a zaznamy kalibrace. Integritnı omezenı se dajı dopl-

nit podle weboveho rozhranı. Vynechane primarnı klıce tabulek s jemnym ctenım a

zaznamy kalibracı nejsou podle meho nazoru potreba, protoze pri vyberu, aktuali-

zaci, mazanı nebo vkladanı zaznamu do techto tabulek uzivatel pracuje vzdy s n-ticı

zaznamu prıslusejıcı danemu id merenı resp. id useku a stejnemu casu.

Druhym dulezitym vysledkem diplomove prace je webove rozhranı pro spravu

databaze napsane v PHP, ktere umı vytvorit mıstopis bodu s fotografiı, nacrtem a

zobrazenım bodu na mapach Google. Rozhranı pouzıva 30 souboru skriptu PHP a

poskytuje prıstup temer ke vsem udajum o tıhovych bodech a zaznamech merenı.

Umoznuje data vkladat, zobrazovat a upravovat, neumoznuje zatım zaznamy z bez-

pecnostnıch duvodu smazat. Mazanı zaznamu ze vsech tabulek a spravu udaju o gra-

vimetrech a merenı zaznamenanych zastaralymi gravimetry GAG, Gs12 a Gs11 je

treba provadet pomocı SQL dotazu nebo jineho prostredı.

Mezi dalsı vysledky prace patrı program RegisterImport a skript v interpretu

Bash umoznujıcı jednorazove nakopırovanı nebo doplnenı dat do databaze. Program

RegisterImport se sklada z 16 souboru zdrojovych kodu, ktere obsahujı komentare

pro vytvorenı dokumentace javadoc a ktere usnadnı provadenı prıpadnych zmen

v tomto programu. Vytvorene serie SQL dotazu vytvarejıcı XML vystup z databaze

jsou zakladem pro dalsı vyvoj a optimalizaci prıpravy namerenych dat ke zpracovanı

novym programem Gravimzung, ktery je stale vyvıjen. Je mozne, ze se cela prıprava

dat bude provadet v ramci jedine databazove funkce v jazyce PL/pgSQL, ktera

vytvorı pro zadane parametry vyrovnanı cast XML vystupu celeho dennıho useku.

SQL dotazy generujıcı vystupy pro graficke znazornenı tıhovych bodu a liniı dennıch

useku v programu Surfer a ukazkova serie SQL dotazu pro tvorbu statistiky jsou jen

61

CVUT Praha ZAVER

zlomkem moznostı vyuzitı SQL dotazu na data nove databaze. Dulezitym vysledkem

je i text diplomove prace, ktery slouzı jako dokumentace databaze, weboveho roz-

hranı a dalsıch pomocnych postupu, skriptu a ukazkovych SQL dotazu.

Databaze slouzı predevsım k poskytovanı a prıprave dat tıhovych merenı a jejich

doprovodnych udaju spolecne s udaji o nastavenı gravimetru k dalsımu zpracovanı ve

vyrovnavacım programu. Databaze dale poskytuje zakladnı udaje o tıhovych bodech,

udaje o jejich stavu, tızi, zarazenı do tıhovych systemu, jejich polohove a vyskove

urcenı a dalsı mıstopisne informace. Vytvorene webove rozhranı umoznuje udaje

o tıhovych bodech a tıhovych merenı nejen prohlızet, ale take snadno spravovat.

Dalsım praktickym vyuzitım weboveho rozhranı je vytvarenı mısopisu z aktualnıch

dat, se zobrazenım bodu na mapach Google, fotografiı a mıstopisnym nacrtem. Dalsı

vyuzitı muze databaze nalezt naprıklad pri exportu souradnic do formatu vhodneho

pro nakopırovanı do GPS navigace usnadnujıcı vyhledavanı tıhovych bodu v terenu

nebo pri vypoctu nekterych udaju pred vyrovnanım pomocı PL/pgSQL funkcı.

Veskere upravy textovych souboru, skriptu, XML souboru, tex souboru a sou-

boru obsahujıcı SQL jsem provadel v textovem editoru Emacs. Pro vyvoj weboveho

rozhranı a programu RegisterImport jsem pouzil prostredı NetBeans IDE 6.7. Gra-

ficka znazornenı struktur ulozenych dat jsem vytvoril pomocı programu postgre-

sql autodoc a upravil v programu Dia. Diplomova prace byla vytvorena v sazecım

prostredı LATEX na zaklade sablony z predmetu Kartograficka polygrafie a reprogra-

fie, kterou vytvoril Ing. Petr Soukup Ph.D.

Jan Gurtler

62

CVUT Praha REFERENCE

Reference

[1] CSU [online], [cit. 2010-11-25]. Poslednı aktualizace 24. 11. 2010. Dostupne

z URL: <http://www.czso.cz/>.

[2] Geoportal CUZK [online], [cit. 2010-11-24]. Poslednı aktualizace 6. 10. 2010.

Dostupne z URL: <http://geoportal.cuzk.cz/>.

[3] Mapy Google [online], [cit. 2010-11-24]. Poslednı aktualizace 24. 11. 2010. Do-

stupne z URL: <http://maps.google.cz/>.

[4] PostgreSQL [online], [cit. 2010-12-16]. Poslednı aktualizace 9. 12. 2010. Do-

stupne z URL: <http://www.postgresql.org/>.

[5] php [online], [cit. 2010-12-16]. Poslednı aktualizace 16. 12. 2010. Dostupne

z URL: <http://php.net/>.

[6] Linuxsoft.cz, Serial PHP [online], [cit. 2010-12-16]. Poslednı aktualizace 13. 11.

2009. Dostupne z URL: <http://www.linuxsoft.cz/php/>.

[7] Codd’s 12 rules [online], [cit. 2010-12-20]. Poslednı aktualizace 18. 12. 2009.

Dostupne z URL: <http://en.wikipedia.org/wiki/Codds 12 rules>.

[8] php-google-map-api [online], [cit. 2010-12-16]. Poslednı aktualizace 23. 10. 2010

Dostupne z URL: <http://code.google.com/p/php-google-map-api/>.

[9] Java SE Technical Documentation [online], [cit. 2010-12-16]. Poslednı aktuali-

zace 2010 Dostupne z URL: <http://download.oracle.com/javase/>.

[10] WIKIBOOKS, LaTeX [online], [cit. 2010-12-16]. Poslednı aktualizace 23. 11.

2010. Dostupne z URL: <http://en.wikibooks.org/wiki/LaTeX>.

[11] SHARON ZAKHOUR, SCOTT HOMMEL, JACOB ROYALL, ISAAC RA-

BINOVITCH, TOM RISSER, MARK HOEBER Java 6 Vyukovy kurz. Brno:

Computer Press, 2007, 536 s., ISBN 978-80-251-1575-6

[12] JAMES KEOGH Java bez predchozıch znalostı, Pruvodce pro samouky. Brno:

Computer Press, 2005, 280 s., ISBN 80-251-0839-2

[13] NESVADBA OTAKAR Plosna revize udaju o poloze bodu CSGS, Studie pro

bod 2019 Chotycany, Technicka zprava. Praha: Zememericky urad, 2009

[14] LEDERER MARTIN, NESVADBA OTAKAR, LUKAVEC PETR, TRAKAL

JAROSLAV, GURTLER JAN Novy tıhovy system CR; Tıhovy system 2010 -

SGR10, Rozpracovana technicka zprava. Praha: Zememericky urad, 2011?

63

CVUT Praha REFERENCE

[15] JAN KOSTELECKY Zpracovanı gravimetrickych merenı, vyrovnanı dennıho

useku a vyrovnanı gravimetricke sıte strednıho rozsahu v prostredı IBM-PC

(verze 1.3), Vyzkumna zprava c. 995/99. Zdiby: Vyzkumny ustav geodeticky,

topograficky a kartograficky, 1999, 22 s.

64

CVUT Praha SEZNAM SYMBOLU, VELICIN A ZKRATEK

Seznam symbolu, velicin a zkratek

PL/pgSQL Procedural Language/PostgreSQL Structured Query Language

ETRS89 European Terrestrial Reference System 1989

SQL Structured Query Language - programovacı jazyk pro relacnı databaze

Bash Bourne again shell - unixovy (Linux/Unix/BSD) prıkazovy interpret shellu

naprogramovany v ramci projektu GNU

XML Extensible Markup Language

HTML HyperText Markup Language

PHP Hypertext Preprocessor

CPI Capacitive Positioning Indicator

JDK Java Development Kit

CSU Cesky statisticky urad

ZU Zememericky urad

CUZK Cesky urad zememericky a katastralnı

CSV Comma Separated Values - hodnoty oddelene carkami

JDK Java Development Kit

65

CVUT Praha SEZNAM PRILOH

Seznam prıloh

A Zdroje dat 68

A.1 Textove soubory adjustovanych zapisnıku . . . . . . . . . . . . . . . . 68

A.1.1 Typ 4, GS12 a GS11 . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.2 Typ 5, GAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.3 Typ 6, Sharpe a Worden . . . . . . . . . . . . . . . . . . . . . 69

A.1.4 Typ 7, LaCoste & Romberg G CPI . . . . . . . . . . . . . . . 69

A.1.5 Typ 8, LaCoste & Romberg G a Scintrex . . . . . . . . . . . . 70

A.1.6 Typ 9, LaCoste & Romberg D . . . . . . . . . . . . . . . . . . 71

A.1.7 Soubory rovnic oprav . . . . . . . . . . . . . . . . . . . . . . . 71

A.2 Katalogy gravimzu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

A.2.1 Katalog merickych skupin . . . . . . . . . . . . . . . . . . . . 73

A.2.2 Katalog gravimetru . . . . . . . . . . . . . . . . . . . . . . . . 75

A.2.3 Katalog tıhovych bodu . . . . . . . . . . . . . . . . . . . . . . 76

B Struktura databaze 77

B.1 Struktura ulozenı tıhovych bodu . . . . . . . . . . . . . . . . . . . . . 77

B.2 Struktura ulozenı dennıch useku . . . . . . . . . . . . . . . . . . . . . 80

B.3 Struktura ulozenı gravimetru . . . . . . . . . . . . . . . . . . . . . . . 81

C Naplnenı databaze 83

C.1 Skript pro program RegisterImport . . . . . . . . . . . . . . . . . . . 83

D PHP webove rozhranı 84

D.1 Snımky obrazovky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

E Vystupy z databaze 90

E.1 XML vystupy pro Gravimzung . . . . . . . . . . . . . . . . . . . . . . 90

E.1.1 query point.sql . . . . . . . . . . . . . . . . . . . . . . . . . . 90

E.1.2 query section.sql . . . . . . . . . . . . . . . . . . . . . . . . . 91

E.1.3 query calibration.sql . . . . . . . . . . . . . . . . . . . . . . . 95

E.1.4 query observation.sql . . . . . . . . . . . . . . . . . . . . . . . 95

E.2 Vystupy pro program Surfer . . . . . . . . . . . . . . . . . . . . . . . 96

E.2.1 Funkce get points(point id) . . . . . . . . . . . . . . . . . . . 96

E.2.2 Funkce get polygons(usek id) . . . . . . . . . . . . . . . . . . 97

E.3 Tvorba statistik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

E.3.1 Skript get index . . . . . . . . . . . . . . . . . . . . . . . . . . 98

E.3.2 Cetnost merenı na bodech . . . . . . . . . . . . . . . . . . . . 99

66

CVUT Praha SEZNAM PRILOH

E.3.3 Pocet zmerenych dennıch useku s danym poctem bodu . . . . 99

E.4 Graficke znazornenı v programu Surfer . . . . . . . . . . . . . . . . . 100

67

CVUT Praha A. ZDROJE DAT

A Zdroje dat

A.1 Textove soubory adjustovanych zapisnıku

A.1.1 Typ 4, GS12 a GS11

AZ610101.001

4 2 1

1 ’ I I HRENSKO − VI STRASKOV ’

1 129 3 40 .0 18 5 1961 1 .0 ’TRAGER ’ 1 ’ ’

2

06 23 40 42 −14.3 40 32 15 .3 40 42 −14.0

17 42 38 32 −13.4 38 22 15 .9 38 32 −13.5

34 2

2003.0000 1 50 2 9 .0 100 .9 6 28 ’ 15 ’ 40 .37 . 4 . 6 −.8 88 .0 0

2003.0000 1 50 2 9 .0 100 .9 6 32 ’ 5 ’ 35 .18 −.3 −1.0 −.8 88 .0 0

2005.0000 1 50 2 14 .0 100 .8 7 5 ’ 25 ’ 44 .83 . 8 1 .3 −.7 88 .0 0

2005.0000 1 50 2 14 .0 100 .8 7 11 ’ 15 ’ 39 .66 2 .0 2 .2 −.7 88 .0 0

2006.0000 1 50 3 15 .0 100 .4 8 5 ’ 25 ’ 44 .19 −.3 . 7 −.6 88 .0 0

2006.0000 1 50 3 15 .0 100 .4 8 11 ’ 15 ’ 39 .02 2 .2 2 .7 −.6 88 .0 0

2008.0000 1 25 4 14 .0 100 .4 8 59 ’ 25 ’ 44 .77 2 .0 2 .0 −.5 88 .0 0

2008.0000 1 25 4 14 .0 100 .4 9 2 ’ 15 ’ 39 .60 3 .2 4 .0 −.5 88 .0 0

2009.0000 1 25 3 13 .0 99 .7 9 30 ’ 25 ’ 43 .44 2 .5 3 .0 −.4 88 .0 0

2009.0000 1 25 3 13 .0 99 .7 9 33 ’ 15 ’ 38 .27 3 .8 4 .8 −.4 88 .0 0

271.0000 1 25 2 15 .0 99 .4 10 6 ’ 25 ’ 42 .56 3 .9 3 .4 −.4 88 .0 0

271.0000 1 25 2 15 .0 99 .4 10 11 ’ 15 ’ 37 .39 4 .1 3 .7 −.4 88 .0 0

2009.0000 1 25 3 14 .0 101 .0 10 41 ’ 25 ’ 43 .44 2 .0 1 .5 −.5 88 .0 0

2009.0000 1 25 3 14 .0 101 .0 10 44 ’ 15 ’ 38 .27 3 .1 2 .3 −.5 88 .0 0

2008.0000 1 25 4 16 .0 100 .3 11 14 ’ 25 ’ 44 .77 −.4 −1.0 −.5 88 .0 0

2008.0000 1 25 4 16 .0 100 .3 11 17 ’ 15 ’ 39 .60 1 .0 1 .0 −.5 88 .0 0

2006.0000 1 25 2 18 .0 100 .2 12 19 ’ 25 ’ 44 .19 −2.1 −2.9 −.5 88 .0 0

2006.0000 1 25 2 18 .0 100 .2 12 22 ’ 15 ’ 39 .02 −1.8 −1.8 −.5 88 .0 0

2005.0000 1 50 3 17 .0 100 .5 13 3 ’ 25 ’ 44 .83 −7.4 −6.8 −.6 88 .0 0

2005.0000 1 50 3 17 .0 100 .5 13 6 ’ 15 ’ 39 .66 −5.0 −5.8 −.6 88 .0 0

2003.0000 1 50 2 20 .0 100 .5 14 0 ’ 15 ’ 40 .37 −8.9 −8.0 −.6 88 .0 0

2003.0000 1 50 2 20 .0 100 .5 14 3 ’ 5 ’ 35 .18 −9.0 −9.1 −.6 88 .0 0

2002.0000 1 50 3 20 .0 100 .4 14 13 ’ 15 ’ 40 .51 −8.8 −8.9 −.7 88 .0 0

2002.0000 1 50 3 20 .0 100 .4 14 16 ’ 5 ’ 35 .32 −9.2 −9.2 −.7 88 .0 0

2003.0000 1 50 2 18 .0 100 .5 14 25 ’ 15 ’ 40 .37 −8.6 −8.9 −.7 88 .0 0

2003.0000 1 50 2 18 .0 100 .4 14 28 ’ 5 ’ 35 .18 −9.2 −9.2 −.7 88 .0 0

2005.0000 1 50 3 21 .0 100 .4 14 59 ’ 25 ’ 44 .83 −8.0 −7.8 −.8 88 .0 0

2005.0000 1 50 3 21 .0 100 .4 15 2 ’ 15 ’ 39 .66 −6.0 −6.2 −.8 88 .0 0

2006.0000 1 100 2 17 .0 100 .0 15 55 ’ 25 ’ 44 .19 −4.4 −4.0 −.8 88 .0 0

2006.0000 1 100 2 17 .0 100 .0 15 59 ’ 15 ’ 39 .02 −3.6 −3.0 −.8 88 .0 0

2008.0000 1 75 2 18 .0 100 .1 17 3 ’ 25 ’ 44 .77 −3.5 −3.5 −.8 88 .0 0

2008.0000 1 75 2 18 .0 100 .1 17 7 ’ 15 ’ 39 .60 −2.2 −1.6 −.8 88 .0 0

2009.0000 1 60 3 16 .0 99 .3 17 34 ’ 25 ’ 43 .44 −.7 −1.0 −.8 88 .0 0

2009.0000 1 60 3 16 .0 99 .3 17 37 ’ 15 ’ 38 .27 . 9 . 2 −.8 88 .0 0

A.1.2 Typ 5, GAG

AZ680309.007

5 2 1

68

CVUT Praha A. ZDROJE DAT

7 ’ GDANSK BARTH ’

3 3 1 35 .0 24 6 1968 3 .0 ’RUKAVISNIKOV ’ 2 ’AN 24 46207 ’

12 1

40.0000 0 0 0 . 0 . 0 9 15 150 7 21 .0 . 0 147 9 6 .2 . 0 . 0 0

40 .0000 0 0 0 . 0 . 0 9 17 210 27 24 .2 . 0 207 29 10 .0 . 0 . 0 0

40 .0000 0 0 0 . 0 . 0 9 19 270 47 23 .8 . 0 267 49 11 .6 . 0 . 0 0

41 .0000 0 0 0 . 0 . 0 12 25 270 52 54 .8 . 0 267 51 16 .2 . 0 . 0 0

41 .0000 0 0 0 . 0 . 0 12 28 331 12 51 .8 . 0 328 11 16 .0 . 0 . 0 0

41 .0000 0 0 0 . 0 . 0 12 30 31 32 35 .8 . 0 28 30 59 .0 . 0 . 0 0

40 .0000 0 0 0 . 0 . 0 15 18 90 51 20 .1 . 0 87 52 50 .2 . 0 . 0 0

40 .0000 0 0 0 . 0 . 0 15 20 151 11 26 .8 . 0 148 12 56 .8 . 0 . 0 0

40 .0000 0 0 0 . 0 . 0 15 22 211 31 12 .6 . 0 208 32 43 .2 . 0 . 0 0

41 .0000 0 0 0 . 0 . 0 18 47 240 8 49 .6 . 0 237 6 58 .2 . 0 . 0 0

41 .0000 0 0 0 . 0 . 0 18 50 300 28 39 .6 . 0 297 26 47 .4 . 0 . 0 0

41 .0000 0 0 0 . 0 . 0 18 52 10 48 41 .2 . 0 7 46 51 .0 . 0 . 0 0

A.1.3 Typ 6, Sharpe a Worden

AZ670102.020

6 2 1

4 ’ VOTICE CHOTYCANY ’

22 961 14 32 .0 28 4 1993 2 .0 ’DIVIS ’ 1 ’SF AEC 6341 ’

17 3

2014.0100 1 10 2 16 .0 96 .4 8 33 .00 1919.00 1918.80 1918.90 41 .00 3

2015.0000 1 10 1 16 .0 94 .4 8 53 .00 1524.80 1524.80 1524.80 41 .00 3

2016.0000 1 10 2 20 .7 97 .2 9 30 .00 1734.00 1734.00 1734.10 41 .00 3

2017.0000 1 10 2 22 .0 97 .2 10 23 .00 1529.10 1529.00 1529.00 41 .00 0

2019.0000 1 0 3 20 .3 95 .8 10 56 .00 1162.40 1162.50 1162.50 41 .00 0

2017.0000 1 0 3 24 .0 97 .2 11 56 .00 1529.80 1530.00 1529.80 41 .00 0

2016.0000 1 10 3 24 .0 97 .2 12 22 .00 1735.70 1735.70 1735.90 41 .00 0

2015.0000 1 20 3 24 .6 94 .3 13 4 .00 1526.20 1526.20 1526.40 41 .00 0

2014.0100 1 30 3 23 .0 96 .3 13 22 .00 1919.50 1919.60 1919.50 41 .00 0

2015.0000 1 30 3 26 .3 94 .3 13 41 .00 1526.20 1526.00 1526.20 41 .00 0

2016.0000 1 40 3 23 .5 97 .1 14 16 .00 1736.50 1736.70 1736.60 41 .00 0

2017.0000 1 40 2 26 .4 97 .1 14 47 .00 1531.60 1531.50 1531.60 41 .00 0

2019.0000 1 30 4 22 .5 95 .6 15 58 .00 1163.80 1163.80 1163.70 41 .00 0

2017.0000 1 30 3 23 .5 97 .0 17 15 .00 1530.30 1530.20 1530.10 41 .00 0

2016.0000 1 10 3 24 .0 96 .9 17 39 .00 1736.00 1736.10 1736.10 41 .00 0

2015.0000 1 10 2 21 .0 94 .1 18 17 .00 1525.90 1525.80 1525.80 41 .00 0

2014.0100 1 10 2 23 .3 96 .1 18 35 .00 1918.20 1918.20 1918.10 41 .00 0

A.1.4 Typ 7, LaCoste & Romberg G CPI

AZ090102.006

7 2 1

6 ’ Kunratice − Rehenice ’

6 1068 1 53 .0 16 4 2009 2 .0 ’ Lukavec ’ 1 ’VWC4A74983 ’

2 4 .00000000

9 50 4428 306 −1 4428 406 −265 4428 206 +287 4428 306 +8

14 43 4428 232 +1 4428 332 −266 4428 132 +272 4428 232 −8

9 3

272.0100 1 0 2 18 .0 97 .0 9 48

4428 . 296 .0 304 .0 306 .0 26 .0 0

21 .00 2 .00 −1.00

69

CVUT Praha A. ZDROJE DAT

2011.0200 1 0 1 16 .0 96 .0 10 21

4405 . 921 .0 921 .0 920 .0 26 .0 0

−4.00 −5.00 −1.00

1723.0100 1 0 2 19 .0 97 .0 10 51

4415 . 938 .0 932 .0 930 .0 26 .0 0

−16.00 −3.00 7 .00

2011.0200 1 0 1 18 .0 93 .0 11 14

4405 . 915 .0 915 .0 916 .0 26 .0 0

5 .00 8 .00 6 .00

272.0100 1 0 3 22 .0 97 .0 11 40

4428 . 272 .0 277 .0 275 .0 26 .0 0

15 .00 1 .00 13 .00

2011.0200 1 0 2 19 .0 96 .0 12 7

4405 . 891 .0 892 .0 891 .0 26 .0 0

4 .00 .00 .00

1723.0100 1 0 3 24 .0 97 .0 13 15

4415 . 887 .0 885 .0 885 .0 26 .0 0

−2.00 6 .00 6 .00

2011.0200 1 10 2 21 .0 96 .0 14 11

4405 . 857 .0 857 .0 861 .0 26 .0 0

11 .00 11 .00 −6.00

272.0100 1 10 3 24 .0 97 .0 14 42

4428 . 240 .0 236 .0 232 .0 26 .0 0

−10.00 −3.00 1 .00

∗∗∗∗∗

A.1.5 Typ 8, LaCoste & Romberg G a Scintrex

AZ080101.028

8 2 1

28 ’ Skutec − Nove Mesto ’

25 125 1 67 .0 27 8 2008 2 .0 ’ Trakal ’ 1 ’VWC 4A7 4983 ’

13 2

3346.0200 1 10 2 19 .0 97 .5 9 18 4403.00 5 .0 4 .0 46 .80 0

3346.7100 1 10 1 22 .9 97 .8 10 12 4421.00 331 .0 332 .0 46 .80 0

3332.0100 1 10 2 26 .7 99 .7 11 27 4459.00 307 .0 306 .0 46 .70 0

3327.0100 1 10 3 25 .9 99 .6 12 29 4469.00 577 .0 578 .0 46 .80 0

3332.0100 1 10 2 27 .2 99 .6 13 49 4459.00 410 .0 409 .0 46 .80 0

3346.7100 1 20 2 29 .0 97 .7 14 49 4421.00 517 .0 518 .0 46 .80 0

3346.0200 1 20 3 25 .0 97 .3 15 24 4403.00 221 .0 223 .0 46 .80 0

3346.7100 1 40 2 28 .9 97 .6 16 1 4421.00 578 .0 578 .0 46 .80 0

3332.0100 1 10 3 27 .7 99 .4 17 1 4459.00 572 .0 572 .0 46 .80 0

3327.0100 1 10 2 28 .0 99 .3 17 52 4469.00 837 .0 835 .0 46 .80 0

3332.0100 1 10 2 26 .9 99 .3 18 40 4459.00 620 .0 622 .0 46 .70 0

3346.7100 1 10 1 21 .3 97 .5 19 36 4421.00 683 .0 683 .0 46 .80 0

3346.0200 1 10 1 20 .8 97 .1 20 17 4403.00 358 .0 358 .0 46 .80 0

∗∗∗∗∗

70

CVUT Praha A. ZDROJE DAT

A.1.6 Typ 9, LaCoste & Romberg D

AZ930301.030

9 2 1

30 ’ LITOMERICE KUNRATICE ’

61 180 2 55 .0 22 6 1993 2 .0 ’KOVACIK ’ 1 ’ ’

17 3

271.0000 1 30 1 28 .9 99 .7 12 53 1497.00 75 .00 75 .00 74 .50 26 .20 0

2009.0000 1 30 1 23 .7 100 .0 13 30 1656.00 55 .00 55 .00 54 .30 26 .10 0

2008.0000 1 30 1 24 .7 100 .5 14 17 1897.00 14 .20 14 .50 14 .10 26 .20 0

2007.0000 1 60 1 26 .0 100 .5 14 38 1914.00 29 .00 29 .30 29 .00 25 .80 0

2008.0000 1 60 1 24 .3 100 .5 15 0 1897.00 36 .40 37 .70 38 .30 26 .20 0

2009.0000 1 60 1 24 .1 99 .8 15 43 1656.00 45 .00 45 .90 46 .80 26 .10 0

271.0000 1 50 1 26 .9 99 .6 16 26 1497.00 69 .20 70 .80 72 .30 26 .20 0

2009.0000 1 50 1 24 .9 99 .7 17 7 1656.00 72 .50 73 .60 74 .90 26 .10 0

2008.0000 1 50 1 23 .8 100 .4 17 46 1898.00 .40 2 .60 4 .10 26 .20 0

2007.0000 1 50 1 24 .5 100 .4 18 3 1914.00 92 .00 94 .00 95 .20 25 .80 0

2008.0000 1 50 1 24 .9 100 .4 18 21 1898.00 30 .60 33 .00 34 .30 26 .20 0

2009.0000 1 30 1 24 .7 99 .6 18 55 1657.00 61 .20 62 .30 63 .20 26 .10 0

271.0000 1 30 1 24 .9 99 .5 19 27 1498.00 94 .80 95 .80 96 .90 26 .20 0

272.0100 1 60 1 22 .6 98 .8 20 15 1084.00 21 .80 22 .00 24 .00 25 .80 0

271.0000 1 100 1 21 .8 99 .5 21 0 1499.00 52 .80 53 .90 54 .70 26 .20 0

272.0100 1 100 1 20 .7 98 .8 21 44 1084.00 51 .40 52 .70 55 .70 25 .80 0

271.0000 2 100 1 20 .6 99 .5 22 32 1499.00 65 .00 65 .90 66 .80 26 .20 0

A.1.7 Soubory rovnic oprav

R3930102.004

ROV. OPRAV DENNIHO USEKU: 930102.004 DATUM=27.12.1999 CAS=10:05

GRAVIMETR = 22 961

ROVNIC OPRAV = 16

NEZNAMYCH TIZI = 5

1 2014.0100 VOTICE

2 2015.0000 MILICIN

3 2016.0000 PLANA N LUZ

4 2017.0000 RIPEC

5 2019.0000 CHOTYCANY

POCET NEZN. CHODU = 4

6 a ’

7 b

8 c

9 d

POCET SKOKU = 1

10

MER. FAKTOR

11 Y1 ’

12 Y2 ’

ROVNICE OPRAV:

1.00000 .00000 .00000 .00000 .00000

−1.00000 .00000 .00000 .00000 .00000

.00000 .00000

1.00000 .00000

.00000 1.00000 .00000 .00000 .00000

71

CVUT Praha A. ZDROJE DAT

−1.00000 −.33333 −.11111 −.03704 .00000

.00000 423.33800

1.00000 423.33800

.00000 .00000 1.00000 .00000 .00000

−1.00000 −.95000 −.90250 −.85737 .00000

.00000 198.47400

1.00000 198.47400

.00000 .00000 .00000 1.00000 .00000

−1.00000 −1.83333 −3.36111 −6.16204 1.00000

.00000 418.73200

1.00000 418.73200

.00000 .00000 .00000 .00000 1.00000

−1.00000 −2.38333 −5.68028 −13.53800 1.00000

.00000 812.22400

1.00000 812.22400

.00000 .00000 .00000 1.00000 .00000

−1.00000 −3.38333 −11.44694 −38.72883 1.00000

.00000 417.63600

1.00000 417.63600

.00000 .00000 1.00000 .00000 .00000

−1.00000 −3.81667 −14.56694 −55.59717 1.00000

.00000 196.26900

1.00000 196.26900

.00000 1.00000 .00000 .00000 .00000

−1.00000 −4.51667 −20.40028 −92.14125 1.00000

.00000 421.27000

1.00000 421.27000

1.00000 .00000 .00000 .00000 .00000

−1.00000 −4.81667 −23.20028 −111.74800 1.00000

.00000 −1.23500

1.00000 −1.23500

.00000 1.00000 .00000 .00000 .00000

−1.00000 −5.13333 −26.35111 −135.26904 1.00000

.00000 421.28100

1.00000 421.28100

.00000 .00000 1.00000 .00000 .00000

−1.00000 −5.71667 −32.68028 −186.82225 1.00000

.00000 194.96300

1.00000 194.96300

.00000 .00000 .00000 .00000 1.00000

−1.00000 −7.41667 −55.00694 −407.96817 1.00000

.00000 809.86600

1.00000 809.86600

.00000 .00000 .00000 1.00000 .00000

−1.00000 −8.70000 −75.69000 −658.50300 1.00000

.00000 416.32800

1.00000 416.32800

72

CVUT Praha A. ZDROJE DAT

. 00000 .00000 1.00000 .00000 .00000

−1.00000 −9.10000 −82.81000 −753.57100 1.00000

.00000 195.06300

1.00000 195.06300

.00000 1.00000 .00000 .00000 .00000

−1.00000 −9.73333 −94.73778 −922.11437 1.00000

.00000 421.01600

1.00000 421.01600

1.00000 .00000 .00000 .00000 .00000

−1.00000 −10.03333 −100.66778 −1010.03337 1.00000

.00000 −.40400

1.00000 −.40400

A.2 Katalogy gravimzu

A.2.1 Katalog merickych skupin

ukazky ze souboru Kat ms.txt

. . .

MERICKA SKUPINA 85 1 GEODETICKY A˜KARTOGRAFICKY PODNIK P R A˜H

A˜SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 1 129 22 GS 12 GU PRAHA

2 2 174 24 SHARPE GKP PRAHA

3 22 961 14 WORDEN GKP PRAHA

MERICKA SKUPINA 85 2 GEODETICKY USTAV NP B R A˜T I ˜S˜L

A˜V˜A˜SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 2 280 21 SHARPE GU BRATISLAVA

2 22 978 11 WORDEN GU BRATISLAVA

MERICKA SKUPINA 85 3 Z˜K˜O˜U˜S˜K˜Y P R I ˜S˜T R O˜J

U˜SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 2 174 21 SHARPE GU PRAHA

2 22 961 11 WORDEN GU PRAHA

MERICKA SKUPINA 85 4 DILCI JEDNOTNA GRAVIMETRICKA SIT − CSSR 1985

SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 2 174 24 SHARPE GKP PRAHA

2 22 961 14 WORDEN GKP PRAHA

3 2 280 21 SHARPE GU BRATISLAVA

4 22 978 11 WORDEN GU BRATISLAVA

5 22 1217 2 WORDEN VUGK BLAVA

6 2 181 11 SHARPE ELGI BUDAPEST

7 2 256 11 SHARPE ELGI BUDAPEST

8 22 971 1 WORDEN ELGI BUDAPEST

9 6 1919 1 LA COSTE ELGI BUDAPEST

MERICKA SKUPINA 85 5 M A˜E L G I ˜B U˜D A˜P E S˜T

SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 2 181 11 SHARPE ELGI BUDAPEST

2 2 256 11 SHARPE ELGI BUDAPEST

3 22 971 1 WORDEN ELGI BUDAPEST

73

CVUT Praha A. ZDROJE DAT

4 6 1919 2 LA COSTE ELGI BUDAPEST

. . .

. . .

MERICKA SKUPINA 10 1 ZEMEMERICKY URAD PRAHA + VUGTK ZDIBY

SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 25 125 1 SCINTREX ZU PRAHA

2 6 1068 1 LA COSTE G ZU PRAHA

3 6 137 1 LA COSTE G VUGTK ZDIBY

4 62 20 1 ZLS VUGTK ZDIBY

MERICKA SKUPINA 10 2 GEODETICKY A˜KARTOGRAFICKY USTAV BRATISLAVA

SEZNAM GRAVIMETRU

TYP CISLO PK NAZEV A˜UZIVATEL GRAVIMETRU

1 61 180 2 LA COSTE D GU BRATISLAVA

2 6 1011 1 LA COSTE G GKU BLAVA

3 2 280 21 SHARPE GU BRATISLAVA

4 22 978 11 WORDEN GU BRATISLAVA

. . .

74

CVUT Praha A. ZDROJE DAT

A.2

.2K

ata

log

gra

vim

etr

u

ukaz

kaze

soub

oru

Kat

grav

.txt

...

V˜E

TA

˜S˜O

˜U

˜B

O˜R

U˜K

˜T

GR

P

CIS

LO

GR

NAZEV

GR

MA

JIT

EL

GR

D−U

L.K

D−V

T.K

D−ZC

.PD−K

N.P

UK

VZ

KA

S1−D

MS1−H

MS2−D

MS2−H

MS3−D

MS3−H

MT

T−P

KV

Z−M

S

01

0129

01

GS

12

GTU

PRAHA

880819

850612

580101

591231

11

11

05

081

40

40

140.0

−400

V˜E

TY

S˜O

˜U

˜B

O˜R

U˜K

˜T

GK

˜S˜T

−7.0

8135400000E+

03

1.7

6959600000E+

02

1.1

8750000000E−

05

4.6

1094000000E−

05

0.0

0000000000E+

00

1.0

0056000000E+

00

9.3

7480000000E−

05

1.8

7083000000E−

04

3.7

4697000000E−

04

3.7

4084000000E−

04

7.4

8909000000E−

04

0.0

0000000000E+

00

V˜E

TY

S˜O

˜U

˜B

O˜R

U˜K

˜T

GV

˜N

V˜G

RAVIM

ETR

CIS

LO

01

0129

01

NEM

AVETY

VN

EJSIC

HV

LIV

U

...

V˜E

TY

S˜O

˜U

˜B

O˜R

U˜K

˜T

GV

˜N

V˜G

RAVIM

ETR

CIS

LO

02

0312

01

NEM

AVETY

VN

EJSIC

HV

LIV

U

V˜E

TA

˜S˜O

˜U

˜B

O˜R

U˜K

˜T

GR

P

CIS

LO

GR

NAZEV

GR

MA

JIT

EL

GR

D−U

L.K

D−V

T.K

D−ZC

.PD−K

N.P

UK

VZ

KA

S1−D

MS1−H

MS2−D

MS2−H

MS3−D

MS3−H

MT

T−P

KV

Z−M

S

03

0001

01

GAG

2IF

ZM

OCKBA

880819

810619

680101

951231

14

40

360

060

065

135.0

−200

V˜E

TY

S˜O

˜U

˜B

O˜R

U˜K

˜T

GK

˜S˜T

6.0

0000000000E+

01

1.0

0000000000E+

00

1.0

0000000000E+

00

1.0

0000000000E+

00

1.0

0000000000E+

00

5.0

0000000000E+

00

V˜E

TY

S˜O

˜U

˜B

O˜R

U˜K

˜T

GV

˜N

V˜G

RAVIM

ETR

CIS

LO

03

0001

01

NEM

AVETY

VN

EJSIC

HV

LIV

U

...

V˜E

TA

˜S˜O

˜U

˜B

O˜R

U˜K

˜T

GR

P

CIS

LO

GR

NAZEV

GR

MA

JIT

EL

GR

D−U

L.K

D−V

T.K

D−ZC

.PD−K

N.P

UK

VZ

KA

S1−D

MS1−H

MS2−D

MS2−H

MS3−D

MS3−H

MT

T−P

KV

Z−M

S

25

0125

01

SC

INT

REX

ZU

PRAHA

050617

050617

050617

100617

12

50

7000

01100

00

167.0

−202

V˜E

TY

S˜O

˜U

˜B

O˜R

U˜K

˜T

GK

˜S˜T

0.0

0000000000E+

00

6.7

0000000000E+

01

1.0

0000000000E+

03

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

1.0

0000000000E+

01

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

1.0

0000000000E−

20

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

1.0

0000000000E−

20

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

0.0

0000000000E+

00

1.0

0000000000E+

00

1.0

0000000000E+

00

1.0

0000000000E+

00

1.0

0000000000E+

00

1.0

0000000000E+

00

1.0

0000000000E+

00

V˜E

TY

S˜O

˜U

˜B

O˜R

U˜K

˜T

GV

˜N

V˜G

RAVIM

ETR

CIS

LO

25

0125

01

NEM

AVETY

VN

EJSIC

HV

LIV

U

...

75

CVUT Praha A. ZDROJE DAT

A.2

.3K

ata

log

tıh

ovych

bod

u

ukaz

kaze

soub

oruKATBODY.txt

21

TA

LLIN

N68

880603

59

960.0

024

37

60.0

0.0

00

00−

3084

871

9818300.9

90

.00

21.0

1T

ALLIN

N74

880603

59

960.0

024

37

60.0

0.0

00

00−

3084

871

9818302.3

90

.00

22

VIL

NIU

S68

880603

54

37

60.0

025

17

60.0

0.0

00

00−

3085

871

9814377.7

00

.00

22.0

1V

ILN

IUS

74

880603

54

37

60.0

025

17

60.0

0.0

00

00−

3085

871

9814379.7

60

.00

23

MOCKBA

880603

56

11

60.0

037

19

60.0

0.0

00

00−

3085

80

9815732.8

00

.00

24

POTSD

AM

S˜2

880603

52

22

60.0

013

360.0

085.3

70

00−

3085

371

9812607.1

00

.00

25

BER

LIN

880603

52

21

60.0

013

31

60.0

0.0

00

00−

3085

371

9812577.9

30

.00

26

WARSZ

AW

A68

880603

52

760.0

021

0.0

0.0

00

00−

3085

471

9812224.0

30

.00

26.0

1W

ARSZ

AW

A74

880603

52

760.0

021

0.0

0.0

00

00−

3085

471

9812223.6

30

.00

27

PRAHA

RUZYNE

880603

50

63.0

014

16

27.0

0361.6

90

11

291−

3047

164

9810018.0

068

1.7

0

27.5

0PRAHA

RU

ZEX

880603

50

557.0

014

17

22.0

0364.2

20

00−

3130

164

9810009.7

068

1.7

0

28

KRAKOW

68

880603

50

760.0

019

54

60.0

0.0

00

00−

3085

471

9810370.5

10

.00

28.0

1KRAKOW

BA

LIC

880603

50

760.0

019

54

60.0

0.0

00

00−

3085

468

9810510.5

00

.00

28.0

2KRAKOW

BA

LI

890721

50

760.0

019

54

60.0

0.0

00

00−

3085

40

9810510.0

00

.00

29

BUD

APEST

880603

47

26

58.0

019

13

20.0

0136.7

77

00−

3085

568

9808284.4

00

.00

29.0

1BUD

APEST

880603

47

26

60.0

019

13

60.0

0140.0

00

00−

3085

50

9808280.0

00

.00

29.1

3BUD

APEST

EX

1880603

47

26

60.0

019

13

60.0

0140.0

00

00−

3085

50

9808280.0

00

.00

29.1

4BUD

APEST

EX

2880603

47

26

60.0

019

13

60.0

0140.0

00

00−

3085

50

9808280.0

00

.00

29.1

5BUD

APEST

EX

3880603

47

26

60.0

019

13

60.0

0140.0

00

00−

3085

50

9808280.0

00

.00

30

BU

CU

RESTI

880603

44

27

60.0

026

560.0

0.0

00

00−

3086

70

9805440.0

00

.00

31

SO

FIA

880603

42

42

5.0

023

24

12.0

0534.0

00

00−

3085

668

9802615.7

00

.00

40

GDANSK

880603

54

22

60.0

018

37

60.0

0.0

00

00−

3085

471

9814389.2

00

.00

41

BARTH

880603

54

20

60.0

012

40

60.0

0.0

00

00−

3085

371

9814511.0

00

.00

42

DRESD

EN

880603

51

360.0

013

49

60.0

0.0

00

00−

3085

371

9811099.8

00

.00

...

2024

DD

VO

RIS

TE

880603

48

38

59.0

014

26

25.0

0670.2

50

52

283−

3013

164

9807706.3

868

1.4

0

2024.1

0D

OL

DV

OR

ISTE

880603

48

38

59.0

014

26

25.0

0670.2

50

52

283−

3013

10

9807844.9

00

.00

2024.7

1G

PS

DODO

070528

48

38

59.0

014

26

25.0

0670.2

50

00−

3013

10

9807800.0

00

.00

2025

DDVOR

.STHRA

880603

48

38

42.0

014

27

19.0

0627.2

20

00−

3153

164

9807909.0

068

1.4

0

2026

HD

VO

RIS

TE

880603

48

36

40.0

014

24

26.0

0661.9

30

100

346−

3245

164

9807840.1

068

1.4

0

2026.0

1H

DV

OR

ISTE

880603

48

36

40.0

014

24

26.0

0661.9

40

100

346−

3245

164

9807840.1

068

1.4

0

...

76

CVUT Praha B. STRUKTURA DATABAZE

B Struktura databaze

B.1 Struktura ulozenı tıhovych bodu

Obrazek B.1: Struktura ulozenı bodu 1

77

CVUT Praha B. STRUKTURA DATABAZE

Obrazek B.2: Struktura ulozenı bodu 2

78

CVUT Praha B. STRUKTURA DATABAZE

Obrazek B.3: Struktura ulozenı bodu 3

79

CVUT Praha B. STRUKTURA DATABAZE

B.2 Struktura ulozenı dennıch useku

Obrazek B.4: Struktura ulozenı dennıch useku

80

CVUT Praha B. STRUKTURA DATABAZE

B.3 Struktura ulozenı gravimetru

Obrazek B.5: Struktura ulozenı gravimetru 1

81

CVUT Praha B. STRUKTURA DATABAZE

Obrazek B.6: Struktura ulozenı gravimetru 2

82

CVUT Praha C. NAPLNENI DATABAZE

C Naplnenı databaze

C.1 Skript pro program RegisterImport

#!/ bin /bash

# s k r i p t pro hromadne nacteni zap i sn i ku do databaze

# prvni argument j e ce s ta k adresary a podadresarum , ve k te rych se h l e d a j i soubory

adjustovanych zap i sn i ku

# druhy argument j e ce s ta k adresary a podadresarum , ve k te rych se h l e a d j i soubory

rovnic oprav

# t r e t i argument j e ce s ta k souboru s katalogem skupin , ce s ta j e r e l a t i v n i od

pracovniho adresare

# v aktualnim adre sar i j e potreba mit soubory Regis terImport . java , mani fes t .mf a

s l o z ku / l i b s knihovnou

# pos t g r e s q l −8.3−603. jdbc3 . j a r

# j e take potreba v y t v o r i t ssh tunue l portu 5432 na 3333

# ssh −L 3333 :127 .0 .0 .1 :5432 honza@gravimetry . nesvadba . eu

i f [ $1 −a −d $1 ] && [ −r $3 ] ; then

gp=$ (pwd) /$3

for f i l e in $ ( f i nd $1 −depth −regextype posix−egrep −type f − i r e g ex ’ ˆ . ∗ ( (AZ)

1 | ( az ) 1) ( [0−9]6) \ . ( [ 0 −9 ]3 ) $ ’ )

do

nazev=”$ f i l e : −10:10”i f [ $2 −a −d $2 ] ; then

adre sa r=$2

else

adre sa r=$ (pwd)

echo ”Nebyl zadan nazev adre sa r e s rovnicemi oprav , bude prohledavan

adre sa r $adresar vcetne podadresaru . ”

f i

regexRO=” ˆ .∗ ( r |R) ( [0−3]1) ( $nazev : 0 : 6 ) \ . ( $nazev : 7 : 10 ) $”

ro=$ ( f i nd ” $adresar ” −depth −regextype posix−egrep −type f − i r e g ex ”

$regexRO” | head −n 1)

i f [ ! $ro ] | | [ ! −r $ro ] ; then

echo ”Zadny soubor rovn i c oprav odpov i d a j i c i masce $regexRO nebyl

na lezen ”

echo ”Data budou importovana do databaze bez in fo rmac i o s tupn i

polynomu , vynechanych bodech a skoku p r i zpracovani . ”

java − j a r Reg i s ter Import . j a r −r $ f i l e −gp $gp

e l i f [ ! −e Reg i s ter Import . j a r −a ! −x Reg i s ter Import . j a r ] ; then

echo ”V aktualnim ad r e s a r i $ (pwd) chybi program Regis ter Import . ”

else

echo ” java − j a r Reg i s ter Import . j a r −r $ f i l e −e $ro −gp $gp”

java − j a r Reg i s ter Import . j a r −r $ f i l e −e $ro −gp $gp

f i

done

else

echo ”Neplatny nazev adre sa r e s adjustovanymi zap i sn iky nebo souboru s

katalogem skupin . ”

f i

83

CVUT Praha D. PHP WEBOVE ROZHRANI

D PHP webove rozhranı

D.1 Snımky obrazovky

Obrazek D.1: Uvodnı obrazovka

84

CVUT Praha D. PHP WEBOVE ROZHRANI

Obrazek D.2: Zakladnı udaje

85

CVUT Praha D. PHP WEBOVE ROZHRANI

Obrazek D.3: Stav cast 1.

Obrazek D.4: Stav cast 2.

86

CVUT Praha D. PHP WEBOVE ROZHRANI

Obrazek D.5: Mıstopis tıhoveho bodu

87

CVUT Praha D. PHP WEBOVE ROZHRANI

Obrazek D.6: Udaje

88

CVUT Praha D. PHP WEBOVE ROZHRANI

Obrazek D.7: Zobrazit udaje

89

CVUT Praha E. VYSTUPY Z DATABAZE

E Vystupy z databaze

E.1 XML vystupy pro Gravimzung

E.1.1 query point.sql

SELECT XMLELEMENT (name ” s t a t i o n ” , XMLATTRIBUTES(BZ. bod id AS ” id ” , BZ. bod nazev AS

”name” ) ,

−− t i z e

XMLELEMENT (name ”neuron” , XMLATTRIBUTES(BZ. bod id | | ’ : g r av i ty ’ AS ” id ” ) ,

XMLELEMENT (name ” inp” , XMLATTRIBUTES( ’ epoch ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 0 ’ AS ” order ” , ’ g ’ AS ” id ” ) ) ,

COALESCE(BT. t i z e 1995 , BT. p r i b l i z na , NULL) ) ,

XMLELEMENT (name ” inp” , XMLATTRIBUTES( ’ epoch ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” , ’ gt ’ AS ” id ” ) ) , ’ 0 . 0 ’

) ,

XMLELEMENT (name ” inp” , XMLATTRIBUTES( ’ epoch ’ AS ” id ” ) ,

XMLELEMENT(name ” s i n ” , XMLATTRIBUTES( ’ 1 ’ AS ” f r e q ” , ’ g s t ’ AS ” id ” ) ) , ’ 0 . 0 ’ )

,

XMLELEMENT (name ” inp” , XMLATTRIBUTES( ’ epoch ’ AS ” id ” ) ,

XMLELEMENT(name ” cos ” , XMLATTRIBUTES( ’ 1 ’ AS ” f r e q ” , ’ gct ’ AS ” id ” ) ) , ’ 0 . 0 ’ )

,

−− souradnice a vyska

XMLELEMENT (name ” inp” , XMLATTRIBUTES( ’ epoch ’ AS ” id ” ) ,

XMLELEMENT(name ”cwte” , XMLATTRIBUTES(BS . s i r k a e t r s 8 9 AS ”B” , BS .

d e l k a e t r s 8 9 AS ”L” , BV. vyska AS ”H” ) ) , ’ 1 . 0 ’ ) ,

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : s e n s o r h o f f s e t ’

AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” , ’ ghgrad ’ AS ” id ” ) ) ,

COALESCE(0 .0001∗BG. v e r t i k a l n i , −0.3086) ) ) )

FROM body zak ladni BZ

JOIN body t i z e BT

ON BT. bod id = BZ. bod id

JOIN body souradnice BS

ON BS . bod id = BZ. bod id

JOIN body vyska BV

ON BV. bod id = BZ. bod id

JOIN body grad ient BG

ON BG. bod id = BZ. bod id

JOIN useky . mereni M

ON M. bod id = BZ. bod id

JOIN useky . denni useky U

ON U. usek id = M. usek id

JOIN gravimetry . gravimetry G

ON G. grav imet r id = U. g rav imet r id

WHERE U. usek id = 19910402.002

GROUP BY BZ. bod id , BZ. bod nazev , BT. t i z e 1995 , BT. p r i b l i z na , BS . s i r k a e t r s 8 9 , BS .

de l ka e t r s 89 , BV. vyska ,BG. v e r t i k a l n i , G. g rav imet r id ;

Vysledek dotazu query point.sql

<s t a t i o n id=” 271.00 ” name=”Post&#x159 ; i&#x17E;&#xED; n”>

<neuron id=” 271.00 : g r a v i t y ”>

<inp id=”epoch”><pow order=”0” id=”g”/>9810382.170</ inp>

<inp id=”epoch”><pow order=”1” id=”gt ”/>0 .0</ inp>

<inp id=”epoch”><s i n f r e q=”1” id=” gs t ”/>0 .0</ inp>

<inp id=”epoch”><cos f r e q=”1” id=” gct ”/>0 .0</ inp>

90

CVUT Praha E. VYSTUPY Z DATABAZE

<inp id=”epoch”><cwte B=”50.231621 ” L=” 14.387353 ” H=” 234.07 ”/>1 .0</ inp>

<inp id=”10600432002 : s e n s o r h o f f s e t ”><pow order=”1” id=”ghgrad”/>−0.31</ inp>

</neuron>

</ s t a t i o n>

<s t a t i o n id=” 2009.00 ” name=”Stra&#x161 ; kov”>

<neuron id=” 2009.00 : g r a v i t y ”>

<inp id=”epoch”><pow order=”0” id=”g”/>9810536.960</ inp>

<inp id=”epoch”><pow order=”1” id=”gt ”/>0 .0</ inp>

<inp id=”epoch”><s i n f r e q=”1” id=” gs t ”/>0 .0</ inp>

<inp id=”epoch”><cos f r e q=”1” id=” gct ”/>0 .0</ inp>

<inp id=”epoch”><cwte B=”50.364812 ” L=” 14.252261 ” H=” 207.24 ”/>1 .0</ inp>

<inp id=”10600432002 : s e n s o r h o f f s e t ”><pow order=”1” id=”ghgrad”/>−0.302</ inp>

</neuron>

</ s t a t i o n>

<s t a t i o n id=” 2007.00 ” name=”Litom&#x11B;&#x159 ; i c e ”>

<neuron id=” 2007.00 : g r a v i t y ”>

<inp id=”epoch”><pow order=”0” id=”g”/>9810788.250</ inp>

<inp id=”epoch”><pow order=”1” id=”gt ”/>0 .0</ inp>

<inp id=”epoch”><s i n f r e q=”1” id=” gs t ”/>0 .0</ inp>

<inp id=”epoch”><cos f r e q=”1” id=” gct ”/>0 .0</ inp>

<inp id=”epoch”><cwte B=”50.518791 ” L=” 14.141066 ” H=” 146.86 ”/>1 .0</ inp>

<inp id=”10600432002 : s e n s o r h o f f s e t ”><pow order=”1” id=”ghgrad”/>−0.3035</ inp>

</neuron>

</ s t a t i o n>

<s t a t i o n id=” 272.01 ” name=”Kunratice ”>

<neuron id=” 272.01 : g r a v i t y ”>

<inp id=”epoch”><pow order=”0” id=”g”/>9809977.100</ inp>

<inp id=”epoch”><pow order=”1” id=”gt ”/>0 .0</ inp>

<inp id=”epoch”><s i n f r e q=”1” id=” gs t ”/>0 .0</ inp>

<inp id=”epoch”><cos f r e q=”1” id=” gct ”/>0 .0</ inp>

<inp id=”epoch”><cwte B=”50.015875 ” L=” 14.469508 ” H=” 289.46 ”/>1 .0</ inp>

<inp id=”10600432002 : s e n s o r h o f f s e t ”><pow order=”1” id=”ghgrad”/>−0.301</ inp>

</neuron>

</ s t a t i o n>

<s t a t i o n id=” 2010.00 ” name=”Praha”>

<neuron id=” 2010.00 : g r a v i t y ”>

<inp id=”epoch”><pow order=”0” id=”g”/>9810180.010</ inp>

<inp id=”epoch”><pow order=”1” id=”gt ”/>0 .0</ inp>

<inp id=”epoch”><s i n f r e q=”1” id=” gs t ”/>0 .0</ inp>

<inp id=”epoch”><cos f r e q=”1” id=” gct ”/>0 .0</ inp>

<inp id=”epoch”><cwte B=”50.069207 ” L=” 14.42519 ” H=” 203 .3 ”/>1 .0</ inp>

<inp id=”10600432002 : s e n s o r h o f f s e t ”><pow order=”1” id=”ghgrad”/>−0.282</ inp>

</neuron>

</ s t a t i o n>

(5 rows )

E.1.2 query section.sql

SELECT XMLELEMENT (name ”du” , XMLATTRIBUTES(U. u s ek id AS ” id ” , U. nazev AS ”name” , U

. obse rvato r AS ” obse rve r ” , U. doprava kod AS ” t ran spo r t code ” , U. doprava popis

AS ” t r a n s p o r t d e s c r i p t i o n ” ) ,

XMLELEMENT (name ” instrument ” , XMLATTRIBUTES(G. g rav imet r id AS ” id ” , G.

nazev AS ”name” , G. u z i v a t e l AS ”owner” , G. kone c p l a tno s t i AS ” va l i d ” ) ,

−− s t a t i c k e r e t e z c e

XMLELEMENT (name ” senso r ” , XMLATTRIBUTES(G. g rav imet r id | | ’ : c l o ck ’ AS ” id

” ) ) ,

XMLELEMENT (name ” senso r ” , XMLATTRIBUTES(G. g rav imet r id | | ’ : s e n s o r h e i gh t

’ AS ” id ” ) ) ,

91

CVUT Praha E. VYSTUPY Z DATABAZE

XMLELEMENT (name ” senso r ” , XMLATTRIBUTES(G. g rav imet r id | | ’ : CPI ’ AS ” id ” )

) ,

XMLELEMENT (name ” senso r ” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ) ,

−− k a l i b r a c n i polynom sroubu

XMLELEMENT (name ”neuron” , XMLATTRIBUTES(G. g rav imet r id | | ’ :

p r e c a l i b r a t i o n ’ AS ” id ” ) ,

−− a b s o l u t n i c l en

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 0 ’ AS ” order ” , ’ pa ’ AS ” id ” ) ) , G.

a jemne ) ,

−− l i n e a r n i c l en

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” , ’ p l ’ AS ” id ” ) ) , G.

b jemne ) ,

−− kvadra t i c ky c l en

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 2 ’ AS ” order ” , ’ pq ’ AS ” id ” ) ) , G.

c jemne ) ,

−− kub icky c l en

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 3 ’ AS ” order ” , ’ pc ’ AS ” id ” ) ) , G.

d jemne ) ,

−− b i kub i c k y c l en

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 4 ’ AS ” order ” , ’ pbq ’ AS ” id ” ) ) , G.

e jemne ) ,

−− per i od i c ka chyba 1

−− cos

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” cos ” , XMLATTRIBUTES(COALESCE(G. f req1 jemne , 0) AS ” f r e q

” , ’ p fc1 ’ AS ” id ” ) ) , COALESCE(G. amp cos1 jemne , 0) ) ,

−− s in

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” s i n ” , XMLATTRIBUTES(COALESCE(G. f req1 jemne , 0) AS ” f r e q ”

, ’ p f s1 ’ AS ” id ” ) ) , COALESCE(G. amp sin1 jemne , 0) ) ,

−− per i od i c ka chyba 2

−− cos

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” cos ” , XMLATTRIBUTES(COALESCE(G. f req2 jemne , 0) AS ” f r e q

” , ’ p fc2 ’ AS ” id ” ) ) , COALESCE(G. amp cos2 jemne , 0) ) ,

−− s in

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” s i n ” , XMLATTRIBUTES(COALESCE(G. f req2 jemne , 0) AS ” f r e q ”

, ’ p f s2 ’ AS ” id ” ) ) , COALESCE(G. amp sin2 jemne , 0) ) ,

−− per i od i c ka chyba 3

−− cos

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” cos ” , XMLATTRIBUTES(COALESCE(G. f req3 jemne , 0) AS ” f r e q

” , ’ p fc3 ’ AS ” id ” ) ) , COALESCE(G. amp cos3 jemne , 0) ) ,

−− s in

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” s i n ” , XMLATTRIBUTES(COALESCE(G. f req3 jemne , 0) AS ” f r e q ”

, ’ p f s3 ’ AS ” id ” ) ) , COALESCE(G. amp sin3 jemne , 0) ) ,

−− per i od i c ka chyba 4

−− cos

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” cos ” , XMLATTRIBUTES( COALESCE(G. f req4 jemne , 0) AS ” f r e q

” , ’ p fc4 ’ AS ” id ” ) ) , COALESCE(G. amp cos4 jemne , 0) ) ,

92

CVUT Praha E. VYSTUPY Z DATABAZE

−− s in

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : z ’ AS ” id ” ) ,

XMLELEMENT(name ” s i n ” , XMLATTRIBUTES(COALESCE(G. f req4 jemne , 0) AS ” f r e q ”

, ’ p f s4 ’ AS ” id ” ) ) , COALESCE(G. amp sin4 jemne , 0) ) ) ,

−− neuron d r i f t

XMLELEMENT (name ”neuron” , XMLATTRIBUTES(G. g rav imet r id | | ’ : d r i f t ’ AS ” id ” ) ,

−− l i n e a r n i

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : time ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” , ’ d l ’ AS ” id ” ) ) , U.

chod1 ) ,

−− kvadra t i c ky

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : time ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 2 ’ AS ” order ” , ’ dq ’ AS ” id ” ) ) , U.

chod2 ) ,

−− kub icky

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : time ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 3 ’ AS ” order ” , ’ dc ’ AS ” id ” ) ) , U.

chod3 ) ,

−− skok

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : time ’ AS ” id ” ) ,

XMLELEMENT(name ”hstep ” , XMLATTRIBUTES(COALESCE( U. cas skoku h , 0) AS ”

o f f s e t ” , ’ s t ep ’ AS ” id ” ) ) , ’ 0 . 1 ’ ) ) ,

−− neuron he i gh t o f f s e t

XMLELEMENT (name ”neuron” , XMLATTRIBUTES(G. g rav imet r id | | ’ : s e n s o r h o f f s e t ’ AS

” id ” ) ,

−− l i n e a r n i

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : s e n s o r h e i gh t ’

AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” , ’ ho l ’ AS ” id ” ) ) , G.

s v i s l a v z d a l e n o s t ) ) ,

−− neuron ka l i b r a c e CPI

XMLELEMENT (name ”neuron” , XMLATTRIBUTES(G. g rav imet r id | | ’ : calCPI ’ AS ” id ” ) ,

−− ep s i l on z gravimetru

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : CPI ’ AS ” id ” ) ,

XMLELEMENT(name ” l i nh s t e p ” , XMLATTRIBUTES( ’ 0 . 0 ’ AS ” o f f s e t ” , ’ xpcpi ’ AS ”

id ” ) ) , COALESCE(G. eps i l on , 0 . 0 ) ) ,

−− ep s i l on z dennich useku

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : CPI ’ AS ” id ” ) ,

XMLELEMENT(name ” l i n h s t e p i ” , XMLATTRIBUTES( ’ 0 . 0 ’ AS ” o f f s e t ” , ’ xmcpi ’ AS ”

id ” ) ) , COALESCE(U. eps i l on , 0 . 0 ) ) ) ,

−− neuron s l oucen i barometr ickeho e fek tu , chodu a ka l i b rovaneho c t en i

XMLELEMENT (name ”neuron” , XMLATTRIBUTES(G. g rav imet r id | | ’ : r e l g ’ AS ” id ” ) ,

−− t l a k

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : p r e s su r e ’ AS ”

id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” , ’ ba r coe f ’ AS ” id ” ) ) , ’

0 .01 ’ ) ,

−− d r i f t

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : d r i f t ’ AS ” id ” )

,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” , ’ d r i f t ’ AS ” id ” ) ) , ’

1 . 0 ’ ) ) ) ,

−− neuron epoch

XMLELEMENT (name ”neuron” , XMLATTRIBUTES( ’ epoch ’ AS ” id ” ) ,

−− casovy o f s e t

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : c l o ck ’ AS ” id ” )

,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 0 ’ AS ” order ” ) ) , COALESCE(U.

posun casu ∗0.04166666666666667 , 0) ) ,

93

CVUT Praha E. VYSTUPY Z DATABAZE

−− datum z h l a v i c k y ve dnech

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : c l o ck ’ AS ” id ” )

,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 0 ’ AS ” order ” ) ) , TO CHAR(U. datum , ’ J

’ ) ) ,

−− korekce hodin na dny

XMLELEMENT (name ” inp” , XMLATTRIBUTES(G. g rav imet r id | | ’ : c l o ck ’ AS ” id ” )

,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” ) ) ,

0 .04166666666666667) ) )

FROM gravimetry . gravimetry G

JOIN useky . denni useky U

ON U. g rav imet r id = G. g rav imet r id

WHERE U. usek id = 20070102 .021 ;

Vysledek dotazu query section.sql

<du id=” 20070102.021 ” name=”HOCHKAR LINE” obse rve r=”LEDERER” t ranspo r t code=”1”

t r a n s p o r t d e s c r i p t i o n=”VWC 4A7 4983”>

<instrument id=”10601068001” name=”LA COSTE G” owner=”ZU PRAHA” va l i d=”2001−07−12

”>

<s enso r id=”10601068001 : c l o c k ”/>

<s enso r id=”10601068001 : s e n s o r h e i g h t ”/>

<s enso r id=”10601068001 :CPI”/>

<s enso r id=”10601068001 : z ”/>

<neuron id=”10601068001 : p r e c a l i b r a t i o n ”>

<inp id=”10601068001 : z ”><pow order=”0” id=”pa”/>5.8795892</ inp>

<inp id=”10601068001 : z ”><pow order=”1” id=” pl ”/>10.1147338</ inp>

<inp id=”10601068001 : z ”><pow order=”2” id=”pq”/>1.9468127 e−05</ inp>

<inp id=”10601068001 : z ”><pow order=”3” id=”pc”/>−2.2152698e−09</ inp>

<inp id=”10601068001 : z ”><pow order=”4” id=”pbq”/>8.2192228 e−14</ inp>

<inp id=”10601068001 : z ”><cos f r e q=”6.28318530717959 ” id=” pfc1 ”/>

6.28318530717959 e−40</ inp>

<inp id=”10601068001 : z ”><s i n f r e q=”6.28318530717959 ” id=” pf s1 ”/>1e−20</ inp>

<inp id=”10601068001 : z ”><cos f r e q=”6.28318530717959 ” id=” pfc2 ”/>0</ inp>

<inp id=”10601068001 : z ”><s i n f r e q=”6.28318530717959 ” id=” pf s2 ”/>0</ inp>

<inp id=”10601068001 : z ”><cos f r e q=”6.28318530717959 ” id=” pfc3 ”/>0</ inp>

<inp id=”10601068001 : z ”><s i n f r e q=”6.28318530717959 ” id=” pf s3 ”/>0</ inp>

<inp id=”10601068001 : z ”><cos f r e q=”6.28318530717959 ” id=” pfc4 ”/>0</ inp>

<inp id=”10601068001 : z ”><s i n f r e q=”6.28318530717959 ” id=” pf s4 ”/>0</ inp>

</neuron>

<neuron id=”10601068001 : d r i f t ”>

<inp id=”10601068001 : t ime ”><pow order=”1” id=” dl ”/></ inp>

<inp id=”10601068001 : t ime ”><pow order=”2” id=”dq”/></ inp>

<inp id=”10601068001 : t ime ”><pow order=”3” id=”dc”/></ inp>

<inp id=”10601068001 : t ime ”><hstep o f f s e t=” 11 .95 ” id=” step ”/>0 .1</ inp>

</neuron>

<neuron id=”10601068001 : s e n s o r h o f f s e t ”>

<inp id=”10601068001 : s e n s o r h e i g h t ”><pow order=”1” id=”hol ”/>−170</ inp>

</neuron>

<neuron id=”10601068001 :ca lCPI ”>

<inp id=”10601068001 :CPI”>< l i n h s t e p o f f s e t=” 0 .0 ” id=”xpcpi ”/>0</ inp>

<inp id=”10601068001 :CPI”>< l i n h s t e p i o f f s e t=” 0 .0 ” id=”xmcpi”/>0</ inp>

</neuron>

<neuron id=”10601068001 : r e l g ”>

<inp id=”10601068001 : p r e s s u r e ”><pow order=”1” id=” barcoe f ”/>0 .01</ inp>

<inp id=”10601068001 : d r i f t ”><pow order=”1” id=” d r i f t ”/>1 .0</ inp>

</neuron>

</ instrument>

94

CVUT Praha E. VYSTUPY Z DATABAZE

<neuron id=”epoch”>

<inp id=”10601068001 : c l o c k ”><pow order=”0”/>0.08333333333333334</ inp>

<inp id=”10601068001 : c l o c k ”><pow order=”0”/>2454240</ inp>

<inp id=”10601068001 : c l o c k ”><pow order=”1”/>0.04166666666666667</ inp>

</neuron>

</du>

(1 row )

E.1.3 query calibration.sql

SELECT XMLELEMENT (name ”obs” , XMLATTRIBUTES(U. u s ek id AS ” id ” ) ,

−− neuron epoch

XMLELEMENT (name ”neuron” , XMLATTRIBUTES( ’ r e l g r av ’ AS ” id ” ) ,

−− r e l g

XMLELEMENT (name ” inp” , XMLATTRIBUTES(U. g rav imet r id | | ’ : r e l g ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” ) ) , ’−1.0 ’ ) ,

−− bod a g r a v i t y

XMLELEMENT (name ” inp” , XMLATTRIBUTES( ’ 0 . ’ | | to char (K. cas hodiny , ’

FM00V99 ’ ) | | ’ : g r av i ty ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” ) ) , ’ 1 . 0 ’ ) ) ,

XMLELEMENT (name ” c l o ck ” , K. cas hodiny ) ,

XMLELEMENT (name ” counter ” , K. c t en i h rube ) , XMLAGG(XMLCONCAT(

XMLELEMENT (name ”CPI” , K. cp i ) ,

XMLELEMENT (name ” screw” , K. c t en i j emne ) ) ) )

FROM useky . denni useky U

JOIN useky . k a l i b r a c e K

ON K. usek id = U. us ek id

WHERE U. usek id = 20090102.002

GROUP BY U. usek id , U. grav imetr id , K. cas hodiny , K. c t en i h rube ;

Vysledek dotazu query calibration.sql

<obs id=” 20090102.002 ”><neuron id=” r e l g r av ”><inp id=”10601068001 : r e l g ”><pow order=

”1”/>−1.0</ inp><inp id=” 0.1488 : g r a v i t y ”><pow order=”1”/>1 .0</ inp></neuron><

c l o ck>14.8833333333333</ c l o ck><counter>4369</ counter><CPI>1</CPI><screw>776</

screw><CPI>287</CPI><screw>676</ screw><CPI>−248</CPI><screw>876</ screw><CPI>5<

/CPI><screw>776</ screw></obs>

<obs id=” 20090102.002 ”><neuron id=” r e l g r av ”><inp id=”10601068001 : r e l g ”><pow order=

”1”/>−1.0</ inp><inp id=” 0.1038 : g r a v i t y ”><pow order=”1”/>1 .0</ inp></neuron><

c l o ck>10.3833333333333</ c l o ck><counter>4369</ counter><CPI>−6</CPI><screw>761</

screw><CPI>272</CPI><screw>661</ screw><CPI>−293</CPI><screw>861</ screw><CPI>

−24</CPI><screw>761</ screw></obs>

(2 rows )

E.1.4 query observation.sql

SELECT XMLELEMENT (name ”obs” , XMLATTRIBUTES(M. meren i id AS ” id ” ) ,

−− neuron epoch

XMLELEMENT (name ”neuron” , XMLATTRIBUTES( ’ r e l g r av ’ AS ” id ” ) ,

−− r e l g

XMLELEMENT (name ” inp” , XMLATTRIBUTES(U. g rav imet r id | | ’ : r e l g ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” ) ) , ’−1.0 ’ ) ,

−− bod a g r a v i t y

XMLELEMENT (name ” inp” , XMLATTRIBUTES(M. bod id | | ’ : g r av i ty ’ AS ” id ” ) ,

XMLELEMENT(name ”pow” , XMLATTRIBUTES( ’ 1 ’ AS ” order ” ) ) , ’ 1 . 0 ’ ) ) ,

XMLELEMENT (name ” c l o ck ” , M. cas ) ,

XMLELEMENT (name ” s en s o r h e i gh t ” , M. vy s k a s t r o j e ∗10 . 0 ) ,

XMLELEMENT (name ” pre s su r e ” , M. t l ak ) ,

95

CVUT Praha E. VYSTUPY Z DATABAZE

XMLELEMENT (name ” counter ” , M. c t en i h rube ) , XMLAGG(XMLCONCAT(

XMLELEMENT (name ”CPI” , C. cp i ) ,

XMLELEMENT (name ” screw” , C. c t en i j emne ) ) ) )

FROM useky . denni useky U

JOIN useky . mereni M

ON M. usek id = U. us ek id

JOIN useky . c t e n i C

ON C. meren i id = M. meren i id

WHERE U. usek id = 20070102.021

GROUP BY M. mereni id , U. grav imetr id , M. bod id , M. cas , M. vy ska s t r o j e , M. t lak , M.

c t en i h rube

ORDER BY M. cas ASC;

Ukazka z vysledku dotazu query observation.sql

<obs id=”9565”>

<neuron id=” r e l g r av ”>

<inp id=”10601068001 : r e l g ”><pow order=”1”/>−1.0</ inp>

<inp id=” 8091.00 : g r a v i t y ”><pow order=”1”/>1 .0</ inp>

</neuron>

<c l o ck>9.13333333333333</ c l o ck>

<s en s o r h e i gh t>272.999992370605</ s en s o r h e i gh t>

<pre s su r e>95 .7</ pr e s su r e>

<counter>4159</ counter><CPI>2</CPI><screw>720</ screw><CPI>9</CPI><screw>720</

screw><CPI>8</CPI><screw>720</ screw>

</obs>

<obs id=”9566”>

<neuron id=” r e l g r av ”>

<inp id=”10601068001 : r e l g ”><pow order=”1”/>−1.0</ inp>

<inp id=” 8092.00 : g r a v i t y ”><pow order=”1”/>1 .0</ inp>

</neuron>

<c l o ck>9.61666666666667</ c l o ck>

<s en s o r h e i gh t>273.999996185303</ s en s o r h e i gh t>

<pre s su r e>93 .8</ pr e s su r e>

<counter>4119</ counter><CPI>24</CPI><screw>270</ screw><CPI>−2</CPI><screw>260</

screw><CPI>0</CPI><screw>260</ screw>

</obs>

<obs id=”9567”>

<neuron id=” r e l g r av ”>

<inp id=”10601068001 : r e l g ”><pow order=”1”/>−1.0</ inp>

<inp id=” 8093.00 : g r a v i t y ”><pow order=”1”/>1 .0</ inp>

</neuron>

<c l o ck>10</ c l o ck>

<s en s o r h e i gh t>272.000007629395</ s en s o r h e i gh t>

<pre s su r e>89 .1</ pr e s su r e>

<counter>4035</ counter><CPI>10</CPI><screw>117</ screw><CPI>−12</CPI><screw>110</

screw><CPI>−10</CPI><screw>110</ screw>

</obs>

<obs id=”9568”>

. . .

E.2 Vystupy pro program Surfer

E.2.1 Funkce get points(point id)

DROP FUNCTION pub l i c . g e t p o i n t s ( p o i n t i d numeric ( 6 , 2 ) ) ;

CREATE OR REPLACE FUNCTION pub l i c . g e t p o i n t s ( p o i n t i d numeric ( 6 , 2 ) ) RETURNS text

AS $$

96

CVUT Praha E. VYSTUPY Z DATABAZE

DECLARE

point record ;

t ext output text := ’ ’ ;

BEGIN

FOR point IN EXECUTE ’SELECT CAST(BZ. bod id AS text ) , COALESCE(CAST(BS .

d e l k a e t r s 8 9 AS text ) , ’ ’ not found ’ ’ ) AS de lka e t r s 89 , ’ | | ’ COALESCE(

CAST(BS . s i r k a e t r s 8 9 AS text ) , ’ ’ notfound ’ ’ ) AS s i r k a e t r s 8 9 , ’ | | ’

COALESCE (BSI . s i t95 kod , ’ ’ 99 ’ ’ ) AS t r i d a ’

| | ’ FROM body zakladni BZ ’

| | ’ JOIN body souradnice BS ’

| | ’ ON BS . bod id = BZ. bod id ’

| | ’ JOIN body s i t e BSI ’

| | ’ ON BSI . bod id = BZ. bod id ’

| | ’ WHERE BZ. bod id = ’ | | po i n t i d

| | ’ GROUP BY BZ. bod id , d e l ka e t r s 89 , s i r k a e t r s 8 9 , t r i d a ’

| | ’ ORDER BY BZ. bod id ; ’

LOOP

text output := text output | | point . bod id | | E ’ \ t ’ ;

t ex t output := text output | | point . d e l k a e t r s 8 9 | | E ’ \ t ’ | | point .

s i r k a e t r s 8 9 ;

t ex t output := text output | | E ’ \ t ’ | | point . t r i d a ;

END LOOP;

RETURN text output ;

END;

$$ LANGUAGE p lpg sq l ;

E.2.2 Funkce get polygons(usek id)

DROP FUNCTION pub l i c . g e t po lygons ( s e c t i o n i d numeric (11 ,3 ) ) ;

CREATE OR REPLACE FUNCTION pub l i c . g e t po lygons ( s e c t i o n i d numeric (11 ,3 ) ) RETURNS

text AS $$

DECLARE

polygon record ;

t ext output text ;

pocet bodu integer ;

BEGIN

SELECT SUM(V. pocet )

INTO pocet bodu

FROM (

SELECT (COUNT( DISTINCT CAST(BS . s i r k a e t r s 8 9 AS t ex t ) | | CAST( BS .

d e l k a e t r s 8 9 AS t ex t ) ) ) AS pocet

FROM useky . mereni M

JOIN useky . denni useky U

ON U. usek id = M. usek id

JOIN body souradnice BS

ON BS . bod id = M. bod id

WHERE U. usek id = s e c t i o n i d

GROUP BY BS . s i r k a e t r s 8 9 , BS . d e l k a e t r s 8 9 ) V;

IF pocet bodu > 1 THEN

t ext output := CAST( pocet bodu AS t ex t ) | | E ’ \n ’ ;

FOR polygon IN EXECUTE ’SELECT COALESCE(CAST(BS . d e l k a e t r s 8 9 AS text ) , ’ ’ not

found ’ ’ ) AS de lka e t r s 89 , ’ | | ’ COALESCE( CAST(BS . s i r k a e t r s 8 9 AS text

) , ’ ’ notfound ’ ’ ) AS s i r k a e t r s 8 9 ’

| | ’ FROM body zakladni BZ ’

| | ’ JOIN body souradnice BS ’

| | ’ ON BS . bod id = BZ. bod id ’

| | ’ JOIN useky . mereni M’

| | ’ ON M. bod id = BZ. bod id ’

97

CVUT Praha E. VYSTUPY Z DATABAZE

| | ’ JOIN useky . denni useky U ’

| | ’ ON U. us ek id = M. usek id ’

| | ’ WHERE U. usek id = ’ | | s e c t i o n i d

| | ’ GROUP BY BS . de l ka e t r s 89 , BS . s i r k a e t r s 8 9 ’

| | ’ ORDER BY MIN(M. cas ) ; ’

LOOP

text output := text output | | polygon . d e l k a e t r s 8 9 | | E ’ \ t ’ | |polygon . s i r k a e t r s 8 9 | | E ’ \n ’ ;

END LOOP;

RETURN text output ;

ELSE

RETURN NULL;

END IF ;

END;

$$ LANGUAGE p lpg sq l ;

E.3 Tvorba statistik

E.3.1 Skript get index

#!/ bin /bash

napoveda=”\ nSkr ipt pro vytvoren i seznamu i d e n t i f i k a t o r u dennich useku v databaz i

pro dane soubory rovn i c oprav nebo adjustovanych zapi sn iku , k t e r e j sou obsazeny

v zadanem ad r e s a r i nebo jeho podadresar i ch .\n\n”

napoveda=$napoveda”Prepinace − prvni argumenty sk r i p tu j e mozne z v o l i t bud −a nebo

−r : \n\n”

napoveda=$napoveda”\ t−a\ t adre sa r s adjustovanymi zaps inky \n”

napoveda=$napoveda”\ t−r \ t adre sa r s rovnicemi oprav \n”

napoveda=$napoveda”\nNasleduje zadani c e s ty k danemu ad r e s a r i ”

napoveda=$napoveda” Pr ik lad pou z i t i : \n\n”

napoveda=$napoveda”\ t . / ge t index . sh −r Rovopr/Klet /\n\n”

#napoveda=$napoveda”\ t−h\ t z o b ra z i tu to napovedu \n”

op t s t r=a : r : h

while getopts $opt s t r var

do

case $var in

a ) maska=” ˆ . ∗ ( (AZ) 1 | ( az ) 1) ( [0−9]6) \ . ( [ 0 −9 ]3 ) $” ; adre sa r=$OPTARG ; ;

r ) maska=” ˆ . ∗ ( (R) 1 | ( r ) 1) ( [1−3]1) ( [0−9]6) \ . ( [ 0 −9 ]3 ) $” ; adre sa r=$OPTARG

; ;

h) echo −ne $napoveda ; exit ; ;

e sac

done

shi f t $ ( ( $OPTIND − 1 ) )

i f [ $adresar −a −d $adresar ] ; then

seznam=””

for f i l e in $ ( f i nd $adresar −depth −regextype posix−egrep −type f − i r e g ex

$maska )

do

nazev=”$ f i l e : −10:10”rok=”$nazev : 0 :2 ”

i f [ $rok −gt 30 ] ; then

seznam=”$seznam 19$nazev ,\n”

e l i f [ $rok −ge 0 ] ; then

seznam=”$seznam 20$nazev ,\n”

f i

98

CVUT Praha E. VYSTUPY Z DATABAZE

done

echo −ne $seznam | s o r t | uniq

else

echo ”Neplatny nazev adre sa r e s adjustovanymi zap i sn iky . ”

f i

E.3.2 Cetnost merenı na bodech

SQL dotaz:

SELECT M. bod id , COALESCE(BS . de l ka e t r s 89 , −1) AS delka , COALESCE(BS . s i r k a e t r s 8 9 ,

−1) AS s i rka , ’ 12 ’ AS kod , COUNT(M. bod id ) AS pocet

FROM useky . denni useky U

JOIN useky . mereni M

ON M. usek id = U. us ek id

JOIN body souradnice BS

ON BS . bod id = M. bod id

JOIN body zak ladni BZ

ON BZ. bod id = M. bod id

JOIN gravimetry . gravimetry G

ON G. grav imet r id = U. g rav imet r id

WHERE BZ. s t a t i d = 1 AND G. typ NOT IN (1 , 11 ) ANDEXTRACT (YEARFROM(U. datum) ) <

1995 AND U. usek id IN (

19720101.001 ,

. . .

20100102.059

)

GROUP BY M. bod id , d e l ka e t r s 89 , s i r k a e t r s 8 9

ORDER BY pocet DESC;

Vysledek dotazu:

bod id | delka | s i r k a | kod | pocet

−−−−−−−−−+−−−−−−−−−−−+−−−−−−−−−−−+−−−−−+−−−−−−−2019.00 | 14.519811 | 49.067586 | 12 | 1083

272 .01 | 14.469508 | 50.015875 | 12 | 959

271 .00 | 14.387353 | 50.231621 | 12 | 735

2017.00 | 14.719577 | 49.226034 | 12 | 594

2020.00 | 14.470703 | 48.972465 | 12 | 593

2022.00 | 14.455623 | 48.86276 | 12 | 575

2009.00 | 14.252261 | 50.364812 | 12 | 564

2014.01 | 14.643605 | 49.638589 | 12 | 523

2008.00 | 14.151709 | 50.51097 | 12 | 523

. . .

E.3.3 Pocet zmerenych dennıch useku s danym poctem bodu

SQL dotaz:

SELECT V. pocet , COUNT(V. u s ek id ) AS c e tno s t

FROM (

SELECT U. usek id AS usek id , (COUNT( DISTINCT CAST(BS . s i r k a e t r s 8 9 AS t ex t ) | |CAST( BS . d e l k a e t r s 8 9 AS t ex t ) ) ) AS pocet

FROM useky . mereni M

JOIN useky . denni useky U

ON U. usek id = M. usek id

JOIN body souradnice BS

ON BS . bod id = M. bod id

99

CVUT Praha E. VYSTUPY Z DATABAZE

JOIN gravimetry . gravimetry G

ON G. grav imet r id = U. g rav imet r id

WHERE G. typ NOT IN (1 , 11 ) ANDEXTRACT (YEARFROM(U. datum) ) < 1995 AND U.

usek id IN (

19720101.001 ,

. . .

20100102.059

)

GROUP BY U. usek id , U. datum

) V

GROUP BY V. pocet

ORDER BY V. pocet ;

Vysledek dotazu:

pocet | c e tno s t

−−−−−−−+−−−−−−−−−1 | 6

2 | 1071

3 | 1376

4 | 572

5 | 423

6 | 131

7 | 103

8 | 10

9 | 9

10 | 2

(10 rows )

E.4 Graficke znazornenı v programu Surfer

100

CVUT Praha E. VYSTUPY Z DATABAZE

12

°1

14°

15

°16°

17

°1

19°

20

°2

22°

48

°

49

°

50

°

51

°

52

°

27

27

.5

29

79

79

.5

80

83

83

.5

87

11

1

11

2

11

31

13

.01

11

4

11

5

11

6

11

71

17

.01

11

81

18

.01 1

19

11

9.0

1

12

01

21

12

1.0

1

12

2

12

31

23

.01

17

1

17

2

17

31

73

.5

17

4

17

51

75

.11

75

.21

75

.3

27

0

27

1 27

2.0

127

3

27

4 27

5

27

6

27

9

40

24

02

.1

40

64

06

.1

84

4

90

09

01

90

29

03

90

49

05

90

69

06

.01

90

79

08

90

9 91

09

11

91

2

91

39

14

91

5

93

1 93

2

93

3

93

4

93

59

36

93

6.0

19

36

.02

93

7

93

8

93

9

17

10

17

11

17

12

17

13

17

14

17

15

17

16

17

17

17

21

17

22

17

23

17

23

.01

17

24

.01

17

25 1

72

6.0

11

72

7

17

30

17

31

.01

17

32

17

33

17

34

17

35

17

36

17

36

.01

17

37

17

51

17

52

17

52

.01

17

53

17

53

.01

20

03

.01

20

04

20

06

20

07

20

07

.12

00

8 20

09

20

10 20

11

.01

20

11

.02

20

12

20

12

.01

20

13

20

13

.01

20

14

20

14

.01

20

15

20

16

20

17

20

18

20

19

20

20

20

21

20

22

20

23

.01

20

24

20

24

.1

20

26

20

26

.01

20

27

20

27

.01

20

28

20

28

.01

20

29

20

30

20

30

.01

20

31

20

32

20

33

20

34

20

34

.01

20

35

20

36

20

37

20

41

20

42 2

04

3

20

44

20

45

20

46

20

47

20

48 20

49

20

49

.01 20

50

20

50

.01

20

51

20

52

20

52

.01

20

53

20

54

20

55

20

7120

72

20

72

.01

20

73

20

74

20

74

.01

20

75

20

76

20

76

.01

20

77

20

78

20

78

.01

20

79

20

98

20

99

27

70

27

71

27

72

27

73

27

74

27

75

27

7627

77

27

78

27

83

27

84

27

85 2

78

6

27

92 2

79

3

27

94

30

02

30

04

.01

30

04

.02

30

07

.23

00

7.2

13

00

7.9

9

30

09

30

09

.43

00

9.5

30

11

.01

30

12

.1

30

16

30

51

.02

30

53

.01

30

54

.01

30

55

.01

30

56

.01

30

57

.02

30

58

30

58

.01

30

61

30

62

30

71

.01

30

72

.02

30

73

.01

30

74

.01

30

75

.01

30

75

.99

30

77

.01

30

78

.01

30

79

.01

30

80

.02

30

80

.99

30

81

.02

30

81

.98

30

81

.99

30

90

30

92

30

93

.02

30

94

.01

30

95

.01

30

96

.01

30

97

30

98

.01

30

99

.01

31

00

.01

31

01

.02 31

02

.02

31

03

.01

31

04

.02

31

05

.01 3

10

6.0

13

10

7.0

1 31

08

31

09

31

10

31

20

31

21

.02

31

22

.01

31

23

.01

31

24

.01

31

25

.01

31

26

.01

31

27

.01

31

28

.01

31

29

.01

31

30

.01

31

30

.02

31

31

.02

31

32

.02 3

13

3.0

13

13

4.0

13

13

5.0

1

31

36

.01

31

37

.0131

38

.01

31

39

.02

31

40

.01

31

41

.01

31

52

31

52

.01

31

53

.02 3

15

4.0

1

31

55

.01

31

55

.99

31

56

.02

31

57

.01

31

58

.01

31

58

.99

31

59

.02

31

60

.01

31

61

.01

31

62

31

63

.02

31

64 31

65

.02

31

67

.01

31

68

31

68

.99

31

70

31

81

.01

31

82

.01

31

83

.02

31

84

.01

31

85

.01

31

86

.01

31

87

.01

31

89

31

90

32

01

.02

32

02

.01

32

03

.01

32

04

.01 32

06

.01

32

07

.02

32

08

.01

32

09

.01

32

10

.01

32

11

.01

32

12

.01

32

13

.01

32

14

.01

32

16

.01 32

17

.01

32

18

32

19

.01

32

24

32

33

.01

32

34

.01

32

35

32

35

.01

32

37

.01

32

38

.023

23

9.0

1

32

40

.02

32

41

.01

32

42

.01

32

43

32

44

.01

32

45

.01

32

48

32

61

.02

32

62

.01

32

63

.02

32

64

.02 32

65

.01

32

66

32

66

.01

32

67

.02

32

68

.01

32

69

.01

32

71

.02

32

72

.01

32

76

.01

32

77

.02

32

78

.01

32

79

32

80

.01

32

81

.01

32

82

.01

32

83

.01

32

91

.01

32

92

32

93

.01

32

94

.01

32

95

.01

32

96

.01

32

97

.02 3

29

9

33

00

33

01

33

11

.013

31

2.0

23

31

3.0

1

33

14

.02

33

15

.01

33

16

.013

31

7.0

1

33

18

.01

33

19

.01

33

20

.01

33

21

.01

33

22

.01

33

23

.01

33

24

.01 3

32

5.0

1

33

26

.02

33

27

.01

33

28

.01 3

32

9.0

233

30

.01

33

31

.01

33

32

.01

33

33

.01

33

34

33

41

.013

34

2.0

133

43

.01

33

44

.02

33

45

.01

33

46

.02

33

47

.02

33

48

.01

33

49

.01

33

50

.01

33

51

.01 3

35

2.0

13

35

3.0

13

35

4.0

33

35

5.0

13

35

6.0

1

33

57

.01

33

58

.0233

59

.01 33

60

.01

33

61

33

62

33

71

.01

33

72

.01

33

73

.01

33

74

.01

33

75

.01

33

76

.01

33

77

.01

33

78

.01

33

79

.01

33

80

.013

38

1.0

1

33

82

.01

33

83

.01

33

84

.01

33

85

.023

38

6.0

1

33

87

.01

34

01

.01 3

40

2.0

2

34

03

.02

34

04

.02

34

05

.01

34

06

.02

34

07

.01

34

08

.01

34

09

.02

34

10

.01 34

11

.013

41

2.0

1 34

13

.01

34

16

34

21

.02 3

42

2.0

1

34

23

.01

34

24

34

25

.01

34

25

.02

34

26

.01

34

27

.01 3

42

8.0

1

34

29

.01

34

30

.01

34

31

.01

34

32

.01

34

33

.01

34

34

.01

34

35

.01

34

36

.01

34

37

.01

34

38

.01

34

393

44

0.0

1

34

41

.013

44

2.0

134

43

.01 34

44

.01

34

51

34

51

.01

34

52

.01

34

53

.013

45

4.0

13

45

5

34

56

.01

34

5834

59

.02 34

60

.01

34

61

.01

34

62

.01

34

63

.01

34

64

.01

34

65

.01

34

66

.01

34

67

.01

34

68

.01

34

69

34

81

.02

34

82

.01

34

83

.01

34

84

.01

34

85

.01

34

87

.02

34

88

.01

34

89

.01

34

90

.01

34

91

.02

34

92

.013

49

3.0

1

34

95

.01

34

97

.01

35

01

.01

35

02

.01 35

03

.01 3

50

4.0

135

05

.01

35

06

.01

35

07

.02

35

08

.02

35

09

.01

35

10

.01

35

11

.0135

12

.01

35

13

.01

35

15

.01

35

16

.01

35

17

.0235

18

.01

35

19

.01

35

20

.013

52

1.0

13

52

2.0

1

35

23

.01

35

24

.01

35

25

.01

35

26

.01

35

27

35

31

.01

35

32

35

33

.01

35

34

.01

35

35

35

36

.01

35

37

.02 3

53

8.0

1

35

39

.01

35

40

35

41

.01

35

42

35

42

.01

35

43

.01

35

44

.01

35

45

.01 35

46

.013

54

7.0

1

35

48

.01

35

49

.01

35

50

.01

35

51

.01

35

52

.01

35

53

.01

35

54

.02

35

61

.013

56

2.0

13

56

3.0

1 35

64

.01

35

65

.01

35

66

.01

35

67

.01

35

68

.0135

69

.01

35

70

.01

35

71

.02

35

72

.01

35

73

.01

35

74

.01

35

75

.01

35

76

.01

35

77

.01

35

78

.01

35

79

.02

35

80

.01 3

58

1.0

23

58

1.0

3

35

91

.01

35

92

.02

35

93

.013

59

4.0

1

36

01

.01

36

02

.01

36

03

.01

36

04

.01

36

05

.01 36

06

.0136

07

.02

36

08

.01

36

09

.01

36

10

.01

36

11

.02

36

12

.01

36

13

.013

61

4.0

2

36

15

.023

61

6.0

13

61

7.0

2

36

18

36

19

.01

36

21

.01

36

22

.0136

23

.01

36

24

36

26

36

27

36

32

.0136

33

.01

36

34

.01

36

38 3

63

9.0

13

64

0.0

1

36

43

.02

36

63

.02

36

71

.01

36

71

.02

36

91

.01

36

93

.01

60

01

60

02

60

03

60

04

60

05

60

06

60

07

60

08

60

09

60

10

70

15

71

01

71

03

80

01

81

01

81

01

.5

81

02

81

03

81

04

81

05 81

06 81

07

81

08

81

09

81

10

81

15

81

15

.5

81

18

81

19

81

19

.5

81

20

81

21

81

27

Obra

zek

E.1

:G

rafick

ezn

azor

nen

ıden

nıc

huse

ku

zam

eren

ych

do

roku

1994

101


Recommended