Praktikum 17rev.3

Vektor- ja rasterandmete seostamine andmebaasidega

(Algandmed: IDRISI v.4.0 Tutorial exercises N.8,10,11)

rev.2: 24.03.97; rev.3: 28/2/98

Sissejuhatus

Praktikumides 3, 6 ja 7 Te õppisite kasutama IDRISI rasterandmeid ning praktikumides 13 ja 8 - vektorandmeid. Käesolevas teeme esimesed sammud mõlemat tüüpi asendiandmete kasutamisel koos atributiivandmetega. Lihtsaim viis nende seostamiseks on omistada igale kartograafilisele objektile unikaalne identifikaator (nn. ID) ja talletada atribuudid andmetabeli(te)sse, kus igale objektile vastab üks kirje, mille võtmeväljaks on ID. Seostamiseks tuleb mooduli(te)le edastada vajalike ID-de loetelu (võimaldab õigeid objekte üles leida) koos vajalike parameetritega. IDRISI moodulid, mis produtseerivad atribuutidena kasutatavaid andmeid, võimaldavad tulemuse salvestada väärtusfaili (.val-faili), mis on kujul: <ID><tühik><atribuut>. Sellisest formaadist (nn. space delimited ASCII) on neid võimalik importida andmeohjesüsteemidesse. Viimastest .val-faili kujul exporditud atribuudid on lähteandmeteks IDRISI-le. Rasterandmete puhul on tavalisemaks atribuudiks kas värvikood, või edaspidiselt kaardialgebras kasutatav arv (.val-faili alusel luuakse mooduliga ASSIGN uus kujutis, millega ongi atributiivinfo kättesaadav territoriaalseks töötluseks), vektorandmete puhul võimaldab moodul PLOT tõlgendada atribuuti kui värvikoodi. Need on IDRISI 4.x enda võimalused. Paindlikumate rakenduste tarvis tuleb kasutada andmeohjesüsteemide töötlus- ja programmeerimisvõimalusi (näiteks kirjutada programm, mis väljastab tulemused atribuutandmete kohta juba script-failina).

IDRISI for Windows on võimeline töötama koos andmeohjesüsteemi ACCESS 2.0 ühe andmetabeliga (loeb-kirjutab ka dbase formaati), mis teeb töö tunduvalt mugavamaks. Kuid seostamise üldpõhimõtted jäävad samaks siinkäsitletuga.

Praktikum koosneb kahest osast. Esimeses, sissejuhatavas osas tutvume relatsiooniliste andmebaasidega ning IDRISI andmebaasiliidesega (DBIDRIS), teises lahendame ühe praktilise harjutusülesande.

Moodul DBIDRIS

Järgnevalt me uurime andmevahetust andmebaasi failidega. Käesolevas kasutame me andmebaaside ohjesüsteemi FOXBASE, mis on väiksem ja kiirem kui dBASE III+. Käsurealt töötades võimaldab FOXBASE teha kõike seda sama, mis dBASE III+ (kuid mitte vastupidi!).

Võtame vaatluse alla praktikumis 8 juba käsitletud andmed Clarki kohta.

Ülesanne 1: vaadake meeldetuletuseks script-faili clrkmap1.scr (näiteks mooduliga EDIT) ja vastake küsimusele 1, seejärel kuvage Clarki kaart ekraanile (mooduliga PLOT).

Küsimus 1: milline roll on väärtusfailil BLDGUSE?

Ülesanne 2: vaadake meeldetuletuseks failide bldguse.val ja bldguse.dvl sisu.

Väärtusfailis olevad värvikoodid võimaldavad kujutada iga ehitust vastavalt tema tüübile. Tegelikult on need tüübid fikseeritud ehitiste andmebaasis CUBLDG.DBF, mida on võimalik vaadata Norton Commander-i käsuga view (F3), mis käivitab utiliidi DBVIEW või käivitades StartUp menüüst programmi FoxBase ja sisestades punktviiba juures järgmised käsud:

