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

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

Jan 13, 2016

Download

Documents

Gwen Welch
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

www.nr.no

RgoogleMapsNorsk statistikermøte, Halden, 11. juni 2013

André TeiglandForskningssjefSAMBA

www.nr.no

Elisabeth OrskaugThordis Thorarinsdottir

Norsk Regnesentral

Page 2: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Change the center

You 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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Change the zoom variable

You 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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Change the size

You 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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Make a plot in grayscale

You 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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Add a square in a map

Plot 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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Add border of counties

Map 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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

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: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Add squares and border of counties

maptype = hybridSection 5.14

17/20

5. RgoogleMaps

Page 18: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Assignment

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

Section 5.15

18/20

5. RgoogleMaps

Page 19: Www.nr.no RgoogleMaps Norsk statistikermøte, Halden, 11. juni 2013 André Teigland Forskningssjef SAMBA  Elisabeth Orskaug Thordis Thorarinsdottir.

Suggestion

˃ pdf("MapFinnmark.pdf")

˃ …

˃ for(indNor in c(633,639:nrow(index.norway))){

˃ …

˃ }

˃ graphics.off()

19/20

5. RgoogleMaps

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

www.nr.no

André TeiglandForskningssjefSAMBA

www.nr.no

Short break