2009 02 Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map [Grafika]

background image

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

36

luty 2009

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

37

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

Digitalizacja rysunków,

wykresów i map

Rozpowszechnianie grafik, map oraz rysunków technicznych w postaci elektronicznej staje się
coraz powszechniejszą praktyką. Drukowane wykresy lub mapy nie trafią zapewne do lamusa, ale
z pewnością stracą na znaczeniu. Poza tym, papierowe dokumenty i mapy mają jedną istotną wadę
– trudno poddać je powtórnej obróbce, a informacje na nich zapisane zgromadzić w bazach danych.

Paweł Wolniewicz

J

eśli zechcemy zdigitalizować jakiekolwiek dru-
kowane rysunki, to konieczne okaże się uży-
cie skanera, a następnie import grafiki do pro-
gramu takiego jak Inkscape oraz jej wektoryza-

cja. Po zakończeniu tego procesu otrzymamy plik, któ-
ry będziemy mogli poddawać wielokrotnej edycji. Mimo
to wykonanie pomiarów na grafice (mapie, rysunku tech-
nicznym), a także odczytanie odległości i kątów, sprawi
nam zapewne sporo problemów. Możemy jednak sięgnąć
po specjalistyczne narzędzie, które umożliwi wykonanie
niezbędnych pomiarów na zdigitalizowanym obrazie, a
następnie eksport wyników do baz danych, arkuszy kal-
kulacyjnych i innych programów. Tym narzędziem jest
Engauge Digitizer.

W jakich konkretnych sytuacjach może przydać się

wspomniane oprogramowanie? Zastosowań jest sporo
– część z nich została wymieniona na stronie domowej En-
gauge Digitizera. Po pierwsze, możemy dysponować wy-
kresami zapisanymi w formatach rastrowych lub wydruko-
wanych na papierze. Engauge Digitizer umożliwi nam di-
gitalizację znajdujących się na nich informacji. W efekcie
uzyskamy dane liczbowe, które pozwolą nam na odtworze-

nie wykresu w dowolnym arkuszu kalkulacyjnym, a także
na zmianę zawartych w nim danych.

Zastosowane przez nas oprogramowanie poradzi sobie

nie tylko z prostymi wykresami bądź histogramami, ale też
z bardziej skomplikowanymi rysunkami technicznymi. Zdi-
gitalizowane dane będziemy mogli zapisać w formacie CSV,
następnie odczytać za pomocą arkusza kalkulacyjnego, opro-
gramowania matematycznego lub statystycznego, a także za-
chować w bazie danych.

Innym ważnym polem, na którym Engauge Digitizer

