Hoppa till innehåll
Meny
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

DIGEST FACC

Publicerat den 2017-11-30

Digital Information Exchange STandard har utvecklats under lång tid och från början var det ett försök att samordna geodatautbyte mellan NATO länder. DIGEST standarden har sedan dess fått en mycket bredare spridning.
En del i DIGEST är FACC, vilket står för Feature Attribute Coding Catalogue, vilket är en kodningsstandard för geografiska objekt, och som dyker upp i många sammanhang när man exempelvis hanterar geodata i humanitära sammanhang.
Standarden kan man läsa mer om och ladda hem via https://www.dgiwg.org/digest/Overview2.htm. Jag är mest intresserad av bilaga 4 vilket är FACC katalogen (direktlänk).
Detta är inte en ny standard! Senaste uppdateringen kom 2000. Men det betyder inte att den är ”gammal”, snarare ”mogen”.
Skärmbild_2017-11-26_09-46-07.png
Standarden beskriver både objektsklasser och attribut, där det första tecknet delar in objekten i kategorier.
Skärmbild_2017-11-26_09-46-38
Det andra tecknet ger ytterligare en kategoriindelning, vilket sedan följs av en sifferkombination för de slutgiltiga detaljerna.
Attribut kan också beskrivas med FACC där ”allt” beskrivs med tre fält.
Skärmbild_2017-11-26_09-52-06.png
Attributkoden anger vad det är för typ av värde och värdeformatet anger… attributets värdeformat (exempelvis text eller integer). Därefter anges värdet i värdefältet.
Vi tar ett exempel. En enkelt byggnad:
Skärmbild_2017-11-26_09-57-47.png
FACC koden är således AL015. För att ge mer information om byggnaden så kan man exempelvis använda en attributkod.
Skärmbild_2017-11-26_10-02-05.png
Attributkoden är därmed BFC och då det är ett heltal så är typen I och värdet anger sedan vad byggnaden har för funktion. Just för byggnader så finns det flera hundra olika typer.
AL015 BFC I 6 – Byggnad, sjukhus.

Varför skriver man inte klasser och attribut i klartext?

Fördelen med att använda koder är att det är ”interoperabelt”. Oavsett vilket språk du normalt talar så betyder koderna samma sak. Du kan därför ha en FACC tabell anpassad för ditt eget språk om du tycker att det underlättar.

QGIS

Med QGIS så skulle man kunna skapa en funktion som tar ett Python Dictionary och översätter FACC koder till faktisk betydelse, och om man vill så översätter man denna betydelse till svenska. FACC funktionen kan man sedan använda på alla FACC attribut oavsett lager eller typ av geometri.

function facc(code):
   facc_dict = {"AL005":"Djurskyddsområde", "AL012":"Arkeologisk Plats", "AL015":"Byggnad"}
   return facc_dict[code]

Oavsett vilken typ av objekt du har, så länge det finns ett FACC attribut så kan du ta reda på vad objektet är för typ genom att anropa funktionen. En förutsättning är att du har hela FACC tabellen som ett dictionary.
På DIGEST nedladdningssida så finns det en databas med FACC… i Microsoft Access format. Var det inte interoperabilitet det var tal om?
Det kan gå att komma runt i Windows med någon form av mdb-läsare, men jag föredrar att konvertera tabellerna till csv.
Jag kan lista schemat för databasen med:

mdb-schema FACC_2.1.mdb

Sedan kan man konvertera tabeller direkt till csv med:

mdb-export FACC_2.1.mdb "tabell namn" > tabell.csv

Den tabell jag är mest intresserad av är ”Feature Description”, som innehåller ”FAC_Code”, ”FAC_Name” och ”FAC_Description”.
När jag använder pythonkonsolen i QGIS för att prova konceptet så verkar det fungera direkt från den skapade csv-filen.
Skärmbild_2017-11-26_11-36-51.png
Sedan är det ”bara” att baka in detta i en funktion. Som vanligt med Python så gäller det att vara noga med indragen, vilket var ett av mina problem när jag skapade funktionen.
Skärmbild_2017-11-26_12-06-09
Funktionen fungerar bara lokalt för mig, då sökvägen till csv-filen är lokal. Men detta bör vara den enda rad du behöver ändra för att det skall fungera.
Nu kan jag använda facc(”CODE”) för att klassa alla lager med objekten i klartext. Om attributfältet heter något annat än CODE så får man självklart byta ut det.
Jag har provat att spara csv-filen på samma sökväg som skriptfilen, vilket fungerar fint , men jag har inte lyckats få det att fungerar i QGIS expressions, får nog titta vidare på det.
För mina tester har jag använt exempeldata i GeoPackage format från https://portal.opengeospatial.org/files/?artifact_id=74863, vilket är data från Haiti.
Vill du testa mitt skript med csv-fil så kan du hämta den via GitHub och packa upp i katalogen .qgis2/python/expressions/. Om du använder Resource Sharing plug-in så kan du använda mitt repository för detta och få allt på köpet. För att det skall fungera för tillfället så måste sökvägen till csv-filen justeras i skriptet.

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     Mastodon  

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Daniel Nilsson om QField
  • denis Empisse om SpaceMouse Python
  • klakar om SpaceMouse Python
  • Anders Jackson om Återbesök, WebODM
  • Anders Jackson om SpaceMouse Python

Arkiv

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2025 Geosupportsystem | WordPress-tema av Superbthemes.com