Tag Archive | Open Street Map

POSM – ”Mobil OSM

Efter de tidigare inläggen i veckan så fastnade jag för något intressant på Amerikanska Röda Korsets GitHub. Det handlar om ”Portable Open Street Map” eller POSM.

Vad är det, och kan det vara användbart av flera? Det skall jag försöka ta reda på i detta inlägg.

Läs mer…

Annonser

Jag arbetar för Open Street Map

Jag återkommer till rubriken längre ner, men först så tänkte jag beskriva hur jag gjorde i helgen för att lägga in ett nytt villaområde i Open Street Map.

Jag plockade helt enkelt med mig min GPS, slog på spårloggen och gav mig ut på promenad. Läs mer…

Open Street Map – Skepnader

Använder du Open Street Map? Har du sett att det finns olika stilar på kartorna?

Screenshot from 2014-11-22 11:30:58I bilden ovan ser du OSM standard över delar av Edinburgh, som jag använder som exempel då jag tycker att det är en intressant stadsplanering.

Samma data är symboliserat på lite olika sätt för olika grundläggande syften.

Cykelkartan:

Screenshot from 2014-11-22 11:34:38Transportkartan:

Screenshot from 2014-11-22 11:35:35MapQuest Open:

Screenshot from 2014-11-22 11:36:41Humanitärt:

Screenshot from 2014-11-22 11:37:35Som synes så får olika kartor olika fokus och detta betyder även att viss typ av information ges företräde framför andra.

Dessa varianter finns även tillgängliga via Open Layers tillägget i QGIS vilket gör att man har lite fler alternativa bakgrunder när man skapar sina kartor.

Om nu inte dessa kartor räcker och Stamen börjar bli tjatigt, så finns ju alltid…

MapBox:

Screenshot from 2014-11-22 12:08:18Vill du sedan inte använda on-line tjänster så går det ju alltid att hämta OSM data och symbolisera själv i exempelvis QGIS.

Konst med QGIS och OSM

Först och främst, detta är inte min idé. Jag hittade en sida på Franska (länk) där det räckte med att titta på bilderna för att jag skulle gå igång och inspireras till detta inlägg. Den som kan franska eller vill köra genom Google Translate kan göra det via länken tidigare också.

Metoden går ut på att använda valda delar av OSM-data över en stad och sedan med justeringar och färgsättning samt lite efterarbete skapa ”konst” som tilltalar en GIS-nörd. Att göra det själv innebär ju dessutom att man inte blir begränsad till London, New York eller Sydney (ja det stavas så), utan lika gärna Katrineholm, Halmstad eller Borås.

Screenshot from 2014-09-21 10:13:41

Använd OSM data du redan har eller ladda hem data med OSM-verktygen i QGIS. Du kommer inte att behöva alla lager, men du behöver lagren i vektorformat och inte som Open Layers tjänst.

Screenshot from 2014-09-21 10:37:43Använd väglager tillsammans med ”natur” och vattenlinjer samt järnvägar vid behov och gör urval och symbolsättningar så att ett lagom abstrakt utseende framträder. Detta behövs inte för fortsättningen, men kan hjälpa till att se möjligheterna med de data som visas. För urval så har jag använt regelbaserad symbolsättning och ”CASE WHEN condition THEN result END” för att välja ut de objektklasser jag vill använda. Men det blir enklare i nästa steg om man använder objekturval (fliken Allmänt).

Screenshot from 2014-09-21 11:03:52För den vidare bearbetningen så fungerar linjeobjekt inte så bra så dessa görs om till polygoner av olika tjocklek med geobehandlingsverktyget ”Buffer” (menyn vektor). I bilden ovan har jag valt en gråskala i färgsättningen som ganska mycket påminner om Stamen Toner, men detta är bara ett delsteg för nu är det dags att skapa konsten…

Screenshot from 2014-09-21 11:12:31Alla mina lager från ovan slås samman med datahanteringsverktyget ”Merge shapefiles to one”. Jag skapar även en stor polygon i ett nytt lager som täcker hela det område jag är intresserad av.

Screenshot from 2014-09-21 11:24:45Nästa steg blir att ”klippa hål” i den heltäckande polygonen med mitt sammanslagna polygonlager så att jag får ett lager med ”negativa ytor”. I bilden ovan så är det mitt heltäckande lager som kallas NegativaYtor och det sammanslagna bufferlagret AttRadera_upplöst. Jag körde ”lös upp” på det lagret först, men jag tror inte att det är nödvändigt. En annan erfarenhet är att båda lagren måste vara i samma referenssystem.

Screenshot from 2014-09-21 11:36:40Nu är ju det negativa lagret ett polygonlager med en enda multipartgeometri. Denna kan delas upp med geometriverktyget Multipart till singelpart, vilket ger ett objekt per unik geometrisk figur.

Vill man skapa konst med enbart två färger så behöver man inte det föregående steget, och om man vill ha flera färger så räcker det inte riktigt ändå, om man inte vill fortsätta i ett ritprogram redan nu.

