Concesiones Mineras hasta Junio 2018



Descarga aquí el geojson de concesiones mineras vigentes
(Se abre directo en QGIS y en R con sf::read_sf("/tus_documentos/concesiones.geojson"))

  Siguiendo con la trayectoria de descubrir que lo que scrappeamos sobre minería está incompleto o incorrecto, revisando con un amigo el post pasado de concesiones mineras nos dimos cuenta que los registros no pasan de 2014; en portal cartominmex se encuentran los datos actualizados hasta 2018, pero sólo permite descargar uno por uno, por lo que tenemos que recurrir al scrapping.
   Dato relevante: la superficie total es de 219,778 km2 (calculada a partir de la geometría) o de 208,897 km2 (según la sumatoria de la columna "superficie"), lo cual es 11% o 10.6% de los 1,964,375 km 2 totales del país.

 2018-06-19 es el último valor, y este scrapping se hizo el 2018-07-14, por lo que está bastante actualizado.

  El scrapping de esta página se hace más o menos como el del post anterior: primero se consultan los ids, luego se genera la URL llenando los Fields y haciendo un string de 50 ids (intenté de 100 en 100 y me regresaba errores), una y otra vez hasta cubrir los 25050.

  El principal pormenor es convertir un extraño valor de fecha como "8524500000" que es el EsriDateType, o milisegundos a partir de 1970-01-01.

   Y, como es costumbre, unas visualizaciones de la información:










library(foreach)
library(jsonlite)
library(lubridate)

library(dplyr)

url <- "https://serverags1.economia.gob.mx/arcgis/rest/services/Solicitudes/SOLICITUDES_V1/FeatureServer/1/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&distance=&units=esriSRUnit_Foot&relationParam=&outFields=&returnGeometry=false&maxAllowableOffset=&geometryPrecision=&outSR=&gdbVersion=&historicMoment=&returnDistinctValues=false&returnIdsOnly=true&returnCountOnly=false&returnExtentOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&multipatchOption=&resultOffset=&resultRecordCount=&returnTrueCurves=false&sqlFormat=none&f=pjson"
ea <- jsonlite::fromJSON(url)
baba <- seq(1, 25050, by=50)

foreach(i=1:length(baba), .combine=rbind, .errorhandling = "remove") %do% {
  ute <- paste0(ea$objectIds[baba[i]:(baba[i]+49)], collapse="%2C")
  uki <- sf::read_sf(paste0("https://serverags1.economia.gob.mx/arcgis/rest/services/Solicitudes/SOLICITUDES_V1/FeatureServer/1/query?where=&objectIds=",ute,"&time=&geometry=&geometryType=esriGeometryPolygon&inSR=&spatialRel=esriSpatialRelIntersects&distance=&units=esriSRUnit_Foot&relationParam=&outFields=tit_num%2Ctitulo%2Ctitu_deriv%2Ctitulo_ant%2Cclase%2Cexpediente%2Cagencia%2Cnombrelote%2Cestamu%2Cmunicipio%2Cestado%2Cfecha_sol%2Csuperficie%2Ctitular%2Cexpedicion%2Cvigencia%2Cobserva%2Ccondicion%2Cnum_of%2Cfecha_of%2Crev_of%2Crev_fecha%2Curl%2Csust1%2Csust2%2Csust3%2Csust4%2Csust5%2Csust6%2Csust7%2Csust8%2Csust9%2Cdelegacion%2Ccve_ent%2Ccve_mun%2Cnum_expe%2Ctpo_deriv%2Clibertad_terr&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&gdbVersion=&historicMoment=&returnDistinctValues=false&returnIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&multipatchOption=&resultOffset=&resultRecordCount=&returnTrueCurves=false&sqlFormat=none&f=pjson"))
uki
} -> uko

# ESRItypeDate son milisegundos a partir de 1970-01-01
uko$expedicion <-  as.Date(lubridate::milliseconds(as.numeric(uko$expedicion)) + lubridate::ymd("1970-01-01"))
uko$vigencia <- as.Date(lubridate::milliseconds(as.numeric(uko$vigencia)) + lubridate::ymd("1970-01-01"))
uko$fecha_sol <- as.Date(lubridate::milliseconds(as.numeric(uko$fecha_sol)) + lubridate::ymd("1970-01-01"))

Comentarios

Entradas más populares de este blog

Construyendo sobre otro post y la conjetura de Collatz y Escher, Gödel, Bach...

El estado de las cosas: QGIS vs ArcGIS

datos socioeconómicos y resultados electorales.