use cubldg [esimeses tööpiirkonnas avatakse andmetabel cubldg]

browse [kuvatakse tööpiirkonna sisu sirvimisrez iimis];

Andmetabeli struktuuri vaatamiseks tuleb anda korraldus:

display structure

Ülesanne 3: Tutvuge faili cubldg.dbf sisu ja struktuuriga kas:

    1. kasutades DBVIEW funktsiooniklahvidega pakutavaid võimalusi või

    2. FoxBase-is.

Andmeväljad on järgmised:

IDR_ID: the IDRISI feature identifier (building ID)

MAPBLKLOT: Map/Block/Lot Number - a city lot identifier

NUMBER: the street number of that building

STREET: the city street name

STATE_LU: the Massachusetts state land use code number

PRIM_STRUC: the primary structure on the lot

SEC_STRUC: the secondary stucture on the lot

TER_STRUC: the tertiary structure on the lot

LOT_AREA: the area (in square feet) of the lot

PROJ_LU: a specific project land use code

Andmete viimisel .dbf failist IDRISI-sse on meie loogikaks eksportida soovitavad andmeväljad atribuutide väärtusfaili. Selleks, et viia andmeid IDRISI-st .dbf-faili, tuleks seal paika panna andmeid vastu võttev andmeväli ja seejärel viia atribuutide väärtusfaili sisu sellesse andmevälja.

Sellist protseduuri sooritav moodul on DBIDRIS.

Ülesanne 4: Et illustreerida andmete viimist IDRISI-sse, käivitage moodul DBIDRIS. Kui küsitakse andmefaili nime, määratlege CUBLDG (kataloogi ega laiendit pole vaja). Kui küsitakse IDRISI väärtusfaili nime, määratlege DBVAL, seejärel osutage, et Te soovite viia andmeid IDRISI-sse.

Nüüd esitatakse Teile lühikokkuvõte faili kohta. Viimase toimetamise kuupäev, väljade arv jne. Identifikaatorväli osutab andmeväljale, mis sisaldab IDRISI identifikaatoreid, mida saaks seostada identifikaatoritega vektorfailis. DBIDRIS teeb esialgse oletuse identifikaatorvälja kohta, valides esimese välja, mis algab tähtedega "ID" (eeldades, et see tähendab, kas välja "identifikaator" või välja "IDRISI"). Kui ta sellist ei leia, siis märgib ta selle sisendiks "tundmatu" (unknown) - olge hoolas, on võimalik ka, et IDRISI leiab ebaõige välja, kui mõni teine vektorväli algab tähtedega "ID"! Ka teisaldatava andmevälja märgib moodul "unknown", kuivõrd esialgu pole moodulil aimu, missugust välja Te soovite teisendada. Kokkuvõtte all esitatakse Teile rida tingimusi. Kui Te ei mäleta väljade nimesid, siis näiteks tingimus 4 kuvab need Teile. Tingimus 3 on vahest esimene, mida Te peate valima, kuivõrd see võimaldab Teil näidata, millist andmevälja Te soovite teisaldada. Kui olete kord selle valinud ja olete üle vaadanud, et identifikaatorväli on õige, siis võite valida tingimuse 1 ja teisaldamise sooritada.

Ülesanne 5: Osutage moodulile DBIDRIS, et Te soovite teisaldada andmevälja nimega PROJ_LU (need ongi maakasutuskoodid, mis on loodud selle andmehulga kujutamiseks mooduliga PLOT, kus on üksnes 15 kategooriat ja on samad, mida me kasutasime eespool väärtusfailiga bldguse.val), seejärel alustage teisaldamist. Andmeid nendest kahest väljast (identifikaator ja andmeväli) kasutatakse seejärel IDRISI väärtustefaili konstrueerimisel.

