Karttapullautin

Asennuspaketti päivitetty 12.7.2016

Karttapullautin Jarkko Ryypön tuorein lahja suunnistajille.
Jatkoa Reittihärvelille.

Laserkeilaus on mullistanut kartan teon.

Lyhyessä ajassa ympäri maailmaa on tullut tarjolle ohjelmistoja käsitellä laserkeilauksessa syntynyttä aineistoa.

Tähän joukkoon on liittynyt Jarkka Ryyppö Karttapullautin ohjelmallaan. Siisti tuote. Voi laittaa käsittelemään isoampiakin alueita eräajopohjaisesti.

Shp2Dxf-palvelu, MML aineisto DXF:nä Ocadiin kiinteistörajoineen. Helpompi ja nopeampi kuin Ocadin oma Shp ”import”. Valmis CRT-tuki MML:n SHP:stä Ocadiin. Uusimpana lisänä kiinteistörajat.

Laserdatan voi tuoda Ocadiin myös Ocadin omilla välineillä Ocad11 DEM.

Jotain vielä pitää tehdä itsekin: hankkia tehty laserdata jostakin, tiputtaa se pullauta.exe päälle, lopputuloksena kartta png-muodossa 600dpi 1:10000. Jokin kuvankäsittelyohjelma kannattaa ottaa kaveriksi, jotta voi tulostaa eri koossa. Irfanview on yksi vaihtoehto tulostukseen.

Kun tuot ko. kuvia taustakuviksi Ocadiin, niin anna kulmaksi sama, joka on myös käytössä Pullauttimessa. Ko. kulma on heiman eri eri puolilla Suomea. Joensuun alueella 9.0 toimii hyvänä arvona. Awotin Ocad-kulmalaskimella voit laskea kulman, jotta kartalla pohjoinen on siellä minne rasia osoittaa.

Ammattikartoittajille Ocad 11 Pro:ssa ja Ocad 12 Orienteering sisältää suoran tuen laseraineistolle. Pullattimen tuottama esim. out2.dxf kelpaa ihan yhtä hyvin Ocad käyrä käyttöön.

Karttapullautin tuottaa prosessin aikana myös verktoridataa, joka kelpaa mm. Ocad 11 Standard versiolle kuin myös vanhemmille Ocad:lle, joissa on dxf tai shape tiedostojen sisäänluku tuettuna.

Ocad11 ja Ocad12 voi nykyään käsitellä ko. LAZ-aineistot suoraan. Erillinen ohje.

Ocad12 tukee myös mm. OpenStreetMap karttoja tuoden uudella Karttavelho toiminnalla OSM kartan Ocadiin. Ensimmäisissä testeissä osoittautui se, että MML:n maastotietokanta on jossain parempi ja OPM jossain toisessa. Ainakin taajamien läheisyydessä polkuverkosto oli OPM:ssa parempi. Joten tausta-aineistoksi sekä MML että OPM ja siihen sitten laseraineisto, niin alkaa olla kartantekijällä välineet kohdallaan.

Ortokuvatkin saa helposti nyt Ocadiin (Ocad 12) ilman erillisiä noutoja.

Norjalainen vastaava

Karttapullautin

Ohjeet tehty 2014, pitänee paikkansa aikalailla edelleen.

Luo hakemisto pullauttimelle esim

mkdir  C:\pullautin

Hae asennustiedosto Karttapullautin-sivulta (ns. standalone paketti) ja tallenna se edellä luotuun hakemistoon.

Avaa asennuspaketin tiedostot ko. hakemistoon.

Jos ja kun haluat suorittaa isomman alueen kerralla, niin ns. batch moodia varten tee hakemistot input ja output

mkdir  C:\pullautin\input
mkdir  C:\pullautin\output

Kulman laskenta, northlinesangle, kun MML:n aineistoa käytetty. Ocadissä Finland, TM35FIN. MML aineiston koordinaatisto on nykyään etrs-tm35fin (EPSG:3067) . Suomessa käytössä oleva MML koordinaatisto ,

Muokkaa pullautin.ini tiedostoa, jos haluat batch-moodin toimivan.

# koordinaattiviivojen kulma, Joensuun alueella 9 astetta on sopiva
northlinesangle=9.00
# batch process mode, process all laz ans las files of this directory
# off=0, on=1  
batch=1

# processes, how many parallel processes you want to have in bach mode. 
processes=4

# batch process output folder
#batchoutfolder=../pullautustiles
batchoutfolder=output


# batch process input file folder
lazfolder=input