Screenshot from 2014-09-21 11:41:51Jag har tänkt mig att dela in fälten i fem olika färger (typ) och skapar därför ett nytt attribut med Fältkalkylatorn med funktionen ”rand”. Detta skapar ett slumpvis värde mellan de angivna heltalen.

Om man vill ha fullständig kontroll så kan man sätta attributen manuellt, men för mig så räcker slumpen. Det går ju att köra om kalkylatorn på samma fält om det skulle se knasigt ut.

Screenshot from 2014-09-21 11:59:33

 

Färgsättningen görs med en skräddarsydd färgramp så att jag får färger jag tycker passar bra ihop. Det går även att välja färger helt fritt om man vill det. Observera även att jag inte har några kantlinjer, men där får du göra som du vill.

Avslutningsvis, i QGIS i alla fall, så skapas en utskriftslayout med önskad utsträckning och sedan kan man exportera som bild i antingen ett rasterformat som jpg eller png, men tycker man bättre om att jobba med vektorgrafik så kan man exportera som svg i stället.

Beroende på vad du valt så fortsätter nu arbetet i exempelvis Gimp eller Inkscape. Jag kör Inkscape och svg.

I layouten så letar jag reda på ett fält som jag kan ta bort och ersätta med text. Texten skapas med valfritt typsnitt och i fallet med Inkscape så gör jag sedan om texten till slinga och redigerar brytpunkterna så att texten fyller ut den yta där jag tagit bort ett fält.

Geosupportsystem-OSMkonst-Eksjö

Klicka gärna på bilden ovan för att visa den i full upplösning (500×500 mm i 300dpi).

Jag är faktiskt väldigt nöjd med resultatet och kan tänka mig många variationer avseende såväl skala som färgval. Bilden ovan publicerar jag härmed under Creative Commons CC-BY-NC, med speciellt tack till ”OpenStreetMaps bidragsgivare”.

Open Street Map – Lokalt

Jag använder ofta OSM via OpenLayers-tillägget i QGIS som bakgrundskarta, men då blir utseendet som någon annan bestämt, och just nu så verkar det vara lite problem med tillägget så det är bra med alternativ. Då kan man hämta hem shapefiler genererade från OSM via exempelvis http://download.geofabrik.de.

Dessa är direkt användbara i exempelvis QGIS, men saknar en del data som normalt finns i OSM. Vill man ha allt så får man i stället använda exempelvis XML-formatet *.osm.

.osm går att ladda hem över begränsade områden direkt från QGIS, eller så kan man hämta data för ett helt land från geofabrik.de (samma länk som tidigare).

Screenshot from 2014-07-25 13:20:17Den lilla nätta 382 MB stora filen blir dryga 5 GB när den packas upp, men vi är inte färdiga än.

Screenshot from 2014-07-25 13:22:32

I QGIS används tillägget för Open Street Map för att göra om *.osm filen till en SpatiaLite databas. Det blir lite effektivare så databasen landar på ca 2 GB.

Nja, riktigt klart är det inte än. Nu skall topologin exporteras också.

Screenshot from 2014-07-25 13:35:18

När man laddar ”taggar” från databasen så börjar man förstå att man inte får alla data när man laddar hem shapefilerna. Här gäller det att vara selektiv och bara ta med det man tror att man behöver. Om man inte väljer något så importeras bara punkter med ett ID, vilket är helt omöjligt att hantera mer än som ”här är en punkt som betyder något” (se ”trick” längre ner).

Om man däremot väljer allt så kommer det att bli problem åt andra hållet. Lägg märke till att det i fallet med bilden ovan endast är punkter som importeras och vill man ha med linjer och ytor så får man köra om proceduren för dessa.

Punkterna utökar databasen med ca 200 MB, linjer runt 300 MB och ytor ca 600 MB. Totalt blir därför databasen lite drygt 3 GB.

osm-raw-vs-shape

När jag lägger in dessa punkter, linjer och ytor som röda symboler i bakgrunden, och de shapefiler som går att ladda hem från samma källa ovanpå, så ser man ganska snabbt vilka data som nu helt plötsligt blivit tillgängliga.

Vad har vi då för nytta av dessa nya data? Det beror på vilka ”taggar” som valdes vid importen av topologier. Många av dessa röda objekt är ”obskyra” taggar eller saknar helt taggar vilket gör dem väldigt svåra att identifiera, men det finns ett trick.

Screenshot from 2014-07-25 14:38:00

Skapa en ”Action” (kommando) av typen ”open/öppna” för varje lager där linjer och ytor får kommandot:

http://www.openstreetmap.org/way/[% "id" %]

och punkter kommandot:

http://www.openstreetmap.org/node/[% "id" %]

Nu går det att markera respektive lager, använda objektkommandoverktyget, och få upp ett resultat i webbläsaren som beskriver det aktuella objektet.

Screenshot from 2014-07-25 14:52:40

I exemplet ovan så går det att hitta massor med information om objektet som inte går att få tag på via det vanliga gränssnittet. Jag kan dessutom notera att det är taggar som börjar med ”lst” som används, så jag kan därför göra en ny import av topologier där jag väljer ut dessa, om det är det jag är intresserad av.

