De topografische ondergrond

Meestal heb je wel de beschikking over kaartmateriaal als je met ArcView werkt, maar soms heb je een kaart nodig van een ander gebied. Als je dan geen digitale ondergrond hebt is, heb je een probleem. Een gescande kaart als ondergrond gebruiken is dan de oplossing. Het zijn heel wat stappen maar is zeer moeite waard wil je met ArcView werken.

Voor het uiteindelijk weergeven van een gescande topografische ondergrond heb je nodig:

Een aangepaste Extensie

Standaard gaat ArcView uit van *.bmp of *.tif, maar aangezien *.jpg's kleiner zijn, dus sneller laden zijn *.jpg's aan te bevelen.
Hiervoor moet je wel tegen ArcView "zeggen" dat die dat ook kan;
Klik op FILE | EXTENSIONS en onderstaand scherm wordt geopend.
Vink hier JPEG (JFIF) Image Support aan.
Vink Make Default ook meteen maar aan (evenals Geoprocessing en CAD Reader) kan later altijd handig zijn.
Klik "ok"

Gescande topografische ondergrond, opgeslagen als *.jpg.

Scan een stuk van een kaart, topografische, stadskaart, luchtfoto, maakt niet uit.
Gebruik bij het scannen een hoge resolutie zodat je later in ArcView in kan zoomen met zo min mogelijk beeld-kwaliteitsverlies.
Sla de kaart op als *.jpg.
Zorg ervoor dat je van deze kaart van ieder hoekpunt de coördinaten weet! Dit heb je straks nodig bij het maken van een *.dbf
Daarom zijn topkaarten zo handig want daar staan de km-hokken op.

Een script die er voor zorgt dat dit alles ook wordt weergegeven.

Klik in het project op SCRIPT | NEW
een nieuw lege scriptpagina wordt geopend.
Selecteer onderstaande tekst, kopiëren en plak dit in het script.

System.SetEnvVar ("AVDATA", "c:\esri\kaart21\bmp")

Geef in dit stukkie tekst aan wáár de gescande kaarten ziin opgeslagen;
in dit geval zit de gescande kaart (*.jpg) in de map "c:\esri\kaart21\bmp"
Heb je b.v. de scan met de naam ondergrond.jpg in map c:/graphics/scans geplaatst, dan moet er in het script de volgende tekst:

System.SetEnvVar ("AVDATA", "c:\graphics\scans")

Let ook op het verschil in gebruik van stand van de // en \\

Klik eerst op  "compile", en vervolgens op  "run".

Geef het script1 een naam via PROJECT | RENAME
in dit geval heb ik hem "runnen kaartbladen" genoemd

Een *.dbf met coördinaten van de scan.

Maak een *.dbf (als onderstaand) waarbij xmin de laagste x-coördinaat is; xmax de hoogste x-coördinaat is enz.
In het voorbeeld hieronder bestaat de hoek van het plaatje linksonder van de oldemat.jpg uit de coordinaten 203000 - 513000
Dus de coordinaten 203-513 zijn omgezet in meters !!!, met hier ook nog eens 4 getallen achter de komma, maar dat laatste is niet nodig.
In de kolom Image moet staan $AVDATA\plaatjesnaam.jpg

Deze *.dbf kun je met Quattro of Excel maken en vandaar opslaan als *.dbf, in dit geval oldemat.dbf.

In deze *.dbf kun je info naar meerdere *.jpg's zetten.
Nu staat er een verwijzing naar maar één *.jpg, maar één tabel kan ook verwijzen naar meerdere *.jpg's (zie voorbeeld hieronder).
 
IMAGE XMIN YMIN XMAX YMAX
$AVDATA\bergen.jpg
103000
515000 107000 522000
$AVDATA\egmond.jpg
102500
512500 105000 515000
$AVDATA\castricu.jpg
101000
507000 105000 512500
$AVDATA\beverwij.jpg
100000
501000 105000 507000
$AVDATA\heemsker.jpg
105030
502000 107000 508000

Ga nu weer naar het project.
klik op; klik op "add", selecteer de *.dbf en "ok"
Tabel is in project aanwezig maar moet nog opgeroepen worden in de view.
Klik in het project op VIEW | ADD THEME
Kies bij Data Source Type voor Image Data Source
Selecteer oldemat.dbf en klik op ok

NB. Je moet dus niet de *.jpg openen maar de *.dbf. De betreffende *.jpg wordt door arcview zelf doormiddel van het script en de weergavelokaties van de *.dbf in de view geplaatst!
Wanneer je nu in de view voor oldemat.dbf een vinkje zet verschijnt de gescande topkaart als ondergrond op je scherm.

Aanvulling:
De *.dbf met verwijzingen naar de ondergrond-jpg's heet imagecatalogus
In de imagecatalogus mag de inhoud van het veld "Image" ook gewoon fullpath/filename zijn:
Bijv: C:\esri\kaart21\bmp\oldemat.jpg i.p.v. $AVDATA\oldemat.jpg
In dat geval is het script overbodig en de imagecatalogus hoeft bij het heropenen van het project niet steeds te worden toegevoegd.
De truc met de geheugenvariabele ($AVDATA) is bedoeld voor inperking van ruimtebeslag van een imagecatalogus.dbf

Bijv.
c:\esri\kaart21\bmp\oldemat.jpg
c:\esri\kaart21\bmp\ov14.jpg
c:\esri\kaart21\bmp\gemgrens.jpg
c:\esri\kaart21\bmp\plaat5.jpg

kan, maar zo wordt de tabel onnodig zwaar, vandaar met een geheugenvariabele: $AVDATA
Anderzijds kan het handig zijn als de ondergronden verdeeld zijn over verschillende computerschijven:

c:\esri\kaart21\bmp\oldemat.jpg
d:\esri\kaart21\bmp\ov14.jpg
d:\esri\kaart21\bmp\gemgrens.jpg
e:\esri\kaart21\bmp\plaat5.jpg
 

ERROR

Hierboven een vaak voorkomende error bij het opvragen van een *.dbf als Image Data Source.
Mogelijke fouten:

NB. Wanneer de *.apr is gesloten en je opent hem later weer, wordt de kaart niet meer weergegeven. Opnieuw is het zaak het script te runnen, de *.dbf in de view te plaatsen en deze aan te vinken. Dat moet iedere keer opnieuw na het openen van de *apr !