Página personal,
Profesor-Investigador.

El Colegio de Sonora
Centro de Estudios en
Gobierno y Asuntos Públicos

lab 10. acuíferos: mapa en r


Alan Navarro, Centro de Estudios en Gobierno y Asuntos Públicos
El Colegio de Sonora

El mapa que se elaboró en el laboratorio 8 se retoma en este laboratorio, nada más que se usa R para crear otra versión del mapa. A continuación se desarrolla el código de R para la elaboración del mapa.

Video de auxilio.
############## carga estos paquetes
library(rgdal)
library(sp)
library(maptools)
library(raster)
library(PBSmapping)
library(GISTools)
library(maps)
##############################################################################
setwd("/Users/COLSON/Documents/Datos SIG/acuiferos_son2"); getwd()
# Download data.zip from the web 
download.file("https://alanphd.com/archivos/Acuiferos_SON_wgs84_GCS.zip", "data.zip") 
# Unzip file
unzip("data.zip")
list.files()
acuiferos=readShapePoly("acuiferosSon2_GCS_WGS84.shp",proj4string=CRS("+proj=longlat")) 
head(acuiferos@data)
(acuiferos@data$Dispon)
# Escala de rojos ....
# menor/igual que -80  .............#BF2A00
# mayor que -80 pero menor/igual que -60 ...........#DD852D
# mayor que -60 pero menor/igual que -40 .............#ECB243
# mayor que -40 pero menor/igual que -20 ......#FCE05A
# mayor que -20 pero menor que 0 .....................#f8f9dd
# Escala de azules
# mayor que 0 pero menor que 20 .............#CEFDFD
# igual o mayor que 20... #0054BF
# no hay valor igual a 0
 
acuiferos@data$COLOUR<-"#FFFFFF"
 
acuiferos@data$COLOUR<-ifelse(acuiferos@data$Dispon <= -80, "#BF2A00", 
       ifelse(acuiferos@data$Dispon > -80 & acuiferos@data$Dispon <= -60, "#DD852D",
              ifelse(acuiferos@data$Dispon > -60 & acuiferos@data$Dispon <= -40, "#ECB243",
                     ifelse(acuiferos@data$Dispon > -40 & acuiferos@data$Dispon <= -20, "#FCE05A",
                            ifelse(acuiferos@data$Dispon > -20 & acuiferos@data$Dispon <= 0, "#f8f9dd",
                                   ifelse(acuiferos@data$Dispon > 0 & acuiferos@data$Dispon <= 10, "#00E5DD",
                                          ifelse(acuiferos@data$Dispon > 10 & acuiferos@data$Dispon <= 20, "#0472CE", "#0800BF"
                                          )))))))
 
legends1=c(expression("<= -80 Hm" ^ 3),
           "> -80 & <= -60",
           "> -60 & <= -40",
           "> -40 & <= -20",
           "> -20 & <= 0",
           "> 0 & <= 10",
           "> 10 & <= 20",
           expression(">20 Hm" ^ 3))
legends2=c("#BF2A00",
           "#DD852D",
           "#ECB243",
           "#FCE05A",
           "#f8f9dd",
           "#00E5DD",
           "#0472CE",
           "#0800BF")
head(acuiferos@data)
 
##### mapa mundial con los poligonos de los paises en Lat Long WGS84
mundo=readShapePoly(file.choose(),proj4string=CRS("+proj=longlat"))
 
###transformamos para calcular los centroides
acuiferos.ps <- SpatialPolygons2PolySet(acuiferos)
 
# Calculate the centroids 
acuiferos.centroids <- calcCentroid(acuiferos.ps, rollup=1)
 
# # Acentos SI TU GRAFICA VA LLEVAR ACENTOS USA ESTOS CODIGOS
#	\u{ED}  i con acento
#	\u{E1}  a con acento
#	\u{F3}  o con 
#	\u{F1}  ennie
#	\u{E9}  e con acento
#	\u{FA}  u con acento
 
#### 
plot(mundo, axes = TRUE, xlim = c(-115.053, -108.4243), ylim = c(26.29699, 32.49391), 
     col=("grey41"), border=F, bg='azure2', cex=0.6)
 
plot(acuiferos, col=acuiferos@data$COLOUR, axes = TRUE,
     xlab = "Longitud", ylab = "Latitud", add=T)
 
text(acuiferos.centroids$X,acuiferos.centroids$Y,label=acuiferos@data$Clave, cex=.5)
 
# USAMOS LA FUNCION LOCATOR PARA LOCALIZAR EL LUGAR DONDE VA EL OBJETO
legendXY<-locator(1)
 
map.scale(legendXY$x, legendXY$y, metric = T, ratio = F)
 
legendXY<-locator(1)
text(legendXY$x, legendXY$y,
     "E.U.A.", col="white")
 
legendXY<-locator(1)
text(legendXY$x, legendXY$y,
     "Golfo  de  California",
     cex = 0.8, 
     srt = 310)
legendXY<-locator(1)
 
legend(legendXY$x, legendXY$y,legend=legends1,
       title = expression(bold("Simbolog\u{ED}a")),
       col=legends2, 
       cex=0.7, 
       bty="y",
       border = c(rep("black",8)),
       fill=legends2, 
       bg="white")
 
NorteXY<-locator(1)
north.arrow(xb=NorteXY$x, yb=NorteXY$y, len=0.1, lab="N", col='black')
 
legendXY<-locator(1)
 
legend(legendXY$x, legendXY$y,
       legend= c("Balance h\u{ED}drico de", "los acu\u{ED}feros en Sonora", "20 abril del 2015"),
       cex=.8, 
       bty="y",
       bg="white")
 
# exportar a mas menos 992 de ancho, manten el aspecto!

Created by Pretty R at inside-R.org


El mapa resultante se puede visualizar abajo. Como puedes ver tiene: barra de escala (¿está bien?), flecha de norte, cuadro de simbología, título y en los ejes marcan unidades en grados. El mapa incluye etiquetas con la clave en cada polígono, se incluyó una categoría más en el gradiente azul (acuíferos con balance positivo).

Tu trabajo



Corre el código de R, te invito a personalizar los colores. Imprime el mapa a color, adiciona tu nombre como autor del mapa en algún lugar del espacio del mapa, por ejemplo debajo del título, pon "Elaborado por: Nombre Apellido". El entregable es ese mapa a color (una hoja).