Ülesanne 6: Käivitage nüüd moodul LIST, veendumaks, et väärtuste fail nimega DBVAL on loodud (pange tähele selle faili pealkirja listingus). Seejärel käivitage moodul EDIT, et luua lihtne kirjeldusfail nende andmete kuvamiseks. Kuivõrd me kasutame seda kirjeldusfaili kui üldotstarbelist š ablooni, nimetage ta TEMPLATE. Ta peaks välja nägema järgmine:

f u 1 clarkblk

f v 0 clarkbld dbval

Ülesanne 7: Käivitage nüüd moodul PLOT, et tulemust näha (so. “plottige” TEMPLATE).

Küsimus 2: Mille poolest erinevad clrkmap1.scr ja template.scr abil loodud kujutised?

Pange tähele, et mitte kõik ehitised kaardil ei sisaldu selles andmebaasis. Need ehitised, mis andmebaasis ei sisaldu, joonestatakse värviga nr. 0

Š ablooniks olev kirjeldusfail osutub väga käepäraseks, kuivõrd me võime teda alati kasutada kui kiiret võimalust andmebaasi päringu tulemuste plottimiseks.

Proovigem nüüd viia mõningaid andmeid IDRISI-st andmebaasifaili. Et öeldut illustreeerida, arvutagem ehitiste pindalad (pindala andmeväli .dbf-failis sisaldab praegu kruntide, mitte ehitiste pindalasid).

Pindala leidmine on operatsioon, mida me peame tegema rastriga, kuna moodul AREA opereerib rasterandmetega. Seetõttu on meie ülesandeks luua ehitiste kaardi rasterversioon, seejärel arvutada pidalad ning salvestada need väärtusfailis; seejärel luua vaba väli oma andmebaasi failis, kuhu saab pindala andmeid paigutada ning lõpuks importida need andmed sinna dbf-faili.

Ülesanne 8: Käivitage moodul INITIAL (andmesisestuse alammenüüs) ja looge tühi täisarvuline kujutis 600 veeru ja 400 reaga. Nimetage see uus kujutis RASBLDG ja võtke ta lähteväärtuseks 0. Ka muud parameetrid peate valima ise, sest analoogilist rasterkujutist, kust neid võtta, meil pole. Kuna rasterkujutis katab sama ala, kui vektorfail ulatusega 3000 jalga X ja 2000 jalga Y suunas, siis osutage, et kasutusele peaks tulema ristkoordinaatide süsteem, mõõdetud jalgades ühikkaugusega 1.0, X min. ja max. väärtustega vastavalt 0 ja 3000, Y min. ja max väärtustega vastavalt 0 ja 2000. Väärtusühiku kohale võite kirjutada 'ID'.

Ülesanne 9: Käivitage nüüd moodul POLYRAS. Kui küsitakse, osutage, et polügonide andmeid sisaldav vektorfail on CLARKBLD, ja rasterfail, mida nende andmetega toimetatakse, on RASBLDG. Seejärel vaadake oma rastertulemust.

Ülesanne 10: Käivitage moodul AREA ja paluge tal luua väärtuste fail nimega CUAREAS.

Ülesanne 11: Käivitage nüüd FOXBASE ja andke punktviipe-rez iimis järgmised käsud:

use cubld [võetakse kasutusse andmebaasifail CUBLDG]

modify structure [hakkama muutma selle faili struktuuri; vt. lk.6]

Kui käsus "modify structure" esitatakse väljad, liikuge kursoriga viimase välja taha, et luua uut. Sisestage nimeks BLDG_AREA. Andmeväljaks tüüp määratlege "numbriline", seejärel osutage, et ta peaks omama kuus numbrikohta ja 0 kümnendkohta (kuna me mõõdame pindala ühe ruutjala täpsusega). Seejärel vajutage klahve Ctrl+End, mis tähendab lõpetamist ja uue välja lisamist. Kui soovite, kasutage käsku display structure (funktsiooniklahv F5) veendumaks, et tühi andmeväli on loodud. Seejärel väljuge FOXBASE-ist käsuga:


quit

Ülesanne 12: Käivitage nüüd moodul DBIDRIS ja osutage, et tahate kasutada andmebaasifaili nimega CUBLDG ning väärtuste faili CUAREAS. Seejärel osutage, et soovite teisaldada andmeid IDRISI-st andmebaasi faili.

Nüüd esitatakse Teile lühikokkuvõte ja valikute loetelu, mis on väga sarnane sellele, mida nägite andmete väljastamisel dbase-tüüpi failist.

Ülesanne 13: Kasutage tingimust 3, osutamaks, et soovite teisaldada andmevälja BLDG_AREA ja seejärel käivitage andmete teisaldamine. Pange tähele, kuidas näidatakse, milline kirje (so. ehitis) on toimetamisel. DBIDRIS ühendab relatsioone arvestades (relational look up join), mis kindlustab, et pindalad seostatakse korrektselt ülejäänud omadustega.

Ülesanne 14: Nüüd sisenege viimast korda FoxBase’i. Et veidi tutvuda FoxBase'i ja andmeohjega, vajutage funktsiooniklahvi F6, mis kirjeldab süsteemi seisundit. Muude andmete sabas on üles loetud funktsiooniklahvidega praegu seostatud käsud. Märkige need endale ülesse - saate hiljem kasutada. Kasutage andmevälja BLDG_AREA ülevaatamiseks käsku browse.

Pange tähele, et seal on mõned ehitised, millel ei ole pindala sisestatud. Need on ehitised, mis on olemas küll andmebaasis, kuid mitte kaardil.

Küsimus 3: Milline on andmebaasi 10. kirjes oleva ehitise identifikaator ja kui suur on selle ehitise Teie poolt leitud pindala (ruutjalgades)?

Näidisülesanne

Lahendame nüüd väikese näidisülesande, mis on küllalt tüüpiline GISidega lahendatavatele ülesannetele. Vaja oleks õppida analoogsete ülesannete lahendusi kavandama.

Hoone koodnumbriga 1092 on kirik, kuhu kogudus soovib panna carillon-i, s.o. kirikukellade komplekti, mis võimaldab kõlavat kellamängu. Selleks on vaja linnavõimude luba, kes enne soovivad teada saada, millised elumajad jäävad tugeva heliga tsooni (raadiusega 1/4 miili), et siis korraldada küsitlus nende linnakodanike seas.

Meie ülesandeks on:

- selgitada ehitised mis jäävad 0.25 miilisesse tsooni ehitise nr. 1092 ümber;

- selgitada, millised nende seast on elumajad;

- luua tulemusi esitav vektorkaart.

Meie strateegia ülesande lahendamisel on järgmine:

  • leiame vajaliku kiriku ja loome kaardi, mis kajastab kaugusi kirikust;

  • arvutame iga hoone jaoks tema keskmise kauguse kirikust ja viime selle andmebaasi;

  • leiame andmebaasist ehitised, mille kaugus on väiksem etteantud 0.25 miilist ja mis on elumajad;

  • viime andmebaasis leitud ehituste ID-d ja sobivad värvikoodid väärtusfaili;

  • koostame vajaliku kirjeldusfaili ja joonestame kaardi.

Pange ülesande üldine lahenduskäik kasutatavate moodulite tasemel endale kirja.

Ülesanne 15: leidmaks ehitiste rasterkaardilt RASBLDG vajalikku kirikut, looge väärtusfail CHURCH järgmise sisuga:

1092 1

Ülesanne 16: looge kiriku boole'i kaart, kus kiriku ala on väärtusega 1, muud alad 0. Selleks tuleb kasutada moodulit ASSIGN eelmises ülesandes loodud väärtusfailiga. Nimetage tulemkujutis CHURCH.

Järgmisena hakkame looma kauguse kaarti mooduliga DISTANCE. Kuna selle arvutamine võib võtta aega (olenevalt arvutist 1...15 minutit), pangem enne moodul tööle ja siis hakakem tema kohta lugema!

