Catalogue/NMD 2018 Import Plan/Rutbearbetningsprocess

From OpenStreetMap Wiki
Jump to navigation Jump to search


Denna guide försöker beskriva typiska steg och praktiska råd för att hjälpa importera data för en ruta (tile) av NMD-importen. Redigera gärna denna sida för att lägga till detaljer.

Guiden anser att man öppnar OSM-filer i JOSM-redigeraren och använder diverse verktyg som finns i JOSM för att underlätta processen så mycket som möjligt.

Innan du börjar

  • Tänk på att att importera en ruta tar från 30 minuter till några timmar manuellt arbete. Det blir fortare efter man har bearbetat några få rutor och lärt sig av typiska problem att leta efter och av lösningar att lämpa till. Processens varaktighet beror främst på hur många befintliga sträckor redan finns i området, eftersom de flesta manuella redigeringarna är att förena intilliggande gamla och nya ytors gränser. Ha koll på komplexitetsspalten i tabellen när du väljer en ruta för bearbetningen.
    • Undvik helst områden med kartlagda städer. Föredra rutor av glesbebyggda områden. Undvik även de områden som redan har mycket markanvändning på plats.
  • Var inte rädd att radera nya noder eller sträckor som visar sig var för jobbigt att lösa. Varje ruta innehåller faktiskt 10000-50000 nya objekt med mycket fina detaljer. Det gör inget om man raderar några noder av dem, sparar sin tid och får ett nytt område kartlagt. Var mer försiktig med att radera "gamla" objekt. Ofta är det rimligt eller oundvikligt, men syftet på den här importen är främst att lägga till nya ytor.
  • Om du känner att någon ruta blir kanske för jobbig att importera på grund av överväldigande konflikter, lägg den åt sidan och dokumentera ditt beslut. För hela Sverige finns det uppskattningsvis cirka 15000 rutor varav bara en hälft behöver någon markanvändningsimport, så det är lätt att hitta andra enklare rutor att bidra med.
  • Tänk på att det inte krävs rätta till några befintliga varningar som redan rapporteras för baslagret. Du kan göra det senare om du vill. Rätta till de varningar som orsakas av det nya datat.
  • Spara ditt jobb regelbundet ifall JOSM kraschar eller en bugg uppstår.

Översikt på processen

För varje ruta blir ändamålet i att förena en fil med importdatat med ett baslager som innehåller objekt ur OSM-databasen för samma område och fixa nya konflikter som uppstår efter sammanfogningen. Det gör man helst innan man laddar slutresultatet upp till OSM-databasen.

Välj en delarea och en ruta

Vanligtvis motsvarar delareor till kommuner. Delareans yta är indelad i tiles — rektangulära rutor av samma storlek. Numera är rutors dimensioner 0,1 × 0,1 grader (ungefär 6 × 10 km) men det kan ändras för olika delareor.

Delareor har oftast ojämna gränser medan rutor är alltid rektangulära. Om en ruta ligger vid delareans gräns bär det endast de objekt som råkar hamna i delarean. Därför blir vissa rutor nästan eller helt tomma; markera de som klara omedelbart.

Reservera den ruta du vill syssla med för sig själv

För att undvika att fler än en människa samtidigt bearbetar samma ruta uppdatera vänligen tabellen med ditt kontonamn i den rad som motsvarar till den utvalda rutan.

Öppna OSM fil och bedöm dess innehåll

Öppna den OSM-fil som motsvarar till den utvalda rutan i JOSM. Den öppnas som ett nytt lager.

Open-osm.jpg


Uppskatta sedan om du vill fortsätta med detta importlager. Var uppmärksam på:

1. Hur många nya objekt finns i filen. For areor som redan är väl kartlagda med markanvändning eller har stora städer eller sjöar är det möjligt att OSM-filen blir liten och innehåller få nya objekt. Importprocessen funkar bäst på dåligt kartlagda areor.

2. Huruvida datat motsvarar till flygplansbilder eller din förståelse på etikettvalet för arean. Det är möjligt att vissa areor har blivit dåligt taggade i NMD-källan.

Om du inte vill fortsätta med någon ruta, stängd filen och markera ditt beslut i tabellen. Till exempel: "rutan är redan väl kartlagd" eller "polygoner stämmer inte med Bing" osv.

Du behöver ny skapa ett baslager. Den ligger nära importfilen som du har just öppnat. Alternativt behöver du ladda det ner direkt från OSM-databasen. Tänk på att alltid spara det som ett nytt lager. Det rekommenderas i alla fall att fräscha upp baslagret ifrån OSM-databasen så att du kan se nyligen adderade objekt på den.

Jämför visuellt två lager

