Kategorier
Kartritning

Att jobba med Karttapullautin, tips och trix för batchkörningar och vilka fel man vill undvika…

Karttapullautin är ett fantastiskt hjälpmedel när man automatgenererar kartor. Men jag inser efter sista veckans kartarbete att jag aldrig riktigt fattat hur jag skall använda det. Efter lite testande och många meddelanden med Jarkko Ryyppo som skrivit programmet så tror jag nu att jag fått rätt på både inställningar och hur man skall gå tillväga. Saker som jag hade problem med som nu löst sig är:

1. Glapp i skarvarna med vegetationsbilderna mellan laserdata-kvadraterna.
2. Bitvis överlapp av höjdkurvorna mellan laserdata-kvadraterna.
3. Krascher av Karttapullautin och att jag får starta om programmet många gånger.

Saker som jag nu fått rätt på och ändrat är:

1. Batchkörningar med många laserdata-filer.
2. Hur jag tar hand om outputen från många laserdata-filer.

Så här är mitt workflow.

0. Ladda ner Kartapullautin och ställ in det

Kartapullautin är skrivet av Jarkko Ryppö och kan hämtas från hans sida http://routegadget.net/karttapullautin/ Det är skrivet för Windows så du måste antingen ha en weindowsdator eller en mac som du på något sätt kan köra windows-program på, exempelvis via parallells eller boot camp. Jag har kört kartapullautin både i windows från boot camp på en mac och nuförtiden på en dedikerad windows-platta.

Jarkko har skrivit en bra instruktion i Readme-filen, så jag har ingen anledning att repetera allt där. Men en sak som är lätt att missa är att man behöver programmet ”las2txt.exe” från lastools-sviten som man hämtar på https://rapidlasso.com. Programmet finns i mappen /bin när du packat upp lastools-paketet. Den filen kopierar du helt enkelt till din uppackade kartapullautinmapp.

Första gången du testar kartapullautin kan det vara enkelt att testköra på en laserdatafil. Då släpper man helt enkelt sin .las eller .laz-fil på pullauta.exe. När du sen vill göra ett kartprojekt kommer du helt säkert vilja köra batch mode. Då följer du instruktionerna nedan.

1. Välj ut laserfiler, om du inte skall köra på alla du har.

Denna del finns bättre beskriven i en film postad på ”2. Laserdata – skapa kurvor”. Det är tre steg man behöver göra.

  1. Hitta vilket laserscanningsområde som ditt kartprojekt finns i. Det gör man på https://webgisportal.lantmateriet.se/portal/apps/webappviewer/index.html?id=36d1e8bd49694da289e2ec7f774f531c
  2. Inom detta område – ta reda på namnen på dina laserfiler. För detta kan man ta hjälp av lantmäteriets tjänst https://geolex.etjanster.lantmateriet.se/
GeoLex-tjänsten från lantmäteriet

2. Kör igång pullauta i batchmode

Uppdatering 2020-06-20:
Jag har laddat upp min pullauta.ini-fil så ni kan ladda ner mina standardinställningar. Det minsta ni måste ändra är var in och out-mapperna ligger på er dator.

Jag går inte igenom här hur man gör grundinställnignar, men det är rätt vettigt att provköra inställningar för karttapullauta på en mindre fil innan du kör en stor batchomgång.

Karttapullautin styrs av input från filen pullauta.ini. Ett par saker som berör batchkörningen tar jag upp här. Pullauta kan köras på två sätt. Antingen genom att man släpper en laserfil på programmet – då körs bara den så klart, eller så startar man programmet genom att dubbelklicka på det och då kan man köra batchkörning av många filer som ligger i en in-mapp. Det är så man vill göra om man vill ha en karta om går över flera laserdatafiler så att allt hänger ihop snyggt utan glapp eller överlapp.

I pullauta.ini letar man reda på följande rader

# batch process mode, process all laz ans las files of this directory
# off=0, on=1 
batch=1

