Importación de datos cartográficos

El Marco Geoestadístico es un sistema único y de carácter nacional diseñado por el INEGI, el cual presenta la división del territorio nacional en diferentes niveles de desagregación para referir geográficamente la información estadística de los censos y encuestas institucionales y de las Unidades del Estado, que se integra al Sistema Nacional de Información Estadística y Geográfica (SNIEG).

https://inegi.org.mx/temas/mg/#Descargas

Contenido

Mapa con las coordenadas estatles. Marco Geoestadístico, septiembre 2019 2019 3.11 GB https://inegi.org.mx/contenidos/productos//prod_serv/contenidos/espanol/bvinegi/productos/geografia/marcogeo/889463776079_s.zip

Ficha de información. https://inegi.org.mx/app/biblioteca/ficha.html?upc=889463776079

Los nombres de archivos se conforman con las claves 00 y la capa con sufijos descriptivos del contenido del archivo: Donde: 00ent Polígonos de Áreas Geoestadísticas Estatales 00mun Polígonos de Áreas Municipales 00a Polígonos de Áreas Geoestadísticas Básicas Urbanas y Rurales 00l Polígonos de Localidades Urbanas y Rurales amanzanadas 00lpr Puntos de Localidades Rurales amanzanadas y no amanzanadas

Marco Geoestadístico. Censo de Población y Vivienda 2020 2020 2.65 GB https://inegi.org.mx/contenidos/productos//prod_serv/contenidos/espanol/bvinegi/productos/geografia/marcogeo/889463807469_s.zip Ficha de información https://inegi.org.mx/app/biblioteca/ficha.html?upc=889463807469

Se descarga y se descomprime localmente Se crea una carpeta para los datos geográficos

#La ruta para el mapa de México se toma del Marcogeostadístico nacional

rutam<-"D:/Documents/Claudia/Midropbox/Investigacion y escritos/Marcogeoestadisticonacional/mg_sep2019_integrado/conjunto_de_datos"


basemapan <- readOGR(rutam,"00ent", use_iconv = TRUE, encoding = "latin1")
## OGR data source with driver: ESRI Shapefile 
## Source: "D:\Documents\Claudia\Midropbox\Investigacion y escritos\Marcogeoestadisticonacional\mg_sep2019_integrado\conjunto_de_datos", layer: "00ent"
## with 32 features
## It has 3 fields
#La ruta para el archivo que tiene las variables censales y su descripción

rutvar<-"D:/Documents/Claudia/Midropbox/Investigacion y escritos"

variablescensales<-read.csv(paste0(rutvar,"/Censo2020/","variablescensales.csv"),header=TRUE, sep=",",encoding="UTF-8")
## Importación de datos cartográficos

Importación de datos censales

En el sitio del INEGI se encuentran los resultados del CENSO 2020 para cada una de las entidades de la población https://www.inegi.org.mx/programas/ccpv/2020/default.html#Datos_abiertos

Principales resultados por localidad (ITER) Estados Unidos Mexicanos 2020
https://www.inegi.org.mx/contenidos/programas/ccpv/2020/datosabiertos/iter/iter_00_cpv2020_csv.zip

Para recuperar los datos censales a nivel estatal:

En el archivo se registra la población total de la entidad cuando en el nombre de la localidad aparece la leyenda “Total de la Entidad”

url<-paste0("https://www.inegi.org.mx/contenidos/programas/ccpv/2020/datosabiertos/iter/iter_00_cpv2020_csv.zip")
temp <- tempfile()
temp2 <- tempfile()
download.file(url, temp)
unzip(zipfile = temp, exdir = temp2)
rut<-file.path(temp2)


censonal<- read.csv(paste0(rut,"/","conjunto_de_datos/conjunto_de_datos_iter_00_cpv2020.csv"),header=TRUE, sep=",",encoding="UTF-8")

#Datos de toda la entidad uso del campo nom_loc para identificar los valores de las variables a nivel estatal
censonal <-subset(censonal,censonal$NOM_LOC %in% c("Total de la Entidad"))


names(censonal)[1] <- "CVE_ENT"
#Ahora el mapa tiene el dato de las 198 variables del censo
#Conversión a número

codent<-substr(basemapan$CVE_ENT,1,2)

latmx="México"
codent<-sprintf("%02d%s", as.numeric(gsub("[^0-9]+", "", codent)), gsub("[0-9]+", "", codent))
censonal$CVE_ENT<-codent

cols = c(11:231)    

censonal[,cols] %<>% lapply(function(x) as.integer(as.character(x)))

  
basemapa<-merge(basemapan,censonal, by="CVE_ENT", all.x =TRUE) 

Variable y sus mapas

Valores por default

glue("  \n## params$varname \n \n ") %>% cat()
## ## params$varname 
## 
  varindi<-variablescensales[variablescensales$mnemonico == params$varname, "indicador"]
  vardesc<-variablescensales[variablescensales$mnemonico == params$varname, "descripcion"]
  
  glue::glue (" {varindi} \n ") %>% cat()