# Ocad:a varten dxf:t alueen tunnisteella batchoutfolder kansioon
# tallentaa output kansioon pohjan nimellä tulokset (dxf ja png)
savetempfiles=1

Ko. esimerkissä input data hakemistossa input ja lopputulos tulee hakemistoon output. Myös dxf:t.

Jukan oma asennuspaketti Pullauttimesta

Voit ladata myös oman pakettini (versio 2016-07-12), jossa em. konfiguraatiot valmiina sekä aineisto-kansiossa esimerkkinä yksi paketti MML-aineisto ja Pullautuksen lopputulos sekä shp2dxf-ohjelman lopputulos. Kansiossa ohje on ohjeet. Tarvittavat crt ja ocd tiedostot löytyvät esimerkkiaineiston kansiosta aineisto\onttola\N5424R.onttola

  • tee hakemisto pullautin jonkun levyaseman juureen
  • pura ko. zip ko. hakemistoon
  • ohje kansiossa on awot.pullautin.pdf ohje, Lue se. Tällä sivustolla osittain samaa ohjetta, mutta ko. pdf sisältää selkeän valmiin työlistan.

las2txt.exe

Pullautin tarvitsee las2txt.exe ohjelman avuksi. Ko. exe on osa Lastools pakettia. Pura ko. lastools jonnekin hakemistoon. Kopioi sen bin hakemistosta las2txt.exe edellä tehtyy Pullautin-hakemistoon.

Laszip.exe tarvitaan, jos käytät Ocad:n DEM toimintoa tuodaksesi LAZ-aineistoa Ocadiin. LAZ-tiedosto pitää avata Ocadin LAS-tiedostoiksi. laszip –v –i *.laz

Kuvankäsittely

Kartta-aineisto, (etrs-tm35fin koordinaatisto, Ocadissä koordinaatisto Finland, TM35FIN )laserkeilausaineisto ja maastotietokanta. Maastotietokannasta saadaan tiet, rakennukset, vesistöt jne. Yhdistämällä ko. kaksi aineistoa, saadaan jo aika käyttökelpoinen kartta.

Laserkeilausaineisto saadaan kun vasemmasta valikosta valitaan Laserkeilausaineisto ja täppäät vihreätä pistepilvi, niin saat ruudukon. Ko. ruudukosta klikkaamalla ilmestyy ko. ruudun aineisto oikeaan reunaan. Oheisessa esimerkissä vasempi ruutu on aineisto ja oikeammasta ei ole.

Kun olet valinnut halutut aineistot, klikkaa Tee lataustilaus, jolloin kysyy spostisi. Saat spostiin linkin lataussivulle, josta voit tallentaa .laz tiedostot.

Maastotietokanta saadaan vastaavasti valitsemalla valikosta Maastotietokanta ja klikkaamalla vihreää kaikki kohteet, jolloin saat ruudukon. Ruudut ovat isompia kuin laserkeilausaineistossa. Valitse se ruutu, josta laseraineistokin on. Vastavaasti tilaus, spostiin tulee latauslinkki, lataa ja tallenna shp.zip aineistot. Ko. tiedostot ovat avattuna käytettävissä sellaisenaan joissakin Ocad-versioissa (shape tuki). Voit konvertoida shp=>dxf.

Suosittelen, että teet alihakemiston esim. aineisto ja sinne alueen nimellä alihakemiston. Laita kaikki ko. alueen aineistot ko. hakemistoon, jolloin ne voidaan sieltä kerralla ottaa käsittelyyn kopioimalla pullautin\input hakemistoon ja suorittamalla pullautin. (batch-moodi).

Taustakartta Ocadiin

Jotta karttapalasilla jne. olisi kunnollinen kohdistuspohja, niin Peruskartta png tiedostona on siihen loistava apu. Laita Ocadiin taustakartaksi:

  • kulma sama kuin muissakin aineistoissa
  • karttamittakaava 1:15000

Kun lataat myös png:n vastaavan pgw-tiedoston samaan kansioon png:n kanssa, niin Ocad ja Omapper osaa siitä lukea tarvittavat tiedot. Ainoastaan kulma pitää asettaa itse.

Ocad 12 sisältää tuen hakea OpenStreetMap (OSM) aineisto pohja-aineistoksi Ocadiin. Toimii nätisti. Tiedosto-valikossa toiminto Karttavelho.

Batch-moodi

Sinulla on alueen maastotietokannasta XXXXX.shp.zip ja laserkeilausaineisto YYYYY.laz.

Kopio sekä laseraineisto että maastokarttadata pullautin\input kansioon.

Käynnistä pullauta. Pullauta katsoo mitä löytyy input kansiosta ja tuottaa output kansioon lopputukoksen.