# processes
processes=3

# batch process output folder
batchoutfolder=C:\Out

# batch process input file folder
lazfolder=C:\In

Först sätter man batch=1, sedan bestämmer man hur många parallella processer ens dator orkar med och sist definierar man var man vill ta laserfiler från och var resultatet skall hamna. Har du ingen aning om hur många parallella processorer? Ingen fara, datorn håller koll själv 😉 så det kan inte bli så fel. Jag har fyra på min vanliga dator.

När detta är klart så kör man igång pullauta genom att dubbelkicka på det.

3. Vänta, och tjuvtitta ibland…

Om du likt mig valt fyra parallella processer så öppnas fyra svarta power shell-fönster där man får lite feedback om vad som händer. Om pullauta är upptagen med att rendera höjdkurvor, leta branter etc. Man ser även när en fil är färdig och när den börjar med nästa.

Men vänta dig ingen action. Det här tar tid, självklart beroende på hur mycket datorkraft du har. Låt datorn stå över natten om du har ett 20-tal svenska laserdatakvadrater så är det oftast färdigt till morgonen efter om allt gått som det ska. När jag körde området som syns ovan, dvs västra Hisingen och Göteborgs norra skärgård som är ca 60 laserfiler så tog det en långhelg för en normalstark laptop att tugga igenom med ett par stopp och omstarter på vägen.

Tjuvtitta – i out-mappen sparas resultatet ut. Där hamnar det (iallafall för mig) 15 olika filer per laserdata-inputfil. Ett par av dem är .png-filer. Dessa kan man kolla på och se hur resultatet blivit. Jag brukar kolla på den som heter tiles_XXX_YYY-las_depr.png.

Följande filer får jag som output

tiles_303000_6410000.las_vege.png
tiles_303000_6410000.las.pgw
tiles_303000_6410000.las.png
tiles_303000_6410000.las_c2g.dxf
tiles_303000_6410000.las_c3g.dxf
tiles_303000_6410000.las_contours.dxf
tiles_303000_6410000.las_contours03.dxf
tiles_303000_6410000.las_depr.pgw
tiles_303000_6410000.las_depr.png
tiles_303000_6410000.las_detected.dxf
tiles_303000_6410000.las_dotknolls.dxf
tiles_303000_6410000.las_formlines.dxf
tiles_303000_6410000.las_undergrowth.pgw
tiles_303000_6410000.las_undergrowth.png
tiles_303000_6410000.las_vege.pgw

Beskrivning av dem finns i readme.txt-filen som kommer med karttapullauta. Generellt så är *.png bildfiler, *.pgw med samma namn som en png-fil är dess georefereringsfil, en ”world”-fil som definierar var i koordinatsystemet bilden ligger. *.dxf-filer är information i vektorformat som gör att man kan importera i tex OCAD eller OOM, på det sätt levereras höjdkurvor, punkthöjder och branter.

4. Är allt klart och OK?

Det finns två lätta sätt att kolla om allt är klart och har renderat på rätt sätt.

a) QGIS – öppna tex alla tiles_XXX_YYY-las_depr.png från outfoldern i qgis och kolla om du har en heltäckande karta.

b) kör merge-kommandona som jag beskriver nedan och se hur bilden ser ut.

Om allt inte är färdigt börjar man med att bara starta pullauta.exe igen. Den kollar då igenom vilka laserfiler som är körda och processar de som inte är färdiga. Om den inte vill göra detta så kan det vara någon ruta som blivit fel. Då får man med lite detektivarbete koll om någon tiles_XXX_YYY-las.png är tom, ta bort den filen och köra igång pullauta.exe igen. Det verkar som att pullauta jämför filerna i in-mappen med om det finns en tiles_XXX_YYY-las.png i ut-mappen, finns det redan en, även om den är helt tom så hoppar programmet över den laserdatafilen.

5. Slå ihop ihop resultatet

