LEFT-MENU
PENDING

Første kik på Simple Feature pakken og en dansk kommune.


Af LARS den 2017.03.30
Nu hvor sf pakken er installeret skal den sættes på arbejde med nogle spatiale kort data med det langsigtede mål at kunne plotte geografisk fordeling af ressourcer.

KML

De lettest tilgængelige 2D geospatiale kort vi kan få fat på i dag er vel Google Earth, Google Maps samt Bing Maps.
Fælles for dem alle er at det er muligt at plotte områder, ruter med mere, ved hjælp af XML-formatet Keyhole Markup Language, også kaldet KML. Formatet gør det forholdsvis nemt at lave forskellige kort mahsups idet man ikke behøver bekymre sig om valget af Geografisk Informations System (GIS).
Søren Johannesen har gennem en årrække samlet information om administrative danske enheder, og hans hjemmesider er en glimrende ressource, hvor man blandt andet kan finde .kml filer der dækker kommuner, regioner og politidistrikter.

Søren Johannesens arbejde er dog kun blevet muligt fordi Kort & Matrikelstyrelsen (nu Geodatastyrelsen) gratis har lagt geodata ud uden copyright og betaling ved kasse et for brug.

KML indlæst i R

Jeg har pt ikke funde nogen pakker der direkte indlæser .kml filer i R, så den letteste metode er simpelthen at indlæse filen som en lang tekststreng og splitte den op i bidder med koordinaterne. I dette blogindlæg griber jeg fat i Vejle Kommune, hvis areal kan beskrives med blot et polygon; først i næste afsnit vil jeg se på indlæsning af kommuner, hvis arealer består af flere polygonområder dvs fastland og øer.
Nedenstående R kode indlæser altså .kml filen som en tekststreng, isolerer polygonet og skaber et sf multipolygon objekt klargjort til plot.



> # indlæs nødvendige pakker og indstil arbejdsbibliotek
> library(tidyr)
> library(sf)
> setwd("~/.")

> # indlæs .kml fil som en lang ekststreng
> enStreng <- paste(readLines("vejle.kml"), collapse=" ")
> # isoler koordinaterstrengen i xml
> s1<-strsplit(enStreng,"")
> s2<-strsplit(s1[[1]][2],"
")
> # fjern start/slut mellemrum, split koordinatstrengen ved seperatoren, her " " og skab en dataframe
> s3<-strsplit(trimws(s2[[1]][1])," ")
> s4<-as.data.frame(cbind(s3[[1]]))
> # opsplit datarammens koordinatskolonne i tre adskilte koordinatkolonner
> s5<-separate(s4, col="V1", into = c("a", "b", "c"), sep = ",")
> # skab sf multipolygon opbjekt, dvs en liste af lister af polygoner, crs angiver koordinast reference systemet
> s6<-st_sf(by="Vejle",crs=4267,geom=st_sfc(st_multipolygon(list(list(
     + cbind(as.numeric(as.character(s5[,1])),as.numeric(as.character(s5[,2]))))))))


Med polygonet på plads er det tid til at se på nogle af de muligheder sf pakken giver for plot af polygon arealet. På grafikken til venstre ses standard output mens der til højre er eksperimenteret med nogle af indstillingsmulighederne.



> # standard simple feature plot
> plot(s6,main="Vejle")
> # gem standard plot omgivelser
> opar<-par()

> # par sætter plot omgivelser
> # mar=c(venstre,op,højre,ned) giver indre rand
> # mfrow(rækker,kolonner) giver antal plots i grafikken, her 2x2=4
> par(mar=c(0,0,2,0),mfrow=c(2,2))
> # col=NA giver omrids
> plot(s6,main="Vejle Kommune",col=NA)
> # col=farve og bgc=baggrundsfarve
> plot(s6,main="Vejle Kommune",col="blue",bgc="red")
> # expandBB() forskyder c(op,højre,ned,venstre)
> plot(s6,main="Vejle Kommune",col="orange",bgc="maroon",expandBB=c(1,0,0,0))
> # sæt plot omgivelser uden rand i sidste plot
> par(mar=c(0,0,0,0))
> # sæt sf plot til at fylde hele plot vinduet
> plot(s6,main=NA,col="green",bgc="yellow",setParUsrBB=TRUE)

> #sæt plot omgivelser til standard
> par<-opar()

Standard Simple Feature Plot Fire eksperimentelle indstillinger for Simple Feature plot



Installation af R's sf pakken på Ubuntu 16.04 Xenial.

Af LARS den 2017.03.30.

At få Simple Features pakken til at køre er endnu lidt af et puslespil, der kræver lidt research og diverse hacks.
Læs mere

Polygoner med R, Del 1

Af LARS den 2017.03.23.

Cirkel polygon Indledende kik på polygoner med ggplot2 i R.
Læs mere

Folkeskoler i Vejle, Del 5

Af LARS den 2016.04.13.

Indekseret fremskrivning Korrelationsanalyse af årgangsstørrelse på folkeskoler
Læs mere

Folkeskoler i Vejle, Del 4

Af LARS den 2016.04.06.

Indekseret fremskrivning Ploynomie tilpasning af elevstørrelse på årgange for fremskrivning
Læs mere

RIGHT-MENU
PENDING

BOTTOM-BAR
PENDING