Presentation is loading. Please wait.

Presentation is loading. Please wait.

As GIS Analysis of spatial data in R IMPRS Modular R course: Advanced module on spatial data in R Matthias Forkel Jena, 23.05.2012.

Similar presentations


Presentation on theme: "As GIS Analysis of spatial data in R IMPRS Modular R course: Advanced module on spatial data in R Matthias Forkel Jena, 23.05.2012."— Presentation transcript:

1 as GIS Analysis of spatial data in R IMPRS Modular R course: Advanced module on spatial data in R Matthias Forkel mforkel@bgc-jena.mpg.de Jena, 23.05.2012

2 Presentation, example scripts, data and materials at: ftp://ftp.bgc-jena.mpg.de/pub/outgoing/mforkel/Rcourse/

3 Agenda Spatial data in R (A) >> Wed, May 23, 2012, 9:30-12:30, part 1 1 Introduction to spatial data in R 1.2 Packages for spatial data 1.3 Classes for vector and raster datasets 1.4 Reading and writing of spatial data Spatial data in R (B) >> Wed, May 23, 2012, 9:30-12:30, part 2 2 Mapping 2.1 Plotting functions for spatial data 2.2 Graphical representation of spatial information 2.3 Coordinate systems and reprojection Spatial data in R (C) >> Wed, May 23, 2012, 13:30-16:30, part 1 3 Exchange between R and other spatial software 3.1 Import of GoogleMaps and OpenStreetMap data in R 3.2 Export data to GoogleEarth 3.3 Linking R with GIS software Spatial data in R (D) >> Wed, May 23, 2012, 13:30-16:30, part 2 4 Spatial data analysis 4.1 Methods for vector data 4.2 Methods for raster data 4.3 Spatial interpolation

4 Introduction to spatial data in R 1 Introduction to spatial data in R 1.2 Packages for spatial data 1.3 Classes for vector and raster datasets 1.4 Reading and writing of spatial data

5 as GIS? – Why and how is this possible? -Geostatistics as a core feature of R: -Spatial autocorrelation, spatial interpolation, geostatistics (package „spatial“ is a core part of S/R for a long time) -visualization capabilities of R: mapping -many packages for geostatistical analyzes (e.g. gstat) -Interfaces to other geoinformation software: -Geospatial basics: -GDAL: reading/writing of spatial data (package rgdal) -Proj4: definition of coordinate reference systems (package rgdal) -Geographical Information Systems -GRASS GIS (package spgrass6) -SAGA GIS (package RSAGA) -ArcGIS (via Python with package RPyGeo) -PostGIS (packages rgdal or RODBC) -GoogleEarth: -download of GoogleMaps data (package RgoogleMaps) -writing of KML files for GoogleEarth (package maptools, raster)

6 Bivand, R, E. Pebesma & V. Gómez-Rubio (2008): Applied Spatial Data Analysis with R. New York: Springer. -Classes for spatial data in R -Reading/writing of spatial data -Mapping -Point pattern analysis -Spatial autocorrelation -Spatial interpolation/Geostatistics -Disease mapping Hengl, T. (2009): A Practical Guide to Geostatistical Mapping. Open source book. http://www.lulu.com/product/file-download/a-practical- guide-to-geostatistical-mapping/14938111 -R as GIS = R + GRASS + SAGA + GoogleEarth -Geostatistics, spatial autocorrelation, Applications: -Geomorphometry, digital elevation models -Heavy metal concentrations -Land surface temperature Literature

7 Overview of R packages for spatial data: http://cran.r-project.org/web/views/Spatial.html Description of the sp package: http://cran.r-project.org/web/packages/sp/sp.pdf Description of the raster package: http://cran.r-project.org/web/packages/raster/vignettes/Raster.pdf Some R code examples for spatial data (University Oregon): http://geography.uoregon.edu/GeogR/index.html Spatial-analyst.net – a Wiki for spatial data analysis based on R: http://spatial-analyst.net/ Some more tips: http://spatialanalysis.co.uk/r/ Mailinglist of R special interest group on using geographical data and mapping https://stat.ethz.ch/mailman/listinfo/R-SIG-Geo/ Links

8 Fig.: R packages depending on package sp (Bivand et al. 2008:5) + raster package for geographic analysis and modeling with raster data Classes for spatial data ToolboxReading/Writing Spatial and Space-Time Point Pattern Analysis Functions Geostatistics Spatial sampling Animal tracking Centrographic statistics Spatial autocorrelation point patterns geo. weighted regression analysis of outbreaks exploring spatial data R/GRASS interface geological mapping point pattern analysis analysis of env. data generalized linear spatial models similarity/abscence of species clusters of diseases Support vector machine automated redistricting seismic tomography analyzing missing values raster Classes for raster data raster GIS functions Packages for spatial data in R

9 Exercise 0 Load packages for spatial data in R Aim: install and load packages to work with spatial data in R - Open and run the script 00_spatialR_main.R

10 Types of spatial data + + + + + Vector data Raster data Point Line Polygon Rasterlayer Rasterstack