Ülesanne 17: Käivitage moodul DISTANCE, valige sisendkujutiseks CHURCH ja väljundi nimeks näiteks DISTANCE, ühikuks ft.

DISTANCE kuulub moodulite klassi, mida nimetatakse kaugusoperaatorid. Teisi taolisi mooduleid kasutatakse keerukamate kaugusoperaatorite puhul nagu SPDIST (sfääriline kaugus), COST (kaugus arvestab ka pinna 'hõõrdetegurist'), VARCOST (kaugus arvestab ka ruumi anisotroopiat).

Lähtudes kujutisest, mis määratleb teatud omaduste hulga, arvutab DISTANCE uue kujutise, milles iga piksel sisaldab lühima kauguse antud punkti ja lähima nende omadustega punkti vahel. Tulemus on niisiis kauguspind (ruumiliselt pidev kauguse kujutis).

Järgmine moodul, mida meil vaja läheb, on EXTRACT, mis leiab etteantud kujutisfaililt (meil on selleks eespool-leitud kauguse kaart) summaarsed näitajad nende objektide kohta, mis on määratletud definitsioonifailis [geographic definition file] (meil on selleks ehitiste ID-sid kajastav kaart RASBLDG). Leitav näitaja võib olla miinimum, maksimum, keskmine, ulatus, valimi või kogumi standarthälve. Tulemust võib väljastada väärtusfaili.

Edasine töö eeldab siirdumist FOXBASE-i, seepärast kasutagem aega, kui moodul DISTANCE töötab, et tuletada veidi meelde XBASE-tüüpi andmeohjeprogrammide kohta.

[Kasutatakse järgmist, arvutialases kirjanduses tavaks kujunenud tähistust: <käsu verb> - nii piirajad ('<','>') kui ka selgitav tekst ('käsu verb') asendatakse konkreetse käsuga ('GOTO'); nurksulgude ('[',']') vahel olev on fakultatiivne; loogelised sulud ('{','}') sisaldavad hulka, millest tehakse alternatiivne valik; konstruktsioonid võivad olla hierarhilised]

* XBASE-keele põhielemendid ja süntaks

Andmeohjesüsteemi käsk (operaator) on järgmise üldkujuga:

<käsu verb> [<kehtivusvaldkond>] [<avaldiste loetelu>] [;] [<piirangud>] [<täitmise tingimused>]

- kehtivuspiirkond: {ALL, NEXT <n>, REST, RECORD <n>}

ALL - päring kehtib kôigi kirjete kohta;

NEXT - päring kehtib järgmise n kirje kohta;

RECORD - päring kehtib n-nda kirje kohta;

REST - päring kehtib kôigi ülejäänud (st andmetabelis tagapool olevate) kirjete kohta.

- avaldiste loetelu: üks või mitu avaldist, mis eraldatakse komadega; avaldis on operatsioonid (aritmeetilised, loogilised) keele põhielementide (konstandid, mälumuutujad, andmeväljad, funktsioonid) vahel

- konstandid on:

- stringid {'abcd', "Tallinn", [12,5], "1:500",...}

- arvkonstandid {0, 12.5, 125, 1/3, 0.667,...}

- loogilised konstandid {.T., .F., .Y., .N.}

- kuupäevad kujul aa/bb/cc, kus see, millised on päeva, millised kuu ja aasta numbrid, määratletakse süsteemi seadistamisega

- operatsioonid on:

- aritmeetilised {+, -, *, /, **}