Tänk på att du kan behöva välja rätt objektkommando manuellt (drop-down vid knappen) första gången du skall använda verktyget.

Nu går det att söka reda på den information som man saknar, importera med nya taggar, för att slutligen exportera utvalda objekt till nya lager. Dessa kan sparas i shape eller det format som du önskar.

Vill du göra ändringar i några av dessa lager så skall du naturligtvis göra dessa i Open Street Map och inte i shapefilerna. Detta betyder också att du behöver skapa en rutin eller metod för att ersätta dina lager med nya uppdaterade sådana. Detta går säkert att göra via skript eller egna insticksprogram, men så länge man är noggrann med dokumentationen så blir det inte så många steg om man gör arbetet manuellt.

  1. Ladda hem och packa upp *.osm filen.
  2. Skapa SpatiaLite databasen.
  3. Skapa topologier för de önskade taggarna.
  4. Välj ut objekt och exportera till lager
    (ersätt de gamla).

Lycka till!

Nya bilder för Open Street Map

Digital Globe är ett stort kommersiellt företag som med egna satelliter fångar och säljer bilder av jorden. Beroende på vad du är beredd att betala, och kanske även vem du är, så kan du få tag på mer eller mindre uppdaterade bilder i hög upplösning över hela jorden.

Ibland så släpper företag som Digital Globe bilder fritt för användning av exempelvis Open Street Map, vilket bland annat skedde vid katastrofen på Haiti, men även nu senast över eboladrabbade områden i Afrika.

Tillsammans med MapBox så har Digital Globe gjort denna typ av bilder tillgängliga för allmänheten, så att Open Street Map kan uppdateras där det för tillfället mest behövs.

Skärmbild från 2014-04-12 12:10:29

Genom projekt som HOT så organiseras digitaliseringen av allmänheten, vilket är till stor nytta för exempelvis hjälparbetare i området.

Digital Globe förlorar i princip ingenting på att släppa dessa bilder, snarare tvärt om. Man använder sig av det för att göra reklam för företaget och sina tjänster på ett väldigt smart sätt, som i princip alla vinner på. Det är sannolikt inte så många som skulle betala för bilder över området ändå, det är ju inte centrala Jönköping precis (lite ironi där).

Skärmbild från 2014-04-12 12:16:53

Sedan kan vi ju vara ärliga och säga att det som beskrivs ovan inte är ett enormt område (lilla blåa pricken i bilden ovan). Digital Globe har naturligtvis bilder över hela regionen liggande på servrar som bara väntar på att någon skall öppna plånboken. Man har med samarbetet med MapBox dock släppt eller skall släppa närmare 500’000 km2 bilder, vilket är lite drygt samma yta som Sverige. Detta kan låta mycket och det är det, om man tänker att det är städer man avser. Är det djungel eller öken så är det mindre imponerande. De senare behöver vi dock inte vara rädda för, och om du själv vill vara med och påverka vilka områden som skall släppas så kan du ”önska” detta på: https://www.mapbox.com/labs/request/#.

Som jag ser det är detta ytterligare ett exempel på ”win-win” mellan kommersiella intressen och Open Source till stöd för exempelvis hjälpinsatser.

OSM Statistik – Så gjorde jag

Listan med tiles från gårdagens inlägg var bara en enda lång textfil.

Skärmbild från 2014-03-15 17:51:05

Det går att läsa in denna som separerad text direkt i QGIS, men eftersom koordinaterna hänvisar till systemet med tiles, så blir kartan speglad upp och ner.

Skärmbild från 2014-03-15 17:53:12

Om jag istället läser in filen i exempelvis Libre Office Calc (går sannolikt lika bra med Excel eller Numbers i Mac) så kan jag fixa detta med formler.

Jag delar filen med blanksteg och likhetstecken och kan på så sätt dela upp alla data i kolumner.

Skärmbild från 2014-03-15 17:56:48

Dessa X och Y koordinater kan omvandlas till Lat/long med följande formler.

Det blir lite jobbigt att skriva in formlerna på drygt 380’000 rader så det går tack och lov att kopiera formeln och klistra in den som formel i markerade rutor. Om du provar att ta tag i hörnet och ”dra” för att autofylla så får du vänta ett tag.

När beräkningen är klar så sparar jag resultatet som CSV och öppnar denna i QGIS.

Nu kan jag definiera kolumner som innehåller koordinater och direkt visa dessa på exempelvis en världskarta. Resultatet kunde du se i gårdagens inlägg och om du bommade det så är det bara att bläddra nedåt eller klicka på den här länken.

Eftersom prickarna endast är ca 600 meter stora så gjorde jag dem väldigt små och utan kantlinje. Stilen satte jag sedan efter hur många noder det fanns i varje punkt och jag ändrade ritordningen så att de med mest noder ritades ut överst för att inte de skulle döljas.

Jag gjorde även en lite mer detaljerad karta över Europa där jag valde en lite annan indelning och fick på så sätt en tydligare skillnad mellan punkter med mycket noder och punkter med få.

statistik_europa

Då har jag gjort karta över metadata, vilket inte händer varje dag. Vi får se vad det blir nästa gång.