Nu har du två lager i din redigerare. Byt mellan dem få gånger och uppskatta visuellt om nya polygoner i importlagret täcker tomma utrymmen i baslagret. Om det finns tydliga och stora konflikter betyder det att någon redan har kartlagt (manuellt eller automatiskt) flera objekt i denna area sedan rastermasken har skapats. Alla sådana konflikter kan endast lösas manuellt. Om det finns för många konflikter, avbryt importen för rutan och dokumentera det i tabellen. Man behöver då producera en ny rastermask av en fräsch OSM-dataexport innan man kan fortsätta med arean.

Kamma polygoner

Nu kommer du redigera importlagret. Om du ser fler små polygoner (mindre är 12 noder) i importlagret och vill hellre ta dem bort, det kan du göra. Tryck Ctrl-F, ange source="NV NMD2018" and nodes:-12 för att välja alla objekt i importen som består av mindre än 12 noder. Sedan kan du radera dem. Du kan även utjämna vissa polygoner, ändra taggar osv.

Du kan även göra andra massoperationer genom att söka för liknande yttryck. Till exempel, source="NV NMD2018" and type:way för att välja all sträckor.

Kör validering på importlagret och rätta till samtliga problem

Du kommer att validera datat flera gånger under processen. För att göra det snabbt, tryck Shift-V. Tänk på att om du har några objekt utvalda då valideras endast dessa objekt, inte hela lagret. Tryck Esc, sedan Shift-V för att validera hela lagret.

Validation-small-window.jpg

Alla problem som rapporteras av JOSM-valideringen för importlagret måste korrigeras innan uppladdningen. Typiska exempel på varningar och fel är:

  • Självkorsande och ömsesidigt korsande sträckor.
  • Duplicerade noder. Det går att automatiskt rätta till dem i valideringsfönstret om du trycker på "Rätta till"-knappen.

Så här ska din redigerare se utinnan du börjar rätta till varningar:

Screenshot 20190516 194753.png


Rätta till problemen genom att radera noder (Delete-knappen), knäppa noder (N-knappen), sammanfoga noder (M-knappen), flytta noder eller till och med radera mindre ytor.

Sammanfoga två lager

Välj de två nuvarande lagren i JOSM och klicka "sammanfoga/merge" på kontextmenyn. Efter en stund får du ett lager med både nya och befintliga objekt.

Spara det som en ny fil.

Validera och redigera nya lagret

Kör validering för det nya lagret.

Nu kommer du att se både orelaterade varningar/fel och de varningar som orsakades av nya polygoner tillagd till kartan. Ignorera de varningar som inte orsakades av importdatat, eller rätta dem till och ladda upp dina enstaka ändringar. Var nog att inte blanda tillsammans redigeringar som syftar på att fixa befintliga "gamla" varningar och nya varningar. Du kan använda "Ladda upp val..." i Arkiv-menyn för att bara skicka dina utvalda ändringar för enstaka objekt och för att behålla resterande ändringarna utan att skicka dem till servern.

Typiska varningar och åtgärder

De vanligaste varningarna är: "Overlapping identical landuses", "Overlapping identical natural areas" och dylika. Typiskt sker det när två gränser rinner bredvid varandra och överlappas en eller flera gånger.

Sådana situationer lösas genom att flytta, att radera noder/sträckor eller att sammanfoga sträckors gränser. Använd gärna ContourMerge och SnapNewNodes insticksmoduler för att underlätta ditt arbete. Läs dock BUGS-filen för SnapNewNodes eftersom det finns några!

Dubbla noder
Screenshot 20190516 203841.png

Det går enkelt att slå dem samman manuellt (välj både noderna och slå M) eller genom "rätta till"-knappen för hela gruppen.

Oanslutna noder
Screenshot 20190516 204114.png

Lika som duplicerade noder, det går att lösa dem automatiskt.

Överlappande markanvändning eller vatten

Se några exempel på bilderna nedan.

Screenshot 20190516 204255.png


Det finns olika lösningar för dessa problem, bland annat följande.

  • När en liten obetydlig sträcka (mindre är cirka 10 noder) överlappar med en stor area, radera den lilla sträckan.
  • När två sträckor skulle ha en gemensam gräns, skapa den gränsen antigen genom att knäppa noder, att slå samman noder (tryck N respektive M) eller genom att flytta flera noder samtidigt med ContourMerge eller SnapNewNodes.

Före:

Screenshot 20190516 235608.png

Efter:

Screenshot 20190516 235724.png


  • När två ytor med samma taggar (t ex två skogar) överlappar kan man även förena dem (Shift-J) istället för att försöka skapa en gräns mellan dem:

Före:

Screenshot 20190516 231134.png

Efter:

Screenshot 20190516 231227.png
Icke-stängda multipolygoner
Not-closed-multipolygon.png


Sådana tillfällen sker på grund av att plow-roads.py kan ta bort noder. Av någon anledning stänger det ibland inte sträckor.

Det går enkelt att fixa det.

Holmar som får skogstäckning

Eftersom holmar är ganska små blir motsvarigheten mellan ny skogsyta och gamla öns gräns dålig. Rätta det manuellt.

Nya holmar i sjöar
Screenshot 20190517 074457.png


Sådana sträckor i sjöar borde vara inre sträckor på sjöns multipolygon. Vänta dock med att korrigera detta; ladda upp datat först och redigera sjöns multipolygon som nästa steg.

Hur man kan hitta ett mindre objekt

Ibland är det svårt att hitta den exakta läget där överlappandet förekommer:

Var är den där lilla sträckan som orsakar överlappandet?

På bilden ovan finns det en stor sträcka och flera små sträckor som överlappar den. Men det är nästan omöjligt att se på vilka platser sker enstaka överlappanden.

Om man väljer en konflikt i konfliktfönstret då väljs och markeras ett par objekt. För att hitta en av dem klicka på dess rad i urval-fönstret så att bara ett objekt markeras. För att omedelbart se det, tryck på 3 (Visa - Zooma till markering i menyn).


En klunga noder
Screenshot 20190516 213621.png


Täta grupper noder förekommer ofta på överlappande sträckor. Den bästa lösningen är att slå dem ihop in i en nod.

Rätta till de problem som INTE rapporteras av valideringen

Den här fasen är den svåraste. Du behöver nu rätta till de situationer i lagret som JOSM inte anser som något problem. Däremot anser människor att vissa saker i OSM-datat bör undvikas.

Se upp för följande händelser:

1. Dubbla gränser mellan vatten (sjöar, tjärnar, havet osv) och skogar. Det förekommer ofta att ett skogsparti och en sjö behöver ha en gemensam gräns. Man kan foga dem ihop med ContourMerge och liknande verktyg.

2. Motorvägar som går genom skog bör passera genom blank rymd i skogen, inte överlappa med skogen. Delvis har detta problem lösts automatiskt med "plow-roads.py" men enstaka fall kan ändå finnas kvar. Detta kan rättas till genom att flytta vägens noder, flytta skogens noder eller genom att ta bort hål i skogen.

Överlappande väg och skog


Ett exempel var D717 som dåligt stämde med både flygplansbilderna och importdatat. Jag behövde justera dess några noder så att vägen skulle passera genom skogspartier utan någon överlappning.

3. Många små polygoner med gräs på okartlagda bostadsområden (bondgårdar, parker i större städer och dylika). Tomter på landet med byggnader som inte redan är kartlagda på OSM får på sig brokiga små markanvändningspolygoner som överlappar med byggnader man ser på flygplansbilder. Till exempel fylls en typisk bondgård (några bodar, ett hus) av flera små "landuse=grass" eller "landuse=farmland" polygoner som försöker fylla in alla tomma utrymmen mellan byggnader.

Bondgard-wrong-grass.jpg

Huvudsakligen tenderar sådana små sträckor omringa vart och ett träd i ett bostadsområde med "landuse=forest". Det är ingen nytta i detta. Radera manuellt sådana fall. Om man vill kan man rita hus som nästa steg oberoende på importen. Observera att importdatat inte brukar krypa på redan kartlagda byggnader eftersom sådana områden var "förbjudna" i rastermasken.

4. Jordbruksmarks och skogs kan ha sågliknande kanter längs motorvägar. De borde vara raka och parallella till motorvägar. Välj skogs- eller jordbrukspolygonen och använd "Förenkla sträcka"-verktyget (Shift-Y) på den. Alternativt kan du ta bort några gränsnoder manuellt.

Tryck Shift-V då och då för att se om varningarna blivit åtgärdade eller inte. Till slut får du ett datalager som inte har några varningar orsakade av nytt importdata. Endast de "gamla" varningarna får stanna.

5. Rätta gränser mellan intilliggande rutor.

Straight lines between tiles.png

Detta åtgärdas genom att knäppa eller slå samman noder som ligger på gränsens både sidor.

Ladda upp data

Observera att du behöver ange ditt importkonto och lösenord i JOSM:s alternativ; använd inte ditt vanliga OSM-konto för den kommande uppladdningen.

Tryck på "Ladda upp"-knappen. Ange en kommentar som nämner rutans nummer och har källa som på bilden nedan.

Upload-large-NMD-dataset-dialog.jpg