Lopputuloksena on temp-hakemistossa ko. alueen dataa eri muodoissa, voi ottaa talteen apuhakemistoon ja käyttää esim. Ocadissä. Varsinainen rasterikartta/kartat on pullatin\output kansiossa.

Huom: batch-moodissa max. sen verran kuin on prosessorissa ytimiä. Yhtä monta laz-tiedostoa voit laittaa maksimissaan input-kansioon kerralla ajettavaksi.

Kun pullauta on suoritettu, niin output-kansiossa on useampi png-tiedosto.

Jos ja kun ne haluat yhdistää ne, niin

pullauta pngmergedepr 1

kasaa output-kansiossa olevista *depr*png tiedostoista yhden ison png-tiedoston ko. juuri hakemistoon nimellä merged_depr.jpg ja merged_depr.png.

Kopsaa ko. merged_depr.* tiedostot talteen.

Aputiedostojen käyttö

Ajossa syntyy tempN-hakemistoon (N=1,2,3,4,..) joukko aputiedostoja, joilla voi olla käyttöä tilanteen ja tarpeen mukaan. Etenkin dxf tiedostot. Ne voi ladata Ocadiin.

Kuvatiedostoja

  • high.png ja high.pgw - tiet, järvet, polut, ojat, rakennukset, sähkölinjat, …
  • low.png ja low.pgw - suot, pellot
  • vegetation.png ja vegetation.pgw - kasvillisuus

pgw-tiedostot sisältävät sijaintitiedon. Ocad 10 tai uudempi osaa käyttää sen, jos on samassa hakemistossa kuin taustakuvaksi lisättävä png.

Vektoritiedostoja

Pullauttimen pullauta.ini tiedostossa ohjataan millainen käyräväli yms. on lopputuloksessa.

Itse käytän oheisia keskeisiä arvoja:

  • savetempfiles=1
  • formline=1 kayraväli 5 m, apukäyrät 2.5 m
  • indexcontours=25.0 johtokäyrät valmiiksi samat kuin olisi lopullisessa kartassa
  • batchoutfolder=./output
  • lazfolder=./input

Näitä voi tuoda Ocadiin omina tasoina ja taso kerrallaan vaikka antaa symboli tms.

  • contours03.dxf - käyrät 30 cm käyräväli, yleensä ei tarvita
  • contours.dxf - käyrät 5m käyräväli, mukana apukäyrät

Ocad kartoituskäyttö

Pullautin tuottaa sopivia dxf tiedostoja tuotavksi Ocadiin. contours03.dxf tiedostossa on käyrinä laserdata. Turhan tiukka käyräväli kartoittajalle. Countour.dxf sisältää käyrät kuten parametrillä formline on määritelty.

Ammattikartoittajat tykkäävät yleensä 1.25 m käyrävälistä. On sopivasti jo siivottu, mutta erilaista pienmuotoa mukana. Paikan päällä sitten kartoittaja valitsee mitä ottaa mukaan lopulliseen tuotokseen. Osa ei tule kartalle, mutta toimii loistavana apuvälineenä maastotyössä.

Itse käytän batch-moodia 4 rinnan ajona, joten aineisto on pullautuksen jälkeen aina neljässä temp-hakemistossa: temp1, temp2, temp3, temp4.

Kun on asetettu savetempfiles=1. niin Pullautin säilyttää lopputulokset output-kansioon (dxf ja png). Tällöin ei tarvitse temp-kansioista kerätä tarvittavia tiedostoja.

Kartoista varten ko. aineistosta voi ajaa lisää dxf tiedostoja. Ohessa valmis bat, jolla tuotan kustakin temp-hakemistosta tarvittavat 1.25 käyrävälin dxf:n. Vie erikseen Ocadiin ja anna sille oma väri tai käyräsymboli, niin pysyy perus 5m ja 2.5m väli kunnossa ja 1.25 m käyristä sopiva täydentävä/avustava apukäyrä.

Välikäyrät

Ko. valikayra komentoa käytä:

valikayra 1.25
valikayra.bat
@echo off
:: valikayra.bat
:: argumenttina annettava mika välikäyrä halutaan 1.25 0.625 tms.
:: katsoo output hakemistosta mitkä alueet sieltä löytyy ja sen perusteella
:: käy niiden vastaavat tempN hakemistot läpi tehden kustakin oman välikäyrän
:: Jukka Inkeri 10.7.2016
 
del temp /q >nul 2>&1
rmdir temp >nul 2>&1
 
