Det blir väldigt få bilder i detta inlägg, men jag kommer att återkomma längre fram med mer detaljer om det jag presenterar här. Jag ville dock släppa inlägget så snart jag kunde, då det pågår en kampanj för att lägga till funktionalitet i ett av programmen jag beskriver. Du kan läsa mer om den kampanjen mot slutet av inlägget.
Under den gångna veckan har jag kikat lite extra på hur man kan bära sig åt för att samla in data i fält. Det finns massor med lösningar men jag hade några krav, vilket reducerade alternativen rätt rejält.
- Det måste fungera helt utan nätverk. Vilket innebär att alla former av serverlösningar med molntjänster och login på Internet är uteslutet.
- Det måste vara förhållandevis enkelt att flytta såväl kartor till den mobila enheten, som att flytta tillbaka data till arbetsdatorn när man är klar.
- Det måste slutligen gå att integrera insamlade data med en befintlig GIS miljö och gärna erbjuda direkt användning för den som är ute i fält.
Jag började faktiskt att kika lite på exempelvis appar från Esri. Collector och Survey123 är fantastiska appar, om man har tillgång till infrastrukturen. Antingen i form av ArcGIS Online eller en Enterprise Server med portal. Det krävs dock nätverk och inloggningar, även om man under begränsad eller något längre tid kan jobba helt offline. Detta gör att alla färdiga Esri lösningar faller. Det går att bygga egna appar med Esri Runtime SDK som teoretiskt kan fungera helt offline, men det blir en helt annan komplexitet i en sådan process. Dessutom så är väldigt mycket av de data som samlas in med dessa appar i Esri egna format som det finns väldigt lite stöd för i andra mjukvaror. Som en av apputvecklarna från Esri nämnde för mig så bygger deras appar på att de är en del i ett större koncept och om man har alla andra byggklossar så fungerar det väldigt sömlöst. Men för mig som sagt, blev det till att söka andra lösningar.
I förra veckan kikade jag lite på Adobe PhoneGap, som är ett sätt att paketera webbapplikationer i appar för såväl iOS som Android. Detta skulle kunna vara ett alternativ om man vill skräddarsy apparna helt och hållet, men då är jag tillbaka på nackdelen att det är väldigt mycket jobb innan man ser något resultat.
Nästa test rörde sig om Open Data Kit (ODK). Detta är en svit med mjukvaror och tjänster för att underlätta insamlingen av formulärbaserade data. Det är således inte en applikation där du gör upp en plan med objekt du skall besöka på kontoret och sedan går ut och kontrollerar och uppdaterar dina data om dessa objekt. Det är mer som Survey 123 där du bygger formulär som sedan fylls i från början till slut i fält, där geografisk position är ett möjligt formulärfält. Det här skulle passa bra om man exempelvis vill gå ut och leta efter nya svampställen. Hemma skapar man ett formulär man kan öppna och fylla i när man väl hittar ett bra ställe. Var ligger platsen, vilken typ av svamp finns där, hur långt från vägen är det, och så vidare.
Appen heter ODK Collect och finns endast för Android. Formulären skapar man antingen via servertjänster på Internet, eller i det egna nätverket. Men det går även att bygga upp formulären i ett kalkylprogram som Libre Office Calc eller Microsoft Excel. Med ett kalkylark så går det till och med att skapa mera avancerade formulär än med servertjänsterna. Det är däremot enklare med webbtjänsterna. Med tabellerna i xls eller xlsx-format så gör man om dessa till ”XForm” i *.xml. För detta finns det program eller python-bibliotek man kan använda.
Formulärmallen kan man antingen publicera på en server och hämta och synka tillbaka insamlade data till med ODK Collect, eller som jag gör, kopiera direkt till den mobila enheten via en USB sladd. ODK Collect har en kartfunktion för att samla in positioner i form av punkter, linjer eller ytor. Vill man använda offlinekartor så är det enkelt att packa ihop ett mbtiles paket med rasterdata och kopiera över till enheten också. Det går att välja online kartor, men det är som sagt inte ett alternativ för mig.
Insamlade data skapar ”instanser” av respektive formulär och dessa behöver sedan överföras tillbaka till kontorsdatorn. Det finns som sagt moln- och servertjänster för detta, men även en java-applikation vid namn Briefcase, som kan läsa in formulären och sedan exportera sammanställda data till tabeller (*.csv) och geodata (*.GeoJSON). Om man ritat skisser eller tagit foton, så överförs även dessa och ges hänvisningar i de skapade tabellerna.
I QGIS kan man öppna GeoJSON filerna och koppla dessa med ”KEY” attribut till csv-tabellerna med alla formulärsvar. Även bilder kan kopplas till actions i QGIS.
ODK är en suverän app om man först och främst skall samla in formulärdata, även om dessa har en geografisk komponent. Men det är primärt formulär det handlar om. Kartan är sekundär. Kartan är något som först kommer fram när du skall fastställa var ditt objekt är beläget i terrängen. ODK är därför inte det enda verktyget jag kan tänkas behöva.
Om jag i stället tänker mig att det primära är kartan, och därefter så skall data samlas in. Då blir i stället QField det perfekta alternativet.
Mitt projekt på kontoret paketeras helt enkelt i två filer. Ett GeoPackage med alla vektordata som jag vill ha med mig och redigera eller lägga till data i, och ett paket med bakgrundskartor. Här har jag hittills valt mbtiles mest för att det är så fruktansvärt smidigt att skapa ett sådant paket i QGIS och använda det som bakgrundskarta i såväl QField som i ODK Connect. Skapa bara det utseende du vill ha med valfria lager i QGIS och kör verktyget ”Generate XYZ tiles (mbtiles)”. Definiera området och ange vilka zoomnivåer som är relevanta.
GeoPackage och mbtiles sparas sedan som lager i ett nytt QGIS projekt med relativa sökvägar till dessa två paket. Alla tre filerna flyttas sedan till valfri plats på den mobila enheten och öppnas mycket enkelt i QField appen.
Använd kartan för att navigera och titta på attributdata för objekten. Växla till digitaliseringsläge och skapa nya objekt med stöd av exempelvis den inbyggda GPS-mottagaren. De formulär som skapats i QGIS används även i QField, så om man är lite klurig så går det att bygga upp extremt smidiga och mångsidiga insamlingsapplikationer i ett QGIS projekt som direkt är användbara i QField. När man är klar så är det bara att flytta tillbaka GeoPackage filen till datorn och fortsätta där. Inga servrar, inga inloggningar eller nätverk. Det bara fungerar!!
Det finns även ett plugin för QGIS som hjälper till med att paketera data för QField, men även att synkronisera insamlade data med data på kontoret. Det är speciellt praktiskt om man är flera som rör sig på fältet och använder samma databas i grunden. Med plugin-programmet kan man definiera såväl bakgrundskartor, som lager som skall vara redigeringsbara. Om man skall hämta ut hela databaser, eller bara intressanta områden.
När allt är inställt så är det en knapp för att skapa paketet att ta med sig ut, och en knapp för att synka tillbaka data till datorn.
Inte heller här behövs det en enda molntjänst eller login. All flytt av data kan ske via kabel eller USB. Helt otroligt användbart! Jag behöver inte ens Google Play store. Via GitHub så kan jag hämta *.apk filer för min mobila enhet och även installera appen offline. Jag skulle nog däremot rekommendera Google Play för att vara säker på att det som installeras är kompatibelt med din enhet.
Efter lite initialt testande så skulle jag nog påstå att ODK Collect är en väldigt bra app för vissa typfall. Speciellt om man vänder sig till ovana användare för att ta hjälp med insamling av data. För mig så kan ODK i alla fall vara ett sätt att snabbt testa insamlingsmetoder och visualisera detta för tilltänkta användare. Om man sedan ser att det skall bli en mera fokuserad app, som kanske är lite snyggare och tydligare, då får man nog anlita någon som kan utveckla en dedikerad app för det.
Det jag ser som desto mer användbart är QField. Här är användarna troligtvis redan GIS-vana och appen integrerar extremt väl med QGIS på kontorsdatorn. Det är ju trots allt i grunden samma applikation. Det kräver en del för att få till perfekta projektfiler för QField, men det är inte svårt att komma igång. Jag tycker att det är så kraftfullt att jag i något sammanhang hävdat att QField möjligen kan göra mer för att öka marknadsandelen för QGIS än något annat enskilt skäl.
Använder du QField? Skulle du ha glädje av exempelvis förbättrat stöd för att fånga bilder med kameran i QField? Då behöver du snabba dig på lite. Det pågår en ”crowdfunding” kampanj av skaparna bakom QField för just detta nu. De verkar ha förlängt kampanjen lite och nytt sista datum är 25 Oktober. Du hittar kampanjen här: https://www.opengis.ch/projects/qfield-love/
Synd bara att QField inte finns till iOS. I vår kommun används nästan bara iOS för mobiler och surfplattor.
I grunden är det licensen för koden som inte är tillåten i Appstore. Detta går att komma runt, men det är kostsamt.
”It is possible to set up an app which is compatible with iOS but does not participate in the App Store. This solves the licensing issue. Setting up an app this way necessitates becoming part of the iOS Enterprise Program which costs money. QField developers would like to make this happen, and it will likely involve iOS users donating to QField.”