Malldiskussion:BBR

message: I augusti 2011 stod det klart för mig (LA2, Lars Aronsson) att det svenska deltagandet i Wiki Loves Monuments var på väg att bli försenat. Jag ryckte då in och fyllde tabellerna över byggnadsminnen med data, med användning av mallen BBR, för att få ett underlag till tävlingen. Här dokumenterar jag vad och hur jag har gjort.
Jag arbetar under Linux.
Det är inte uppenbart hur tävlingens terminologi "monuments" ska översättas på svenska, men jag valde för enkelhets skull att begränsa mig till "byggnadsminnen" (skyddade enligt 3 kapitlet kulturminneslagen eller Förordning (1988:1229) om statligt byggnadsminne)  och "kyrkliga kulturminnen" (skyddade enligt 4 kapitlet kulturminneslagen), eftersom det finns färdiga listor från Riksantikvarieämbetets bebyggelseregister (BBR). På adressen bebyggelseregistret.raa.se hittar man en flik för Dataexport och två filer för byggnadsminnen (AnlaggningBM_xls.zip) och kyrkliga kulturminnen (KyrkoAnlaggningar_xls.zip). ZIP-arkiven innehåller varsin Excel-fil, som har ett datum i filnamnet, 20110801 för augusti 2011. Excel-filerna har ett enda kalkylark, med 14 kolumner, 2434 rader (byggnadsminnen) respektive 13 kolumner och 2705 rader (kyrkliga kulturminnen). En rad för rubriker tillkommer. Jag öppnade Excel-filerna i OpenOffice Calc och sparade som csv-filer (text, comma separated values), fältseparator TAB och inga citationstecken runt textsträngarna. Dessa kallar jag byggnadsminnen.csv och kyrkliga_kulturminnen.csv.
De här filerna innehåller anläggnings-ID, som anges som parametern bbr= i mallen BBR. Till varje anläggning finns ett antal byggnader kopplade, som har byggnads-ID och koordinater, men dessa uppgifter finns inte med i de båda Excel-filerna. Koordinaterna finns i de Shape-filer som också kan laddas ner från BBR, under fliken Dataexport. Vi har alltså problemet att vi vill hantera anläggningar, men vi har bara koordinater för byggnaderna. Jag fick hjälp av ... att dra ut några användbara fält därur i en separat Excel-fil, som på samma sätt omvandlades till BBR.csv och har 76258 rader samt en rubrikrad.
 sort BBR.csv | awk '-F\t' '{ if (anl != $1) { if (cnt!=0) { printf "%s\t%.5f\t%.5f\t%d\n", anl, lat/cnt, lon/cnt, cnt2;} else { printf "%s\t\t\t%d\n", anl, cnt2; }; lat=0; lon=0; cnt=0; cnt2=0; } anl=$1; cnt2+=1; if ($11 > 0) {lat += $11; lon += $10; cnt+=1;}}' >koordinater.csv
Med kommandot ovan skapas en csv-fil med TAB som fältskiljare och fyra fält: 1) anläggnings-ID, 2) latitud, 3) longitud, 4) antal byggnader som ingår i anläggningen (variabeln cnt2 i awk-scriptet). Koordinaterna beräknas genom att ta medelvärdet av latitud respektive longitud för de ingående byggnaderna, men bara de byggnader som har giltiga angivna koordinater (variabeln cnt). Det är inte alla byggnader som har giltiga koordinater. Några har latitud = 0, longitud = 10.5, vilket är en nonsens-punkt på ekvatorn som inte ingår i Sveriges geografi. Om ingen av byggnaderna hade någon koordinat (cnt == 0) lämnas blanka värden i utdata.
För att kunna länkas ihop med våra tidigare csv-filer, måste dessa sorteras på anläggnings-ID, som är första fältet:
 
 sort byggnadsminnen.csv        | join '-t	' -1 1 -2 1 -a 1 -e "" - koordinater.csv > byggnadsminnen_koord.csv
 sort kyrkliga_kulturminnen.csv | join '-t	' -1 1 -2 1 -a 1 -e "" - koordinater.csv > kyrkliga_kulturminnen_koord.csv