:: tarvitaan että for rakenne toimii oikein
setlocal enableextensions enabledelayedexpansion
 
SET NYT=%cd%
SET mikakayra=%1
if %mikakayra% == "" goto loppu
 
:: output kansiossa on tuotetut tiedostot = voidaan päätellä mistä tehdään välikäyrät
cd output
 
:: lkm = monesko tiedosto = mikä temp kansio
SET /A lkm=0
 
for %%f in (*.laz.png) do (
 
  set /a lkm+=1
  echo !lkm!: %%f  
 
  :: parseroidaan tiedoston nimen alkuosa  
  for /F "tokens=1-2 delims=." %%i in ("%%f") do (
    set tunniste=%%i
    @echo tunniste: %%i %%j
    cd %NYT%
    :: tehdaan kayrat
    call kayratee !lkm! !mikakayra! 
    :: kopsataan talteen ouput-kansioon nimeten alueen tunnisteen mukaan
    set destfile=output\%%i.%%j_contours_%mikakayra%.dxf 
    copy temp!lkm!\contours%mikakayra%.dxf  !destfile! /Y >nul 2>&1
    copy temp!lkm!\detected.dxf output\%%i.%%j_detected.dxf /Y >nul 2>&1
    copy temp!lkm!\dotknolls.dxf output\%%i.%%j_dotknolls.dxf /Y >nul 2>&1
    echo Tehty !destfile! 
  )
 
)
 
cd %NYT%
endlocal
 
goto end
 
:loppu
echo annettava argumenttinä mikä käyrä halutaan: 1.25 tai 0.625
 
:end

Ko. bat kutsutaan batch pullatuksen jälkeen kullekin temp hakemistolle erikseen

'kayratee 1 1.25' = käsitellään temp1, tehdään käyräväli 1.25

kayratee.bat
@echo off
:: kayratee.bat
:: argumentti 1, mikä temp hakemisto sisältää lähdedatasta pullautetut aputiedostot 1,2,3,4,...
:: argumenttina 2 oltava mikä käyrä tuotetaan 1.25 vai 0.625
 
set batchdir=%1%
set kayra=%2
echo temp%batchdir% suoritukseen käyräväli %kayra%
 
 
if %batchdir% == "" goto loppu
if %kayra% == "" goto loppu
 
del temp /q
del temp /q
rmdir temp
mkdir temp
mkdir temp
 
copy temp%batchdir%\*.xyz temp
:: voisi olla myos etta kopsataan tempN hakemistosta temp hakemistoon ja lopuksi taas takaisin.
:: kopsaamalla kaikki *.xyz temp ja ajaa komennot ja sitten kopsaa *.txt ja *.dxf takaisin.
 
:: 1.25 tai 0.625 m tai 2.5 kayravali
:: set kayra=1.25
pullauta xyz2contours %kayra% xyz2.xyz null out.dxf
:: pullauta xyz2contours 0.625 xyz2.xyz null out.dxf
:: pullauta xyz2contours 2.50 xyz2.xyz null out.dxf
pullauta smoothjoin
 
:: dir temp\out2.dxf
:: kopsataan samaan temp-kansioon kuin pullautus tehnyt omansa
copy temp\out2.dxf temp%batchdir%\contours%kayra%.dxf /Y
 
:loppu

Ocad 11 ja 12

Ohessa tarkemmin kuinka DXF-tiedostoja käsitellään. Aikaisemmin kuvattu kuinka helposti voi tehdä, mutta ohessa asiasta kiinnostuneille hieman syvempää tietoa.

Kun tuot tiedostoja Ocadiin, niin kulma kannattaa laittaa sama, jonka olet Pullattimeenkin määritellyt. Etenkin jos ja kun se on oikein. Tällöin DXF tuodaan esim. Joensuussa 9.0 kulmalla, samoin taustakuvaksi Pullauttimen tuottamat png-tiedostot. Tällöin Ocadissä karttapohjoinen on todellakin suoraan ylös

Pullauttimen tekemät pgw-tiedostot kannattaa siirtää aina png:n mukana, koska niissä on sijaintitieto valmiina, jotka Ocad osaa hyödyntää.

Taustakuviksi voi ottaa:

  • XnnnnZn.laz_depr.png
  • low.png
  • high.png
  • vegetation.png

Lisäksi valmis tiedosto, jossa muutama erikoissymboli tuotavia käyriä jne. varten.

Minun mallitiedosto ja tarvittavat CRT-tiedosto ja vastaava 1.25 käyrille