Man kan importera fil för fil i OOM eller OCAD men jag tycker det är väldigt mycket mer lättjobbat om man mergar ihop filerna. Det görs också i Power Shell-fönstret med följande kommandon. Power Shell öppnas genom att håll nere shift och högerklicka i kartapullautin-mappen så får du ett val att starta PowerShell i den mappen.

PS C:\Karttapullautin> .\pullauta pngmerge 1
PS C:\Karttapullautin> .\pullauta pngmergedepr 1
PS C:\Karttapullautin> .\pullauta pngmergevege 1
PS C:\Karttapullautin> .\pullauta dxfmerge

Då får man i sin mapp georefererade png och jpg bilder för karta, med och utan gropar och vegetationen separat plus dxf-filerna ihopslagna, var sort för sig och en stor med all dxf-output som höjdkurvor, punkthöjder, gropar etc.

Hur detta sedan importeras och används får jag ta i nästa artikel 😉 Kanske även lite mer om vilken output man får från Karttapullautin.

6. Misstag som jag gjort som ni kan undvika…

När jag inte hade fått rätt på outputen i C:/Out-mappen så kopierade jag filer från temp-mapparna som skapas i mappen där karttapullautin ligger, förutsatt att man valt att spara tempfiler. Det var då höjdkurvor överlappade med varandra. I temp-mappen är filerna inte beskurna ännu…

Jag fick av någon anledning inte rätt på batchkörningarna i början så jag satt batch=27 om jag hade 27 laserfiler… Det orkade inte datorn med och så kraschade det. Nu med mindre filer och tre parallella processer löper det på. På en gammal dator jag har har jag kört med en parallell process och låtit den stå och arbeta i lugn och ro. Det funkar också OK.

Kör alla filerna som täcker ditt kartområde i en batchkörning. Då får man vegetationsfiler och höjdkurvor som hänger ihop. Annars kan det bli korridorer utan information i skarvarna. I det stora område som jag har – som är tänkt att bli många mindre kartprojekt – så gjorde jag en stor körning så allt hänger ihop, sedan kan jag plocka de delar jag vill för specifika kartprojekt.

Kolla så ni har plats på hårddisken… laserdatafilerna är rätt stora, tempfilerna likaså, kolla så det finns plats eller lägg karttapullautin, in och ut-mappar på en extern disk. För mig så hängde sig renderingarna utan förklaring gång på gång fram tills jag insåg detta och la över allt på en extern hårddisk.

Tips och trix: Om datorn inte orkar med stora laserfiler – dela upp filerna i mindre delar

Uppdatering 2020-06-20:
Med nya Laserdata Skog har jag inte gjort någon uppdelning av laserfilerna så som jag beskriver nedan. Det flyter på utan problem på min windows surface med en i5:a i. Men om det inte fungerar för dig – följ då tipsen nedan.

Ett av tipsen jag fick från Jarkko var att dela upp laserfilerna i mindre kvadrater. Det blir annars lätt att det hänger sig när de största dxf-filerna skall genereras.

Detta gör man lätt med ett av verktygen i LAStools-sviten. Om du inte har det redan så ladda ner och packa upp de programmen. Från mappen LAStools/bin kopierar man verktyget LAStile.exe till samma mapp som laserfilerna. Det verktyget kan dela upp laserfiler i mindre kvadrater. För att köra det får man skriva kommandon i kommando-tolken, vilket du startar tex genom att söka efter programmet ”cmd” eller så kör man i Win 10 i Power Shell, vilket jag gjort när jag testat dessa kommandon. Shift – högerklick i samma fönster som laserfilerna ligger för att kunna välja ”Öppna Power Shell fönster här”.

I fönstret skriver du:

PS C:\In> .\LAStile -i *.las -tile_size 500 -o tiles.las

