Jag har den senaste tiden börjat märka att det ibland tar lite tid att jobba med GeoPackage i QGIS. Även en del andra problem har blivit märkbara. Det finns förklaringar, men det är ett problem speciellt om man tänker sig att GeoPackage skall bli det dominerande geodataformatet i framtiden. I detta inlägg vill jag i alla fall testa om jag inbillar mig, och om jag kan göra något för att lösa problemen (hint, det kan jag).
Problem Ett: Speciellt stora GeoPackage med många lager gör hanteringen långsam. Detta kan i huvudsak förklaras, men det tar vi längre ner.
Jag testar genom att ta några vektorlager i shapeformat, använda en stil sättning som tar lite tid att rita ut och ta tiden på uppdateringar vid panorering, inläsning och liknande. Sedan upprepar jag med samma data i separata GeoPackagefiler, och igen med samma data i en samlad GeoPackagefil.
Efter att ha skapat tre identiska projekt, med skillnaden hur data lagras så gör jag lite tester som jag tar tid på. Här visar det sig att det är små eller inga skillnader i tid. Shapeformatet är faktiskt lite snabbare när jag är inzoomad, närmare 25% snabbare, vilket är lite förvånande. GeoPackage testerna ritar ut på runt 4 sekunder och shape på 3.
Det verkar inte vara någon större skillnad, så vad är det jag upplever för problem…?
Jag provar att placera shapefilerna, GeoPackage filerna och den samlade GeoPackagefilen i olika kataloger på datorn för att testa hur snabbt dessa visas i panelen datakällor.
Nu börjar det hända saker…
Katalogen med shapefiler visas omedelbart. Jag kan inte mäta en tid med min klocka, medan det tar över sekunden att visa innehållet i mapparna med GeoPackage!
Det är nu det slår mig vad som triggat min uppfattning om att det är långsamt. Jag har ett GeoPackage med hela Sverige i vektorformat (1:50 0000). Paketet är nästan 3 GB enbart för markytorna, men det tar flera minuter att ens visa innehållet i QGIS…
(När jag testar igen med annan installationskälla för QGIS, se längre ner, så blir resultaten mer förväntade, och inte till fördel för SHP.)
Problem två: Detta problem finns det faktiskt en lösning på som hänger ihop med lösningen på det förra problemet, men om man inte vet orsaken, så får man ingen hjälp av QGIS. Jag har haft problem med att hantera stilar i GeoPackage. När jag nu ändå har samma data i olika kataloger och format så passar jag på att testa att lagra stilarna som ”standard” för alla dessa lager i projekten.
Mitt enda problem med shapeformatet är att teckenkodningen inte sparas i stilfilen. Hmm, det borde den kanske göra?
Enskilda GeoPackage är det till synes inga som helst problem med. Men när jag öppnar katalogen med filerna så blir det tydligt att stilarna inte har lagrats i databasen, trots att jag angav detta som val när jag sparade som standard.
När jag specifikt väljer att spara stilen i databasen och inte som standard så får jag ett felmeddelande.
Det spelar ingen roll om jag väljer ”spara som standard” eller ej, det blir samma felmeddelande.
Nu känns det inte konstigt alls att mina data i en och samma GeoPackage inte får med stilen som standard. Om det inte går att skapa stiltabellen i databasen så går det ju bara att ha en stil som standard till ett GeoPackage, och det kommer att benämnas vid paketets namn som separat fil.
Nu skall det visa sig att detta problem sannolikt är specifikt för Linux där man kan välja olika installationskällor. Det är nämligen beroende av vilken GDAL version som QGIS använder. Om man installerar från qgis.org/debian så får man GDAL 1.11, vilket inte räcker! Man måste använda qgis.org/ubuntugis för att få GDAL 2.2. Problemet med detta kan vara kompatibilitetsproblem med vissa distributioner, så i värsta fall kan man förstöra QGIS installationen och behöva installera om, med en äldre GDAL version, vilket får konsekvenser som jag beskriver ovan.
Slutsatser
Att stilarna inte kan sparas i paketet är en uppenbar bugg, som QGIS borde kunna hantera med ett tydligt meddelande om att man har en för gammal GDAL version. Det som bekymrar mig mera är att det skall ta så väldigt lång tid att hantera lager i GeoPackage i panelen datakällor (”Browser”), jag tror att även detta är ett GDAL problem, men det får jag undersöka vidare. GeoPackage skall ju vara det ”nya” formatet för att hantera data och dessutom inte vara begränsad på samma sätt som shape när det gäller att hantera stora filer. Min ”blygsamma” fil på 2.9 GB tyder på motsatsen.
Om du upplever samma problem så kan jag bara råda dig att kontrollera GDAL version, och i värsta fall inte spara stilar i GeoPackage. Du bör dessutom undvika att lagra stora datamängder i GeoPackage av prestandaskäl. Har du mycket data så är det faktiskt bättre att använda shape, vilket är riktigt kontraproduktivt.
Jag hoppas att allt detta är ett GDAL problem, som kommer att försvinna i takt med uppdateringarna av QGIS. Men även om många av mina problem försvann när jag såg till att QGIS använda GDAL 2.2, så kraschar QGIS fortfarande lite väl ofta när jag använder GeoPackage, framför allt i kombination med stilar. I övrigt så hoppas jag att installationskällor som använder äldre GDAL versioner snarast försvinner.
Du kan kontrollera vilken GDAL version din installation använder under ”Hjälp” / ”Om” i menyn.