rgooglemaps norsk statistikermøte, halden , 11. juni 2013

20
www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA www.nr.no Elisabeth Orskaug Thordis Thorarinsdottir Norsk Regnesentral

Upload: aria

Post on 24-Feb-2016

65 views

Category:

Documents


0 download

DESCRIPTION

www.nr.no. RgoogleMaps Norsk statistikermøte, Halden , 11. juni 2013. Elisabeth Orskaug Thordis Thorarinsdottir Norsk Regnesentral. André Teigland Forskningssjef SAMBA. 5 . RgoogleMaps. RgoogleMaps. Provide a comfortable R interface to query the Google server for static maps - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

www.nr.no

RgoogleMapsNorsk statistikermøte, Halden, 11. juni 2013

André TeiglandForskningssjefSAMBA

www.nr.no

Elisabeth OrskaugThordis Thorarinsdottir

Norsk Regnesentral

Page 2: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

RgoogleMaps˃ Provide a comfortable R interface to query the Google

server for static maps> Use the map as background image to overlay plots within

R.

5. RgoogleMaps

2/20

Page 3: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Plot world map from google maps˃ library(RgoogleMaps)> MyMap = GetMap(center=c(0,0), zoom

=1, destfile = "World1.png ")

Section 5.1

320

5. RgoogleMaps

Page 4: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Change the centerYou can change the center (lat, lon):˃ MyMap = GetMap(center=c(59.95,10.7),

zoom =1, destfile = "World2.png")

Section 5.2

4/20

5. RgoogleMaps

Page 5: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Change the zoom variableYou can zoom the map by changing "zoom":

Section 5.3

5/20

MyMap = GetMap(center = c(59.95,10.7), zoom =10, destfile = "World3.png")

MyMap = GetMap(center = c(59.95,10.7), zoom =13, destfile = "World4.png")

5. RgoogleMaps

Page 6: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Change the sizeYou can change the size (pixels). (The default and maximum size is 640x640 pixels):Section 5.4

6/20

MyMap = GetMap(center=c(59.95,10.7), zoom =10, destfile = "World3Size200.png", size=c(200,200))

MyMap = GetMap(center=c(59.95,10.7), zoom =10, destfile = "World3Size500.png", size=c(500,500))

5. RgoogleMaps

Page 7: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Choose the right maptype

There are different maptypes to choose from:

Section 5.5

maptype = "satellite"

maptype = "roadmap" maptype = "terrain" maptype = "hybrid"

7/20

5. RgoogleMaps

Page 8: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Make a plot in grayscaleYou can make a plot in greyscale by adding GRAYSCALE=TRUE:˃ GetMap(center=c(59.95,10.7), zoom =10, destfile =

"OsloTerrainGRAYSCALE.png", maptype = "terrain", GRAYSCALE=TRUE)

Section 5.6

8/20

5. RgoogleMaps

Page 9: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Make a map including several points#The function qbbox() basically computes a bounding box for the given lat, lon points (with a few additional options -> see ?qbbox)

#We want to include the points (lat, lon) = (59.95, 10.7), (59.7, 10.3) and (59.3, 11.4).> bb = qbbox(c(59.95, 59.7, 59.3, 62),c(10.7,10.3,

11.4,11.4))˃ print(bb)

#$latR

#[1] 59.2865 62.0135

#$lonR

#[1] 10.2945 11.4055> MyMap = GetMap.bbox(bb$lonR, bb$latR,destfile

= "OsloBig.png", maptype = "roadmap")

Section 5.7

9/20

5. RgoogleMaps

Page 10: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Assignment

˃ Make a map that includes both Oslo (lat, lon) = (59.95, 10.7) and Kristiansand (lat, lon) = (58.13, 8.02).

Section 5.8

10/20

5. RgoogleMaps

Page 11: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Suggestion> bb = qbbox(c(59.95, 58.13),c(10.7,8.02))˃ MyMap = GetMap.bbox(bb$lonR, bb$latR,destfile =

"OsloKristiansand.png", maptype = "roadmap")

11/20

5. RgoogleMaps

Page 12: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Adding points and lines#Make plot on map:> bb = qbbox(c(59.95, 58.13),c(10.7,8.02))˃ MyMap = GetMap.bbox(bb$lonR, bb$latR,destfile =

"OsloKristiansand.png", maptype = "roadmap")

#Define the markers:> mymarkers = cbind.data.frame(lat = c(59.95, 58.13), lon =

c(10.7,8.02))

#plot˃ png("OsloKristiansandLine.png",640,640)