-i står för indata filer
*.las betyder använd alla filer med ändelse .las, kör *.laz om du har det formatet. Man behöver inte slå ihop alla filerna först. Det löser LAStile on the fly.
-tiles_size 500 sätter höjd och bredd på de nya rutorna
-o står för utdata-filer, i mitt fall kommer rutorna sluta på namnet tiles.las

Efter en liten stund har du ett gäng nya mindre filer och löper mindre risker att programmet hänger sig.

Glöm inte flytta undan de stora originalfilerna till en annan mapp så inte körningen görs på både originalfilerna och de mindre nya filerna.

11 svar på ”Att jobba med Karttapullautin, tips och trix för batchkörningar och vilka fel man vill undvika…”

Kan du ge specifikation på ”en normalstark laptop”?

Testade på laptop som skolan lånade ut under utbildningen men det var 2014. Minns att jag fick dela upp körningarna i mkt små LAS-filer… ändå kraschade det ofta.

Gilla

Hej,
Jag har kört på diverse laptops. Kan inte exakt spec på alla men bland annat en MacBook Air med windows i bootcamp från runt 2012/2013, så den har nog en i5:a som processor, kanske 8 gb minne, även en Dell laptop från samma tid fungerade bra. Däremot blev det en rejäl prestandahöjning när jag kört på min macbookpro från 2018 med en i7:a och 16 gb och ännu bättre när jag fått hyra in mig på sonens speldator.

Knepet som jag landat i är att dela upp laserfilerna i mindre bitar om det är en sämre specad dator, kör inte för många parallella processer. Testa med ett litet område/mindre fil – och låt det sen ta den tid det tar. Jag har nog alltid haft ”en dator över” som kunnat stå och snurrat över natten eller något dygn utan att jag behövt den för annat. Men nu på slutet så hinner datan snurra runt rätt snabbt, även med de större körningarna jag gjort.

Gilla

Svara

Hej?
En fråga – har du försökt/lyckats köra .png-filer från OCAD i Polygonize?
Jag upplever i mitt aktuella område att de vegetationsbilder som jag får från OCAD stämmer bra med verkligheten (men däremot inte alls lika bra överensstämmelser med bilder från Karttapullauta)
Jag har inte lyckats hitta något sätt att omvandla bilderna från OCAD till .shp filer (trots att jag lagt ett antal timmar nu och även i höstas på problemet) och från ocad fick jag ingen hjälp när jag skickade en fråga.

Gilla

Supebra guide, jag är igång och testar göra en karta nu runt sommarstugan i Blekinge. Hade ett problem med kartappullautin som jag inte ser att du beskrivit lösningen på här. När jag försökte omvandla laz-filerna så klagade programmet på att las2txt saknades. Som tur var fanns detta lilla program med i LAStools som du hänvisat till innan så det var enkelt att lösa genom att lägga det i samma mapp som pullauta.exe

Gilla

Jag försöker få in Fastighetskartan i karttapullautin. Det fungerar, förutom att en väg ignoreras. Den finns med i shp-filen. Känns som att jag saknar en rad i konfigurationsfilen fastighetskartan.txt. Har du provat att få in fastighetskartan i karttapullautin? Har du en förbättrad fastighetskartan.txt som du vill dela med dig av?

Gilla

Jag svarar på min egen kommentar, då jag lyckades lösa det.
Som jag misstänkte så saknade jag en rad i konfigurationsfilen fastighetskartan.txt . Jag la till följane sist, så fick jag med min väg:
road|503|DETALJTYP=VÄGA3.M

Gilla

Gott Joakim,
Jag han inte svara innan du löste det. Och tyvärr är mitt svar att jag inte provat att använda karttapullautin med input på det sätet. Eller ja, jag har provat en gång, men då jag i princip alltid vill ta in det i ocad eller annat kartritningsprogram efteråt, för att kunna jobba mer med det, så har jag inte varit så intresserad av bild-outputen från karttapullautin och därför inte grävt vidare. Bra att du hittade problemet!

Gilla

Lämna en kommentar