Catalogue/NMD 2018 Import Plan/Sammanblandningsguide

From OpenStreetMap Wiki
Jump to navigation Jump to search

Filstruktur

Varje zipfil har ett nummer i namnet som motsvarar till ett delområde i en tabell här. Packa upp en zipfil. Inuti finns det tre filer med följande namnsuffix:

  • *-base.osm - Geofabrik.de dataextrakt, används som baslager för conflation. Objekt har "nmd2018-conflict" taggar på de objekt som kräver manuellt konfliktlösning.

w

  • *-filtered.osm - importdata före automatisk conflation. Det är referensdata för eventuella olika conflationsstrategi.
  • *-conflated.osm - importdata efter automatisk conflation. För att granskas av en människa. Alla objekt med "nmd2018-conflicts" måste granskas, eventuella konflikter lösas. Taggen måste tas bort före uppladdningen.

Observera att du måste starta JOSM med tillräckligt mycket Java högminne. Till exempel, kör java -Xmx16000M -jar josm-tested.jar för att ha 16 GByte som gränsen. Du måste ha gott om RAM annars blir läget tråkigt. En OSM-XML-fil på cirka 300 MByte kräver åtminstone 2 GByte minne för att öppnas. De största filerna i uppsättningen lär kräva 64 GByte eller mer RAM på din dator.

Steg för steg strategi

Den rekommenderade strategin för att lösa konflikter, granska importlagret och checka in datat i databasen.

1. Öppna base- och conflated-filer som enskilda lager i JOSM.

2. Skapa ett filter för "nmd2018-conflict" taggar. Kontrollera att filtret är inverterat (se bilden).

nmd2018-filter

3. Med filtret på kan du endast se objekt som markerats med konflikter i både lagren. Du kan byta mellan lagren för att se huruvida det finns överlappning med olika polygoner mellan base- och conflated-lager.

4. De objekt som har konflikt med varandra har samma nyckelvärde i "nmd2018-conflicts". Till exempel, om en polygon i ett lager har nmd2018-conflicts=sgdfgdfg, lklkjkhk och en annan polygon i ett annat lager har nmd2018-conflicts=cvxcvxcvx, sgdfgdfg då har de en konflikt med varandra eftersom de har samma text "sgdfgdfg". Ett objekt ska ha fler konflikter med olika andra, då finns det fler kommaseparerade värden i taggen. Därför kan den taggen blir extremt lång, längre än 255 tecken som är ett fel. Oavsett det måste samtliga "nmd2018-conflicts"-taggar raderas före uppladdningen.

5. För varje objekt i conflated-lagret bestäm dig vilken lösning du vill lämpa till detta. Till exempel:

  • Ingen konflikt; radera "nmd2018-conflict"-taggen på objekten.
  • Det nya objektet ska tas bort eftersom en gammal polygon som skapat konflikten är bättre; radera det i conflated-lagret.
  • Det gamla objektet ska tas bort eller redigeras; gör det i base-lagret.
  • Det gamla och det nya objekt ska slås samman; gör det i ett lager (eller dröj det tills lagren blivit sammanslagna).

6. När du raderar "nmd2018-conflict"-taggen på ett objekt med filtret påslaget döljs det i JOSM-vyn. Om du vill se alla objekt slå filtret tillfälligt av.

7. När alla "nmd2018-conflicts"-taggar är borta, slå filtret av och få alla objekt synliga igen.

8. Validera det conflated-lagret. Det kan blir några självkorsande vägar eller andra mindre problem som ska enkelt lösas.

9. Sammanfoga de två lagren i ett. Spara ditt jobb i en lokal fil.

10. Validera det nya lagret. Tänk på att det ska bli flera varningar som förut funnits i base-lagret.

11. Läs JOSM-hjälpsidan för att förstå hur man laddar upp stora ändringsuppsättningar.

12. Ladda upp datat. Se till att:

  • Du anger rätt användarkonto. Använd ett särskilt konto för import
  • Du anger rätt taggar för uppsättningen. Ange source = "Nationella marktackedata, Naturvardsverket" (jo, det stavas utan "ä" eller "å").

13. Glöm inte att uppdatera status i tabellen.

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

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

A: Nej, det vore jobbigt att göra via JOSM till och med för små kommuner. Använd mina -base-lager som är (lite daterade) extracter av OSM. Det är ett rekommenderat sätt att syssla med t ex hela länder i OSM.

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

A: 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.

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 processen såhär:

1. Dela (automatiskt) datauppsatsen 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 dataupplandning har hänt. Om så, städa databasen av den misslyckande delförsökets resterna

4. Återuppta från den deluppsats som misslyckats.

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.

Alternativprocess

Om du inte tycker om hur objekten valts/ändrats av det automatiska conflation-skriptet kan du tillämpa din egna strategi för att lösa konflikter. För att göra det, öppna base- och filtered-filer som nya lager och redigera nya och gamla objekt på egen hand. Till exempel, du kan välja att kasta bort samtliga gamla skogsområde i base-lagret och ersätta dem med nya objekt från filtered-lager.

Tänk på att base-lagret kan bli för gammalt. Då måste conflationsprocessen köras igen.