You are on page 1of 29

XIX Simposio Colombiano de Estadsti

a
Estadsti as O iales
Medelln Colombia, Julio 16 al 20 de 2009

El paquete sp del R para anlisis espa ial y apli a iones en el

ampo forestal

Mauri io Zapata 1, a

1 Planea in Forestal, Proye to Forestal, Smurfit Kappa Cartn de Colombia, Cali, Colombia

Resumen
sp
En este trabajo se expli an los on eptos bsi os ne esarios para omenzar a utilizar el paquete
del R para anlisis de datos espa iales a travs de ejemplos. Para apl ar los mtodos, se itan datos
reales del se tor forestal en Colombia. Todos los ejemplos se a ompaan de una orta do umenta in
sobre las variables y las fun iones empleadas. Los on eptos y pro edimientos trabajados son: lases
de objetos espa iales, propiedades y mtodos de los objetos, importa in y exporta in de datos
espa iales, manipula in de los atributos on data.frame, despliegue gr o (mapas), muestreos
aleatorios y sistemti os, gr os multi-panel y kriging. Se muestra omo al emplear otros paquetes
sp-orientados se obtiene una herramienta muy ompleta y verstil para manipular y realizar anlisis
estadsti os on los diferentes tipos de datos espa iales.

Palabras lave : Geoestadsti a, Lenguaje R, Modela in espa ial, Planta iones forestales, Sistemas
de Informa in Geogr a (SIG).

1. Introdu in

El software R se onsidera a la vez omo un lenguaje de programa in y un ambiente para anlisis


estadsti o y gr o. El digo fuente y versiones pre ompiladas se pueden obtener bajo li en ia GNU
(GNU General Publi Li ense) en http://www.r-proje t.org/. R soporta una gran variedad de t ni as
estadsti as y fa ilidades numri as. Sus posibilidades se extienden a travs del uso de paquetes: onjunto
de fun iones espe ializadas sobre reas de estudio espe  as.

El paquete sp (Edzer J. Pebesma and Roger Bivand 2009) del R provee mtodos y objetos para
manipular datos espa iales en R. Permite trabajar on las estru turas espa iales bsi as junto on sus
atributos omo son: puntos, lneas, polgonos y raster. Su onjunto de mtodos permiten, de un mo-
do dis reto pero potente, pro esar los datos, ha er sobre-posi in, desplegar gr amente los resultados
R, rea-
de simula iones y apli ar las fun iones de otros paquetes. A tualmente, mu hos paquetes en
sp omo: MBA, RSurvey,
dos para anlisis espa iales, importan y exportan objetos on lases tipo
SQLiteMap, StatDA, aspa e, automap, geoR, gstat, maptools, rgdal, spdep, spgrass6, spgwr,
splan s, spsurvey, surveillan e y trip (Edzer J. Pebesma and Roger Bivand 2009).
Los readores de este paquete fueron Edzer J. Pebesma y Roger S. Bivand. La idea na e durante la
pre- onferen e spatial data Workshops (DSC 2003) al ver que existan mu hos paquetes que servan para
realizar anlisis estadsti o espa ial pero are an de uniformidad y ompatibilidad para tratar los datos y
objetos espa iales. Luego desde mayo de 2005, uando se lanz el paquete sp en el CRAN (Comprehensive
R Ar hive Network) on su onjunto de fun iones y familias de lases oherente para soportar objetos de
representa in espa ial, se ha generado gran inters y desarrollos sp-orientados en anlisis espa ial on
R. Algunas de las razones por las que se requiere denir lases de datos espa iales son:
a Ms . Estadsti a; Ingeniero de Planea in Forestal. E-mail: mauri io.zapatasmurtkappa. om. o

1
2 Mauri io Zapata

Permite y fa ilita el inter ambio de datos entre paquetes y su soporte.

Se denen laramente los mtodos (fun iones) para gra ar, imprimir, resumir o ombinar objetos
espa iales.

Paquetes que permiten interfa es on sistemas de informa in geogr a (GIS) pueden adoptar
estas lases ( omo lo ha en rgdal, maptools y spgrass6).

En espe ial el paquete sp, permite rear gr os Latti e, ondi ionales y ombina iones de distintos
tipos de datos espa iales en un mismo gr o.

Es de men ionar que la posibilidad de trabajar datos espa iales en R no signi a que se puede reem-
plazar las fun iones de un GIS. En R no se tiene mu ha versatilidad en mostrar los datos espa iales
intera tivamente, tampo o realizar trabajos de edi in espe ializados sobre polgonos omo si se puede
ha er en un software espe ializado para GIS. Se desta a en R la posibilidad de realizar anlisis matemti-
os y estadsti os on un lenguaje familiar omo es el S. La re omenda in es emplear simultneamente
R (para anlisis estadsti os) y un GIS (para realizar edi in y despliegue) a travs de paquetes espe ia-
lizados que permiten la omuni a in omo el spgrass6.

En la se iones 2 y 3 de este do umento se denene las uatro lases de objetos espa iales y se expli an
los prin ipales mtodos disponibles para estos. En las se iones 4,5,6 y 7 se tratan los objetos de puntos,
tipo raste, lneas y polgonos para sp, respe tivamente. En ada una de etas se iones se expli a la toploga
y los mtodos on ejemplos. En la se in 8 se expli an los pro edimientos para importar y exportar datos
espa iales al R. La se in 9 es sobre ejemplos de apli a in donde se muestran ms op iones de gr os
y se itan otros paquetes sp-orientados para ompletar anlisis espa iales.

2. Tipos de datos espa iales

Los prin ipales tipos de datos espa iales son: lneas, polgonos, puntos y raster. A ontinua in se
ha e una breve des rip in de ada uno de estos elementos.

2.1. Lneas y polgonos


Tambin ono idos omo representa in ve tor. Se usan para des ribir prin ipalmente reas y lneas.
Estos datos se basan en la representa in ar o-nodo, es de ir, urvas no inter eptadas llamadas ar os on
puntos o nodos en sus extremos. Se alma enan omo una serie de puntos (x,y ) o (x,y ,z ). Los puntos a
lo largo de una urva se llaman vrti es. Dos pares onse utivos de (x,y ) denen un segmento de ar o.
A partir de los ar os se pueden formar elementos espa iales omo lneas (p.e., aminos ros) o reas
(p.e., n as o reas de bosques, linderos de predios y divisiones polti as de muni ipios). Cada elementos
onformado de este modo re ibe un nmero que se emplea para rela ionar el dato geomtri o on atributos
des riptivos en una base de datos (Neteler & Mitasova 2004). Para el anlisis espa ial on estas estru turas
en R, normalmente se importan de alguna fuente externa ya onstruidos y geo-referen iados a un sistema
de oordenadas y las bases de datos se alma enan omo data.frame.

2.2. Puntos
Los puntos son un aso espe ial de datos tipo ve tor. Son elementos independientes denidos por
sus oordenadas y atributos (p.e., iudades, asas). Tambin pueden ser muestras de un ampo ontinuo
(p.e., eleva in, pre ipita in), a menudo distribuido irregularmente. Los atributos pueden ser numri os
o de texto.

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 3