Som standard laddas större ändringsuppsättningar i delar med 1000 stycken objekt i taget. Det är ett bra val, ändra inte det till något större värde. Varje ändringsuppsättning har även 10000 objekt som storleksgräns. Tryck på "Ladda upp" knappen, då startar processen.

Problem under uppladdningen

För större uppladdningar finns det alltid risk att någonting kan gå snett. Ingen panik om det händer. Nedre beskriver jag några situationer som kan hända och deras lösningar.

  • En konflikt med data på servern. Det rapporteras till dig med ett alternativ att lösa konflikter. Följ JOSM:s instruktioner och lös konflikter, sedan fortsätt uppladdningen. Det händer ofta att konflikten uppstod med dina egna redigeringar. I så fall välj valfri lösning. Om konflikten beror på att någon annan som gjort ändringar i samma område, föredra dess ändringar till dina. Innan du fortsätter, validera lagret på nytt.
  • En uppladdning som aldrig slutförs. Varför det händer vet jag inte, men JOSM rapporterar inte några vettiga fel i sådana fall, bara hänger stilla, och ingenting händer. Om du misstänker att det har hänt, avbryt uppladdningen och starta på nytt (utan att ladda ner fräscht data). Upprepa detta tills du är klar med hela uppladdningen. Det spelar ingen roll om du gör det i samma eller nya ändringsuppsättningar.
  • JOSM eller din dator kraschar. Du har väl sparat din fil innan du börjat uppladdningen? Öppna den filen igen och fortsätt. Ladda inte ner nytt data tills du är klar.

Om ett eller fler problem förekommit under uppladdningen, ladda ner samma kartområde som ett nytt lager och validera det. Det kan uppstå flera dubbla noder/sträckor/multipolygoner som du laddat upp under dina försök. Det är ingen fara; man kan städa dem upp automatiskt i valideringsfönstret. Ladda upp data sedan en gång till så att det inte längre finns dubbla objekt på servern. Uff.

Man behöver vanligtvis inte rulla tillbaka sina ändringar om några störningar eller konflikter har hänt. Men det är också möjligt att rulla saker tillbaka med en särskilt insticksmodul.

Markera rutan som klar

Öppna tabellen och markera den ruta du just har laddat upp som färdig.

Frågor och svar

Hur man kan ladda upp stora ändringsuppsättningar till databasen

Q: Ska jag (som vanligt) ladda ner ett område i JOSM ?

A: För importrutorna är det möjligt eftersom de är lagom små. Det är svårare att t ex ladda ner en hela kommun, undvik det. Om du vill arbeta med en större region, använd data exporter av diverse leverantörer.

Q: Ska jag sedan kopiera över objekt från import-filen till bas-lager?

A: Nej, det avråder jag dig att göra. Om du har två enstaka datalager i JOSM finns det kontextmenyn "sammanfoga" :

Sammanfoga.png

Det tar en stund att genomföras, men något manuellt arbete alls inte förekommer under processen, bara fika och vänta.

Q: Förresten; hur bör jag genomföra själva importen? Jag har läst instruktionerna, men förstår inte riktigt hur själv import-steget går till. Jag brukar ju vanligtvis använda JOSM för redigering.

A: OSM-wiki:n https://wiki.openstreetmap.org/wiki/Import/Software har en bra översikt över de verktyg som man kan använda för större importer.

Min personliga plan angående detta är:

1. För mindre datauppsatser (upp till cirka 100000 objekt) använda JOSM som kan dela den i mindre delar. Jag förväntar att de flesta rutorna skulle bli små nog för att framgångsrikt laddas upp via JOSM.

2. För större uppsatser använda bulk_upload och medföljande hjälpverktyg. Resonemangen bakom verktygen ser vettigt ut, vet inte ännu hur svårt det kommer att tränga mig fram med dem.

Oavsett verktyg blir hela uppladdningsprocessen såhär:

1. Datauppsatsen delas automatiskt i mindre delar. Man bör så småningom variera/ändra deluppsatsens storlek, det beror på nätverkshastigheten, feluppladdningarnas frekvens mm.

2. För varje deluppsats försök ladda den upp; ordningen mellan enstaka delar måste iakttas.

3. När en deluppsats har misslyckats att laddas upp, kolla om en delvis datauppladdning har hänt. Om så, städa databasen av den misslyckande delförsökets resterna.

4. Återuppta från den deluppsats som misslyckats och med följande delar.

Både JOSM (https://josm.openstreetmap.de/wiki/Help/Action/Upload#Runningaverylargeupload) och några andra verktyg har vissa metoder för att jobba med större datauppladdningar. Jag förväntar mig inte att importen skulle skapa några flera konflikter vid importen som ska dyka upp under uppladdningen, men tillfälliga nätverks och fjärrdatabasens problem kommer säkert att hända.