Sei sulla pagina 1di 7

####Análisis Espacial

###Basado en Carlos Fernandez cafpxl@gmail.com

### configurar la carpeta de trabajo

#ojo con la doble linea

setwd("C:\\Users\\wlavado\\Dropbox\\Curso_PlanMeris\\Día2\\Mañana")

## borrar los archivos del ambiente de trabajo

rm(list=ls())

####

#instalar paquetes

install.packages("sp")

install.packages("rgdal")

install.packages("raster")

install.packages("lattice")

install.packages("latticeExtra")

## cargar las librerias

library(sp)

library(rgdal)

library(raster)

library(lattice)

library(latticeExtra)

### Explorar el paquete sp

getClass('Spatial')

#==== Crear objetos SpatialPoints y SpatialPointsDataFrame


# Desde cero

xy <- matrix(data=runif(n=100), ncol=2)

head(xy)

#transfromamos xy en puntos espaciales

xySp <- SpatialPoints(xy)

summary(xySp)

#ploteamos espacialmente

plot(xySp, axes=T, asp=1, pch=16)

# Desde un dataframe con columnas x e y

# opcion 1

data <- read.csv("Dato_espacial.csv")

head(data,2)

xySpD <- SpatialPointsDataFrame(data[,c(1,2)], data)

plot(xySpD, axes=T, asp=1, pch=16)

# opcion 2

data <- read.csv("Dato_espacial.csv")

coordinates(data) <- ~x + y #alt 126 para "~"

class(data)

plot(data, axes=T, asp=1, pch=16) # para acceder a la tabla de

#atributos, utilizar 'data slot' (con el caracter '@' )

nrow(data@data)

head(data@data) # que paso con las coordenadas?


head(coordinates(data),2)# utilizar la funcion 'coordinates' para recuperar las
coordenadas

# plot de estaciones

plot(data, axes=T, asp=1, pch=16)

# filtros sobre los atributos

# Seleccionar solo las estaciones sobre los 500 msnm

est.cuenca.alta <- data[data@data$Z > 500, ]

plot(data, axes=T, asp=1, pch=16)

plot(est.cuenca.alta, pch=1, col="red", cex=3, add=TRUE)

# agregar un nuevo atributo a la columna de atributos

data@data[["Pais"]] <- c("peru")

head(data@data)

rm(list = ls()) #==== Importar a shapefile con 'rgdal'

require(rgdal) # importar puntos

list.files("Shapefiles", pattern="*.shp")# ver objetos .shp en la carpeta


"Shapefiles"

ogrInfo(dsn="Shapefiles", layer="ESTACIONES_36")# propiedades de shape

class(data.shape)# verificar la clase

str(data.shape)# verificar si tiene sistema de proyeccion

proj4string(data.shape)# obtener el SCR

plot(data.shape, axes=T)

# importar polygonos

cuenca.shape <- readOGR(dsn="Shapefiles", layer="cuencas_est")


class(cuenca.shape)

plot(cuenca.shape, axes=T,col=c("red","cyan","green3"))#col=palette()

plot(data.shape, add=TRUE)

# verificar atributos de SpatialPolygonDataFrame

head(cuenca.shape@data)

# filtrar los poligonos en base a un valor del atributo

idx <- which(cuenca.shape@data$NOMBRE_P == "RIMAC")

cuenca.rimac <- cuenca.shape[idx,]

class(cuenca.rimac)

plot(cuenca.rimac, col="cyan", main="Cuenca Rimac")

#==== Proyeccion y Reproyeccion de datos espaciales

# Asignando el sistema de coordenadas

data <- read.csv("Dato_espacial.csv")

coordinates(data) <- ~x + y #alt 126 para "~"

# http://www.spatialreference.org/

# http://www.spatialreference.org/ref/epsg/32718/

proj4string(data)=CRS("+init=epsg:32718")# EPSG:32718: WGS 84 / UTM


zone 18S

str(data)

# cambiando de sistema de coordenadas (reproyectando)

data.wgs <- spTransform(data, CRS("+proj=longlat +ellps=WGS84"))

cuenca.wgs <- spTransform(cuenca.shape, CRS("+proj=longlat


+ellps=WGS84"))
plot(cuenca.wgs, axes=T, asp=1)

plot(data.wgs, pch=16, col="red", add=TRUE)

#==== Raster # crear desde cero

mi.raster <- raster(extent(c(-82,-65,-20,0)))

res(mi.raster) <- 2.5#asignar resolucion

mi.raster[] <- 1:ncell(mi.raster)# asignar valores

mi.raster # simple capa

summary(mi.raster)

plot(mi.raster)

# algebra u operaciones matematicas en raster

mi.raster2 <- -1*mi.raster^2

plot(mi.raster2)

summary(mi.raster2)

# Importar un raster

lista <- list.files("Pisco_clima_mensual", pattern=".tif", full.names=TRUE)

lista

GDALinfo(lista[1])#ver informacion acerca del raster

pp.ene.1 <- readGDAL(lista[1])# utilizando el paquete GDAL

str(pp.ene.1)# Que clase de objeto es

pp.ene.2 <- raster(lista[1])# utilizando el paquete raster

str(pp.ene.2)# Que clase de objeto es

# plot

plot(pp.ene.2)
# datos basicos del raster

ncell(pp.ene.2)# numero de celdas

extent(pp.ene.2)# limites

names(pp.ene.2)# nombre raster

ncol(pp.ene.2)# numero de columnas

nrow(pp.ene.2)# numero filas

# Importar multiples archivos de raster

r <- stack(lista)

class(r)

summary(r)## pq demora

plot(r)

projection(r)

# Cortar raster para las cuencas de CHIRILU

plot(r[[1]])

plot(cuenca.wgs, add=T)

r.chirilu <- crop(r, cuenca.wgs, snap="out")

plot(r.chirilu)

r.chirilu <- mask(r.chirilu, cuenca.wgs)

#plot(r.chirilu)

names(r.chirilu)

names(r.chirilu) <- month.abb

plot(r.chirilu)

# plot utilizando paquete lattice y latticeExtra


library(lattice)

library(latticeExtra)

spplot(r.chirilu, col.regions = terrain.colors(100))

spplot(r.chirilu, col.regions = rev(terrain.colors(100)))

range(r.chirilu)

spplot(r.chirilu, col.regions = rev(terrain.colors(100)),

at=seq(0,160,5), scales = list(draw=TRUE) ) +

layer(sp.polygons(cuenca.wgs, lwd=0.8, col='darkgray'))+

layer(sp.points(data.wgs, lwd=0.8, col='red'))

Potrebbero piacerti anche