Visualización global de concesiones mineras en México
(click para agrandar)
En el post anterior hicimos un scrapping de las concesiones mineras de la página del SIAM; sin embargo, después de revisar, el código sólo rascaba las geometrías, por lo cual tuvimos que minar en otra parte del REST query que nos daba un json por cada concesión minera de las 32,000 cambiando la URL por esta:
foreach(i=1:32000) [...]
sprintf("http://187.191.71.167/ArcGIS/rest/services/DGM/ConcesionesMineras/MapServer/0/%s?f=json&pretty=true", i)
Esta URL no deja mandar consultas en bloques de cientos/miles y además no permite más de 1 consulta por segundo (otras dejan más de 10 consultas por segundo); así que con paciencia (relativa) en unas cuantas horas podemos obtener un bello geojson con atributos de las concesiones mineras, que trae información del nombre del titular (compañía minera), superficie y sustancias que van a extraer.
Descargar y descomprimir
Me preguntaran: ¿Por qué geojson? Porque estamos en 2018; además, comparen para este mismo archivo distintos formatos:
geojson: 34 MB,
kml: 50 MB,
shp: 54 MB, y lo peor: no es human-readable
Sólo buscaba los polígonos para un mapa de una publicación, pero se me antojó hacer un exploratory data analysis para ver las principales características de la actividad minera que se pueden desprender de los atributos.
Podemos observar que los principales minerales son Plata, Oro, Cobre, Plomo y Hiero (les ahorré la revisión en la tabla periódica vdd???) Además de TSP que significa "toda sustancia posible" y POT que son "minerales polimetálicos" y "CAR" que evidentemente es Carbón, puesto que Coahuila es el primer lugar en esta sustancia. En la gráfica de producción por estado vemos que los estados norteños dominan la actividad, mientras que las mineras de carbón son las principales en área y número de concesiones.
Al final se encuentra el código
# Luego podremos hacer un scrapping a esta: http://www.siam.economia.gob.mx/es/siam/p_Titulos
(Click para agrandar)
library(tidyr)
library(ggplot2)
library(dplyr)
library(readr)
library(sf)
dftotal <- read_sf("el_archivo_que_descargaste_arriba.geojson")
# --------------------------PRINCIPALES SUSTANCIAS
dftotal %>% as.data.frame %>% select(ESTAMU, SUST1:SUST4, SUPERFICIE) %>%
gather(key="num_sust", value="sust", -ESTAMU, -SUPERFICIE) %>%
filter(sust %in% c("TSP", "POT", "Ag", "Au","Cu", "Pb", "Fe", "CAR") &
!ESTAMU %in% c("YUC.", "TAB.", "CAMP.", "TLAX.", "MOR.", "VER.")) %>%
group_by(ESTAMU, sust) %>% summarise(superficie=sum(SUPERFICIE)) %>%
ggplot(aes(reorder(ESTAMU, superficie), superficie)) +
geom_bar(stat = "identity", fill="coral3") +
coord_flip() + facet_wrap(~fct_infreq(sust), nrow = 2, ncol = 4) +
labs(title="Principales sustancias por superficie",
caption="primeras 4 sustancias declaradas (de máximo 7)\n datamarindo.blogspot.mx") +
xlab("") + theme(axis.text.x = element_text(size=8, angle = 90)) +
ylab("superficie, ha")
# --------------------superficie por estado ES TARDADO
dftotal %>% group_by(ESTAMU) %>% filter(!is.na(SUPERFICIE)) %>%
summarise("superficie" = sum(SUPERFICIE, na.rm = T),
"cuenta" = n()) %>%
ggplot(aes(reorder(ESTAMU, superficie), superficie, label=cuenta)) +
geom_bar(stat="identity", fill="coral3") +
coord_flip() + geom_text(hjust=1) +
labs(title="Superficie concesionada por estado",
caption="Número en la barra: número de concesiones \ndatamarindo.blogspot.mx CC-by-SA") + xlab("") + ylab("superficie, ha")
# -------- compañías por concesiones
dftotal %>% as.data.frame %>% filter(!is.na(TITULAR)) %>%
group_by(TITULAR) %>% count() %>% arrange(desc(n)) %>% head(15) %>%
ggplot(aes(reorder(TITULAR,n), n)) + geom_bar(fill="coral3", stat="identity") +
coord_flip() + labs(title="Compañías con mayor número de concesiones",
caption="datamarindo.blogspot.mx, CC-by-SA") +
xlab("") + ylab("Núm. de concesiones")
# ---------- compañías por superficie
dftotal %>% as.data.frame %>% filter(!is.na(TITULAR)) %>%
group_by(TITULAR) %>% summarise(superficie=sum(SUPERFICIE)) %>%
arrange(desc(superficie)) %>% head(15) %>%
ggplot(aes(reorder(TITULAR,superficie), superficie)) + geom_bar(fill="coral3", stat="identity") +
coord_flip() + labs(title="Compañías con mayor\nsuperficie concesionada",
caption="datamarindo.blogspot.mx, CC-by-SA") +
xlab("") + ylab("Superficie concesionada, ha")
En el post anterior hicimos un scrapping de las concesiones mineras de la página del SIAM; sin embargo, después de revisar, el código sólo rascaba las geometrías, por lo cual tuvimos que minar en otra parte del REST query que nos daba un json por cada concesión minera de las 32,000 cambiando la URL por esta:
foreach(i=1:32000) [...]
sprintf("http://187.191.71.167/ArcGIS/rest/services/DGM/ConcesionesMineras/MapServer/0/%s?f=json&pretty=true", i)
Esta URL no deja mandar consultas en bloques de cientos/miles y además no permite más de 1 consulta por segundo (otras dejan más de 10 consultas por segundo); así que con paciencia (relativa) en unas cuantas horas podemos obtener un bello geojson con atributos de las concesiones mineras, que trae información del nombre del titular (compañía minera), superficie y sustancias que van a extraer.
Descargar y descomprimir
Me preguntaran: ¿Por qué geojson? Porque estamos en 2018; además, comparen para este mismo archivo distintos formatos:
geojson: 34 MB,
kml: 50 MB,
shp: 54 MB, y lo peor: no es human-readable
Sólo buscaba los polígonos para un mapa de una publicación, pero se me antojó hacer un exploratory data analysis para ver las principales características de la actividad minera que se pueden desprender de los atributos.
Podemos observar que los principales minerales son Plata, Oro, Cobre, Plomo y Hiero (les ahorré la revisión en la tabla periódica vdd???) Además de TSP que significa "toda sustancia posible" y POT que son "minerales polimetálicos" y "CAR" que evidentemente es Carbón, puesto que Coahuila es el primer lugar en esta sustancia. En la gráfica de producción por estado vemos que los estados norteños dominan la actividad, mientras que las mineras de carbón son las principales en área y número de concesiones.
Al final se encuentra el código
# Luego podremos hacer un scrapping a esta: http://www.siam.economia.gob.mx/es/siam/p_Titulos
(Click para agrandar)
library(tidyr)
library(ggplot2)
library(dplyr)
library(readr)
library(sf)
dftotal <- read_sf("el_archivo_que_descargaste_arriba.geojson")
# --------------------------PRINCIPALES SUSTANCIAS
dftotal %>% as.data.frame %>% select(ESTAMU, SUST1:SUST4, SUPERFICIE) %>%
gather(key="num_sust", value="sust", -ESTAMU, -SUPERFICIE) %>%
filter(sust %in% c("TSP", "POT", "Ag", "Au","Cu", "Pb", "Fe", "CAR") &
!ESTAMU %in% c("YUC.", "TAB.", "CAMP.", "TLAX.", "MOR.", "VER.")) %>%
group_by(ESTAMU, sust) %>% summarise(superficie=sum(SUPERFICIE)) %>%
ggplot(aes(reorder(ESTAMU, superficie), superficie)) +
geom_bar(stat = "identity", fill="coral3") +
coord_flip() + facet_wrap(~fct_infreq(sust), nrow = 2, ncol = 4) +
labs(title="Principales sustancias por superficie",
caption="primeras 4 sustancias declaradas (de máximo 7)\n datamarindo.blogspot.mx") +
xlab("") + theme(axis.text.x = element_text(size=8, angle = 90)) +
ylab("superficie, ha")
# --------------------superficie por estado ES TARDADO
dftotal %>% group_by(ESTAMU) %>% filter(!is.na(SUPERFICIE)) %>%
summarise("superficie" = sum(SUPERFICIE, na.rm = T),
"cuenta" = n()) %>%
ggplot(aes(reorder(ESTAMU, superficie), superficie, label=cuenta)) +
geom_bar(stat="identity", fill="coral3") +
coord_flip() + geom_text(hjust=1) +
labs(title="Superficie concesionada por estado",
caption="Número en la barra: número de concesiones \ndatamarindo.blogspot.mx CC-by-SA") + xlab("") + ylab("superficie, ha")
# -------- compañías por concesiones
dftotal %>% as.data.frame %>% filter(!is.na(TITULAR)) %>%
group_by(TITULAR) %>% count() %>% arrange(desc(n)) %>% head(15) %>%
ggplot(aes(reorder(TITULAR,n), n)) + geom_bar(fill="coral3", stat="identity") +
coord_flip() + labs(title="Compañías con mayor número de concesiones",
caption="datamarindo.blogspot.mx, CC-by-SA") +
xlab("") + ylab("Núm. de concesiones")
# ---------- compañías por superficie
dftotal %>% as.data.frame %>% filter(!is.na(TITULAR)) %>%
group_by(TITULAR) %>% summarise(superficie=sum(SUPERFICIE)) %>%
arrange(desc(superficie)) %>% head(15) %>%
ggplot(aes(reorder(TITULAR,superficie), superficie)) + geom_bar(fill="coral3", stat="identity") +
coord_flip() + labs(title="Compañías con mayor\nsuperficie concesionada",
caption="datamarindo.blogspot.mx, CC-by-SA") +
xlab("") + ylab("Superficie concesionada, ha")
Comentarios
Publicar un comentario