För att skapa tabellerna som anropar BBR-mallen, sorteras data på län och kommun enligt svensk alfabetsordning. Notera att fältbeteckningarna skiljer sig åt, eftersom ursprungsfilerna innehöll olika antal fält. Latitud heter sålunda $15 i byggnadsminnen och $14 i kyrkliga kulturminnen.
 
 LC_COLLATE=sv_SE sort -k2,5 '-t    ' byggnadsminnen_koord.csv |
 awk '-F\t' '{if (kommun!="" && kommun!=$3) printf "|}\n"; if (lan!=$2) {printf "==[[%s län]]==\n", $2; lan=$2} if (kommun!=$3) {printf "==[[%s kommun]]==\n{{BBR-huvud}}\n", $3; kommun=$3};
 printf "{{BBR\n| namn = %s\n| funktion = %s (%d byggnader)\n| byggår =\n| arkitekt =\n| plats =\n| kommun = %s\n| lat = %s\n| long = %s\n| bbr = %s\n}}\n", $5, $6, $17, $3, $15, $16, $1;}
 END {printf "|}\n";}' |
 sed 's/namn = [A-ZÅÄÖa-zåäö]*  *kn, /namn = /;s/(1 byggnader)/(1 byggnad)/;s/(0 byggnader)/(inga registrerade byggnader)/' >byggnadsminnen.txt
 LC_COLLATE=sv_SE sort -k2,5 '-t    ' kyrkliga_kulturminnen_koord.csv |
 awk '-F\t' '{if (kommun!="" && kommun!=$3) printf "|}\n"; if (lan!=$2) {printf "==[[%s län]]==\n", $2; lan=$2} if (kommun!=$3) {printf "==[[%s kommun]]==\n{{BBR-huvud}}\n", $3; kommun=$3};
 printf "{{BBR\n| namn = %s\n| funktion = %s (%d byggnader)\n| byggår =\n| arkitekt =\n| plats =\n| kommun = %s\n| lat = %s\n| long = %s\n| bbr = %s\n}}\n", $5, $6, $16, $3, $14, $15, $1;}
 END { printf "|}\n";}' |
 sed 's/namn = [A-ZÅÄÖa-zåäö]*  *kn, /namn = /;s/(1 byggnader)/(1 byggnad)/;s/(0 byggnader)/(inga registrerade byggnader)/;s/Kyrka,Kyrka/Kyrka/;s/Gravkapell,Gravkapell/Gravkapell/' >kyrkliga_kulturminnen.txt
 
Utdata här innehåller några fel, som måste rättas för hand. Det är exempelvis inga genitiv-s på kommunernas namn i rubrikerna. Det heter ju Örebro kommun och Tranås kommun, men ett genitiv-s måste läggas på för Lunds kommun. För några län har de länsvisa listorna över byggnadsminnen fogats ihop så att kyrkliga kulturminnen har en underrubrik under varje kommun, för andra har länets kyrkliga kulturminnen lagts i en egen sida. Fältet namn= till mallen BBR tas direkt från Bebyggelseregistret. De innehåller en fastighetsbeteckning följt av ställets namn i STORA BOKSTÄVER. Detta bör för hand skrivas om till ställets namn, länkat till rätt artikel, följt av fastighetsbeteckningen inom parentes.
En upptäckt är att kyrkliga_kulturminnen.csv inte innehåller några kyrkor i Östergötland. Det beror enligt RAÄ på att posterna är "låsta" för underhåll i databasen och därför inte har kommit med i dataexporten för augusti 2011. Men de ska finnas i september 2011. --LA2 19 augusti 2011 kl. 02.04 (CEST)
thread_title: Dokumentation

message: Tror att det skulle kunna vara nyttigt att lägga en en "typ" parameter för att särskilja mellan de byggnadsminnena, kyrkliga kulturminnen och övriga. Tänkte bara nått enkelt i stil med typ=K eller typ=B som i stil med kommunfältet inte skulle visas men som kan användas om man har en bot som kollar igenom listorna. /Lokal_Profil 31 augusti 2011 kl. 13.02 (CEST)
replies: text: Bör man skilja på byggnadsminnen enligt 3 kapitlet KML och statliga byggnadsminnen enligt förordningen? Det är två olika lagstiftningar, men jag vet inte vilken roll det spelar i praktiken. --LA2 31 augusti 2011 kl. 14.25 (CEST)
replies: text: : Har deras snabbversion av skillnaderna. I kort så är statliga byggnadsminnen sådana som staten äger och regeringen beslutar att utse till byggnadsminnen. Enskilda byggnadsminnen (3 kap KML) kan vara privatägda och de utses av länsstyrelserna. Jag tror att det borde fungera att helt enkelt kalla båda byggnadsminne för vårt syfte. /Lokal_Profil 31 augusti 2011 kl. 17.17 (CEST)
Precis som typ parametern ar detta inte akut men anda. Tor att det skulel vara bra att bryta ut raa-nr ur namn parametern. Faltet kan fortfarnade visas som tidigare men det skulel vara enklare att fa ett uniformt utseende pa mallarna. Detta skulle dessutom vara strukturellt vettigt da nummret egentligen inte ar en del av namnet. /Lokal_Profil 6 september 2011 kl. 12.16 (CEST)
thread_title:  Typ parameter