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. ################################################### ###################################################