11 + + + + + readOGR() writeOGR() readGDAL() writeGDAL() SpatialPoints SpatialPointsDataFrame SpatialLines SpatialLinesDataFrame SpatialPolygons SpatialPolygonsDataFrame SpatialPixels SpatialPixelsDataFrame SpatialGrid SpatialGridDataFrame Data typeread/writeclasses from package spBasic methods for classes Get extent: bbox() Get projection: proj4string() Get coordinates: coordinates() Access data: @data raster() stack() brick() RasterLayer RasterStack – multiple files RasterBrick – one file classes from package raster: Get extent: extent() Get resolution: res() Get projection: projection() Get data: getValues() Classes for spatial data in R Vector data Raster data ++++++ ++++++ ++++++ ++++++ ++++++ ++++++ ++++++ ++++++

12 Classes for vector data: Spatial* classes (package sp) Read ESRI shapefile with country borders: SpatialPoints, SpatialLines, SpatialPolygons, SpatialPixels

13 Classes for raster data: SpatialGridDataFrame (package sp) - read/write: readGDAL, writeGDAL (+) used by package gstat for geostatistical interpolations (-) all data stored in memory (RAM) – large raster datasets not feasible

14 Raster data: readGDAL(), writeGDAL() Vector data: readOGR(), writeOGR() Supported file formats: package sp and rgdal* * Package rgdal requires GDAL (geospatial data abstraction library) installed (comes e.g. with GRASS, QGIS, FWtools or other FOSS GIS) For working with raster data the classes of the raster package are more feasible …

15 Exercise 1 Classes for vector data Aim: Learn the structure of sp* objects - Open the script 01_spatialR_ex1_classes-for-vector-data.R - Run the demonstration. - Exercise 1: make a simple world map

16 Classes for raster data: RasterLayer, RasterStack, RasterBrick RasterLayer -raster() -only one layer -reference to file RasterStack -stack() -create from files, RasterLayers or SpatialGridData- Frames -mutilayer collection of RasterLayers RasterBrick -brick() -multilayer -data stored in one multiband file -shortest processing time (+) data stored on disk, not in memory

17 Read raster data: raster(), stack() or brick() Write raster data: writeRaster() Supported file formats: package raster

18 Exercise 2 Classes for raster data Aim: learn the structure of raster* objects and create a RasterLayer - Open the script 02_spatialR_ex2_classes-for-raster-data.R - Run the demonstration. - Exercise 2: Create a RasterLayer object

19 Mapping 2 Mapping 2.1 Plotting functions for spatial data 2.2 Graphical representation of spatial information 2.3 Coordinate systems and reprojection

20 Graphical representation of vector data (in general, not only R) Tab.: Legend types for point, line and areal data Legenden- typ Single Symbol Graduated Color Graduated Symbol Unique ValueChartDot Point -- Line -- Area --

21 Elements of a map - title / subtitle - main map, secondary maps - grid - Legend explaining colors and symbols - Info: Projection, geographic reference system - charts - references (data sources) - data type, e.g. information about satellite - text, explanations - author, cartographer - producer, institution, copyright - scalebar - north arrow - map ID (if map belongs to a collection of maps/atlas) - overview map (for regional maps)

22 Exercise 3 Create nice maps / plotting functions in R Aim: create a map including colors, legend and geographical data - Open the script 03_spatialR_ex3_mapping1.R - Run the demonstration. - Exercise 3: Plot a map of the Koeppen-Geiger climate zones.

23 Map projections Properties: -Equidistant: preserve distances -Equal area: preserve area -Conformal: preserve angles Not everthing is possible at once (except on a globe)

24 Proj 4 PROJ.4 - Cartographic Projections Library  http://trac.osgeo.org/proj/ Standard to define map projections in many open source software. Examples for common projections: http://www.remotesensing.org/geotiff/proj_list/ Example for the usual longitude/latitude maps (°E, °N) +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0

25 Projections in R In R: define the proj4 string as character string and convert it to a CRS (coordinate reference system) object: proj <- CRS(„+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0“) Projections can be assigned: … to sp* objects: proj4string(data) <- CRS(…) … to raster* objects: projection(data) <- CRS(…) Reprojection / Spatial transformation: … for sp* objects: spTransform(…) … for raster* objects: projectExtent() projectRaster()

26 Exercise 4 Transform spatial data Aim: transform raster and vector data sets (to Robinson projection, Arctic projection), cut a raster with a polygon - Open the script 04_spatialR_ex4_transformations-mapping2.R - Run the demonstration. - Exercise 4: plot a map in an arctic projection

27 Spatial R and GoogleEarth 3 Exchange between R and other spatial software 3.1 Import of GoogleMaps and OpenStreetMap data in R 3.2 Export data to GoogleEarth 3.3 Linking R with GIS software

28 RgoogleMaps Download data from GoogleMaps and OpenStreetMap with RgoogleMaps package http://www.openstreetmap.org

29 Exercise 5 Import data from GoogleMaps and OpenStreetMap to R Aim: Learn how to use spatial data from web services for your own maps - Open the script 05_spatialR_ex5_import-GoogleEarth-OSM.R - Run the demonstration.