#adding points> tmp = PlotOnStaticMap(MyMap,lat = mymarkers[,"lat"], lon =

mymarkers[,"lon"], cex=2.5,pch=20,col=c("cyan", "brown1"), add=F)

#adding line> tmp = PlotOnStaticMap(MyMap,lat = mymarkers[,"lat"], lon =

mymarkers[,"lon"], col=c("blueviolet"), add=T, FUN = lines, lwd = 4)

> dev.off()

Section 5.9

12/20

5. RgoogleMaps

Page 13: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Example of plotting points

> png("cosomapPoints.png")> data(cosomap)> bb = qbbox(lon=cosomap$POINTS$lon-

360,lat=cosomap$POINTS$lat)> MyMap = GetMap.bbox(bb$lonR, bb$latR,destfile =

"Coso.png", maptype= "satellite",zoom=11)> tmp = PlotOnStaticMap(MyMap,lon=cosomap$POINTS$lon-

360,lat=cosomap$POINTS$lat, pch=20,cex = .5,col= "red", verbose=0)

> dev.off()

Section 5.10

13/20

5. RgoogleMaps

Page 14: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Add a square in a mapPlot one square in a map over Norway.

˃ MyMap = GetMap.bbox(c(4.51,31.26), c(57.91,71.24), destfile= "Norway.png" , GRAYSCALE=T, size=c(410,410), zoom=4)

˃ pdf("MapNorwayOneSquare.pdf")˃ indNor = 600 #choose one grid out of 777.˃ polys = data.frame(PID=rep(1,4),SID=rep(1,4),POS=1:4,

X=c(coord.lon[indNor,1],coord.lon[indNor,4],coord.lon[indNor,3],coord.lon[indNor,2]), Y = c(coord.lat[indNor,1], coord.lat[indNor,4], coord.lat[indNor,3], coord.lat[indNor,2]))

˃ color1 = rainbow(20,alpha=0.8) #transparent color; the map is shown under the square.

˃ nr.color = 17˃ PlotPolysOnStaticMap(MyMap, polys, lwd=.5,

col=color1[nr.color], add = F)˃ graphics.off()

Section 5.11

14/20

5. RgoogleMaps

Page 15: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Add border of countiesMap over Norway adding border of counties.

> PlotPolysOnStaticMap(MyMap, shp[ind[1]:ind2[1],], col=0, lwd=.5, add = F,verbose=.5)

> for(i in 2:length(ind)){> PlotPolysOnStaticMap(MyMap, shp[ind[i]:ind2[i],],

col=0, lwd=.5, add = T,verbose=.5) > }

Section 5.12

15/20

5. RgoogleMaps

Page 16: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Add squares and border of countiesPlot squares that covers Norway and add border of counties.

˃ PlotPolysOnStaticMap(MyMap, shp[ind[1]:ind2[1],], col=0, lwd=.5, add = F,verbose=.5)

˃ for(i in 2:length(ind)){˃ PlotPolysOnStaticMap(MyMap, shp[ind[i]:ind2[i],], col=0, lwd=.5, add

= T,verbose=.5) ˃ }˃ for(indNor in 1:nrow(index.norway)){ ˃ polys=data.frame(PID=rep(1,4),SID=rep(1,4),POS=1:4,

X=c(coord.lon[indNor,1],coord.lon[indNor,4],coord.lon[indNor,3],coord.lon[indNor,2]), Y = c(coord.lat[indNor,1],coord.lat[indNor,4],coord.lat[indNor,3],coord.lat[indNor,2]))

˃ color1 = rainbow(20,alpha=0.2)˃ nr.color = 10˃ PlotPolysOnStaticMap(MyMap, polys, lwd=.5, col=color1[nr.color],

add = T) ˃ }

Section 5.13

16/20

5. RgoogleMaps

Page 17: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Add squares and border of counties

maptype = hybridSection 5.14

17/20

5. RgoogleMaps

Page 18: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Assignment

> Add grids covering only Finnmark (the county longest North) on the map "Norway.png".

Section 5.15

18/20

5. RgoogleMaps

Page 19: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

Suggestion

˃ pdf("MapFinnmark.pdf") ˃ …˃ for(indNor in c(633,639:nrow(index.norway))){ ˃ …˃ }˃ graphics.off()

19/20

5. RgoogleMaps

Page 20: RgoogleMaps Norsk statistikermøte, Halden ,  11.  juni 2013

www.nr.no

André TeiglandForskningssjefSAMBA

www.nr.no

Short break