świetnie się sprawdza, jest gromadzenie informacji pocho-
dzących z papierowych map. Dzisiaj dostępne są zarówno
komercyjne, cyfrowe mapy, jak i darmowe ich odpowiedni-
ki, takie jak dobrze znany serwis Google Maps oraz otwar-
ty projekt OpenStreetMap (http://www.openstreetmap.org/).
Mimo to często nie oferują one takiej dokładności, jak papie-
rowe mapy topograficzne. W efekcie digitalizacja może oka-
zać się bardzo przydatna, zwłaszcza jeśli jesteśmy zapalony-
mi turystami pieszymi, cyklistami lub spędzamy wolny czas
trenując biegi na orientację.

W tym artykule zapoznamy się z kilkoma najbar-

dziej ważnymi zastosowaniami programu Engauge Digi-

background image

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

36

luty 2009

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

37

www.lpmagazine.org

tizer. Zaczniemy od digitalizowania map, a
następnie odczytamy dane zapisane na dru-
kowanych wykresach oraz rysunkach tech-
nicznych.

Instalacja Engauge Digitizera

Engauge Digitizer jest programem wieloplat-
formowym, dostępnym zarówno w postaci
kodu źródłowego, jak i binariów. W portalu
Sourceforge znaleźć możemy pakiety zawie-
rające najnowszą wersję aplikacji. Dostępne
są binaria zarówno dla Linuksa, jak i Win-
dows, a także kod źródłowy. Instalacja bina-
riów nie sprawia żadnego problemu. Wystar-
czy rozpakować pobrane archiwum, wejść
do podkatalogu engauge i wydać polecenie
./engauge. Posiadanie praw administratora
nie jest konieczne.

Program korzysta z bibliotek Qt 3. Obec-

nie deweloperzy aplikacji pracują nad przepro-
gramowaniem jej interfejsu tak, by był on opar-
ty na Qt 4.x. Jeśli zdecydujemy się na ręczną
kompilację programu, to wymagane będą nie
tylko biblioteki Qt 3, ale także FFTW w wer-
sji co najmniej 3.1.2. Potrzebne pakiety znaleźć
można w większości dystrybucji. Kompilacja
wymaga wydania dwóch poleceń:

qmake di-

gitizer.pro

, a następnie

make

. W efekcie po-

winniśmy otrzymać gotowe do uruchomienia
binaria. Program nie posiada żadnych dodatko-
wych bibliotek, które powinny zostać umiesz-
czone w ściśle określonym miejscu w struktu-
rze plików. Wystarczy uruchomić skompilowa-
ne binaria poleceniem

./engauge

.

Razem z Engauge Digitizerem rozpo-

wszechniane są przykładowe grafiki oraz do-
kumentacja w formacie HTML. Pliki JPG /
PNG / BMP zawierające skany testowych do-
kumentów (wykresów) znajdują się w pod-
katalogu samples. Dokumentację znajdzie-
my natomiast w folderze usermanual. Nale-
ży otworzyć plik index.html, z poziomu któ-
rego uzyskujemy dostęp do kilku przykła-
dów zastosowania programu, a także odpo-
wiedzi na kilkanaście najważniejszych py-
tań związanych z korzystaniem z aplikacji.
Dokumentacja dostępna jest jedynie w języ-
ku angielskim.

Warto obejrzeć przykładowe pliki rozpo-

wszechniane razem z Engauge Digitizerem.

Dzięki temu zorientujemy się, jakiego rodza-
ju materiały (i jakiej jakości) można przetwa-
rzać w tym programie. Pracę warto jednak
rozpocząć już na własnych plikach. W tym ce-
lu konieczny będzie skaner, który wykorzysta-
my do digitalizacji wykresów, rysunków tech-
nicznych i map. Parametry techniczne takie-
go urządzenia nie muszą być wyśrubowane.
W wielu przypadkach wystarczy zastosowa-
nie rozdzielczości rzędu 300 dpi. Warto sko-
rygować ustawienia kontraktu oraz jasności,
ale nie do przesady. Engauge Digitizer radzi
sobie z plikami zawierającymi tło, więc jego
usuwanie za pomocą GIMP-a nie jest koniecz-
ne. Wyjściowy plik warto zapisać w formacie
PNG, gdyż dzięki temu zaoszczędzimy nieco
miejsca na dysku. Program rozpoznaje rów-
nież dokumenty BMP, GIF oraz JPG, a tak-
że PNM i XPM.

Podczas skanowania starajmy się korzy-

stać z trybu kolorowego, nie redukując obra-
zu do odcieni szarości. W trakcie pracy z mapa-
mi jest to oczywiste, jednak również przetwa-
rzając rysunki techniczne i monochromatycz-
ne wykresy nie trzeba konieczne dostosowy-
wać do nich ustawień posiadanego przez nas
urządzenia.

W pracy z Engauge Digitizerem dobrze

sprawdzają się tanie skanery biurkowe A4. Au-
tor korzysta z modelu Epson Perfection V200
Photo, którego producent dostarcza sterowniki
dla Linuksa (pakiet Iscan). Skaner ten digitali-
zuje również przezrocza.

Zapisane przez nas pliki graficzne otwie-

ramy w programie Engauge Digitizer, wyda-
jąc w tym celu polecenie Import z menu Fi-
le
lub klikając ikonę Import File (pierwsza
z lewej strony na pasku w górnej części in-
terfejsu). Zeskanowany obraz pojawia się w
oknie Engauge Digitizera. Zauważmy jed-
nak, że nie jest to oryginalny plik graficz-
ny. Program domyślnie stara się bowiem bi-
naryzować obraz, czyli oddzielić jego treść
od tła. Istotne informacje zaznaczone są ko-

lorem czarnym, szum – białym. Jeżeli wyniki
pracy Engauge Digitizera nie są naszym zda-
niem zadowalające, to możemy przywrócić
oryginalny obraz poleceniem Original Ima-
ge
z menu View.

Program z reguły radzi sobie dobrze z wy-

kresami, poprawnie odróżniając treść od tła.
Przetworzenie grafiki może pogorszyć nieco
jakość tekstu (podpisów, cyfr na osiach współ-
rzędnych), jednak sporo zależy też od oryginal-
nego skanu oraz stosowanych czcionek. Trochę
trudniejsza jest praca z mapami. Jeśli przetwo-
rzony obraz jest nieczytelny, to powinniśmy za-
znaczyć opcję View –> Original Image. Nie
utrudni nam to dalszej pracy ze skanem.

Digitalizacja map

Naszą przygodę z Engauge Digitizerem za-
czniemy właśnie od analizowania map i pla-
nów. Ich papierowe wersje wciąż są nierzadko
o wiele wyższej jakości niż elektroniczne od-
powiedniki dostarczane razem z urządzeniami
GPS i dostępne w Internecie. Dlatego też prze-
niesienie do komputera przynajmniej części z
naszej analogowej kolekcji map może się oka-
zać konieczne.

Szczególnie przydatne są mapy topogra-

ficzne w dużej skali. Umożliwiają one doko-
nanie bardzo precyzyjnych pomiarów odle-
głości i powierzchni. W pracy z papierowy-
mi mapami niezbędna okaże się dobra linij-
ka i kalkulator, a i tak nie uda nam się uzy-
skać dokładnych rezultatów, zwłaszcza w
przypadku analizy linii łamanych oraz krzy-
wych.

Zeskanowaną mapę lub plan zaimpor-

tujmy zatem do programu Engauge Digiti-
zer. W razie potrzeby włączmy opcję Origi-
nal Image. Pracę z mapą powinniśmy rozpo-

Rysunek 1.

Engauge Digitizer analizuje ładowane

grafiki, odróżniając tło od właściwych danych

Rysunek 2.

Fragment mapy z rozpoznanymi przez

program zarysami poziomic

Rysunek 3.

Okno Discretize pozwala na filtrowanie

obrazu i usuwanie z niego niepotrzebnych informacji

background image

38

luty 2009

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

39

www.lpmagazine.org

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

cząć od ustalenia jej skali. Dzięki temu bę-
dziemy mogli precyzyjnie wykonać wszyst-
kie potrzebne pomiary. W celu ustalenia ska-
li kliknijmy ikonę Scale Bar. Następnie za-
znaczmy na mapie dwa punkty znajdujące
się w dokładnie znanej nam odległości w li-
nii prostej. W tym celu warto podczas ska-
nowania mapy objąć także podziałkę milime-
trową wydrukowaną na niej razem z legendą.
W przypadku planów geodezyjnych będzie-
my również prawdopodobnie znali odległo-
ści pomiędzy wybranymi punktami pomiaro-
wymi (tak zwanymi reperami). Takie infor-
macje też okażą się bardzo przydatne. Klik-
nijmy myszą jeden z punktów, a następnie
przeciągnijmy kursor, cały czas przytrzymu-
jąc wciśnięty prawy przycisk, do końca od-
cinka o ustalonej odległości. Na ekranie poja-
wi się niewielkie okienko Scale Bar, pozwa-
lające nam na wprowadzenie długości testo-

wej linii. Wpiszmy właściwą wartość. Jed-
nostki nie są istotne, możliwe jest stosowanie
metrów, kilometrów, a nawet mil, w zależno-
ści od potrzeb.

Teraz możemy rozpocząć pomiary. Wy-

dajmy polecenie Digitize –> Measure Point.
Następnie zaznaczmy łamaną, której dłu-
gość zamierzamy pomierzyć. Może to być
trasa, którą przebiegliśmy na treningu, prze-
mierzyliśmy na spacerze bądź przejechali-
śmy na rowerze, a także obwód terenu, któ-
rego powierzchnię usiłujemy ustalić. Zasto-
sowań Engauge Digitizera jest sporo, wie-
le zależy od indywidualnych potrzeb użyt-
kownika.

Trasę wprowadzamy klikając kolejne, w

miarę blisko siebie położone, punkty. Pro-
gram połączy je automatycznie, wykonując
przy tym pomiary odległości. Ostatni punkt
może pokrywać się z pierwszym – obliczo-

ne zostanie wówczas także pole zamknię-
te oznaczoną ścieżką. Pomiary wykonane
przez Engauge znaleźć można w okienku
Measure Geometry, otwieranym po wydaniu
polecenia View –> Measure Geometry Info.
Ujrzymy w nim prosty arkusz kalkulacyjny.
W wierszach umieszczone są informacje do-
tyczące kolejnych punktów pomiarowych
– ich współrzędne oraz odległości pomię-
dzy nimi. Pierwsze dwie kolumny określają
lokalizację zaznaczonych miejsc w układzie
kartezjańskim (osie X i Y). Kolejna zawiera
numery punktów. Następne cztery kolumny
określają odległości pomiędzy wskazanymi
miejscami na krzywej, pomierzone w usta-
lonych przez nas jednostkach. Dodatkowo
wyświetlane są również wartości procento-
we. Wskazują nam one, jaki fragment całej
trasy stanowi każdy z pomierzonych odcin-
ków. Pomiary wykonywane są w dwóch kie-
runkach, stąd też dane liczbowe zajmują aż
cztery kolumny.

Ostatnia informacja zawarta w arkuszu do-

tyczy kątów (azymutów) pomiędzy kolejnymi
odcinkami. Ponadto w nagłówku tabeli zna-
leźć można powierzchnię zamkniętą wyzna-
czoną przez nas krzywą. Wszystkie pomiary
zostały automatycznie przeliczone na ustalone
przez nas jednostki. Jeśli wcześniej nie zdefi-
niowaliśmy skali, to wyniki podane zostaną w
pikselach.

Eksport danych

do arkusza kalkulacyjnego

Dane znajdujące się w oknie Measure Geo-
metry
można zachować, zaznaczając je my-
szą i wciskając kombinację klawiszy [Ctr-
l
]+[C]. Następnie, jeśli korzystamy z pa-
kietu biurowego OpenOffice.org, to utwórz-
my w nim pusty arkusz kalkulacyjny i naci-
śnijmy [Ctrl]+[V]. W okienku Import tekstu
uaktywnijmy Opcje separatora jako Roz-
dzielony
, a następnie wskażmy kratkę Ta-
bulator
. U dołu okienka cały czas widocz-
ny jest podgląd importowanych danych. Je-
żeli efekt nas zadowala, kliknijmy OK. Po-
miary wykonane w programie Engauge Di-
gitizer pojawią się w arkuszu kalkulacyjnym
OpenOffice.org.

Warto jeszcze zachować mapę wraz z na-

niesionymi trajektoriami i punktami. W tym
celu kliknijmy ikonę Save. Program umożli-
wi nam zachowanie wszystkich danych w jego
własnym formacie *.dig.

W niektórych sytuacjach samo doko-

nanie pomiarów może nam nie wystarczać.
Czasami możemy również zechcieć zdigitali-
zować mapę do postaci wektorowej, odfiltro-
wując część informacji i pozostawiając tyl-

Rysunek 5.

Program rozpoznał krzywą znajdującą się na wykresie i odczytał wartości kilkudziesięciu punktów

Rysunek 4.

Wykorzystany wykres z danymi z serwisu Google Trends. Dzięki programowi Engauge Digitizer

możliwe jest odczytanie danych liczbowych i zapisanie ich w arkuszu kalkulacyjnym lub w bazie danych

background image

38

luty 2009

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

39

www.lpmagazine.org

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

ko najistotniejsze dane (poziomice, sieć dro-
gową i kolejową, zabudowania i miejscowo-
ści). Tak przetworzona grafika może znaleźć
zastosowanie w wielu sytuacjach. Jeśli chce-
my nanieść na mapę własne dane, wykorzy-
stać ją do gromadzenia informacji o przeby-
tych przez nas trasach lub umieścić na niej
rezultaty dowolnych badań, to Engauge Di-
gitizer posiada w tym celu kilka dodatko-
wych funkcji.

Po zaimportowaniu mapy prawdopo-

dobnie zdecydowaliśmy się włączyć wi-
dok oryginalnego obrazu (View –> Original
Image
). Algorytmy, które Engauge Digitizer
stosuje automatycznie w celu odfiltrowania
z mapy istotnych informacji nie działają bo-
wiem z reguły w sposób optymalny. Nic jed-
nak straconego. Program pozwala nam bo-
wiem na ręczne sterowanie procesem bina-
ryzacji obrazu, czyli przekształceniem do
postaci, w której zbędne dane zostaną zre-
dukowane do białego tła, a ważne informa-
cje – zapisane w postaci czarnych punktów,
linii i powierzchni, rozpoznawanych jako
osobne ścieżki.

W tym celu wydajmy polecenie Discre-

tize z menu Settings. Na ekranie pojawi się
okienko zawierające w górnej części histo-
gram obrazu oraz listę możliwych do wy-
korzystania algorytmów, a u dołu – podgląd
mapy. Początkowo widoczne są domyśl-
ne ustawienia Engauge Digitizera, wyma-
gające zapewne skorygowania. Do wybo-
ru mamy pięć metod (ramka Discretize me-
thod selection
). Warto wypróbować każdą z
nich, za każdym razem manipulując dwoma
ogranicznikami na histogramie, separujący-
mi obraz od jego tła. Łudząco przypomina
to funkcję progowania, dostępną między in-
nymi w GIMP-ie.

Po uzyskaniu zadowalających nas rezulta-

tów możemy kliknąć OK. Mapa zostanie prze-
tworzona z uwzględnieniem wprowadzonych
przez nas zmian. W efekcie Engauge Digiti-
zer zacznie widzieć ścieżki na mapie, wyzna-
czone przez drogi, kolej, linie brzegowe jezior
bądź poziomice. Dzięki temu możliwe będzie
ich pełne przetworzenie do postaci cyfrowej
(numerycznej).

Po zaakceptowaniu zmian powrócimy

do głównego okna programu. Zwróćmy uwa-
gę na linie widoczne na przetworzonej mapie.
Część z nich została prawdopodobnie ozna-
czona kolorem zielonym. Oznacza to, że En-
gauge Digitizer rozpoznaje te proste, krzy-
we bądź łamane, i automatycznie przekształ-
ca je na ścieżki. Teraz wystarczy tylko klik-
nąć jedną z nich myszą (przy uaktywnionym
narzędziu Digitize –> Segment Fill), a aplika-

cja zaznaczy punkty umieszczone na ścieżce
i automatycznie pomierzy odległości pomię-
dzy nimi.

Podczas pracy z mapami problemy mo-

że sprawić zaznaczenie kilku ścieżek. En-
gauge Digitizer automatycznie doda kolej-
ne punkty do poprzedniej ścieżki, tworząc
połączenia pomiędzy najbliższymi z ozna-
czonych miejsc. Może to spowodować wy-
mieszanie się danych z różnych ścieżek.
Ta funkcja, wydająca się tutaj utrudnie-
niem, świetnie sprawdza się jednak pod-
czas odczytywania danych ze zdigitali-
zowanych wykresów oraz diagramów. W
trakcie przetwarzania map również może-
my sobie poradzić z tym problemem. Na-
leży przed zaznaczeniem kolejnej ze ście-
żek utworzyć nową krzywą. W tym ce-
lu otwórzmy okienko Settings –> Curves.
Kliknijmy w nim przycisk New. Utworzona
zostanie nowa łamana. Zatwierdźmy zmia-
ny klawiszem OK, a następnie na rozwija-
nej liście Curves widocznej w górnej czę-
ści głównego okna Engauge Digitizera, tuż
obok paska ikon, wybierzmy nazwę krzy-
wej. Od tego momentu program nie bę-
dzie łączył punktów z wcześniej wskaza-
nymi ścieżkami.

W podobny sposób możemy tworzyć

na pojedynczej mapie wiele ścieżek pomia-
rowych, wykorzystując w tym celu znane
nam już narzędzie Measure Point. Po prostu
przejdźmy do okienka Measures (dostępne z
poziomu menu Settings), a następnie klik-
nijmy przycisk New i zaakceptujmy zmiany
(OK). Nowa ścieżka pojawi się w głównym
oknie programu, na rozwijanej liście.

Jak mogliśmy zaobserwować do tej po-

ry, Engauge Digitizer stosuje dwie katego-
rie krzywych służących do wykonywania
pomiarów – Curves oraz Measures. Dru-
gi z wymienionych typów lepiej spraw-
dza się podczas przetwarzania map. Pro-
gram nie łączy w tym przypadku najbliżej
leżących punktów, pozwalając użytkowni-

kowi na całkiem samodzielne wprowadza-
nie trajektorii. W przypadku narzędzia Cu-
rves
, połączenia powstają automatycznie.
Przydaje się to zwłaszcza wtedy, gdy pra-
cujemy z wykresami i diagramami, a także
wówczas, gdy na mapie zostały odczytane
wyraźne linie (drogi, rzeki, koleje, pozio-
mice), zaznaczone w postaci zielonych li-
nii, możliwe do łatwego przekształcenia do
postaci zestawu liczb.

Digitalizacja

wykresów i diagramów

Do tej pory pracowaliśmy z mapami, korzy-
stając przy tym głównie z typu Measures. Te-
raz natomiast przyda się nam bardziej na-
rzędzie Curves – zaczniemy bowiem prze-
twarzać wykresy i rysunki techniczne. Tutaj
otwiera się przed nami bardzo szeroki zakres
możliwych zastosowań Engauge Digitizera.
Papierowe dokumenty mogą po zeskanowa-
niu i przetworzeniu za pomocą opisywane-
go programu trafić do arkusza kalkulacyjne-
go, bazy danych, a nawet do jednego z pakie-
tów matematycznych.

Zaczniemy od pozyskania informacji z

wykresów, które od początku dostępne są w
wersji cyfrowej. Są to między innymi statysty-
ki oglądalności stron internetowych, rankin-
gi, a także diagramy publikowane w plikach
PDF. My wykorzystamy dane pobrane z ser-
wisu Google Trends (http://www.google.com/
trends
). Zawiera on informacje o częstości
wpisywania przez użytkowników fraz w wy-
szukiwarce, a także o liczbie nowych artyku-
łów na zadany temat, pojawiających się w In-
ternecie. Pozwala to na śledzenie zmian zain-
teresowań internautów w czasie, na podstawie
wyrażeń kluczowych wpisywanych w Google.
Wyniki uzyskiwane tym narzędziem są bardzo
ciekawe, w niektórych sytuacjach mogą dopo-
móc w rozpoznaniu tendencji rynkowych oraz
preferencji gości wyszukiwarki.

Dane udostępniane przez Google Trends

widoczne są w postaci pliku graficznego za-

Rysunek 6.

Wykres Google Trends zrekonstruowany w arkuszu kalkulacyjnym OpenOffice.org

background image

40

luty 2009

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

41

www.lpmagazine.org

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

wierającego wykresy. Można go zapisać na
dysku, jednak późniejsze wykorzystanie i
przetworzenie tych danych wcale nie staje się
przez to łatwiejsze. Sięgniemy zatem po En-
gauge Digitizera, by zamienić wykresy na opi-
sujące je zestawy cyfr, które następnie można
wprowadzić do bazy danych lub zaimporto-
wać do arkusza kalkulacyjnego.

Pierwszym krokiem powinno być zapisa-

nie pliku graficznego na dysku. Najlepszym
formatem będzie zapewne PNG. Pliki TIF nie
są natomiast obsługiwane przez Engauge Di-
gitizera. Zapisaną grafikę otwieramy klika-
jąc ikonę Import File. Jeśli jakość binaryza-
cji pozostawia wiele do życzenia, to otwórz-
my okno Discretize z menu Settings. Na histo-
gramie zmieńmy położenie obu znaczników,
tak aby na wynikowym obrazie pojawiły się te
elementy, które są nam potrzebne. Zauważmy,
że umiejętnie manipulując strzałkami można
w prosty sposób usunąć wszystkie zbędne da-
ne, na przykład widoczną w tle siatkę. Najbar-
dziej odpowiadające nam ustawienia zatwier-
dzamy przyciskiem OK i wracamy do główne-
go okna programu.

Teraz powinniśmy wskazać osie wykre-

su oraz przypisać do nich odpowiednie warto-
ści. W tym celu kliknijmy ikonę Axis Point, a
następnie trzy punkty – początkowy (0,0) oraz
końcowy dla osi X i Y. Do każdego z nich po-
winniśmy przypisać odpowiednie wartości, co
w naszym przypadku jest trudne, gdyż Google
Trends nie czyni tego w sposób właściwy. W
efekcie możemy opatrzyć oś Y dowolną warto-
ścią maksymalną (np. 100), a oś X – liczbą lat
przedstawionych na diagramie (w analizowa-
nym przypadku 5).

Jeśli binaryzacja (okienko Discretize) zo-

stała przeprowadzona prawidłowo, to krzywe
na wykresie powinny być oznaczone kolorem
zielonym. W tym momencie wystarczy już tyl-
ko kliknąć jedną z nich kursorem, a następnie

otworzyć okienko Curve Geometry Info, do-
stępne z poziomu menu View. Ujrzymy listę
pomiarów wykonanych przez Engauge Digiti-
zera, analogiczną jak w przypadku tabeli Me-
asure Geometry Info
. Tym razem jednak naj-
bardziej interesują nas nie odległości, ale osie
układu kartezjańskiego (X i Y). Dzięki nim mo-
żemy bowiem ustalić precyzyjną pozycję każ-
dego z punktów na wykresie.

Teraz przenieśmy dane do arkusza kal-

kulacyjnego i odtwórzmy w nim wykres wi-
doczny w pliku graficznym. Zaznaczmy ko-
lumny X oraz Y w oknie Curve Geometry In-
fo
. Następnie skopiujmy je kombinacją klawi-
szy [Ctrl]+[C] i wklejmy do arkusza pakietu
biurowego OpenOffice.org. Oczywiście, mo-
żemy też wykorzystać jakąkolwiek konku-
rencyjną aplikację. Wklejmy dane tak samo
jak podczas pracy z mapą. Być może koniecz-
na będzie zamian kropek na przecinki w po-
szczególnych wartościach. Następnie utwórz-
my wykres, dla którego zakresem będą impor-
towane dane. Po chwili bezpośrednio w arku-
szu pojawi się krzywa, którą obserwowaliśmy
wcześniej na obrazie pobranym z serwisu Go-
ogle Trends. Ale tym razem możemy edyto-
wać wszystkie informacje, łączyć wykresy
dla wielu wyrażeń kluczowych i porównywać
je, a także przeprowadzać analizy statystycz-
ne. W przypadku bitmapowej grafiki było to
oczywiście bardzo utrudnione.

Engauge Digitizer umożliwia również eks-

port odczytanych informacji do pliku CSV.
Aby skorzystać z tej funkcji, wydajmy polece-
nie Export z menu File. Plik CSV można po-
tem otworzyć w arkuszu kalkulacyjnym lub za-
importować do bazy danych bądź pakietu sta-
tystycznego, na przykład środowiska R. Do-
datkowo możliwa jest zmiana parametrów ge-
nerowanych tabel, za pomocą okienka Export
Setup
wywoływanego komendą Settings –>
Export Setup
.

W analizowanym przykładzie Engauge Di-

gitizer samodzielnie rozpoznał cały wykres ja-
ko pojedynczą ścieżkę, co umożliwiło dokona-
nie wszystkich potrzebnych pomiarów kilko-
ma kliknięciami myszy. Ale w przypadku gra-
fik gorszej jakości program może sobie nie po-
radzić. W takiej sytuacji pozostaje nam jeszcze
funkcja ręcznego zaznaczenia ścieżki. W tym
celu kliknijmy ikonę Curve Point, a następnie
wskażmy kolejne punkty na analizowanej krzy-
wej. Dalsze postępowanie jest identyczne, jak
podczas automatycznego rozpoznawania ście-
żek. Uzyskane dane możemy więc skopiować
i wkleić do arkusza kalkulacyjnego albo zapi-
sać w pliku.

Ręczne zaznaczanie kolejnych punktów na

wykresie okazuje się również konieczne, gdy
na wykresie znajduje się wiele przecinających
się krzywych. Jednak i w tej sytuacji istnieją
bardziej eleganckie rozwiązania. Spróbujmy
zmienić ustawienia w okienku Discretize (ram-
ka Discretize method selection). Poszczególne
krzywe z pewnością różnią się odcieniem, co
można wykorzystać w celu wyeliminowania z
obrazu wszystkich danych, które nie interesu-
ją nas w danej chwili. Jeśli chcemy zdigitali-
zować większą liczbę wykresów, to warto kil-
kakrotnie zmienić ustawienia w oknie Discre-
tize
, za każdym razem uwypuklając inny ele-
ment wykresu.

W naszej pracy przyjdzie nam zapewne

zetknąć się z grafiką, na której dane nie będą
przedstawione w postaci krzywych. Na szczę-
ście Engauge Digitizer potrafi sobie świetnie
poradzić także w przypadku wykresów punkto-
wych. Oferuje on dodatkowe mechanizmy po-
zwalające na odczytywanie danych z takich ob-
razów. Pracę rozpoczynamy w znany nam już
sposób, importując plik w jednym z obsługiwa-
nych formatów i zaznaczając trzy punkty defi-
niujące osie (za pomocą narzędzia Axis Point).
Następnie sięgnijmy do okienka Discretize, fil-
trując za jego pomocą obraz w taki sposób, by
pozostały nam nim tylko potrzebne nam punk-
ty. Może to wydać się trudne, jednak pamiętaj-
my, że każdy wykres musi być czytelny, a po-
szczególne kategorie danych powinny się zna-
cząco różnić. Ta zasada jest powszechnie sto-

• Engauge Digitizer – http://digitizer.sou

rceforge.net/;

• Engauge Digitizer w Sourceforge

http://sourceforge.net/
project/showfiles.php?group_
id=67696&package_id=130007
;

Inkscape – http://www.inkscape.org/.

W Sieci

Rysunek 7.

Digitalizacja wykresu punktowego za pomocą narzędzia Point Match

background image

40

luty 2009

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

41

www.lpmagazine.org

Rozwiązania

Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map

sowana, co ułatwi nam takie skonfigurowanie
filtra binaryzującego obraz, by usunięte zostały
wszystkie niepotrzebne elementy.

Kolejnym krokiem powinno być skorzy-

stanie z narzędzia Point Match, dostępnego
w postaci ikony w głównym oknie programu.
Kliknijmy na obrazie jeden z punktów, który
naszym zdaniem najlepiej reprezentuje inte-
resujące nas dane. Oznacza to, że w praktyce
na zbinaryzowanym wykresie mogą znajdo-
wać się także punkty, których nie zamierza-
my digitalizować. Jeśli różnią się one choć
trochę od potrzebnych nam danych, to dalsza
praca nie zostanie zakłócona.

Od tego momentu Engauge Digitizer bę-

dzie starał się zautomatyzować proces odzy-
skiwania punktów z wykresu. Miejsca zapro-
ponowane przez program są kolejno oznacza-
ne za pomocą niebieskiego kwadratu. Aby za-
akceptować punkt, należy nacisnąć na klawia-
turze strzałkę w prawo. Aby usunąć – spację.
Zaakceptowane punkty oznaczane są kolo-
rem zielonym, odrzucone – czerwonym. W
ten sposób przemierzymy cały wykres, aż
do momentu, w którym wszystkie interesują-
ce nas miejsca zostaną oznaczone. Nie przej-
mujmy się, jeśli aplikacja ominie początko-
wo kilka ważnych punktów. Engauge Digiti-
zer powróci do nich później, gdy już zapro-
ponuje nam wszystkie miejsca najbardziej po-
dobne do zaznaczonego przez nas na samym
początku. Gdy skompletujemy pomiary, za-
kończmy je klikając ikonę Select. Pojawi się
okienko informujące nas o liczbie zaakcepto-
wanych punktów. W tym momencie trzeba bę-
dzie również podjąć decyzję dotyczącą sposo-
bu zachowania danych – w postaci typu Curve
lub Measure. W większości przypadków na-
leży kliknąć przycisk Curve. Jedyny wyjątek
stanowi sytuacja, w której Engauge Digitizer
zasugerował nam wszystkie punkty dokład-
nie w tej kolejności, w jakiej znajdują się ona
wykresie. To jednak zdarza się bardzo rzadko.

Po utworzeniu krzywej możemy ją zacho-

wać w taki sam sposób, jak podczas przetwa-
rzania wykresów innego typu, czyli za pomo-
cą okienka View –> Curve Geometry Info lub
polecenia File –> Export. Dodatkowo dostęp-
na jest także możliwość ręcznego przetwarza-
nia wykresów punktowych. Tak jak w przypad-
ku diagramów liniowych oraz map, polega ona
na wykorzystaniu narzędzia Curve Point. W ta-
kiej sytuacji konieczne będzie samodzielne za-
znaczenie wszystkich potrzebnych punktów w
dowolnej kolejności.

Eksport do bazy danych MySQL

Engauge Digitizer pozwolił nam na prze-
tworzenie i pełną digitalizację zarówno

map, jak i rysunków oraz diagramów li-
niowych, a także wykresów punktowych.
Wszystkie zgromadzone dane zapisaliśmy
w zbiorze CSV, a następnie zaimportowali-
śmy do arkusza kalkulacyjnego. Pliki wyge-
nerowane przez Engauge Digitizera można
jednak w bardzo prosty sposób przesłać do
bazy danych, między innymi MySQL. Wy-
maga to utworzenia osobnej tabeli o odpo-
wiedniej strukturze. W przypadku krzywej
konieczne będzie zdefiniowanie dwóch pól
numerycznych (wartości X oraz Y). Przy-
kładowe polecenie może wyglądać nastę-
pująco:

CREATE TABLE curve (osx smal-

lint(5) NOT NULL, osy smallint(5) NOT
NULL)

. Kolejnym krokiem powinno być od-

powiednie przygotowanie pliku CSV. Do-
myślnie zawiera on nagłówek, który nale-
ży usunąć. Możemy tego dokonać w dowol-
nym edytorze tekstu. Lepszym rozwiąza-
niem jest jednak zmiana ustawień Engauge
Digitizera. Otwórzmy w programie okien-
ko Export Setting, zaznaczając w ramce He-
ader
opcję None.

Teraz możemy już wysłać zapisane dane

do bazy MySQL. Wydajmy polecenie

LOAD

DATA INFILE 'plik.csv' INTO TABLE cu-
rve FIELDS TERMINATED BY ',' ENCLOSED
BY '' LINES TERMINATED BY '\n'

. Informa-

cje o krzywej zostaną skopiowane do bazy. My-
SQL może zażądać wykonania komendy z kon-
ta administratora.

Niestety, zastosowana w tym przykła-

dzie metoda przechowywania danych nie jest
zbyt wydajna. Każda struktura wymaga bo-
wiem tworzenia osobnej tabeli. Możemy te-
mu zaradzić wprowadzając do pliku CSV
pole określające numer krzywej. To pozwo-
li nam na kopiowanie wszystkich danych do
pojedynczej tabeli. Wymagana jest jednak in-
gerencja w plik zapisywany przez Engauge
Digitizera, co zmusza nas do wykonania do-
datkowej pracy. W takiej sytuacji warto roz-
ważyć ręczne kopiowanie informacji z okien-
ka Curve Geometry Info do arkusza kalkula-
cyjnego, stworzenie tam dodatkowej zmien-
nej, a następnie zapis pliku CSV i wydanie
polecenia

SQL LOAD DATA

. Przy okazji moż-

na też utworzyć osobną tabelę zawierają-
cą tekstowe identyfikatory poszczególnych
krzywych. Ułatwi to nam utrzymanie porząd-
ku w danych, jeśli zdecydujemy się na zdigi-
talizowanie większej liczby rysunków, map i
wykresów.

Z pomocą przychodzi Inkscape

Produktem ubocznym – oprócz danych nume-
rycznych – są zbinaryzowane obrazy map i wy-
kresów. Mapy możemy wykorzystać do innych

celów, wstawiając je chociażby do grafik wek-
torowych. To pozwoli nam na umieszczanie na
nich dodatkowych elementów, nieobecnych
w pierwotnych wersjach. W tym celu można
oczywiście wykonać zrzutkę ekranu przedsta-
wiającą okno Engauge Digitizera oraz zbina-
ryzowaną mapę. Lepiej jednak sięgnąć w tym
celu po inne narzędzia, w tym popularny pro-
gram Inkscape.

Inkscape zapisuje wektorowe pliki SVG,

jednak pozwala także na import grafiki ra-
strowej w formatach BMP, GIF, JPG, PNG,
TIF oraz wielu innych. Dokonujemy tego po-
leceniem Importuj z menu Plik, ładując ze-
skanowaną przez nas uprzednio mapę. Na-
stępnie należy wydać komendę Ścieżka
–> Wektoryzuj bitmapę
. Trafimy wówczas do
okienka wtyczki Potrace. Manipulując odpo-
wiednio jednym z parametrów (najlepiej za-
stosować domyślny, czyli Jasność) i klikając
przycisk Podgląd należy doprowadzić do ta-
kiej sytuacji, w której wszystkie interesujące
nas elementy staną się widoczne na wyjścio-
wym obrazie. Po zatwierdzeniu zmian usuń-
my oryginalną bitmapę. Od tego momentu
możemy już edytować mapę tak, jak zwy-
kłe ścieżki.

Podsumowanie

Rozwiązanie opisane w tym artykule, pole-
gające na wykorzystaniu programu Engauge
Digitizer, może sprawdzić się w wielu sytu-
acjach, w których konieczne okazuje się sko-
rzystanie z danych zachowanych w postaci
wizualizacji, wykresów bądź rysunków. Gra-
fika ułatwia dostrzeżenie trendów i porówna-
nie zmiennych bądź obiektów, ale w trakcie
przeszukiwania informacji, analizy metoda-
mi statystycznymi, a także w celu ich gro-
madzenia, lepiej sprawdzają się dane nume-
ryczne. Engauge Digitizer pozwala na prze-
tworzenie plików graficznych na liczby, a na-
stępnie na ich zapisanie w plikach CSV. Te z
kolei mogą być edytowane w dowolnych ar-
kuszach kalkulacyjnych, przesłanie do opro-
gramowania statystyczno-matematycznego,
systemów informacji geograficznej (GIS)
bądź składowane w postaci tabel w bazach
danych.

Autor korzysta z Linuksa od dziesięciu lat,
zajmuje się wdrażaniem oprogramowanie
open source. Adres kontaktowy: pawel-
w@open-enterprise.net
.

O autorze


Wyszukiwarka

Podobne podstrony:
Jak wstawić do bazy danych kod PHP i potem wykonać go w momencie pobrania z bazy, PHP Skrypty
Jak zapisać dane pochodzące z animacji do pliku lub do bazy danych, PHP Skrypty
2009 02 Relacyjna baza danych HSQLDB [Bazy Danych]
Microsoft PowerPoint 02 srodowisko bazy danych, modele
02 Bazy danych - bibliografia skrocona, INIB rok II, PIOSI janiak
ECDL Advanced Syllabus do Modul Bazy danych, poziom zaawansowan
Instalacja bazy danych Plexiform do programu DIALux
02 2 Przeniesienie pracownicy do innej pracy niż określona w umowie o pracę ze względu na stan cią
M Smyczek i M Kaim Od zera do ECeDeeLa cz 5 Bazy danych
Projekt i implementacja internetowej bazy danych do wymiany i promowania wiedzy ekologicznej
do czego sluza bazy danych
Bazy Danych (2), notatki ze studiów rok1, informatyka
Bazy danych - zagadnienia do zal, IV Semestr, Bazy Danych
Bazy danych - cz zagadnie do egzaminu, Automatyka i Robotyka, Semestr 3, Bazy danych, BD, BD, Ba
02 List Otwarty do jednego ze zborów w Bydgoszczy, List Otwarty do jednego ze zborów w Bydgoszczy
lab1Wstęp teoretyczny do baz danych, bazy danych
sciaga do druku, ETI sem2, Bazy danych

więcej podobnych podstron