Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Spatial Methods in R

Similar presentations


Presentation on theme: "Advanced Spatial Methods in R"— Presentation transcript:

1 Advanced Spatial Methods in R
Michael Mann George Washington University Department of Geography

2 Overview Review Basics Setting up Space-time data Space-time plots
library(RasterVis) library(plotKML) Vector & Other Data Visualization library(ggplot2) Mapping ggplot2 visualizations library(ggmap)

3 Before we begin Best places for help http://stackoverflow.com/
Question & Answer form. Quick & high quality responses ?function_name Look up help files for a function from any library Similar to stackoverflow, but targeted to spatial community The fridge – grab a beer and spend some time

4 Interpreting My Slides!
Inputs into command line Outputs Notes Data is in the MMSpatialData folder s = c("aa", "bb", "cc", "dd", "ee") s [1] "aa” "bb” "cc” "dd” "ee" An important note

5 Your location Quick survey
Please raise you hand if (before today) you have never used R or a similar language.

6 Let’s even the playing field
Beginners Please look around you. Move if there is a beginner cluster! Experts Put on your teaching hats! Remember how difficult this material is. Make sure to help your teammates!

7 Overview Indexing a vector Indexing a data.frame Helpful Functions
s = c("aa", "bb", "cc", "dd", "ee") s = data.frame(col1=c(1,2,3), col2=c(5,6,7)) s[1] s[c(2,5)] col1 col2 [1] ‘aa’ [1] ‘bb’ ‘ee’ s[2,1] s[,’col2’] s[c(2:5)] [1] 2 [1] [1] ‘bb’ ‘cc’ ‘dd’ ‘ee’ vector_name[ position_# ] vector_name[ row#, col# ]

8 Objective 1 – Raster space-time plots
library(raster) Raster Stacks & Bricks Multidimensional raster objects Multi-layer (red,green,blue) Multi-dim (time series, multi variable) Indexing Your Data stack[row# ,col#, Z#] Y Z X

9 Objective 1 – Raster space-time plots
Multi-layer Raster ‘Brick’ b <- brick(system.file("external/rlogo.grd", package="raster) plot(b) Brick[X,Y,Z]

10 Objective 1 – Raster space-time plots
Multi-layer Raster Brick plotRGB(b, r=1, g=2, b=3)

11 Objective 1 – Raster space-time plots
Multi-dimentional Raster Stack Good for time-series of rasters, or multivariate analysis Time Series Multivariate stack[x,y, c(cwd ) ] stack[x,y, c(crime,pop) ]

12 Objective 1 – Raster space-time plots
Multi-dimentional Raster Stack Good for time-series of rasters, or multivariate analysis Time Series Multivariate stack[x,y, c(cwd ) ] stack[x,y, c(crime,pop) ] Use: Data Visualization Use: Regression Analysis, modeling

13 Task 1.1 – Setup Raster Stack Data
Helpful Functions dir() grep() dir(‘C://SESYNC//data’) grep(‘a’, c( ‘a’, ‘b’, ‘c’, ‘a’ ) ) [1] grep(‘c’, c( ‘tab’, ‘car’, ‘bat’ ) ) [1] 2 [1] ‘data.zip’ ‘ggmap vinette.pdf’….

14 Task 1.1 – Setup Raster Stack Data
Helpful Functions – Using grep to index a vector Find the location of a element with ‘c’ in it Query vector s with the grep s = c("aa", "bb", "cc", "dd", "ee") grep(‘c’, s ) [1] 3 s[ grep(‘c’, s ) ] [1] ‘cc’

15 Task 1.1 – Setup Raster Stack Data
Helpful Functions – Using grep to index a vector Find the location of a element with ‘c’ in it Query vector s with the grep s = c("aa", "bb", "cc", "dd", "ee") grep(‘c’, s ) [1] 3 TRY THIS! s[ grep(‘c’, s ) ] [1] ‘cc’

16 Task 1.1 – Let’s get started!

17 Task 1.2 – Create Raster Stacks and Assign Name Labels
Helpful Functions paste() names() paste(‘Hi',c('Bill','Bob', 'Sam'), sep=' ') names(rstack) = c(‘test2001’,’test2002’) [1] “Hi Bill" “Hi Bob" “Hi Sam" paste(’aet',c(’2001',’2002’), sep=’_') [1] "aet_2001" "aet_2002" test2002 test2001

18 Task 1.2 – Create Raster Stacks and Assign Name Labels
Helpful Functions paste() names() paste(‘Hi',c('Bill','Bob', 'Sam'), sep=' ') names(rstack) = c(‘test2001’,’test2002’) [1] “Hi Bill" “Hi Bob" “Hi Sam" TRY PASTE()! paste(’aet',c(’2001',’2002’), sep=’_') [1] "aet_2001" "aet_2002" test2002 test2001

19 Task 1.2 – Create Raster Stacks and Assign Time Labels
Helpful Functions seq() & as.Date() setz() seq(1,15, by=3) raster_stack = setZ(raster_stack, years) [1] Years = seq(as.Date(’ '), as.Date(' '), by=’1 year') [1] " " " " [10] " " " "

20 Task 1.2 – Create Raster Stacks and Assign Time Labels
Helpful Functions seq() & as.Date() setz() seq(1,15, by=3) raster_stack = setZ(raster_stack, years) [1] Important: setZ must be passed a series of ‘Dates’ (created with as.Date function) Years = seq(as.Date(’ '), as.Date(' '), by=’1 year') [1] " " " " [10] " " " "

21 Task 1.2 – Let’s get started!

22 Task 1.3 – Visualize Stack Data
Indexing Your Data Method 1 plot(raster_stack[[1]]) # plot first raster plot(raster_stack[[2]]) # plot second raster NOTE: [[ ]] is used b/c stack is a list object Method 2 plot( raster(raster_stack,'HDen_1989') ) NOTE: raster() is used b/c… well that is just how it works

23 Task 1.3 – Let’s get started!

24 Task 1.4 – Challenge Questions

25 Task 1.5 Visualize Space-Time Data rasterVis & plotKML packages
Excellent tutorial available at Data Format Raster stack with z-dim set to dates using: as.Date() Spatial points or polygons data.frame with z-dim set to dates Hovmoller Plot Horizon Plot

26 Task 1.5 Visualize Space-Time Data rasterVis & plotKML packages
Data Format 2 Raster stack OR Spatial points or polygons data.frame with z-dim set to slope, or direction Vectorplot Stream Plot

27 Task 1.5 Visualize Space-Time Data rasterVis & plotKML packages
Excellent tutorial: Data Format Exports many formats including raster stacks Note: This code outputs both a Housing.kml file and a series of other image files (.png files). In order for this to work, the Housing.kml file needs to be in the same directory as all the image files.

28 Task 1.5 Visualize Space-Time Data rasterVis & plotKML packages
Excellent tutorial: Data Format Exports many formats including raster stacks All data must be unprojected Lat Lon "+proj=longlat +datum=WGS84” Note: This code outputs both a Housing.kml file and a series of other image files (.png files). In order for this to work, the Housing.kml file needs to be in the same directory as all the image files.

29 Task 1.5 – Let’s get started!

30 Task 1.6 – Let’s get started!

31 Objective 2: Intro to ggplot2
One of the best data visualization tools in R Documentation available here:

32 Objective 2: Intro to ggplot2
A plot is made up of multiple layers. A layer consists of data, a set of mappings between variables and aesthetics, a geometric object and a statistical transformation Scales control the details of the mapping. All components are independent and reusable.

33 Objective 2: Intro to ggplot2
aesthetics geometric object scales control ‘+’ add mappings Typical Command a = ggplot(movies, aes(y = budget, x = year, group = round_any(year, 10) )) + geom_boxplot() + scale_y_log10() plot(a)

34 Task 2.1 Setting up your data
ggplot2 uses data.frames!

35 Task 2.1 Setting up your data
Helpful Functions aggregate() Summarizes data of interest by factors (categorical data) aggregate( rating ~ year ,data= movies, FUN='mean')

36 Task 2.1 Setting up your data
Helpful Functions fortify() Converts spatial polygons, lines, points to data.frame usable in ggplot2 jepson.points = fortify(jepson, region="id")

37 Task 2.1 Let’s get going!

38 Objective 2: Intro to ggplot2
plot reminder aesthetics geometric object scales control ‘+’ add mappings Typical Command a = ggplot(jepson.df) + aes(long,lat,group=group,fill=ECOREGION) + geom_polygon() plot(a)

39 Task 2.2 Let’s get going!

40 Task 2.3 Let’s get going!

41 Task 2.4 Challenge questions

42 Objective 3: Intro to ggmap
Ggmap enables visualization of layered graphics using implementation similar to ggplot2 Combines the functionality of ggplot2 and spatial information of static maps from Google Maps, OpenStreetMap, Stamen Maps or CloudMade

43 Objective 3: Intro to ggmap
Ggmap enables visualization of layered graphics using implementation similar to ggplot2 qmap() Downloads static maps from google, or OSM Defined by a central Lat and Lon and a ‘Zoom’ level Takes additional ‘+’ commands to overlay ggplot2 graphics Zoom = 5 Zoom = 14

44 Objective 3: Intro to ggmap
plot aesthetics geometric object scales control coordinate system Done in background through qmap ‘+’ add mappings Typical Command HoustonMap <- qmap("houston", zoom = 13, color = "bw") HoustonMap + geom_point(data=violent_crimes,aes(x = lon, y = lat, colour = offense ) ) plot( HoustonMap )

45 Task 3.1 Setting up your data
Helpful Functions projectRaster() & project() Converts spatial -polygons, -lines, -points to data.frame usable in ggplot2 & ggmap. Ggmap data must be in unprojected lat lon (defined below) # Project a raster to unprojected Lat Lon using nearest neighbor algorithm stack_proj = projectRaster(raster_stack, crs="+proj=longlat +datum=WGS84” , method='ngb') # Project a polygon to unprojected Lat Lon using nearest neighbor algorithm jepson_proj = project(jepson, crs="+proj=longlat +datum=WGS84”)

46 Task 3.1 Setting up your data
Helpful Functions fortify() Converts spatial polygons, lines, points to data.frame usable in ggplot2 jepson.points = fortify(jepson, region="id")

47 Task 3.1 Setting up your data
Helpful Functions geocode() revgeocode() Converts text addresses or location names to Lat Lon coordindates Converts Lat Lon to text addresses geocode("the white house") revgeocode(c( , ), output = c("address"))

48 Task 3.1 Setting up your data
Helpful Functions subset() data = data.frame(name=c(‘mike’,’john’,’jim’), age=c(4,3,6)) name age mike 4 john jim name age 2 john 3 jim subset(data, name != ‘mike’ ) name age 1 mike 4 3 jim subset(data, age > 3 )

49 Task 3.1: Learn Basic ggmap Functions

50 Task 3.2: Crime Mapping In Houston TX

51 Task 3.3: Challenge Questions

52 What should we review?


Download ppt "Advanced Spatial Methods in R"

Similar presentations


Ads by Google