Tiedosto ⇒ Tuo tiedosto: contours1.25.dxf tai contours0.625.dxf riippuen kumpi tehty

  • Uusi siirtymä (hakee datasta)
  • kulmaksi sama mikä oli käytetty Pullauttimessa, pullautin.ini northlinesangle arvo
  • CRT tiedostoksi laser125.crt
  • OK

Kartta ⇒ Muunna tuodot tasot symboleiksi

  • Lisää
  • valitse mikä taso (countour) ja valitse mikä symboli annetaan - kannattaa olla oma käyrä esim. 0.05 tms. jolle kiinnitetään tuotu 1.25 m laserkäyrä
  • samalla tavalla myös laskevat käyrät, jotta erottuu. Sama käyrä vaikka violetti tai punaisena
  • voi tallentaa CRT-tiedostoksi, jolloin seuraavalla kerralla voi käyttää sitä jo suoraan apuna
  • countour_index = johtokäyrä
  • lopuksi Suorita

Itselläni ko. pohjassa käyrä = countour_index ja käyrä 1.15 = countour. Countour on mukana samat kuin 5m, mutta myös pelkät apukäyrät (countour_intermed).

  • 1.25 apukäyrätiedosto sitten ja sieltä vain countour_intermed mukaan ensin
  • sitten 5m käyrät ja apukäyrät Pullauttimen tuotoksesta

Yksi tapa ottaa sisään dxf:t

  • omat symbolit ruskea ja violetti 1.25 m laserkäyrille
  • oma symboli negatiivinen johtokäyrä violetti
  • oma symboli ”saa hävittää”, paksu violetti - osa datasta tulee tuplana, toisesta heitetään roskiin
  • apukäyrä ohut ja tuplana detected varten
  • dotknolls.dxf - pienmuodot
  • detected.dxf/knolls.dxf - pienmuodot - tämän jälkeen taas yksi crt ajetaan, jossa kumpareet ja u-supat, loput kaikki tällä tuodut sopivalla symbolilla, jotka sitten valitaan ja hävitetään
  • johtokayrat otetaan VAIN countour5.dxf ja muissa tuhotaan - ei satu aina tasan sama käyrä eri dxf versioissa

Muut

  • detected tai knolls.dxf, 1010=pistekumpare, ei muuta
  • c3g.dxf, isot jyrkänteet, cliff3 vain
  • c2g.dxf, pienet jyrkänteet, cliff2 vain
  • dotknolls.dxf, udepression, dotknoll = u-suppa ja pistekumpareita vain

Kun on konvertoitu halutut tuntemattomat symboleiksi, niin loput poistetaan

  • piilota kaikki symbolit
  • jäljelle jää vain tuntemattomat
  • valitse kaikki
  • poista
  • palauta symbolit näkyviin

Kun dxf:t tuotu, niin sitten taustakuvat vielä, Erityisesti vegetation.png ja vegetation.pgw. Tiedosto sisältää nykyään paikkatiedon, joten se napsahtaa uusimpiin Ocadiin ainakin automaattisesti. Jos tarvitsee antaa arvoja niin:

  • resoluutio 600
  • mittakaava 1:10000
  • kulma 9.0 (sama joka edellä ollut, pullautin.ini jne)
  • kartan mittakaava 1:15000

Iso osa käyristä tulee monikertoina eri tiedostoissa. Ns. monikerrat voi poistaa Ocad:ssä: Valikosta valitaan Kohde⇒Topologia⇒Valitse duplikaattikohteet. Kun se tehty, paina DEL ja duplikaatit katoaa.

MML Shape tiedostot symboleina Ocadiin

Kehittyneempi tapa kuin edellä. Lue lisää, kuinka tehdään niin näppärästi karttapohja Ocadiin.

Leikkaa alkuperäisestä pienempi alue

Esim. testaamisen ym. kannalta kannattaa alkuperäisestä laz-tiedostosta leikata pala ja testata sillä.

Katso laz-tiedoston tiedot lazinfo:lla

lasinfo -i N5424F2.laz palauttaa tietoa, mm. 
  X   63200000   63499999  
  Y  695100000  695399999
  Z       8176      37892

Eli palan koko on 3000×3000 Noilla tiedoilla jos otetaan esim. vasemmasta alanurkasta 250 kokoinen pala, niin sen saa tehtyä las2las komennolla:

# vanhaversio oli: las2las -i N5424F2.laz -o N5424F2pala.laz -clip_tile 632000 6951000 250
las2las -i N5424F2.laz -o N5424F2pala.laz -keep_tile 632000 6951000 250

Traiol.fi ohjeet sivulta löytyy Tile-Calculator. Sen avulla voit laskea, jos tarvitset aineistopalasia.