Taller-mapas Shapes R

download Taller-mapas Shapes R

of 7

Transcript of Taller-mapas Shapes R

  • Taller: Creacion de mapas en formato shape.shp

    de ESRI, con

    [email protected]

    9 de octubre de 2013

    Resumen

    El proyecto R-cran[1] provee diferentes paquetes y funciones geoespa-ciales que permiten la elaboracion de mapas con las capas en formatoshape de ESRI. En este manual desarrollamos paso a paso, las lneas decomandos adecuadas para obtener cada elemento basico de un mapa (Le-yenda, Titulo, Norte, Escala, etc.). El programa R permite crear mapasdesde niveles basicos hasta otros muy complejos, conformandose como unaherramienta alternativa de software libre en el ambiente de los Sistemasde Informacion Geografica (S.I.G.).

    Palabras Claves: software libre, R, SIG, shape.shp, estadstico

    1. Requerimientos

    1. Nivel en R: Conocimientos primarios que permitan instalar libreras, y elconcepto de capa vectorial.

    2. Nivel en S.I.G.: Familiaridad con el formato vectorial (*.shp) y sus com-ponentes asociados.

    3. Datos: Capas en formato shape (*.shp) con sus archivos asociados (*.dbf ),(*.shx ), como mmino para que puedan ser ledos en R.

    4. Paquetes (libreras): se deben tener instaladas las siguientes,

    class

    classInt: Creador de clases/categoras ordinales separadas por quantiles.

    e1071

    maptools[2] : Herramientas para leer y editar objetos espaciales.

    RColorBrewer[3]: Paletas de colores especiales para mapas tematicos.

    rgdal[4]: interface a GDAL analisis de datos geograficos.

    1

  • Creacion de mapas en formato shape de ESRI, con R [email protected] 2

    sp[5]: librera base para cualquiera otro paquete de analisis espacial dedatos.

    2. Archivos en formato vectorial Shape

    Un archivo en formato shape.shp representa una lista de objetos espaciales- puntos, lneas o polgonos- y cada objeto de la lista puede tener asociada unaserie de tipos diferentes de variables.

    El conjunto de archivos de un shape esta formado por una coleccion de ar-chivos de textos, por ejemplo:misdatos.shpmisdatos.prjmisdatos.sbnmisdatos.dbfmisdatos.shx

    Todos los componentes de la lista se presentan con el mismo nombre comoel ejemplo anterior misdatos, pero con diferentes extensiones. Para referirse aesta coleccion de archivos se usa el nombre con la extension (*.shp), por ejemplomisdatos.shp.

    3. Objetivo

    Desarrollar un mapa de tipo Choropleth, representando alguna de las va-riables relacionadas a las subcuencas para las regiones de Los Ros y Los Lagos,Chile.Para esto se debe realizaran algunos calculos de las mismas, por ejemplo el Indicede compacidad: Tambien denominado coeficiente de compacidad o de Gravelius,definida como la relacion entre el permetro de la cuenca y el permetro de uncrculo de area equivalente.Cuya formula es:

    kc =P

    2piA

    Donde:P = Permetro de la cuenca

    A = Area de la cuenca

    4. Archivos requeridos

    En este ejemplo se va a nesecitar un archivos en formato shape, a continua-cion una breve descripcion:

    Nombre Objeto Espacial Registros Campossubcuencas(SIARX) Polgonos 70 9

  • Creacion de mapas en formato shape de ESRI, con R [email protected] 3

    5. Lneas de comandos en R

    Inicie el programa R o en su defecto algun otro que entregue una inter-face mas amigable que la terminal o shell propia de R, se recomienda RS-tudio (version 0.98el cual puedes bajar e instalar desde el siguiente enlacehttp://www.rstudio.org para las diferentes plataformas de sistemas opera-tivos.Cada serie de comandos seran numerados correlativamente, precedidos por co-mentarios ndicados por el smbolo (#).

    Antes de comenzar a crear un scrip en R, es recomendable mediante unacabezera de comentarios identificarlos con algunos parametros para manteneruna organizacion de nuestros scrips a futuro.

    #title : Mapas de Indices de Compacidad, Regiones de Los Ros y Los

    Lagos. Chile

    #purpose : Dise~nar mapa tipo Choropleth para diferentes polgonos

    analizados.

    #author : [email protected] (iv, 2013)

    #input : Shapes en formato Esri (.shp).

    #output : Mapas formato (pdf o png).

    #reference: https://sites.google.com/site/eospansite/alobotips/spatial_

    r_tips/rshp_xls

    #1. Nos posicionamos en el directorio de trabajo, donde esta el

    conjunto de archivos -*.shp

    > setwd("/Directorio/SIG/donde/estan/archivos/shapes")

    #2. Cargamos las libreras o paquetes necesari@s

    > library(classInt)> library(maptools)> library(RColorBrewer)> library(rgdal)> library(sp)

    #3. Leer shapes ESRI y se asigna a una variable.

    > Scuenca = readOGR(dsn = ".", layer = "subcuencas(SIARX)")

    Si R lee sin errores los archivos shape, entregara un mensaje como el siguiente,tomando como ejemplo el shape al cual le hemos asignado la variable de nombreScuenca:

    OGR data source with driver: ESRI Shapefile

    Source: ".", layer: "subcuencas(SIARX)"

    with 70 features and 7 fields

    Feature type: wkbPolygon with 2 dimensions

    Claramente nos senala que el archivo esta formado por 70 registros y 7 campos,los cuales corresponden a polgonos de dos dimensiones.

  • Creacion de mapas en formato shape de ESRI, con R [email protected] 4

    #4. Ver la estructura de la base de datos asociada a cada capa shape.

    Ejemplo para el shape Scuenca.

    > str(Scuenca@data)data.frame: 70 obs. of 7 variables:

    $ AREA : num 495000 864400 341000 290900 646000 ...

    $ PERIMETER : num 303433 115054 287874 123979 194423 ...

    $ SUBCUEN : num 2 3 4 5 6 7 8 9 10 11 ...

    $ SUBCUEN ID: num 1 2 3 4 5 6 7 8 9 10 ...

    $ CODCUEN : Factor w/ 11 levels "0100","0101",..: 2 1 2 1 2 2 2 3 4

    3 ...

    $ CODSUBC : Factor w/ 51 levels "01000","010010",..: 6 1 3 2 4 5 7

    8 12 9 ...

    $ NOMSUB : Factor w/ 51 levels "Afluentes Lago Ranco",..: 33 36 48

    3 47 28 49 14 1 29 ...

    #5. Ver los primeros seis registros de la base de datos. Ejemplo

    para el shape Scuenca.

    > head(Scuenca@data)AREA PERIMETER SUBCUEN SUBCUEN ID CODCUEN

    0 495000 303433.0 2 1 0101

    1 864400 115053.6 3 2 0100

    2 341000 287874.1 4 3 0101

    3 290900 123979.3 5 4 0100

    4 646000 194422.8 6 5 0101

    5 638000 190511.8 7 6 0101

    CODSUBC NOMSUB

    0 01013 Rio Cruces

    1 01000 Rio Lingue

    2 01010 Rio Valdivia Alto (hasta desague Lago Panguipulli

    3 010010 Costera entre Rio Lingue y Rio Valdivia

    4 01011 Rio San Pedro (L Panguipulli y Bajo R Quinchilca)

    5 01012 Rio Calle Calle

    #6. Mas informacion se puede ver con la funcion ogrInfo(), como la

    proyeccion geografica, datum, CRS y lmites.

    > ogrInfo(".", "subcuencas(SIARX)")

    Source: ".", layer: "subcuencas(SIARX)"

    Driver: ESRI Shapefile number of rows 70

    Feature type: wkbPolygon with 2 dimensions

    Extent: (513404 5147965) - (792692.9 5649714)

    CRS: +proj=utm +zone=18 +south +ellps=intl +units=m +no defs

    LDID: 87

    Number of fields: 7

  • Creacion de mapas en formato shape de ESRI, con R [email protected] 5

    name type length typeName

    1 AREA 2 13 Real

    2 PERIMETER 2 13 Real

    3 SUBCUEN 2 11 Real

    4 SUBCUEN ID 2 11 Real

    5 CODCUEN 4 12 String

    6 CODSUBC 4 10 String

    7 NOMSUB 4 59 String

    A continuacion se obtienen las coordenadas (x,y) del centrode de los polgo-nos, se destaca que esta misma funcion se puede aplicar a una base de puntos,dicha informacion nos permite ubicar etiquetas, smbolos u otro elemento dentrode los polgonos.

    #7. Obtener las coordenadas de los centrodes de cada polgono, agregamos

    una columna de nombre centroids.

    > Scuenca$centroids Scuenca$Kc colors brks brks #pdf(file = "/home/Escritorio/Mi primer mapa100213.pdf")

  • Creacion de mapas en formato shape de ESRI, con R [email protected] 6

    > #png(file = "/home/Escritorio/Mi primer mapa100213.png")

    > plot.new()> par(new=T)

    > plot(Scuenca, border = TRUE, col = colors[findInterval(Scuenca$Kc,brks, all.inside=TRUE)], axes = T, xlim = c(600000, 790000), ylim =

    c(5150000, 5650000))

    # 11.a Este plot es una opcion si se quieren los bordes del mismo color

    interno de los polgonos, o tambien puede ser border = "gray69".

    > #plot(Scuenca, border = colors[findInterval(CHL$AREA, brks,all.inside=TRUE)],col=colors[findInterval(CHL$AREA, brks,all.inside=TRUE)], axes = F, xlim

    =c(600000, 790000), ylim= c(5450000, 5650000))

    #12 Sobreponer puntos en funcion del tama~no de las superficies, util

    para representar variables como tama~no de poblacion, aca se da tan

    solo como ejemplo.

    > points(Scuenca$centroids, cex=sqrt(Scuenca$AREA/1000000), col="red",pch=19, xlim = c(600000, 790000), ylim = c(5150000, 5650000))

    #12.a Otro ejemplo :P

    > #points(Scuenca$centroids, cex=(Scuenca$Kc/100000), col="red", pch=19,xlim = c(600000, 790000), ylim = c(5150000, 5650000))

    # 13 Agregamos la Leyenda, Ttulo, Norte y Escala

    > text(460000, 5430000, "Indice de Compacidad")> legend(x=400000, y=5428000, legend=leglabs(round(brks), under=""), fill=colors, bty="n", x.intersp = 1, y.intersp = 1)

    > title("Subcuencas de la Region de los Ros y Los Lagos,Chile (abril,2013)", cex.main = 1, font.main= 3, col.main= "black")

    > SpatialPolygonsRescale(layout.north.arrow(1), offset= c(775000,5635000),scale = 30000, plot.grid=F)

    > SpatialPolygonsRescale(layout.scale.bar(), offset= c(775000,5194000),scale= 50000, fill=c("transparent", "black"), plot.grid= F)

    > text(798000, 5188000, "50 kilometros", cex= 0.8)> text(Scuenca$centroids[, 1], Scuenca$centroids[, 2], Scuenca$NOMSUB,cex=0.4)

    # 14 Otros elementos del mapa.

    > text(590500, 5160000, "Datum: WGS84 18H Sur; Coordenadas UTM", cex=0.444)

    > text(590500, 5150000, "Autor: [email protected] (Abril, 2013)",cex= 0.444)

  • Creacion de mapas en formato shape de ESRI, con R [email protected] 7

    > text(590300, 5140000, "Software: R Core Team (2013)", cex= 0.444)

    #15 Ahora guarda en *.pdf o *.png, se debe eliminar el smbolo de comentarios.

    > # dev.off()

    Salida plot de todo el ejercicio anterioR.

    Referencias

    [1] R Core Team. 2013. R: A languaje and Environment for Statisical Com-puting. R Foundation for Statistical Computing. Vienna, Austria. http://www.R-project.org

    [2] Roger Bivand and Nicholas Lewin-Koh. 2013. maptools: Tools for readingand handling spatial objects. R package version 0.8-26. http://CRAN.R-project.org/package=maptools

    [3] Erich Neuwirth. 2011. RColorBrewer: ColorBrewer palettes. R package ver-sion 1.0-5. http://CRAN.R-project.org/package=RColorBrewer

    [4] Roger Bivand, Tim Keitt and Barry Rowlingson. 2013. rgdal: Bindings forthe Geospatial Data Abstraction Library. R package version 0.8-9. http://CRAN.R-project.org/package=rgdal

    [5] Pebesma, E.J., R.S. Bivand. 2005. Classes and methods for spatial data inR. R News 5 (2), http://cran.r-project.org/doc/Rnews/.

    RequerimientosArchivos en formato vectorial ShapeObjetivoArchivos requeridosLneas de comandos en RMapa final o (Layout)