Detta inlägg är lite dokumentation av erfarenheter från veckan.
Har man använt ESRI produkter så är man välbekant med fildatabaser. Dessa kan liknas vid en proprietär variant till GeoPackage (typ).
I dessa, men även i andra databaser, så kan man skapa så kallade ”domains”. Detta är tabeller med värden och beskrivningar för att kunna lagra en sak i databasen (värde), och presentera något betydligt mera lättläst för användaren i tabeller med mera (beskrivningar).
I detta inlägg beskriver jag hur man går till väga i QGIS för att läsa dessa ”domains” så att man kan återskapa dem i lageregenskaperna för dessa data, när man gör om till GeoPackage.
QGIS kan läsa fildatabaser utan extra tillägg genom att lägga till vektordata från en katalog. Då kan man peka ut filgeodatabaskatalogen och ange att det handlar om en ”OpenFileGDB”.
Om man har ”domains” i databasen så följer dessa däremot inte med, så hur gör man då?
Jo lägg till ett nytt vektorlager (som fil den här gången) och gå in i filgeodatabaskatalogen. Där väljer man filen ”a00000004.gdbtable” som då läggs till som tabell utan geometri.
Om man öppnar tabellen så kan man hitta ett fält med ett xml-innehåll som börjar med:
<GPCodedValueDomain...
Denna cells innehåll kan man kopiera till ett textdokument och läsa direkt, eller spara till en xml-fil och öppna i en xml-läsare eller bearbeta vidare med exempelvis ett pythonskript.
Det går exempelvis att öppna filen i en vanlig webbläsare, så blir det lite lättare att läsa. Kolla bara efter ”CodedValues” och innehållet i ”Name” och ”Code”.
I lageregenskaperna på ”fält” fliken kan man sedan byta redigeringswidget till en ”värdekarta” och fylla i värden/beskrivning på ett sätt som överensstämmer med xml-filen. Jag kopierade och klistrade in direkt från webbläsaren med några musklick, så det var inte så jobbigt.
Se bara till att spara datalagret i en ny fil eller databas. Sedan kan man använda värdekartan som ”standard” för lagret och då kommer denna att följa datainnehållet som en egen fil eller i databasen.
När man sedan visar tabellen eller ett formulär för lagret så kommer beskrivningen att användas i stället för värdet, men det är fortfarande värdet som faktiskt finns lagrat i databasen.