Det blir väldigt mycket Python denna vecka, så även i detta inlägg. När jag höll på med inläggen tidigare i veckan så behövde jag förhålla mig till befintliga eller inbyggda funktioner i den klienter som finns i målmiljön, men det dök även upp mängder av tilläggsbibliotek för Python för att hantera geodata. Några har jag tittat närmare på, andra lite mera ytligt.
Ett av dessa, lite mer ytligt undersökta, tänkte jag presentera här.
Den senaste tiden har ’R’ seglat upp som ett vanligt förekommande begrepp, inte minst som ”tillägg” till olika GIS-program. Oavsett om R är användbart eller ej, så känns situationen lite som ”Big Data” för några år sedan.
Använder du inte ’R’? Det måste du! Det gör ju alla…
Jo, men vad är R och vilken nytta kan jag ha av det? Väldigt kortfattat så är ’R’ ett eget programmeringsspråk, byggt för att beräkna och presentera statistik, punkt! Har du liten användning av statistiska beräkningar så kan du med gott samvete strunta i ’R’.
Har du däremot ett visst behov av denna typen av beräkningar, men inte vill lära dig ett nytt språk, så kan Pandas vara ett alternativ, om du redan kan Python. Och då struntar jag i att det faktiskt finns bindningar för R mot Python som exempelvis Rpy2.
Pandas är ett ramverk som bygger på andra vanliga bibliotek, och som hanterar struktur, analys och visualisering av data. Läs mer om Pandas på http://pandas.pydata.org/.
Vare sig R eller Pandas är speciellt anpassade för att hantera geodata. GeoPandas däremot, är en fortsättning på Pandas, som tillför hantering av geometrier och rumslig information.
En något gammal, men skaplig introduktion till GeoPandas går att få via en presentation från PyData för två år sedan.
GeoPandas är ett bibliotek på ganska ”hög” nivå, och som bygger på flera andra bibliotek, som man därmed är beroende av:
- Shapely – geometrier
- Fiona – filhantering
- Descartes, och
- Matplotlib – utritning
- numPy, PyProj, m.fl.
Det går att titta på detaljer på hemsidan http://geopandas.org.
Vad kan man då göra med GeoPandas?
Mycket presenteras i videon jag länkade till ovan. Det är säkert tillrättalagt, men det känns som ett enkelt sätt att exempelvis läsa och skriva olika geodataformat, utföra koordinattransformationer, utföra geometriska operationer som join, difference, buffer, etc.
Behöver man därför något av detta tillgängligt direkt från Python, så kan GeoPandas vara värt att titta närmare på.