30 Exercise 6 Export your own data to GoogleEarth Aim: Create a kml-file from a raster for an overlay in GoogleEarth - Open the script 06_spatialR_ex6_export-GoogleEarth.R - Run the demonstration.

31 R and GIS How to access functionality of other GIS software from R? GRASS GIS: package spgrass6 ArcGIS: via package RPyGeo SAGA GIS: package RSAGA (wraps SAGA shell commands in R functions)

32 Spatial data analysis 4 Spatial data analysis 4.1 Methods for vector data 4.2 Methods for raster data 4.3 Spatial interpolation

33 Methods for vector data Package sp: overlay() and over() functions - Points in polygon - Grid over polygon More methods in rgeos package  http://cran.r-project.org/web/packages/rgeos/index.html http://cran.r-project.org/web/packages/rgeos/index.html e.g. area, distance, buffer, crosses, overlap, intersection, union …

34 Exercise 7 Spatial analysis with vector data Aim: make an analysis with point-in-polygon and distance computations - Open the script 07_spatialR_ex7_spatial- analysis-vector.R - OpenStreetMap data (downloaded from http://www.geofabrik.de/) - Run the two examples: 1. Which landuse type contains most of the benches? 2. Which is the closest restaurant to the station 'Jena Paradies'?

35 Methods for raster data raster package Description: http://cran.r-project.org/web/packages/raster/ How to process large rasters (i.e. rasters which cannot be saved in the R memory)? http://cran.r-project.org/web/packages/raster/vignettes/functions.pdf

36 GIS methods in the raster package (1) Resampling: aggregate() creates raster with lower resolution disaggregate() creates raster with higher resolution resample() transfers raster values to different origin and resolution Spatial transformation: projectRaster() transforms Raster* objects to another projection spTransform() transform Spatial* vector objects to other projection Change raster extent: crop() cuts a raster to a smaller extent expand() enlarges a raster merge() merges raster layers to larger extent mosaic() merges raster layers to larger extent but considers overlap Translocation: flip() mirrors a raster rotate() rotates a raster shift() shifts a raster

37 Calculations: adjacent() identify adjacent cells to a cell on a raster area() calculates area of raster cells calc() performs calculations per pixel on multilayer raster objects hillShade() compute hillshade from slope and aspect overlay() calculations based on specific layers terrain() calculate slope and aspect from elevation model zonal() calculates zonal statistics for a raster Dealing with NA values: approxNA() estimate values that are NA in a raster cover() replaces NA values with values of a second raster mask() sets values in a raster to NA Image processing: edge() detects edges focal() moving window filters cut() classify values of a raster to classes reclass() reclassify values in a raster GIS methods in the raster package (2)

38 Extract values and coordinates: extract() extract cell values cellFromCol(), cellFromLine(), cellFromPolygon(), cellFromRow(), cellFromRowCol(), cellFromXY(), cellFromExtent() get cell number from a raster xFromCell(), yFromCell(), xyFromCell() get coordinates from cell number minValue(), maxValue() extreme values in a raster Plotting/Mapping: plot() plot a map of a Raster* object plotRGB() plot red-green-blue composite of a raster contour() plot contour lines pairs() plot matrix of scatterplots for layers in a RasterBrick or RasterStack scalebar() add a scalebar to a raster map Raster-vector interfaces: extract() gets raster values based on other spatial objects rasterize() converts points, lines or polygons to rasters Sampling: sampleRandom() take a random sample from a raster sampleRegular() take a systematic sample from a raster GIS methods in the raster package (3)

39 Exercise 8 Calculations with raster data Aim: learn statistical and arithmetical functions for raster data, analyse time series of raster data - Open the script 08_spatialR_ex8_spatial- analysis-raster.R - Run the demonstration. - Exercise 8: Compute zonal statistics of NDVI by Koeppen-Geiger climate zones

40 Spatial Interpolation How to transfer information from observed sites to other locations? x z y ? Fig.: Interpolation of measurement points

41 Inverse Distance Weighting - Weighting with inverse of distance - Assumption: less influence of far points Estimated value z Observed value d Distance β Exponent Pros/cons: + simple and fast +less assumptions + often used - Bubble effect Spatial Interpolation

42 Spatial correlation and Kriging Spatial Interpolation - Estimation of spatial correlation and variance -Variogram: description of spatial dependance Sill Nugget Correlation length Distance Variance (squared difference) Fig.: Elements of a variogram Variogram Weights for Kriging interpolation Estimation

43 Exercise 9 Spatial Interpolation Aim: learn how to interpret variograms and how to use inverse distance weigthing and ordinary kriging - Open the script 09_spatialR_ex9_spatial- interpolation.R - Run the code.

44 Feedback -What did you like? -What should be improved? -Which parts should be extended or shorter?


Download ppt "As GIS Analysis of spatial data in R IMPRS Modular R course: Advanced module on spatial data in R Matthias Forkel Jena, 23.05.2012."

Similar presentations


Ads by Google