2.3. Raster
Es un tipo de alma enamiento de informa in espa ial en una matriz regular. La representa in puede
ser omo una grilla de puntos, en uyo aso se pretende representar un ampo ontinuo y se denominan
grids. Tambin puede ser una malla on eldas ( on rea onstante), ono ida omo raster propiamente.
Estos ltimos son muy empleados para representar imgenes. Bien sea en puntos o eldas, ada elementos
puede tener uno o mltiple atributos a travs de una base de datos rela ionada (un data.frame). Los
datos se ubi an por su posi in en las y olumnas. Las eldas tiene lados iguales y la longitud de un
segmento de lado dene la resolu in. La resolu in ontrola el grado de detalle espa ial que se aptura
en este tipo de representa iones (Neteler & Mitasova 2004). La ventaja de la forma grids (o pxel en
sp) es que uando existen mu hos faltantes, estos no se alma enan, es de ir no ne esariamente debe
estar ompleto. La desventaja es que las oordenadas para ada punto se alma enan, lo ual puede ser
ompli ado para grids grandes. Este tipo de grids tienen un ndi e que permiten rpidamente ha er la
transforma in a la forma raster. Solo la sele in de datos por las y olumnas fun iona para la forma
ompleta del grid (en sp para la lase de objetos SpatialGridDataFrame).

3. Clases y atributos de los objetos espa iales

En el paquete sp ada uno de estos elementos espa iales representa una  lase de dato (lo que dene
una topologa). Cada una de estas lases puede tener atributos (o informa in) adi ional; en uyo aso,
dependiendo la forma de su alma enamiento, a la lase del objeto se le adi iona un nombre (lo que se
le ono e omo extensin). Los atributos adi ionales se pueden alma enera omo data.frame. En la
siguiente tabla se resumen las lases de objetos disponibles en el paquete sp (Pebesma & Bivand 2005):

Tabla 1: Clases y atributos de objetos en sp


Tipo de dato Clase Atributos

Puntos SpatialPoints No
SpatialPointsDataFrame Si, data.frame
Lneas Line No
Lines No
SpatialLines No
SpatialLinesDataFrame Si, data.frame
Polgonos Polygon No
Polygons No
SpatialPolygons No
SpatialPolygonsDataFrame Si, data.frame
Grid o Pixeles SptatialPixels No
SptatialPixelsDataFrame Si, data.frame
Raster o Grid Completo SpatialGrid No
SpatialGridDataFrame Si, data.frame

3.1. Mtodos on objetos espa iales


La manipula in de los objetos espa iales se ha e a travs de la apli a in de mtodos o fun iones.
Estos permiten onsultar, reemplazar y denir atributos de un objeto (denominados slot). A ontinua in
se expli an algunos de los ms empleados.