- loogilised {<, >, =, <>, #, <=, >=, $, .NOT., .AND., .OR.}

- stringoperatsioonid:

'AB '+'CD' = 'AB CD'

'AB '-'CD' = 'ABCD '

operatsioonid saavad toimuda tüübilt sobivate elementide vahel; sama nime korral (pole soovitav!) on andmeväljadel prioriteet võrreldes muutujatega.

- 'semikoolon' näitab käsu jätkumist järgmiselt realt

- piirangud: loogiline tingimus (FOR-lause), mille alusel täidetakse käsk vaid nende kirjete puhul, kus see loogiline tingimus on tõene;

näiteks piirang FOR NIMI="KASK" põhjustab käsu täitmise ainult nende tabeli ridade kohta, kus veerus 'NIMI' on kirjutatud 'KASK'.

Kuna tingimus kujutab endast loogilist lauset, siis on vôimalik siduda temas kui liittingimuses omavahel mitu üksik-tingimust, milleks vastav menüü pakub meile:

.AND. - loogiline ja

.OR. - loogiline vôi.

Punktid alguses ja lõpus on loogilise konstandi eraldajad.

- täitmise tingimused: loogiline tingimus (WHILE-lause), mille alusel täidetakse käsku ainult niikaua kui see loogiline tingimus on tõene.

- funktsioon on oluline abivahend teisendamaks (füüsiliselt või virtuaalselt) andmeid esitamiseks ja analüüsiks sobivale kujule;

- kasutatakse tavaliselt kujul:

<mälumuutuja>=<funktsiooni nimi>(<parameetrite loetelu>)

- näiteid:

- TULEM1=RECNO() -> muutujasse TULEM1 salvestatakse aktiivse kirje number;

- tulem2=STUFF('peamees',2,1,'üh') -> muutujasse TULEM2 salvestatakse tekstikonstant 'pühamees': 1. parameetris asendatakse alates 2. parameetris antud positsioonist 3. parameetris antud hulk sümboleid 4. parameetris antud sümbolitega;

- tulem3=upper('jüri') -> tulem3='JüRI';

- tulem4=INT(10.95) -> tulem4=10 täisosa võtmine;

- tulem5='A'+STR(2*5) -> tulem5='A10' arvutatakse 2*5, vastus (10) muudetakse stringiks ja liidetakse A-ga.

* andmebaasifaili struktuur

Andmebaasi struktuuri määratlemine tähendab tabeli veergude kirjeldamist dBASE-ile arusaadaval viisil (vt. tabel ja sellele vastav andmefaili kirjeldus XBase'is). Välja nimi vôib olla kuni 10 sümbolit, ta peab algama tähega ega tohiks sisaldada täppidega tähti. Ainsa kirjavahemärgina on lubatud allatõmbamiskriips (_).

Andmed võivad olla kas tekstikonstandi-tüüpi (Character), numbrilised (Numeric), loogilised (Logical), kuupäevad (Date) või märkmed (Memo).

Ülesanne 18: Vaadelge saadud kujutist DISTANCE mooduliga COLOR ja 256-värvilise kvantitatiivsete muutuste kajastamiseks sobiva paletiga

Ülesanne 19: Kasutage moodulit EXTRACT ja looge väärtusfail AVERDIST, kus oleksid kajastatud kõigi ehitiste keskmised kaugused kirikust.

Järgmiseks on meil vaja andmebaasifailis CUBLDG luua vajalikud väljad, et saaksime sinna viia andmeid kauguse väärtusfailist ja tuua sealt andmeid vajalike värvikoodide kohta.

Ülesanne 20: Käivitage FOXBASE ja võtke kasutusele vana tuttav CUBLDG. Modifitseerige andmebaasi CUBLDG struktuuri, lisades sinna kaks uut välja: AVER_DIST (numbriline, seitse numbrimärki, neist 2 peale koma) ja COLOR_CODE (numbriline, 2 numbrimärki). Salvestage tehtud muudatused. Väljuge FOXBASE'ist.

Ülesanne 21: Käivitage moodul DBIDRIS ja viige keskmise kauguse andmed väärtusfailist averdist.val õigetesse kohtadesse andmebaasifailis cubldg.dbf.

Ulesanne 22: Käivitage FoxBase ja vaadake tulemust sirvimiskäsuga. Pange tähele klahvide kasutamist õpetavat abiinfot. Leidke üles kirik, kus on kell.

Küsimus 4: milline on välja AVER_DIST väärtus kiriku kirjes? Miks?

Ülesanne 23: Leidke, mitu ehitist asub 1/4 miili tsoonis. Et ühele miilile vastab 5280 jalga, anname kokkulugemiskorralduse (COUNT) järgmiselt:

count all for aver_dist<=5280/4

Järgmisena tuleks meil määrata sobivad värvikoodid nendele ehitistele, mida tahame esile tõsta. Kasutame edaspidi 'idrisi' 16-värvilist paletti (PLOT ei võimalda rohkem värve) ja valime värvid järgmiselt:

    • kirik, kuhu kavatsetakse panna carillon: kollane (12),

    • tsoonis olevad majad punased (10),

    • sealhulgas elumajad lillad (6);

    • hooned väljaspool tsooni helerohelised (14).

Ülesanne 24: Leidke väljasse color_code sobivad väärtused. Teeme seda korraldusega REPLACE (asenda). Lihtsaim on seda teha, liikuda loogiliselt üldisemalt tingimuselt spetsiifilisema suunas. Sarnaseid käske saab anda, toimetades eelmisi käske mälupuhvrist (kursoriga üles-alla liikudes). Jälgige ka seisundireal antavat teavet asenduste arvu kohta! Märkige need endale üles!

Asendame kõigepealt kõik värvikoodid arvuga 14:

replace all color_code with 14

Seejärel asendame tsooni jäävad majad:

replace all color_code with 10 for aver_dist<=5280/4

Seejärel asendame tsooni jäävad elumajad (olgu nendeks ühe-, kahe- ja kolmepere hooned, seega need, mille proj_lu>12):

replace all color_code with 6 for aver_dist<=5280/4 .and.proj_lu>12

Lõpuks kiriku kohta:

replace all color_code with 12 for idr_id=1092

Salvestage, väljuge FoxBase'ist.

Ülesanne 25: Tooge mooduliga DBIDRIS väljad idr_id ja color_code väärtusfaili bellzone.

Nüüd jääb üle veel vaid üksnes vajalik kaart koostada. Alustame jällegi dialoogreziimis lihtsamalt keerukamale liikudes.

Ülesanne 26: Looge kirjeldusfail FINALMAP.SCR, mis oleks järgmise sisuga:

f u 2 clarkblk

f v 0 clarkbld bellzone

Ülesanne 27: vaadake loodut mooduliga PLOT.

Loogem nüüd legend ja lisagem ka tsooni kujutis (selleks on polügon vektorfailis tsoon, mis on saadud kujutise DISTANCE teisendamisel boole'i kujutiseks 0.25 miilise lävekauguse järgi ning seejärel rasterkujutise vektoriseerimisel mooduliga POLYVEC; viimase töö on aeganõudev, tulemus vajab converteerimist ja tavaliselt ka generaliseerimist mooduliga LINERAS).

Ülesanne 28: looge mooduliga DOCUMENT väärtusfailile bellzone legend järgmiste kategooriate jaoks:

category 1 : ma"a"ratlemata hooned

category 6 : sh. elumajad tsoonis

category 10 : hooned tsoonis

category 12 : KIRIK kus kell

category 14 : ma"a"ratletud hooned

Ülesanne 29: täiendage oma kirjeldusfaili finalmap.scr, nii et ta oleks alljärgnev:

f u 10 tsoon

f u 2 clarkblk

f v 0 clarkbld bellzone

k 0 0.7 0.25 0.2 25 13

t d 1 12 0.05 0 0 0 0.94 Ehitised carilloni tsoonis

Küsimus 5: osa hooneid on kaardil värvitud mustaks. Kas ja kuidas on see seotud failiga CUBLDG.DBF ja eeltoodud kirjeldusfailiga FINALMAP.SCR?