## Población de 60 años y más
glue("El estilo pretty redondea y divide en números enteros siempre que sea posible y los espacia uniformemente. \n \n ") %>% cat()  
## El estilo pretty redondea y divide en números enteros siempre que sea posible y los espacia uniformemente. 
## 
tm_shape(basemapa) +
  tm_polygons(params$varname)

glue("El estilo quantile crea rangos con un igual número de poligonos (estados) \n \n ") %>% cat() 
## El estilo quantile crea rangos con un igual número de poligonos (estados) 
## 
tm_shape(basemapa) +
tm_fill(params$varname,palette=c("yellow","orange","red","green","blue"), style ="quantile")+
tm_borders()+
  tm_layout(legend.position = c("right", "bottom")) 

glue("El estilo fisher crea grupos con la máxima homogeneidad \n \n ") %>% cat() 
## El estilo fisher crea grupos con la máxima homogeneidad 
## 
tm_shape(basemapa) +
tm_fill(params$varname,palette="YlOrRd", style ="fisher")+
tm_borders()+
  tm_layout(legend.outside = FALSE, legend.outside.position = "right",inner.margins = c(0.06, 0.10, 0.10, 0.08))

glue("El estilo equal divide los valores en rangos de igual ancho \n \n ") %>% cat() 
## El estilo equal divide los valores en rangos de igual ancho 
## 
tm_shape(basemapa) +
tm_fill(params$varname,palette="YlOrRd", style ="equal")+
tm_borders()+
  tm_layout(legend.outside = TRUE, legend.outside.position = "right")

glue("El fixed  divide los valores en rangos de igual ancho \n \n ") %>% cat() 
## El fixed  divide los valores en rangos de igual ancho 
## 
tm_shape(basemapa) +
tm_fill(params$varname,palette="Blues", style ="fixed",breaks = c(100000,200000,300000,400000,500000, 600000,700000, 800000))+
tm_borders()

tmap_mode("plot")

tm_shape(basemapa) + 
  tm_fill(params$varname,title={varindi},legend.hist=TRUE ,n = 8) + 
  tm_borders()+
  tm_layout(legend.outside = TRUE, legend.outside.position = "right")+
  tm_layout(title = paste0({vardesc}, " censo 2020"), title.size = 0.8, title.position = c("right","bottom"))

#tmap_mode("view")

glue("El estilo sd calcula la desviación estándar de la variable y la usa como valor para el ancho de los rangos. \n \n ") %>% cat() 
## El estilo sd calcula la desviación estándar de la variable y la usa como valor para el ancho de los rangos. 
## 
tm_shape(basemapa) +
  tm_fill(params$varname,title={varindi},alpha=0.7,style="sd",palette="Blues",id="NOM_ENT") +
  tm_borders() +
  tm_basemap(server="OpenStreetMap",alpha=0.5)+
  tm_layout(legend.outside = FALSE, legend.outside.position = "right",inner.margins = c(0.06, 0.10, 0.10, 0.08))

glue("El estilo kmeans utiliza la media de la variable y la usa como valor para el ancho de los rangos. \n \n ") %>% cat() 
## El estilo kmeans utiliza la media de la variable y la usa como valor para el ancho de los rangos. 
## 
tm_shape(basemapa) +
  tm_fill(params$varname,title={varindi},alpha=0.7,style="kmeans",palette="Blues",id="NOM_ENT") +
  tm_borders() +
  tm_basemap(server="OpenStreetMap",alpha=0.5)+
  tm_layout(legend.outside = TRUE, legend.outside.position = "right")

glue("  \n## params$varname \n \n ") %>% cat()
## ## params$varname 
## 
  varindi<-variablescensales[variablescensales$mnemonico == params$varname, "indicador"]
  vardesc<-variablescensales[variablescensales$mnemonico == params$varname, "descripcion"]
  
  glue::glue (" {varindi} \n ") %>% cat()
## Población de 60 años y más
tm_shape(basemapa) +
    tm_bubbles(size=params$varname, 
               col= params$varname, style ="kmeans", n=6,
    palette ="RdYlBu",id="NOM_ENT")+
  tm_borders() 

tmap_mode("plot")

Variable y sus gráficas

  basic.stats <- function(dset, vars){
    for(i in 1:length(vars)){
        print(vars[i])
        gg<-ggplot(data=dset, aes(x = dset$NOM_ENT, y =          dset[[vars[i]]])) + coord_flip()+
        geom_bar(stat="identity", fill = "#FF6666") +
  ylab(params$varname) +
  xlab("")
        print(gg)
        print(summary(dset[[vars[i]]]))
        print(quantile(dset[[vars[i]]],c(0,.01,.1,.5,.9,.99,1)))
    }
  }
  
  basic.stats(censonal, c(params$varname))
## [1] "P_60YMAS"

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   75608  207053  370451  473218  563358 1919454 
##         0%         1%        10%        50%        90%        99%       100% 
##   75608.00   80552.19  132484.40  370450.50  973718.40 1786825.15 1919454.00
#<https://www.r-bloggers.com/2019/10/map-coloring-the-color-scale-styles-available-in-the-tmap-package/>