[ : para sele ionar las y/o olumnas.

[[ : para sele ionar una olumna.

XIX Simposio de Estadsti a (2009)


4 Mauri io Zapata

[[ < : para asignar o reemplazar valores sobre olumnas.

plot : para ha er gr os de objetos que poseen datos en tablas

summary : resumen de objetos

print : produ e el mismo efe to que olo ar el nombre del objeto.

names : para mostrar los nombre de olumnas de tablas.

as.data.frame : (para grid) extrae los datos en data.frame.


as.matrix : (para grid) extrae los datos.

image : (para grid) muestra una imagen raster.

dimensions(x): muestra el nmero de dimensiones espa iales.

y <- transform(x, "longlat") : Transforma de un sistema de oordenadas (proye in geogr-


 a) a otro, requiere el paquete spproj.
bbox(x) : devuelve una matriz on las oordenadas mnimas y mximas en los extremos.

oordinates(x) : devuelve una matriz on las oordenadas espa iales

gridded(x) : Consulta si x proviene de un objeto SpatialPixels.


spplot(x) : Gr a de los atributos en ombina in on otros tipos de datos (points, lines, grids,
polygons), tambin on gr os ondi ionales uando existen mltiples atributos.

overlay(x, y) : ombina dos apas espa iales de diferente tipo.

spsample(x) : muestreo de puntos espa iales en espa ios ontinuos dentro de un polgono. Un rea
grid o una lnea.

4. Objetos de puntos en sp

A ontinua in se expli an algunos pro edimientos bsi os on objetos de puntos empleando el pa-
quete sp (Edzer J. Pebesma and Roger Bivand 2009). Para este tipo de datos, se emplean las lases
SpatialPoint y SpatialPointDataFrame. Considere los siguientes datos orrespondientes a oordenadas
de 14 entros de par elas levantadas en un inventario forestal en planta iones de eu alipto en Popayn
Cau a (pares de oordenas planas: x,y ).

> # oordenadas planas en X


> x<- (1058068,1057809,1058178,1058488,1058041,1057855,1058328,1057931,1058238,1058408,
1057896,1057885,1058268,1058298)
> # oordenadas planas en Y
> y<- (763802,763719,763480,763395,763937,764014,763470,763757,763570,763390,764163,
763827,763320,763700)
> # se rea una matriz on las oordenadas
> xy <- bind(x, y)
> xy # para ver la matriz
x y
[1, 1058068 763802
[2, 1057809 763719
[3, 1058178 763480
[4, 1058488 763395

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 5

[5, 1058041 763937


[6, 1057855 764014
[7, 1058328 763470
[8, 1057931 763757
[9, 1058238 763570
[10, 1058408 763390
[11, 1057896 764163
[12, 1057885 763827
[13, 1058268 763320
[14, 1058298 763700

Para leer el paquete sp se emplea el siguiente omando:

> library(sp)

Para rear el objeto espa ial de puntos:

> xy.sp <- SpatialPoints(xy)


> lass(xy.sp) # onsulta la " lase" de objeto que es xy.sp
[1 "SpatialPoints"
attr(,"pa kage")
[1 "sp"

Para ver un resumen y des rip in del objeto

> summary(xy.sp)
Obje t of lass SpatialPoints
Coordinates:
min max
x 1057809 1058488
y 763320 764163
Is proje ted: NA
proj4string : [NA
Number of points: 14

Con la fun in summary se muestra los mnimos y mximos en las dos oordenadas, la antidad de
puntos y la propiedad Is proje ted indi a el sistema de proye in geogr o empleado, en este aso
es nulo, es de ir, estamos trabajando sobre un sistema de oordenadas arbitrario.

Una vez reado el objeto SpatialPoints se pueden onsultar sus oordenadas on

> oordinates(xy.sp)
# devuelve una matriz on las oordenadas x y similar a la del objeto xy .

Para onsultar el rango de las oordenadas

> bbox(xy.sp) # mnimos y mximos


min max
x 1057809 1058488
y 763320 764163

Para adi ionar atributos a los puntos se emplea la lase SpatialPointsDataFrame. Suponga que en ada
punto donde se levantaron las par elas se ont el nmero de rboles que se en uentran dentro de un rea
2
ir ular de 250m y se al ul el volumen de madera existente. Los datos son los siguientes:

XIX Simposio de Estadsti a (2009)


6 Mauri io Zapata

> datos<-data.frame(n.arboles= (28,30,24,39,29,26,36,29,28,11,37,46,30,25),


volumen= (151.9,367.2,195.5,332.1,184.0,304.8,235.4,369.7,244.4,193.5,127.8,295.5,
296.1,188.9))
> # un resumen des riptivo de la base de datos
> summary(datos)
n.arboles volumen
Min. :11.00 Min. :127.8
1st Qu.:26.50 1st Qu.:190.1
Median :29.00 Median :239.9
Mean :29.86 Mean :249.1
3rd Qu.:34.50 3rd Qu.:302.6
Max. :46.00 Max. :369.7
> # adi iona los atributos a xy.sp
> xy.spdf<-SpatialPointsDataFrame(xy.sp, datos)
> summary(xy.spdf) # un resumen del objeto SpatialPointsDataFrame
Obje t of lass SpatialPointsDataFrame
Coordinates:
min max
x 1057809 1058488
y 763320 764163
Is proje ted: NA
proj4string : [NA
Number of points: 14
Data attributes:
n.arboles volumen
Min. :11.00 Min. :127.8
1st Qu.:26.50 1st Qu.:190.1
Median :29.00 Median :239.9
Mean :29.86 Mean :249.1
3rd Qu.:34.50 3rd Qu.:302.6
Max. :46.00 Max. :369.7

Para realizar una sele in de datos y visualizarlos. Por ejemplo, los tres primeros registros del objeto
xy.spdf:

> xy.spdf[1:3,
oordinates n.arboles volumen
1 (1058070, 763802) 28 151.9
2 (1057810, 763719) 30 367.2
3 (1058180, 763480) 24 195.5

Para rear o modi ar una olumna o parte de ella:

> xy.spdf[["id"<-1:14 # anexa una olumna on un identifi ador


> summary(xy.spdf) # un resumen despus del ambio
Obje t of lass SpatialPointsDataFrame
Coordinates:
min max
x 1057809 1058488
y 763320 764163
Is proje ted: NA
proj4string : [NA
Number of points: 14
Data attributes:

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 7

n.arboles volumen id
Min. :11.00 Min. :127.8 Min. : 1.00
1st Qu.:26.50 1st Qu.:190.1 1st Qu.: 4.25
Median :29.00 Median :239.9 Median : 7.50
Mean :29.86 Mean :249.1 Mean : 7.50
3rd Qu.:34.50 3rd Qu.:302.6 3rd Qu.:10.75
Max. :46.00 Max. :369.7 Max. :14.00

> xy.spdf[["n.arboles" # para mostrar solo la olumna on el nmero de rboles


[1 28 30 24 39 29 26 36 29 28 11 37 46 30 25

Para ha er los primeros gr os:

> plot(xy.sp, p h = 2) # grafi o sen illo de puntos. Ver Figura 1.


> bubble(xy.spdf, "n.arboles", key.spa e = "right",main="Nmero de rboles")
> spplot(xy.spdf, "n.arboles", key.spa e = "bottom", ol.regions=grey(seq(0,0.9,1/14)),
ex=2,s ales = list(draw = T),main="Nmero de rboles") # Ver Figura 2

Nmero de rboles

11
26.5
29
34.5
46

Figura 1: Gr os del objeto espa ial SpatialPointsDataFrame en dos formatos.

La fun in spplot empleada en la Figura 2. permite agregar ms elementos al gr o; omo son las
es alas de ejes, leyendas, barras de es ala, sobreponer objetos entre otras. En la se in de Ejemplos se
ilustran ms op iones de este mtodo.

5. Objetos en raster o grid

Para este tipo de datos el paquete sp emplea las lases SpatialPixels, SpatialPixelsDataFrame,
SpatialGrid y SpatialGridDataFrame. Los objetos de lase SpatialPixels alma enan las oordenadas
de ada pixel y se emplean uando el grid (o los puntos a representar omo pixeles) es par ial (faltan las,
olumnas o on datos faltantes). Para los objetos de lase SpatialGrid no se alma enan las oordenadas
de ada pxel; se alma ena el entro de elda del borde inferior izquierdo, la antidad de pxeles en ada
una de las dimensiones y el tamao del pxel. Estas ara tersti as son propias de objetos denominados

XIX Simposio de Estadsti a (2009)


8 Mauri io Zapata

Nmero de rboles

764000

763800 [11,18]
(18,25]
(25,32]
(32,39]
(39,46]
763600

763400

1057800 1058000 1058200 1058400

Figura 2: Gr o del objeto espa ial SpatialPointsDataFrame empleando spplot.

grid ompletos. En el ampo forestal es omn tratar este tipo de datos. Por ejemplo, en inventarios
orsti os en esquemas sistemti os, la informa in de presen ia de una espe ie se pude alma enar omo
un SpatialPixelDataFrame; la informa in de tipo super ies omo de eleva iones sobre el nivel del mar
o lluvia multianual se pude alma enar omo SpatialGridDataFrame. Ms adelante se darn ejemplos
on retos apli ados. A ontinua in se ilustra mo a partir de elementos de topologa se rea un grid
ompleto. Suponga un grid ompleto on 10 pixeles de lado, ada uno de 30 X 30m, en dos dimensiones
y on la menor oordenada en y =1 y x = 1 (Para un sistema de proye in arbitrario on origen en
y = 0, x = 0):

# el grid se alma ena on el nombre gt1


> gt1<- GridTopology( ell entre.offset = (1, 1), ellsize = (30,30), ells.dim = (10,10))
> lass(gt1) # onsulta el tipo de objeto que es gt1: "Grid Topology"
[1 "GridTopology"
attr(,"pa kage")
[1 "sp"

> summary(gt1) # para un resumen del objeto


Grid topology:
ell entre.offset ellsize ells.dim
1 1 30 10
2 1 30 10

Al rear un GridTopolgy se esta parametrizando los elementos de un grid. En el aso anterior, se dan
los entros de oordenadas del pxel inferior izquierdo ( ell entre.offset), el tamao de ada pxel
( ellsize), el nmero y el largo de ada dimensin ( ells.dim).

Para ver los entros de los pxeles del grid omo una malla.

> plot( oordinates(gt1)) # ver Figura 3

Ahora se rea un objeto SpatialGrid empleando esta topologa:

> grd1<-SpatialGrid(gt1)

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 9

250
200
150
s2

100
50
0

0 50 100 150 200 250

s1

Figura 3: Gr o de los entro de pxeles de un grid reado on GridTopology.

> summary(grd1) # para un resumen del objeto SpatialGrid


Obje t of lass SpatialGrid
Coordinates:
min max
oords.x1 -14 286
oords.x2 -14 286
Is proje ted: NA
proj4string : [NA
Number of points: 2
Grid attributes:
ell entre.offset ellsize ells.dim
1 1 30 10
2 1 30 10

Es de anotar que al pedir el summary del objeto SpatialGrid grd1, ell entre.offset se reeren al
entro del pxel del extremo infererior izquierdo del grid y las oordenadas mnimas y mximas en ada
dimensin se reeren a los vrti es de los extremos del grid.

Cuando se uenta on un onjunto de puntos espa iales en un arreglo en uadri ula, p.e. algn muestreo
sistemti o, enton es se emplea la lase SpatialPixels para rear un objeto tipo grid:

> puntos <- expand.grid(x = 1:4, y = 1:5)


puntos<- puntos[-20, # elimina un punto en uno de los vrti es del arreglo
> # primero se rea el objeto SpatialPoints y luego el objeto tipo gird SpatialPixel.
> grd.pts <- SpatialPixels(SpatialPoints(puntos))
> summary(grd.pts)
Obje t of lass SpatialPixels
Coordinates:
min max
x 0.5 4.5
y 0.5 5.5
Is proje ted: NA

XIX Simposio de Estadsti a (2009)


10 Mauri io Zapata

proj4string : [NA
Number of points: 19
Grid attributes:
ell entre.offset ellsize ells.dim
x 1 1 4
y 1 1 5

Para onsultar el rea denida por el grid (solo donde existen pxeles)

> areaSpatialGrid(grd.pts)
[1 19

Ahora el objeto de lase SpatialPixels se pude onvertir a tipo SpatialGrid on la fun in as()

> grd <- as(grd.pts, "SpatialGrid")


> getGridTopology(grd) # muestra la topologa del objeto grd.
x y
ell entre.offset 1 1
ellsize 1 1
ells.dim 4 5

Cuando se parte del onjunto de puntos para rear un objeto de tipo grid, la fun in SpatialPixel
a epta una toleran ia de sqrt(.Ma hine$double.eps) esta es la pre isin empleada para validar si un
punto esta sobre un grid.

Como se expli arriba, las lases SpatialPixel y SpatialGrid solo alma enan la topologa y las
oordenadas que denen la referen ia espa ial de grid o uadr ula. Si deseamos alma enar en estos
objetos algunas variables, uyos valores se representan en ada uno de los pxeles, enton es se emplean las
lases SpatialPixelDataFrame y SpatilaGridDataFrame. A ontinua in se muestran algunos ejemplos
on los objetos ya denidos:

# Partiendo de un DataFrame
> oord<-expand.grid(x=1:4, y=1:5)
> # define el DataFrame on una variable normal
> datos.grid<- data.frame( oord, z=rnorm(20,5,1))
> oordinates(datos.grid)=~x+y
> lass(datos.grid) # para onsultar el tipo de objeto
[1 "SpatialPointsDataFrame"
attr(,"pa kage")
[1 "sp"

Ahora se utiliza la fun in gridded, por un lado para onsultar si el objeto tiene topologa de grid y
por otro lado para onvertirlo a la lase grid:

> gridded(datos.grid)
[1 FALSE
> gridded(datos.grid)<- TRUE # Convierte el objeto datos.grid a lase SpatialPixel
> lass(datos.grid)
[1 "SpatialPixelsDataFrame"
attr(,"pa kage")
[1 "sp"
> summary(datos.grid) # para ver un resumen del objeto y las variables
Obje t of lass SpatialPixelsDataFrame
Coordinates:
min max

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 11

x 0.5 4.5
y 0.5 5.5
Is proje ted: NA
proj4string : [NA
Number of points: 20
Grid attributes:
ell entre.offset ellsize ells.dim
x 1 1 4
y 1 1 5
Data attributes:
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.170 4.758 5.056 5.035 5.347 5.650

Otra forma de obtener un grid on atributos a partir de un DataFrame es:

> oord<-expand.grid(x=1:4, y=1:5)


> # define el DataFrame on dos variables normales
> datos.grid<- data.frame( z1=rnorm(20,5,1), z2=rnorm(20))
> datos.grid<-SpatialPixelsDataFrame(points = oord, data = datos.grid)
> lass(datos.grid)
[1 "SpatialPixelsDataFrame"
attr(,"pa kage")
[1 "sp"
> gridded(datos.grid)
[1 TRUE
> # para ver un resumen del objeto on las dos variables en su DataFrame
> summary(datos.grid)
Obje t of lass SpatialPixelsDataFrame
Coordinates:
min max
x 0.5 4.5
y 0.5 5.5
Is proje ted: NA
proj4string : [NA
Number of points: 20
Grid attributes:
ell entre.offset ellsize ells.dim
x 1 1 4
y 1 1 5
Data attributes:
z1 z2
Min. :3.501 Min. :-1.32911
1st Qu.:4.767 1st Qu.:-0.61382
Median :5.249 Median : 0.07544
Mean :5.195 Mean : 0.36655
3rd Qu.:5.906 3rd Qu.: 1.24650
Max. :6.643 Max. : 2.90990

Se pueden manipular las variables (atributos alma enados en un data.frame) del objeto datos.grid.
Por ejemplo, para rear una ter era variable z3 resultado de la suma entre z1 y z2:

> datos.grid[["z3"<-datos.grid[["z1"+datos.grid[["z2"
> summary(datos.grid) # para ver un resumen.

XIX Simposio de Estadsti a (2009)


12 Mauri io Zapata

Para ha er gr os de objetos en grid, se puede emplear la fun in image para gra ar una de las
variables de un GridDataFrame o PixelDataFrame.

> image(datos.grid["z3") # Figura 4, izquierda superior


> # empleando un es ala de 20 olores on spplot. Figura 4, izquierda superior
> spplot(datos.grid, z ol="z3",xlab="X",ylab="Y", ol.regions=bpy. olors(20))
> # En es ala de grises. Figura 4, izquierda inferior
> spplot(datos.grid, z ol="z3",xlab="X",ylab="Y", ol.regions=grey(0:50/100))

6
Y

Figura 4: Gr os de objetos SpatialPixelsDataFrame on image y spplot.

6. Objetos de lneas

En algunas apli a iones es ne esario denir lneas omo objetos espa iales y asignarles atributos. En la
pr ti a, los objetos de lneas se obtienen importndolas de un ar hivo externo, preparado y editado on
algn SIG. Las lneas pueden representar vas, ros, barreras o algn lmite. A ontinua in se mostrar
la onstru in de un objeto de lneas simple para ilustrar algunos ejemplos de los mtodos disponibles.

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 13

> # rea las oordenadas de los nodos


> l1<- bind( (4,3,3,4), (1,1.5,2.5,2.8))
> l2<-l1*0.8 # rea un segundo onjunto a partir de l1
> linea1<-Line(l1) #Crea un objeto de lase Line
> linea2<-Line(l2) #Crea un objeto de lase Line
> LineLength(linea2) # onsulta la longitud de la lnea
[1 2.529652
> datos.lines1<-Lines(list(linea1),ID="a") # rea un objeto de lase Lines
> datos.lines2<-Lines(list(linea2),ID="b")
> # rea un objeto de lase Spatio Lines.
> datos.SpatialLines<-SpatialLines(list(datos.lines1,datos.lines2))
> summary(datos.SpatialLines)
Obje t of lass SpatialLines
Coordinates:
min max
r1 2.4 4.0
r2 0.8 2.8
Is proje ted: NA
proj4string : [NA

Para gra ar las lneas se emplea el siguiente digo:

> plot( datos.SpatialLines) # produ e el grfi o de la Figura 5.

Figura 5: Gr o de lineas, objetos tipo SpatialLines.

Para ver algunos atributos de los objetos SpatialLines (slot) se emplea el siguiente mtodo:

slot(datos.SpatialLines,"lines")
[[1
An obje t of lass "Lines"
Slot "Lines":
[[1
An obje t of lass "Line"
Slot " oords":
[,1 [,2
[1, 4 1.0
[2, 3 1.5
[3, 3 2.5

XIX Simposio de Estadsti a (2009)


14 Mauri io Zapata

[4, 4 2.8
Slot "ID":
[1 "a"

[[2
An obje t of lass "Lines"
Slot "Lines":
[[1
An obje t of lass "Line"
Slot " oords":
[,1 [,2
[1, 3.2 0.80
[2, 2.4 1.20
[3, 2.4 2.00
[4, 3.2 2.24
Slot "ID":
[1 "b"

Tambin se pueden rear objetos de lase SpatialLinesDataFrame. En este aso ada lnea del objeto
SpatilaLines tendr los atributos DataFrame uyos nombres de la oin iden
de una de las las en el
on los  ID del objeto espa ial.

> # rea un data.frame on las variables z1 y z2 y nombres de filas


> datos<-data.frame(z1= (100,90),z2= (" amino1"," amino2"),
row.names=sapply(slot(datos.SpatialLines, "lines"), fun tion(x) slot(x, "ID")))
> # anexa la tabla al objeto SpatialLines
> datos.SpatialLines.df<-SpatialLinesDataFrame(datos.SpatialLines, data = datos)
> summary(datos.SpatialLines.df) # Un resumen del objetos y sus atributos
Obje t of lass SpatialLinesDataFrame
Coordinates:
min max
r1 2.4 4.0
r2 0.8 2.8
Is proje ted: NA
proj4string : [NA
Data attributes:
z1 z2
Min. : 90.0 amino1:1
1st Qu.: 92.5 amino2:1
Median : 95.0
Mean : 95.0
3rd Qu.: 97.5
Max. :100.0

Al empelar data.frame omo fuente de la tabla de atributos, en los objetos espa iales se pueden
ombinar atributos uyos datos son de diferente naturaleza (numri os, texto omo fa tores, numri os
dis retos et .).

7. Objetos de polgonos

Al igual que on los objetos de lneas, los polgonos se pueden importar de un ar hivo externo. Ms
adelante se mostrar estos mtodos de importa in. Para este tipo de datos el paquete sp emplea las lases

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 15

Polygon (para denir los nodos de polgonos individuales in luidos los hue os,polgonos sin informa in
dentro de otros polgonos), Polygons (para denir listas de polgonos on el mismo ID), SpatialPolygons
( onjunto de Polygons on ID's ni os y on un orden a gra ar) y SpatialPolygonsDataFrame (SpatialPolygons
on atributos). A ontinua in se mostrarn algunos ejemplos apli ando las prin ipales lases y mtodos
de estos objetos on po os polgonos generados:

> # se define los nodos del polgono P1. (Sistema oordenado arbitrario)
> P1 <- Polygon( bind( (1,2 ,2,2,3,4,5,6,7,8,8,8,7,7,7,8,9,10,10,9,8,7,6,5,4,3,3,2,1, 1),
(9,8,7,6,5,5,4,3,3,3,4,5,5,6,7,7,7,8,9,10,11,11,11,11,12,12, 11,10,10,9)))
> # define los nodos del polgono P2
> P2 <- Polygon( bind( (1,2,3,3,3,2,1,1,1), (1,1,1,2,3,3,3,2,1)))

Para denir un hue o dentro de P1 se espe i a un polgono en sentido horario:

> # Se define los nodos del polgono hoyo p3


> P3 <- Polygon( bind( (4,4,4,5,6,6,6,5,4), (7,8,9,9,9,8,7,7,7)),hole=TRUE)

> # Ahora se define un objeto polgono on el ID s1.(el polgono y su hue o)


> Ps1 <- Polygons(list(P1,P3), "s1")
> # Se define un objeto polgono on el ID s2
> Ps2 <- Polygons(list(P2), "s2")
> # Se rea el objeto espa ial y el orden de ploteado: 1 para ps1 y 2 para ps2
> SpP<-SpatialPolygons(list(Ps1,Ps2),pO=1:2)
> summary(SpP) # un resumen del objeto espa ial
Obje t of lass SpatialPolygons
Coordinates:
min max
r1 1 10
r2 1 12

Para ha er un gr o simple de los polgonos, ada uno on un olor y los hue os blan os:

plot(SpP, ol= (3,4),pbg = "white") # Figura 6.

Para mostrar la topologa de los polgonos ya reados se puede emplear:

polygons(SpP)[2 # muestra los elementos del segundo SpatilaPligons


An obje t of lass "SpatialPolygons"
Slot "polygons":
[[1
An obje t of lass "Polygons"
Slot "Polygons":
[[1
An obje t of lass "Polygon"
Slot "labpt":
[1 2 2

Slot "area":
[1 4

Slot "hole":
[1 FALSE

Slot "ringDir":

XIX Simposio de Estadsti a (2009)


16 Mauri io Zapata

Figura 6: Gr o de polgonos, objetos tipo SpatialPolygons.

[1 1

Slot " oords":


[,1 [,2
[1, 1 1
[2, 1 2
[3, 1 3
[4, 2 3
[5, 3 3
[6, 3 2
[7, 3 1
[8, 2 1
[9, 1 1
Slot "ID":
[1 "s2"

Slot "area":
[1 4
Para polgonos on atributos, se organizan en un DataFrame las variables que se desean aso iar al objeto
de polgonos. Por ejemplo, adi ionar atributos de uso del suelo en el rea del polgono, densidad de
afe in por una enfermedad et . A ontinua in se rea un SpatialPolygonsDataFrame on el objeto
SpP y un data.frame on dos variables uso y afe in.

> # rea un data.frame on las variables uso y afe in. Con nombres de fila s1 y s2.
> datos<-data.frame("uso"= ("bosque","plant"),"afe ion"= (0.1,0.7),row.names= ("s1","s2"))
> SpPdf<-SpatialPolygonsDataFrame(SpP, datos) # agrega los atributos
> summary(SpPdf) # muestra un resumen del objeto y las dos variables

Con la fun in spplot se puede realiza un gr o de los polgonos (de lase SpatialPolygonsDataFrame)
mostrando espa ialmente el grado de afe in. En este aso, omo solo se uenta on dos polgonos no se
emplea totalmente la es ala de olores para el rango de los valores de afe in.

spplot(SpPdf,z="afe ion") # Figura 7.

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 17

0.7

0.6

0.5

0.4

0.3

0.2

0.1

Figura 7: Gr o de polgonos on spplot para la variable afe in.

8. Importando y exportando objetos espa iales

Una situa in omn en el anlisis espa ial es que se uenta on diferentes fuentes de datos ya pro e-
sadas en SIG, y lo que se requiere en es generar un nuevo resultado a partir de la informa in. Para utilizar
todas las fun iones de anlisis espa ial disponibles en R y sus paquetes se requiere enton es importarlos.
Esto se puede ha er de dos formas:

1. Empleando algn paquete que sirve de interfase entre el SIG y el R (por ejemplo spgrass6) o
2. Leer dire tamente los ar hivos de trabajo guardados en un dire torio on formatos espe  os.

En este do umento se har referen ia al segundo aso.

8.1. Importar ar hivos raster


El paquete sp ofre e una fun in para leer y es ribir ar hivos raster ompatibles on el formato de
ESRI. El objeto produ to de la importa in es de lase SpatialGridDataFrame. A ontinua in se
expli an los argumenos de las fun iones:

read.as iigrid(fname, as.image = FALSE, plot.image = FALSE, olname = fname,


proj4string = CRS(as. hara ter(NA)))
write.as iigrid(x, fname, attr = 1, na.value = -9999, ...)

fname: Es el nombre (ruta) del ar hivo.


as.image: argumento lgi o; si es TRUE, se retorna una lista para visualizarse on el omando image;
si es FALSE se retorna un objeto de lase SpatialGridDataFrame.

plot.image: argumento lgi o; si es TRUE, se produ e un mapa imagen.


olname: un nombre alternativo al nombre del ar hivo para los datos.
proj4string: un objeto de lase CRS indi ando los argumentos del sistema de proye in para el
objeto SpatialGrid reado. Por defe to es sin sistema de proye in.

x: un objeto de lase SpatialGridDataFrame

XIX Simposio de Estadsti a (2009)


18 Mauri io Zapata

attr: Espe i a la olumna que se exportar; si falta el argumento, se toma la primera olumna; es
un nombre o un nmero.

na.value: argumento numri o; asignado a los valores de elda faltantes en el mapa resultante
... : otros argumentos empleados en write.table, los uales se usan para es ribir datos numri os.

8.2. Importar ar hivos de polgonos o shp


En este punto se introdu e el paquete maptools, que permite esta fun ionalidad y es ompatible on
las lases y mtodos del paquete sp. maptools es un onjunto de fun iones diseadas para manipular y
leer datos geogr os, en parti ular ar hivos tipo *.shp de ESRI. Para una des rip in de los ar hivos
shp ver (ESRI 1998).

La fun in que permite leer ar hivos de polgonos es readShapePoly, se obtienen objetos de lase
SpatialPolygonsDataFrame. La fun in writePolyShape es ribe objetos de tipo SpatialPolygonsDataFrame
a ar hivos shp.

readShapePoly(fn, IDvar=NULL, proj4string=CRS(as. hara ter(NA)),


verbose=FALSE, repair=FALSE, for e_ring=FALSE, delete_null_obj=FALSE)
writePolyShape(x, fn, fa tor2 har = TRUE, max_n har=254)

La expli a in de los argumentos son los siguientes: fn: nombre de ar hivo shp; en el nombre omitir
las extensiones *.shp, *.shx and *.dbf, ya estn adi ionadas en la fun in.

IDvar: argumento tipo ar ter (string); es el nombre de la olumna en el ar hivo DBF que ontiene
los ID.
verbose: lgi o; por defe to es TRUE, reporta el tipo de ar hivo y el nmero de shapes.
repair: por defe to FALSE; algunos ar hivos generados por Geolyti s In . Tienen el valor del tamao
de los objetos alma enados en el ar hivo ndi e *.shx y es o ho ve es ms largo. La fun in al tratar de
leerlos pasa al nal del ar hivo. En TRUE, se intenta reparar los valores internos permitiendo la le tura.
for e_ring: si es TRUE, ierra polgonos abiertos.
delete_null_obj: si es TRUE, las geometras nulas se borran.
x: un objeto de lase SpatialPolygonsDataFrame.
Fa tor2 har: lgi o; por defe to TRUE, onvierte olumnas tipo fa tor a ar ter.
max_n har: Por defe to 254; espe  a el lmite de ara teres en las olumnas a ser pasadas a DBF.

9. Ejemplos de apli a in on el paquete sp

A ontinua in se presenta el desarrollo de algunos ejemplos empleando las lases y mtodo del paquete
sp del R en ombina in de otros paquetes para anlisis espa ial. Algunos de los datos provienen de reas
de uso forestal en Colombia, que han servido para analizar espa ialmente la produ tividad en planta iones.

9.1. Ejemplo 1. Importar y manipular un ar hivo .shp externo.


> library(sp) # arga el paquete sp
> library(maptools) # arga el paquete maptools
> # lee el ar hivo olombia.shp que est alma enado en la ruta de trabajo.
> xx <- readShapePoly(" olombia" , IDvar="DPTO_ID")
> summary(xx) # muestra un resumen del objeto
Obje t of lass SpatialPolygonsDataFrame
Coordinates:
min max

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 19

r1 781144.94 2142580
r2 19996.29 1875834
Is proje ted: NA
proj4string : [NA
Data attributes:
AREA PERIMETER COLDPTO_ DPTO_ID
Min. :2.138e+05 Min. : 1993 Min. : 2.00 Min. : 1.00
1st Qu.:1.350e+06 1st Qu.: 5090 1st Qu.:22.75 1st Qu.:21.75
Median :9.508e+06 Median : 13271 Median :43.50 Median :42.50
Mean :1.375e+10 Mean : 473746 Mean :43.50 Mean :42.50
3rd Qu.:2.295e+10 3rd Qu.: 954500 3rd Qu.:64.25 3rd Qu.:63.25
Max. :1.090e+11 Max. :2649552 Max. :85.00 Max. :84.00

ATLAS_S
Valle del Cau a:17
Narino :11
Cho o : 6
Su re : 6
Bolivar : 5
Cau a : 4
(Other) :35
> # el ar hivo DBF tiene varias olumnas (atributos) y ada fila es
un departamento "DPTO_ID"
> plot(xx, border="blue", axes=TRUE, las=1) # Figura 8

1500000

1000000

500000

500000 1000000 1500000 2000000 2500000

Figura 8: Gr o de polgonos, Colombia.

> # se importa un ar hivo externo (*. sv) on informa in adi ional


> datosPobla ion<-read. sv("DatosPobla ion. sv", header = TRUE, sep = ",", quote="\'")
> names(datosPobla ion)
[1 "DPTO_ID" "ATLAS_S" "Pobla ion05" " abe eras" "rural"
[6 "P. abe era" "P.rural"
> # Pobla ion05: pobla in por departamento, enso 2005.
> # abe eras: pobla in de las abe eras por departamento

XIX Simposio de Estadsti a (2009)


20 Mauri io Zapata

> # rural: pobla in rural por departamentos


> # P. abe eras: Por entaje de la pobla in del departamento que vive en las abe eras
> # P.rural: Por entaje de la pobla in del departamento que vive en zona rural
> # una nueva data.frame on dos olumnas
> datos<-datosPobla ion[, ("P. abe era","P.rural")
> row.names(datos)<- datosPobla ion$DPTO_ID # da nombre a las filas
> xxx<-SpatialPolygonsDataFrame(xx, datos)
> # grfi os
> #spplot(xxx, ol.regions=bpy. olors(20),
#main='Por entaje de Pobla in \n Censo General 2005')
> spplot(xxx, ol.regions=gray(100:0/100),
main='Por entaje de Pobla in \n Censo General 2005')

Porcentaje de Poblacin
Censo General 2005
P.cabecera P.rural 100

80

60

40

20

Figura 9: Gr o de polgonos; trellis (dos variables) on spplot.

9.2. Ejemplo 2. Importar y manipular un ar hivo .shp externo de linderos.


> # Se importa un ar hivo shp on los linderos de una fin a on planta iones
> laridad_li <- readShapePoly("Linderos_ lara.shp" , IDvar="LINDEROS_")
> summary( laridad_li) # un resumen
Obje t of lass SpatialPolygonsDataFrame
Coordinates:
min max
r1 1055838.5 1059454.4
r2 759776.7 764871.1
Is proje ted: NA
proj4string : [NA
Data attributes:

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 21

> # polgonso on sistema de oordenadas planas on origen oeste,


> # onfigura la fle ha Norte:
> d1 = list("SpatialPolygonsRes ale", layout.north.arrow(),
offset = (1056000,760000),s ale = 400)
> # onfigura la barra de es ala:
> d2<-list("SpatialPolygonsRes ale", layout.s ale.bar(), offset = (1056500 ,760000),
s ale = 500,fill= ("transparent","bla k"))
> # onfigura los textos de la barra:
> d3 = list("sp.text", (1056500,760150), "0")
> d4 = list("sp.text", (1057000,760150), "500 m")
> # realiza el mapa empleando una variable fa tor: Tipo de propiedad administrativa:
> # Figura 10
> spplot( laridad_li, ("PROPIETARI"),sp.layout=list(d1,d2,d3,d4),
s ales = list(draw =T), main="Fin as por Tipo de Propiedad Administrativa",
ol.regions=bpy. olors(2))

Fincas por Tipo de Propiedad Administrativa

764000

763000

RA
CC
762000

761000

0 500 m
760000

1056000 1057000 1058000 1059000

Figura 10: Mapa de linderos de n as on spplot y detalles.

9.3. Ejemplo 3. Importar un ar hivo raster.


> # Leer ar hivos as iigrid on formato ESRI .
> library(sp)
> # importa un grid externo: meseta.as . Valores de eleva in sobre el nivel del mar
> meseta.grid<-read.as iigrid("meseta.as ", as.image = FALSE, plot.image = FALSE,
proj4string = CRS(as. hara ter(NA)))
> lass(meseta.grid) # onsulta la lase
[1 "SpatialGridDataFrame"
attr(,"pa kage")
[1 "sp"
> summary(meseta.grid)

XIX Simposio de Estadsti a (2009)


22 Mauri io Zapata

Obje t of lass SpatialGridDataFrame


Coordinates:
min max
oords.x1 1036000 1069990
oords.x2 757000 787000
Is proje ted: NA
proj4string : [NA
Number of points: 2
Grid attributes:
ell entre.offset ellsize ells.dim
1 1036015 30 1133
2 757015 30 1000
Data attributes:
Min. 1st Qu. Median Mean 3rd Qu. Max.
1293 1710 1761 1860 1976 3175
> # sele iona un rea del grid original
> laridadx<-grid.sele t(grid=meseta.grid,z="meseta.as ",
xmin=1055656,ymin=759575,xmax=1061658,ymax=765055)
> # una imagen del raster
> image( laridadx, ol=gray(seq(0.1,1,l=30))) # Figura 11
> # un grfi o on es ala en olores para eleva in.
> spplot( laridadx, ol.regions=bpy. olors(20),
main='Modelo de Eleva in Digital',s ales = list(draw =T)) # Figura 11

Modelo de Elevacin Digital

2200
764000

2100
763000

2000
762000

1900
761000

1800
760000

1056000 1057000 1058000 1059000 1060000 1061000

Figura 11: Imagen y gr o de un Modelo de Eleva in Digital (pxeles 30 x 30m)

9.4. Ejemplo 4. Gr o de las par elas de inventario forestal on leyenda y


es ala.
> library(sp) # arga el paquete
> library(latti e) # se requiere para trellis.par.set():
> trellis.par.set(sp.theme()) # onfigura in de olores para bpy. olors()
> # se leen los datos desde un ar hivo sv.
> par elas<-read. sv('par elas. sv',header=T)

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 23

> oordinates(par elas)=~X.PLANA+Y.PLANA # rea un objeto SpatialPointsDataFrame


> lass(par elas)
> summary(par elas)
Obje t of lass SpatialPointsDataFrame
Coordinates:
min max
X.PLANA 1055967 1059071
Y.PLANA 760150 764730
Is proje ted: NA
proj4string : [NA
Number of points: 117
Data attributes:
ID.PARCELA num.arboles espe ie id.suelo edad.pre o
P02372 : 1 Min. : 280 EGR_C:113 RH: 7 Min. :2.800
P02373 : 1 1st Qu.:1040 EGR_S: 4 SC: 1 1st Qu.:5.700
P02374 : 1 Median :1120 SL:109 Median :6.000
P02375 : 1 Mean :1128 Mean :5.889
P02376 : 1 3rd Qu.:1200 3rd Qu.:6.100
P02377 : 1 Max. :2280 Max. :6.600
(Other):111
sitio elevaDEM pre ipita ion VTSC
Min. :23.70 Min. :1807 Min. :1994 Min. :154.0
1st Qu.:28.20 1st Qu.:1896 1st Qu.:2036 1st Qu.:270.8
Median :29.40 Median :1924 Median :2054 Median :340.2
Mean :29.41 Mean :1931 Mean :2078 Mean :330.7
3rd Qu.:30.90 3rd Qu.:1948 3rd Qu.:2142 3rd Qu.:394.1
Max. :35.70 Max. :2181 Max. :2327 Max. :496.0

DENSIDAD
Min. :-99.000
1st Qu.: 0.470
Median : 0.560
Mean : -5.396
3rd Qu.: 0.620
Max. : 0.870
> s ale <- list("SpatialPolygonsRes ale", layout.s ale.bar(),
offset = (1056500,760260), s ale = 500, fill= ("transparent","bla k"))
> text1 = list("sp.text", (1056500,760380), "0")
> text2 = list("sp.text", (1057000,760380), "500 m")
> # Mapa de las par elas. Figura 12
> spplot(par elas, "sitio", do.log = TRUE, key.spa e=list(x=0.1,y=0.33, orner= (0,1)),
s ales=list(draw=T),sp.layout=list(s ale,text1,text2),main='Mapa de par elas')

9.5. Ejemplo 5. Mapa de linderos de n as on la ubi a in de par elas.


> library(sp)
> library(latti e)
> trellis.par.set(sp.theme())
> s ale <- list("SpatialPolygonsRes ale", layout.s ale.bar(),
offset = (1056500,760260), s ale = 500, fill= ("transparent","bla k"))
> text1 = list("sp.text", (1056500,760380), "0")
> text2 = list("sp.text", (1057000,760380), "500 m")

XIX Simposio de Estadsti a (2009)


24 Mauri io Zapata

Mapa de parcelas

764000

763000

762000

[23.7,25.72]
(25.72,27.92]
(27.92,30.3]
761000 (30.3,32.89]
(32.89,35.7]

0 500 m

1056000 1057000 1058000 1059000

Figura 12: Mapa de un objeto de puntos: Lo aliza in y valores de Sitio de par elas en un inventario forestal.

> # onvierte el objeto laridad_li a la lase SpatialPolygons.


> poligonos<-polygons( laridad_li)
> li<-list("sp.polygons", poligonos, fill = "gray")
> # Mapa de linderos de fin as y puntos de muestreo. Figura 13
> spplot(par elas, "sitio", do.log = TRUE, key.spa e=list(x=0.1,y=0.33,
orner= (0,1)),s ales=list(draw=T),sp.layout=list(li,s ale,text1,text2),
main="Mapa de par elas")

9.6. Ejemplo 6. Muestreos sistemti os y aleatorios.


> library(sp)
> library(latti e)
> trellis.par.set(sp.theme())
> # onvierte el objeto laridad_li a la lase SpatialPolygons.
> poligonos<-polygons( laridad_li)
> # muestreo sistemti o on 300 pts sobre toda el rea de las fin as
> muestra1<-spsample(poligonos, n = 300, "regular")
> # muestreo aleatorio on 100 pts. sobre toda el rea de las fin as
> muestra2<-spsample(poligonos, n = 100, "random")
> par(mfrow= (1,2)) # onfigura el rea del grfi o. Figura 14.
> plot(poligonos,)
> points(muestra1,p h=3, ex=0.5, ol='red')
> plot(poligonos)
> points(muestra2,p h=3, ex=0.5, ol='red')

9.7. Ejemplo 7. Kriging.


> library(sp)

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 25

Mapa de parcelas
Representacin del Sitio

764000

763000

762000

[23.7,25.72]
(25.72,27.92]
(27.92,30.3]
761000 (30.3,32.89]
(32.89,35.7]

0 500 m

1056000 1057000 1058000 1059000

Figura 13: Mapa de Linderos en fondo gris y lo aliza in de par elas en un inventario forestal. La es ala de
valores es para la Calidad de Sitio.

> library(latti e)
> trellis.par.set(sp.theme())
> library(gstat) #para trabajar el kriging
> library(maptools)
> # se rea un grid sobre los linderos de las fin as que sirva para interpolar
> muestra.grid<-spsample(poligonos, n = 600, "regular")
> # onvierte el grid a lase SpatialPixel
> gridded(muestra.grid)<-TRUE
> summary( muestra.grid) # un resumen del grid
> # se importan los datos de las par elas desde un ar hivo externo
> par elas<-read. sv("par elas. sv",header=T)
> # onvierte a un objeto espa ial SpatialPointsDataFrame
> oordinates(par elas)=~X.PLANA+Y.PLANA
> # un pirmer grfi o de la alidad de sitio de las par elas. Figura 13.
> bubble(par elas, z ol="VTSC", fill=F, do.sqrt=FALSE, maxsize=3,
main="Volumen de madera (m3/ha)", ol=4)
> # un grfi o de los puntos de par elas y del grid para interpolar Figura 13.
> plot(muestra.grid, ex=0.5)
> points(par elas, p h=1, ol="red", ex=0.7)
> title("Grid de interpola in y puntos de par elas")

> ## rea un objeto para gstat:


> g <- gstat(id="VTSC", formula=VTSC ~ 1, data=par elas)
> # Se prueba el variograma dire ional en 0, 45, 90, 135 grados desde el norte
> dv<-variogram(g,alpha= (0,45,90,135))
> # ajusta un modelo para el variograma, el variogrma a 135 grados es el ms ade uado
> v.fit3 <- fit.variogram(dv, model=vgm(model="Mat",range=1500,anis= (135, 0.5)))
> #plot(dv, model=v.fit3, as.table=TRUE) # no se muestra

XIX Simposio de Estadsti a (2009)


26 Mauri io Zapata

Figura 14: Ejemplos de muestreos sistemti os y aleatorios on el paquete sp.

# se a utaliza el objeto g on el modelo propuesto


> g <- gstat(g, id='VTSC', model=v.fit3 )
> z.ok = krige(VTSC~1,par elas, muestra.grid, model = v.fit3)
> s ale <- list("SpatialPolygonsRes ale", layout.s ale.bar(),
offset = (1056500,760260), s ale = 500, fill= ("transparent","bla k"))
> text1 = list("sp.text", (1056500,760380), "0")
> text2 = list("sp.text", (1057000,760380), "500 m")
> poligonos<-polygons( laridad_li)
> li<-list("sp.polygons", poligonos)
> pts = list("sp.points", par elas, p h = 3, ol = "bla k", ex=0.2)
> #grfi o de los valores estimados on kriging. Figura 14
> spplot(z.ok, ("var1.pred"), as.table = TRUE, main = "Interpola in Kriging",
sp.layout = list(li, s ale, text1, text2,pts), ol.regions=terrain. olors(20))
> #grfi o de los valores estimados on kriging on ontornos. Figura 15
> spplot(z.ok, ("var1.pred"), as.table = TRUE, main = "Interpola in Kriging",
sp.layout = list(li, s ale, text1, text2,pts), ol.regions=terrain. olors(20),
ontour=TRUE,labels=FALSE, pretty=TRUE, ol='brown')

Este gr o de interpola in on kriging ordinario es una primera aproxima in al problema de hallar
una ade uada super ie de predi in y una ilustra in de la utiliza in del paquete sp y otros paquetes
para anlisis espa ial en R. Aunque no es el tema de este do umento, para el problema de interpola in
del volumen en esta zona, se sugiere emplear un o-kriging para la variable log(volumen) y ovariables
omo eleva in y varia iones fsi as de los suelos.

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 27

Volumen de madera (m3/ha)


Grid de interpolacin y puntos de parcelas

154
270.8
340.2
394.1
496

Figura 15: Izquierda: gr o de la distribu in espa ial del Volumen de Madera, segn los datos observados de
par elas. Dere ha: gr o on los puntos de par elas y el grid para interpolar on kriging.

Interpolacin Kriging

450

400

350

300

250

0 500 m
200

Figura 16: Gr o de interpola in on Kriging ordinario para el Volumen de Madera, on puntos de datos
observados.

XIX Simposio de Estadsti a (2009)


28 Mauri io Zapata

Interpolacin Kriging
500

450

400

350

300

250

0 500 m 200

Figura 17: Gr o de interpola in on Kriging ordinario para el Volumen de Madera, on puntos de datos
observados y ontornos.

XIX Simposio de Estadsti a (2009)


El paquete sp del R para anlisis espa ial y apli a iones en el ampo forestal 29

10. Con lusiones

Las lases y mtodos del paquete sp mostradas en este trabajo permiten, en forma estru turada, fa il-
itar el anlisis y la manipula in de datos espa iales. Los ejemplos itados muestran la manera de apli ar
e intera tuar on diferentes t ni as estadsti as y geoestadsti as. En este trabajo se ilustra la forma
mo se rean y denen los prin ipales tipos de datos espa iales y mo se obtienen de fuentes externas.
No se pretende ubrir todas las t ni as estadsti as disponibles, ms bien, mostrar las deni iones y
mtodos o fun iones que apli an sobre los objetos en sp y en R. En el ampo forestal es omn que
para el ejer i io de administrar y evaluar las reas en produ in se re urra a georreferen iar y a opiar
informa in de tipo espa ial. Por esto, la mayora de los ejemplos se orientaron a datos reales del se tor
produ tivo Forestal en Colombia, espe  amente en reas de planta iones omer iales de Smurt Kappa
Cartn de Colombia. El uso del paquete sp para R es un buen omplemento para el uso de un ambiente
tipo SIG, pues permite emplear las fortalezas del R en sus t ni as estadsti as y enviar los resultados
de simula iones del R a un SIG.

Referen ias

Edzer J. Pebesma and Roger Bivand (2009), Pa kage 'sp', R Foundation for Statisti al Computing,
Vienna, Austria.
*http://r-spatial.sour eforge.net/

ESRI (1998), ESRI Shapele Te hni al Des ription. An ESRI White Paper, Environmental Systems
Resear h Institute, In . U.S.A., U.S.A.

Neteler, M. & Mitasova, H. (2004), Open sour e gis: A GRASS gis approa h, se ond edition edn, Kluwer
A ademi Publishers., Boston.

Pebesma, E. J. & Bivand, R. S. (2005), `Classes and methods for spatial data in R', R News 5(2), 913.
*http://CRAN.R-proje t.org/do /Rnews/

XIX Simposio de Estadsti a (2009)

You might also like