Página personal,
Profesor-Investigador.

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

lab 11. Herramientas de geoprocesamiento


Para recapitular: usando QGIS exportamos las tablas de atributos de algunas capas vectoriales. Ahora necesitamos analizar esas bases de datos para obtener agregados a nivel acuífero.

Los archivos en formato "csv" que se utilizan en este código de R los puedes descargar desde este link.
###################################################
# ANALIZAMOS VEGETACION PRIMERO
###################################################
#  LEER UN ARCHIVO CSV "vegetacion.csv" 
vegetacion_Costa = read.csv(file.choose(), 
                           header = T, stringsAsFactors = F,
                          na.strings= c('NA', -99), quote="\"",dec=".", encoding='UTF-8')
# REVISO ENCABEZADO DE LA TABLA
head(vegetacion_Costa)
# COMO PUEDES VER SEGUIMOS ARRASTRANDO EL PROBLEMA DE CODIFICACION
# VEAMOS DE QUE TIPO ES ESTA VARIABLE:
class(vegetacion_Costa$descripcio)
# USO LA FUNCION gsub() PARA SUSTITUIR LOS CARACTERES RAROS POR LAS VOCALES CORRESPONDIENTES
# OMITO EL ACENTO (IMPORTANTE, VERIFICA QUE EL CARACTER "NASTY" (FEO) SEA IGUAL AL MIO)
# SINO CAMBIA EL CONTENIDO QUE ESTA ENTRE COMILLAS.
vegetacion_Costa$descripcio =gsub(\u0083Â\u008d", "I", vegetacion_Costa$descripcio)
head(vegetacion_Costa)
#PARA VER LOS VALORES UNICOS DE UNA VARIABLE, USAMOS LA SIGUIENTE FUNCION
unique(vegetacion_Costa$descripcio)
vegetacion_Costa$descripcio =gsub(\u0083Â\u0093", "O", vegetacion_Costa$descripcio)
unique(vegetacion_Costa$descripcio)
# SI TE FIJAS ESTAMOS "LIMPIANDO" LAS VARIABLES DE LOS CARACTERES RAROS
vegetacion_Costa$descripcio =gsub(\u0083Â\u0089", "E", vegetacion_Costa$descripcio)
unique(vegetacion_Costa$descripcio)
# OK LIMPIA
# HACEMOS UNA TABLA QUE SUME LAS SUPERFICIES POR TIPO DE VEGETACION Y USO DE SUELO
veget=aggregate(vegetacion_Costa$superficie, by=list(Category=vegetacion_Costa$descripcio), FUN=sum)
# VEMOS COMO QUEDO
veget 
# QUE TIPO DE OBJETO ES
class(veget)
# ADICIONO UNA VARIABLE DE NOMBRE "porcentaje"
veget$porcentaje=((veget$x)/sum(veget$x))*100
# VEO COMO QUEDO
veget
###################################################
#### exportar como CSV, DEFINE TU DIRECTORIO DE TRABAJO
setwd('/Users/COLSON/Documents')
write.csv(veget, file = "veget.csv")
###################################################
###################################################
###################################################
# ANALIZAMOS POBLACION
###################################################
# EL SHP loc2010gw.shp CORRESPONDIENTE A LOCALIDADES DE LA REPUBLICA 
# MEXICANA 2010, APORTO POCA INFORMACION COMPARADO CON EL ARCHIVO DE
# MIGRACION POR LOCALIDAD
# LEER UN ARCHIVO CSV "migracion.csv" 
migra_Costa = read.csv(file.choose(), 
                            header = T, stringsAsFactors = F,
                            na.strings= c('NA', -99), quote="\"",dec=".", encoding='UTF-8')
head(migra_Costa)
 
# CONTIENE ALGUNAS VARIABLES, COMENZANDO EN LA VARIABLE "POBTOT" HASTA LA ULTIMA 
# SON 13 REVISA LOS METADATOS EN HTML DEL SHAPEFILE DA CLICK EN INFORMACION DE 
# IDENTIFICACION Y LUEGO EN DESCRIPCION PARA QUE SEPAS EL SIGNIFICADO DE CADA UNA.
 
# OBTEN LA POBLACION TOTAL
sum(migra_Costa$POBTOT) #### 766052
# población nacida en otra entidad DIVIDIDA ENTRE POBLACION TOTAL
migr_loc=(migra_Costa$PNACOE/migra_Costa$POBTOT)*100
# VALORES MINIMOS, MAXIMOS Y EL PROMEDIO.
min(migr_loc); max(migr_loc); mean(migr_loc)
# 0, 100, 33.69%
#NUMERO DE LOCALIDADES
length(migra_Costa$NOM_LOC)
# 267
#NUMERO DE MUNICIPIOS
unique(migra_Costa$CVE_MUN)
# 20 30 47
 
# RESUMEN: POBLACION TOTAL DEL ACUIFERO DE LA COSTA DE HERMOSILLO: 766,052
# DISTRIBUIDOS EN  267 LOCALIDADES EN PROMEDIO 33.69 % (RANGO 0-100 %) DE LAS PERSONAS SON NACIDAS
# EN OTRA ENTIDAD. EL ACUIFERO ABARCA LOCALIDADES DE TRES MUNICIPIOS, PERO SOLO 
# TIENE UNA CABECERA MUNICIPAL.
###################################################
###################################################
# LOCALIDADES RURALES Y URBANAS
###################################################
locRyU_Costa = read.csv(file.choose(), 
                       header = T, stringsAsFactors = F,
                       na.strings= c('NA', -99), quote="\"",dec=".", encoding='UTF-8')
 
head(locRyU_Costa)
# VERIFICAMOS QUE LA VARIABLE SEA NUMERICA
class(locRyU_Costa$POBTOT)
 
pob_ryu=aggregate(locRyU_Costa$POBTOT, by=list(Category=locRyU_Costa$Urb_Rur), FUN=sum)
pob_ryu
pob_ryu$porcentaje=((pob_ryu$x)/sum(pob_ryu$x))*100
pob_ryu
###################################################
#   Category      x    porcentaje
# 1 Mixta rural   6050  0.7879287
# 2       Rural  15856  2.0650243
# 3      Urbana 745930 97.1470470
# LA POBLACIÓN DEL ACUIFERO ES PREDOMINANTEMENTE URBANA.
###################################################
 
###################################################

Created by Pretty R at inside-R.org