INEGIpy
INEGIpy
..
[Link]-info Se corrigió parte del código de Indicadores y se agregaron nuevas fun… last year
INEGIpy Se corrigió parte del código de Indicadores y se agregaron nuevas fun… last year
dist Se corrigió parte del código de Indicadores y se agregaron nuevas fun… last year
[Link] Se corrigió parte del código de Indicadores y se agregaron nuevas fun… last year
[Link] Se corrigió parte del código de Indicadores y se agregaron nuevas fun… last year
INEGIpy
INEGIpy es una librería para interactuar fácilmente con los datos del Instituto Nacional de Geografía y Estadística (INEGI) desde Python. Su
propósito es apoyar en la creación de consultas automatizadas y en el acceso a la información para el análisis de datos.
[Link] 1/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
De la información que ofrece el INEGI actualmente se cuenta con una clase dedicada al Banco de Indicadores, otra dedicada al DENUE, otra a la
información del Marco Geoestadístico y finalmente una dedicada al Sistema de Ruteo de México.
También se encuentra en construcción un módulo de Series dedicado a consultas automatizadas de los principales indicadores económicos
como el PIB, INPC, Ocupación, etc.
Principales características
Permite un acceso rápido a las bases de datos del INEGI sin necesidad de descargas.
Regresa la información en DataFrames o GeoDataFrames listos para su uso en Python.
Para el caso de los indicadores económicos, el DataFrame resultante cuenta con un DateTimeIndex y una columna para cada indicador.
Para las bases con información georeferenciada (DENUE, Marco Geoestadístico y Ruteo) se regresa un GeoDataFrame listo para realizar
operaciones espaciales.
El DENUE obtiene tanto la ubicción de los establecimientos como información sobre la actividad económica y el número de
trabajadores.
El Marco Geoestadístico permite obtener la información de la población según el Censo de Población y Vivienda del 2020 así como la
información vectorial de las áreas que se especifiquen en cualquier nivel de agregación espacial. Evita descargar un montón de
archivos Shape para realizar mapas y operaciones espaciales.
El Servicio de Ruteo además de calcular rutas entre puntos ofrece información georeferenciada sobre diferentes destinos los cuales
pueden ser destinos turísticos o lugares de interés como aeropuertos, puertos, servicios médicos, o centros educativos de nivel
superior. También ofrece detalles sobre el costo de las rutas y los precios promedio de los combustibles.
Requerimientos
pandas
numpy
requests
shapely
geopandas
La instalación de GeoPandas puede ser un poco complicada de manejar por lo que se recomieda instalarla previemente.
Instalación
pip install INEGIpy
[Link] 2/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Documentación
Indicadores
obtener_df
consulta_metadatos
[Link]
catalogo_indicadores
Uso
MarcoGeoestadistico
Entidades
Municipios
LocalidadesAmanzanadas
LocalidadesRuralesPuntuales
AGEBs
Manzanas
Vialidades
Uso
DENUE
Buscar
Ficha
Nombre
BuscarEntidad
BuscarAreaAct
Cuantificar
Uso
Ruteo
BuscarDestino
BuscarLinea
CalcularRuta
DetalleRuta
Combustibles
Uso
Casos de uso
Indicadores y MarcoGeoestadistico
[Link] 3/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Indicadores
class [Link](token)
Parámetros
La clase Indicadores contiene los métodos y atributos relacionados a la API del Banco de Indicadores y el Banco de Información Económica.
Esta API permite consultar los datos de los indicadores económicos disponibles a nivel nacional, por entidad federativa y municipio. Las claves
de los indicadores y más información sobre la API se pueden obtener en el constructor de consultas. Esta clase requiere un token generado por
el INEGI.
Métodos
obtener_df()
Indicadores.obtener_df(indicadores,
nombres = None,
inicio = None,
fin = None,
banco = None,
metadatos = False)
Parámetros
[Link] 4/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
diferentes, no es necesario definir este parámetro a menos que los indicadores a consultar sea alguno de los siguientes: ['539260',
'539261', '539262'].
metadatos: bool. En caso se ser verdadero regresa un DataFrame con los metadatos de los indicadores.
Regresa un DataFrame con la información de los indicadores. El DataFrame resultante tiene una columna por cada indicador y un
DateTimeIndex con la fecha de los valores. Si metadatos = True regresa un segundo DataFrame con las claves de los metadatos del indicador.
consulta_metadatos()
Indicadores.consulta_metadatos(metadatos)
Parámetros
metadatos: DataFrame con los metadatos a consultar obtenido por la función obtener_df cuando metadatos = True . También acepta un
diccionario equivalente.
catalogo_indicadores()
Indicadores.catalogo_indicadores(banco,
indicador = None)
Parámetros
banco: str. ['BIE' | 'BISE'] Define el banco al cual pertenecen los indicadores. Puede ser el Banco de Indicadores Económicos (BISE) o el
Banco de Información Económica (BIE).
indicador: str. Clave del indicador a consultar. En caso de no definirse se regresan todos los indicadores del banco.
Uso
df = inegi.obtener_df(indicadores = ["289242","289242"],
nombres = ['Indicador Coincidente', 'Indicador Adelantado'],
[Link] 5/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
inicio = '2000',
fin = '2010')
display([Link]())
display([Link]())
fechas
fechas
display([Link]())
display(metadatos)
[Link] 6/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
poblacion_ocupada_aguascalientes
fechas
2005-03-01 391833.0
2005-06-01 399617.0
2005-09-01 401020.0
2005-12-01 413326.0
2006-03-01 408344.0
poblacion_ocupada_aguascalientes
INDICADOR 6200093954
FREQ 4
TOPIC 18
UNIT 188
UNIT_MULT
NOTE 10733,10956
SOURCE 8
LASTUPDATE 23/05/2022
STATUS 3
BANCO BISE
desc_metadatos = inegi.consulta_metadatos(metadatos)
display(desc_metadatos)
poblacion_ocupada_aguascalientes
FREQ Trimestral
[Link] 7/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
poblacion_ocupada_aguascalientes
UNIT Personas
UNIT_MULT
LASTUPDATE 23/05/2022
STATUS Definitiva
BANCO BISE
indicadores = inegi.catalogo_indicadores('BIE')
display([Link]())
value Description
0 1 Serie original
1 3 Serie desestacionalizada
2 5 Tendencia-ciclo
3 11 Aguascalientes
4 12 Baja California
MarcoGeoestadistico
class [Link]()
[Link] 8/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
La clase MarcoGeoestadistico contiene los métodos relacionados al Servicio Web del Catálogo Único de Claves Geoestadísticas, el cual
contiene los datos de población del Censo de Población y Vivienda 2020 y la información vectorial de las áreas geoestadísticas que define el
INEGI en el Marco Geoestadístico: Entidades, Municipios, Localidades, AGEBs, Manzanas y Vialidades. Esta clase permite obtener
GeoDataFrames para cada nivel de agregación espacial por lo que resulta principalmente útil para realizar operaciones espaciales y para la
elaboración de mapas. También resulta útil para obtener las claves geoestadísticas de entidades, municipios y localidades utilizando el nombre
de estas áreas, lo cual permite asociar datos estadísticos y resultados de encuestas a sus respectivas unidades geográficas.
Métodos
Entidades()
[Link](entidades = None,
nombres = None,
as_geodf = True)
Parámetros
entidades: str/list. Clave(s) AGEE de dos dígitos (01 a 32) de las entidades federativas a buscar.
nombres: str/list. Nombre(s) de los estados a buscar. Si se define este parámetro obtiene las áreas geoestadísticas estatales cuyo nombre
contenga el texto proporcionado sin necesidad de proporcionar las claves de las entidades. No distingue entre mayúsculas y minúsculas
pero sí considera acentos.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Recibe las claves o nombres de las entidades a consultar y obtiene el DataFrame/GeoDataFrame con la información de las áreas geoestadísticas
estatales.
Si no se especifíca una entidad regresa la información para todas las Entidades Federativas.
Municipios()
[Link](entidades = None,
municipios = None,
nombres = None,
claves_concatenadas = None,
as_geodf = True)
Parámetros
entidades: str/list. Clave(s) AGEE de dos dígitos (01 a 32) de las entidades federativas a buscar.
municipios: str/list. Clave(s) AGEM de tres dígitos de los municipios a buscar (ej. 001).
[Link] 9/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
nombres: str/list. Nombre(s) de los municipios a buscar. Si se define este parámetro obtiene las áreas geoestadísticas municipales cuyo
nombre contenga el texto proporcionado sin necesidad de proporcionar las claves de los municipios. No distingue entre mayúsculas y
minúsculas pero sí considera acentos.
claves_concatendas: str/list. Clave(s) concatenada con los niveles de agregación espacial (ej. 01001).
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Recibe claves de entidades, municipios, claves concatenadas o los nombres de los municipios a consultar y obtiene el
DataFrame/GeoDataFrame con la información de las áreas geoestadísticas municipales.
Si solo se definen las entidades la función regresa todos los municipios de estas entidades. Para consultar municipios en específico se puede
hacer a través del nombre de los municipios, definiendo una entidad y las claves de los municipios por separado o definiendo claves
concatenadas de entidad y municpio. La diferencia entre definir las claves separadas y las claves concatenadas es que en el primer caso solo se
puede definir una entidad y uno o más municipios mientras que las claves concatenadas permiten elegir municipios específicos de diferentes
entidades o incluso hacer combinaciones entre consultar municipios específicos y todos los municipios de alguna entidad.
Si no se especifícan los parámetros regresa un DataFrame con todos los municipios de México.
Nota: si se pasa una lista de áreas con nivel de agregación mayor no se puede definir un municipio en específico a buscar. En este caso se
regresan todos los municipios de la lista de mayor agregación. Lo mismo sucede para los siguientes niveles de desagregación: si se define una
lista de municipios o entidades no se puede definir una localidad en específico y así sucesivamente.
LocalidadesAmanzanadas()
[Link](entidades = None,
municipios = None,
localidades = None,
nombres = None,
claves_concatenadas = None,
ambito = None,
as_geodf = True)
Parámetros
entidades: str/list. Clave(s) AGEE de dos dígitos (01 a 32) de las entidades federativas a buscar.
municipios: str/list. Clave(s) AGEM de tres dígitos de los municipios a buscar (ej. 001).
localidades: str/list. Clave(s) de cuatro dígitos de las localidades a buscar (ej. 0001 )
nombres: str/list. Nombre(s) de las localidades a buscar. Si se define este parámetro obtiene las localidades amanzanadas cuyo nombre
contenga el texto proporcionado sin necesidad de proporcionar las claves de las localidades. No distingue entre mayúsculas y minúsculas
pero sí considera acentos.
claves_concatendas: str/list. Clave(s) concatenada con los niveles de agregación espacial.
[Link] 10/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
ambito: str. ["urbano"|"rural"] Define el ámbito de las localidades. Si se define un ámbito no se puede definir una localidad en específico y
se debe definir tanto entidad como municipio.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Recibe claves de entidades, municipios, localidades, claves concatenadas o los nombres de las localidades a consultar y obtiene el
DataFrame/GeoDataFrame con la información de las áreas geoestadísticas a nivel localidad amanzanada.
Al igual que con los municipios, si no se definen las claves de las localidades regresa todas las localidades del último nivel de desagregación
definido. Para consultar localidades en específico se puede hacer a través del nombre de las localidades, definiendo una entidad, un municipio
y una o más claves de las localidades por separado o definiendo claves concatenadas de entidad, municipio y localidad. La diferencia entre
definir las claves separadas y las claves concatenadas es que en el primer caso solo se puede definir una clave para los niveles de agregación
previos (solo una entidad y un municipio) mientras que las claves concatenadas permiten elegir localidades específicas de diferentes entidades,
municipios o incluso hacer combinaciones entre consultar localidades específicas y todas las localidades de algún nivel previo.
Nota: Si se define un ámbito de las localidades, la función del Servicio Web requiere que se defina una entidad y municipio, de lo contrario no
tendrá resultados. En este caso regresa todas las localidades del municipio que correspondan a este ámbito.
LocalidadesRuralesPuntuales()
[Link](entidades = None,
municipios = None,
localidades = None,
nombres = None,
claves_concatenadas = None,
as_geodf = True)
Parámetros
entidades: str/list. Clave(s) AGEE de dos dígitos (01 a 32) de las entidades federativas a buscar.
municipios: str/list. Clave(s) AGEM de tres dígitos de los municipios a buscar (ej. 001).
localidades: str/list. Clave(s) de cuatro dígitos de las localidades a buscar (ej. 0001 )
nombres: str/list. Nombre(s) de las localidades a buscar. Si se define este parámetro obtiene las localidades amanzanadas cuyo nombre
contenga el texto proporcionado sin necesidad de proporcionar las claves de las localidades. No distingue entre mayúsculas y minúsculas
pero sí considera acentos.
claves_concatendas: str/list. Clave(s) concatenada con los niveles de agregación espacial.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
[Link] 11/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Recibe claves de entidades, municipios, localidades, claves concatenadas o los nombres de las localidades a consultar y obtiene el
DataFrame/GeoDataFrame con la información de las áreas geoestadísticas a nivel localidad rural puntual.
Al igual que con los municipios y las localidades amanzanadas, si no se definen las claves de las localidades regresa todas las localidades del
último nivel de desagregación definido. Para consultar localidades en específico se puede hacer a través del nombre de las localidades,
definiendo una entidad, un municipio y las claves de las localidades por separado o definiendo claves concatenadas de entidad, municipio y
localidad. La diferencia entre definir las claves separadas y las claves concatenadas es que en el primer caso solo se puede definir una clave
para los niveles de agregación previos (solo una entidad y un municipio) mientras que las claves concatenadas permiten elegir localidades
específicas de diferentes entidades, municipios o incluso hacer combinaciones entre consultar localidades específicas y todas las localidades de
algún nivel previo.
[Link](entidades = None,
municipios = None,
localidades = None,
agebs = None
claves_concatenadas = None,
ambito = 'urbano',
as_geodf = True)
Parámetros
entidades: str/list. Clave(s) AGEE de dos dígitos (01 a 32) de las entidades federativas a buscar.
municipios: str/list. Clave(s) AGEM de tres dígitos de los municipios a buscar (ej. 001).
localidades: str/list. Clave(s) de cuatro dígitos de las localidades a buscar (ej. 0001 )
agebs: str/list. Clave(s) de cuatro dígitos con las AGEBs a buscar (ej. 2000).
claves_concatendas: str/list. Clave(s) concatenada con los niveles de agregación espacial.
ambito: str. ['urbano'|'rural'] Define el ambito de las localidades. A diferencia de las localidades amanzanadas siempre se debe especificar
el ambitos de las AGEBs a buscar. Por default son urbanas.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Recibe claves de entidades, municipios, localidades, agebs o claves concatenadas a consultar y obtiene el DataFrame/GeoDataFrame con la
información de las áreas geoestadísticas a nivel Área Geoestadística Básica (AGEB).
[Link] 12/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Al igual que con las áreas previas, si no se definen las claves de las AGEBs regresa todas las AGEBs del último nivel de desagrecgación definido.
Para consultar AGEBs en específico se puede hacer definiendo una entidad, un municipio, una localidad y las claves de las AGEBs por separado
o definiendo claves concatenadas de entidad, municipio, localidad y ageb. La diferencia entre definir las claves separadas y las claves
concatenadas es que en el primer caso solo se puede definir una clave para los niveles de agregación previos (solo una entidad, un municipio y
una localidad) mientras que las claves concatenadas permiten elegir AGEBs específicas de diferentes entidades, municipios o incluso hacer
combinaciones entre consultar AGEBs específicas y todos las AGEBs de algún nivel previo.
Manzanas()
Advertencia: El GeoJSON que regresa esta función del Servicio Web del Catálogo Único de Claves Geoestadísticas puede conetener celdas con
valores nulos en los datos de población. Esto se debe a que las manzanas con una población menor a 10 habitantes no se reportan por
confidencialidad.
[Link](entidades = None,
municipios = None,
localidades = None,
claves_concatenadas = None,
ambito = 'urbano',
as_geodf = True)
Parámetros
entidades: str/list. Clave(s) AGEE de dos dígitos (01 a 32) de las entidades federativas a buscar.
municipios: str/list. Clave(s) AGEM de tres dígitos de los municipios a buscar (ej. 001).
localidades: str/list. Clave(s) de cuatro dígitos de las localidades a buscar (ej. 0001 )
claves_concatendas: str/list. Clave(s) concatenada con los niveles de agregación espacial.
ambito: str. ["urbano"|'rural'] Define el ambito de las localidades. Si se define un ámbito se debe definir entidad, municipio y localidad.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Recibe claves de entidades, municipios, localidades o claves concatenadas a consultar y obtiene el DataFrame/GeoDataFrame con la
información de las áreas geoestadísticas a nivel manzana.
A diferencia de las áreas previas, no se pueden elegir manzanas en específico. El nivel de desagregación menor que se puede definir es de
localidad. Igual sigue aplicando la diferencia entre definir las claves de manera separa y las calves concatenadas: las claves concatenadas
permien diferentes combinaciones de entidades, municipios y localidades.
[Link] 13/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Nota: Si se define un ámbito de las manzanas, la función del Servicio Web requiere que se defina una entidad, municipio y localidad, de lo
contrario no tendrá resultados. En este caso regresa todas las manzanas de la localidad que correspondan a este ámbito.
Vialidades()
[Link](entidades,
municipios,
localidades = None,
claves_concatenadas = None,
as_geodf = True)
Parámetros
entidades: str/list. Clave(s) AGEE de dos dígitos (01 a 32) de las entidades federativas a buscar.
municipios: str/list. Clave(s) AGEM de tres dígitos de los municipios a buscar (ej. 001).
localidades: str/list. Clave(s) de cuatro dígitos de las localidades a buscar (ej. 0001 )
claves_concatendas: str/list. Clave(s) concatenada con los niveles de agregación espacial.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Recibe claves de entidades, municipios, localidades o claves concatenadas a consultar y obtiene el DataFrame/GeoDataFrame con la
información de las vialidades de un municipio o localidad.
Al igual que con las manzanas, el nivel de desagregación menor que se puede definir es de localidad y sigue aplicando la diferencia entre
definir las claves de manera separa y las calves concatenadas.
Uso
marco = MarcoGeoestadistico()
[Link] 14/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
<AxesSubplot:>
nl_municipios = [Link](entidades='19')
display(nl_municipios.head(10))
geometry cvegeo cve_agee cve_agem nom_agem cve_cab pob pob_fem pob_mas viv
POLYGON
((-99.26413
0 25.91413, 19013 19 013 China 0001 9930 4969 4961 3268
-99.26396
25.914...
POLYGON
((-100.50415
1 19014 19 014 Doctor Arroyo 0001 36088 18028 18060 9229
24.45637,
-100.49612 24.4...
POLYGON
((-100.59196
2 19017 19 017 Galeana 0001 40903 20459 20444 11185
25.25505,
-100.58917 25.2...
[Link] 15/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
geometry cvegeo cve_agee cve_agem nom_agem cve_cab pob pob_fem pob_mas viv
-99.92575
25.415...
POLYGON
((-100.06809 General
4 19025 19 025 0001 102149 50305 51844 29632
25.99270, Zuazua
-100.06272 25.9...
POLYGON
((-100.39313 Salinas
5 19045 19 045 0001 86766 42631 44135 25430
26.39482, Victoria
-100.39268 26.3...
POLYGON
((-100.01204
6 19028 19 028 Higueras 0001 1386 662 724 422
26.16508,
-100.00888 26.1...
POLYGON
((-100.18769
7 19051 19 051 Villaldama 0001 3573 1786 1787 1267
26.32793,
-100.18853 26.3...
POLYGON
((-99.01603
8 26.09548, 19015 19 015 Doctor Coss 0001 1360 703 657 494
-99.00699
26.085...
POLYGON
((-99.80176
Doctor
9 25.98994, 19016 19 016 0001 3256 1584 1672 1029
González
-99.80161
25.989...
# definir las claves en su forma concatenada en vez de separadas por nivel de agregación permite realizar dioferentes combinaciones en
# si se definen de manera separada una vez que se da una lista de áreas ya no se pueden definir los niveles siguiente. Es decir, si se
# no se puede definir un municipio, de manera que las posibilidades se reducen a una lista de estados, un estado con una lista de muni
# un estado y un municipio con una lsita de localidades, y así sucesivamente.
[Link] 16/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
cvegeo cve_agee cve_agem cve_loc nom_loc ambito latitud longitud altitud pob
2 090040063 09 004 0063 Santa Rosa RURAL 19.3233383 -99.2949614 2857 818
3 090040010 09 004 0010 Cruz Blanca RURAL 19.3177850 -99.3240103 2982 728
Los
5 090040073 09 004 0073 RURAL 19.3699019 -99.3107319 2725 514
Aguacates
Puerto las
Cruces
6 090040054 09 004 0054 RURAL 19.2948611 -99.3476211 3200 1233
(Monte las
Cruces)
San Lorenzo
7 090040020 09 004 0020 URBANO 19.3310047 -99.3256817 2936 26042
Acopilco
Cuajimalpa
8 090040001 09 004 0001 URBANO 19.3573503 -99.2997922 2780 186693
de Morelos
Gustavo A.
9 090050001 09 005 0001 URBANO 19.4829453 -99.1134708 2230 1173351
Madero
# en cambio, las claves concatenadas permiten diferentes municipios de diferentes entidades o incluso hacer combinaciones entre los ni
[Link] 17/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
localidades = [Link](claves_concatenadas = ['01','09002','190310357'], as_geodf = False)
display([Link]())
cvegeo cve_agee cve_agem cve_loc nom_loc ambito latitud longitud altitud pob
392 010050106 01 005 0106 La Tomatina RURAL 21.9014614 -102.4151539 1962 1076
393 010050007 01 005 0007 Los Arquitos RURAL 21.9234458 -102.3857450 1908 1214
394 010050019 01 005 0019 Cieneguitas RURAL 21.8954869 -102.4265219 1990 208
395 090020001 09 002 0001 Azcapotzalco URBANO 19.4841028 -99.1843606 2244 432205
396 190310357 19 031 0357 Anzures URBANO 25.6905483 -100.1183050 0397 5222
# podemos usar los valores de una tabla para apoyar en la búsqueda de otros valores cuando no se tenga la clave previamente
cve_concatenada = nl_municipios[nl_municipios.nom_agem == 'Monterrey'].[Link][0]
print('Clave Concatenada de Monterrey: {}'.format(cve_concatenada))
mty_agebs = [Link](claves_concatenadas=cve_concatenada)
mty_agebs.plot()
<AxesSubplot:>
[Link] 18/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
<AxesSubplot:>
mty_vialidades = [Link](entidades='19',municipios='039')
display(mty_vialidades.head())
[Link] 19/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
DENUE
class [Link](token)
Parámetros
La clase DENUE contiene los métodos relacionados a la API del Directorio Estadístico Nacional de Unidades Económicas, el cual permite
consultar los datos de identificación, ubicación, actividad económica y tamaño de más de 5 millones de establecimientos a nivel nacional, por
entidad federativa y municipio. Los métodos de esta clase permiten obtener un DataFrame o un GeodataFrame con la información de los
establecimientos dadas ciertas condiciones como una ubicación y un radio, nombre del establecimiento, ubicación geográfica, actividad
económica y estrato. Esta clase requiere un token generado por el INEGI.
CLEE
Id de establecimiento
Nombre del establecimiento
Razón social
Clase de la actividad económica
Estrato (Personal ocupado)
Tipo de la vialidad
Calle
Número exterior
[Link] 20/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Número interior
Colonia
Código postal
Localidad, municipio y entidad federativa
Teléfono
Correo electrónico
Página de internet
Tipo de establecimiento
Longitud
Latitud
Métodos
Buscar()
[Link](condiciones,
latitud,
longitud,
distancia,
as_geodf = True)
Parámetros
condiciones: str/list. Palabra(s) a buscar en el nombre del establecimiento, razón social, calle, colonia, clase de la actividad económica,
entidad federativa, municipio y localidad. Para buscar todos los establecimientos se deberá ingresar la palabra "todos".
latitud: float. Latitud que define el punto en el mapa a partir del cual se hará la consulta alrededor.
longitud: float. Longitud que define el punto en el mapa a partir del cual se hará la consulta alrededor.
distancia: int. Distancia en metros a partir de las coordenadas que definen el radio de búsqueda. La distancia máxima es de 5 000 metros.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Recibe una o más condiciones, una coordenada y la distancia radial en metros con lo cual realiza una consulta de todos los establecimientos
que cumplan las condiciones definidas dentro de la cirunferencia.
Ficha()
[Link] 21/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
[Link](clave,
as_geodf = True)
Parámetros
Nombre()
[Link](nombre,
entidad = '00',
registro_inicial = 1,
registro_final = 10,
as_geodf = True)
Parámetros
Realiza una consulta de todos los establecimientos por nombre o razón social. La consulta puede ser acotada por entidad federativa.
BuscarEntidad()
[Link](condiciones,
entidad = '00',
registro_inicial = 1,
registro_final = 10,
as_geodf = True):
[Link] 22/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Parámetros
condiciones: str/list. Palabra(s) a buscar en el nombre del establecimiento, razón social, calle, colonia, clase de la actividad económica,
entidad federativa, municipio y localidad. Para buscar todos los establecimientos se deberá ingresar la palabra "todos".
entidad: str. Clave de dos dígitos de la entidad federativa (01 a 32). Para incluir todas las entidades se especifica 00.
registro_inicial: int. Número de registro a partir del cuál se mostrarán los resultados de la búsqueda.
registro_final: int. Número de registro final que se mostrará en los resultados de la búsqueda.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Realiza una consulta de todos los establecimientos que cumplan las condiciones definidas y puede ser acotada por entidad federativa.
BuscarAreaAct()
[Link](nombre,
clave_area = '',
clave_actividad = '',
registro_inicial = 1,
registro_final = 10,
clave_establecimiento = '0',
estrato = '0'
as_geodf = True)
Parámetros
[Link] 23/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
estrato: str. Clave de un dígito que identifica el estrato del establecimiento (cantidad de trabajadores). Para incluir todos los tamaños se
especifica 0. 1. Para incluir de 0 a 5 personas. 2. Para incluir de 6 a 10 personas. 3. Para incluir de 11 a 30 personas. 4. Para incluir de 31 a 50
personas. 5. Para incluir de 51 a 100 personas. 6. Para incluir de 101 a 250 personas. 7. Para incluir de 251 y más personas.
as_geodf: bool. Si el valor es verdadero regresa un GeoDataFrame para facilitar el análisis espacial.
Realiza una consulta de todos los establecimientos con la opción de acotar la búsqueda por área geográfica, actividad económica, nombre,
clave del establecimiento y estrato económico.
El INEGI divide esta función en dos: BuscarAreaAct y BuscarAreaActEstr. La diferencia entre ambas es que la segunda permite definir el estrato
económico de los establecimientos y la primera no. Sin embargo, la segunda función permite la opción de buscar para todos los estratos
cuando esta variable es igual a '0' lo cual hace que los resultados de ambas funciones sean iguales. Es por ello que en esta clase solo se definió
un método para la segunda función ya que esta es más general y puede regresar los mismos resultados que la primera. A pesar de esto se
conserva el nombre de la primera función por facilidad.
Cuantificar()
[Link](clave_area = '0',
clave_actividad = '0',
estrato = '0')
Parámetros
clave_area: str/list. Clave(s) de dos a nueve caracteres que indentifican el área geográfica de acuerdo con el Marco Geoestadístico. Esta
función solo permite definir hasta nivel localidad. En caso de no definir una clave se regresan todos los establecimientos del país. Dos
caracteres para definir un estado (ej. 01 a 32). Cinco caracteres dígitos para definir un municipio (ej. 01001). Nueve caracteres para definir
una localidad (ej. 010010001).
clave_actividad: str/list. Clave(s) de dos a seis dígitos que identifican el área de actividad económica de los establecimientos de acuerdo
con el Sistema de Clasificación Industrial de América del Norte 2018. Para incluir todas las actividades se especifica 0. Dos dígitos para
definir un sector (ej.46). Tres dígitos para definir un subsector (ej. 464). Cuatro dígitos para definir una rama (ej. 4641). Cinco dígitos para
definir una subrama (ej. 46411). Seis dígitos para definir una clase (ej. 464111).
estrato: str. Clave de un dígito que identifica el estrato del establecimiento (cantidad de trabajadores). Para incluir todos los tamaños se
especifica 0. 1. Para incluir de 0 a 5 personas. 2. Para incluir de 6 a 10 personas. 3. Para incluir de 11 a 30 personas. 4. Para incluir de 31 a 50
personas. 5. Para incluir de 51 a 100 personas. 6. Para incluir de 101 a 250 personas. 7. Para incluir de 251 y más personas.
Realiza un conteo de todos los establecimientos con la opción de acotar la búsqueda por área geográfica, actividad económica y estrato.
A diferencia de las otras funciones permite múltiples claves para definir áreas geográficas y actividades económicas.
[Link] 24/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Otra diferencia importante es que el resultado de esta consulta no regresa valores de las coordenadas para obtener un GeoDataFrame.
Uso
<AxesSubplot:>
[Link] 25/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Comercio al
PAPELERIA
por menor de 0a5
0 09003465311009331000000000U4 993591 COPY CALLE DALIA
artículos de personas
PLUS
papelería
1 rows × 22 columns
SERVICIOS Comercio al
OXXO GAS
GASOLINEROS por menor de 6 a 10 Is
1 05030468411001072000008448S7 241447 SUC. ISIDRO CALLE
DE MEXICO gasolina y personas Z
LOPEZ
SA DE CV diesel
SERVICIOS Comercio al
OXXO GAS
GASOLINEROS por menor de 11 a 30 P
2 05030468411000203000008448S6 242057 SUC. BOULEVARD
DE MEXICO gasolina y personas C
ROTONDA
SA DE CV diesel
[Link] 26/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
5 rows × 22 columns
Comercio al
por menor de 6 a 10 BA
0 09007433410000391001000000U7 744113 @PUNTO103 CALLE
artículos de personas LO
papelería
Comercio al
1001 por menor de 0a5
1 09012465311010991000000000U0 915779 PRIVADA GU
ARTICULOS artículos de personas
papelería
Comercio al
OPERADORA
187 OFFICE por menor de 11 a 30 IS
2 09015465311019173000003309S2 6760792 OMX SA DE CALLE
MAX artículos de personas CA
CV
papelería
[Link] 27/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
5 rows × 22 columns
Comercio al
ABARROTES por menor en 0a5
0 09003461110029761000000000U8 7717912 CALLE P
SORIANA tiendas de personas
abarrotes,...
CENTROS
1
COMERCIALES TIENDAS Comercio al 101 a
(
1 09003462111000116000008292S5 6313488 SORIANA SORIANA SA por menor en 250 PEATONAL
C
SUCURSAL DE CV supermercados personas
M
300 MIRAM...
Comercio al
POLLERIA 11 a 30 M
2 09003461122004151001000000U6 908875 por menor de CALLE
SORIANO personas S
carne de aves
TIENDAS
TIENDAS Comercio al 101 a
SORIANA SUC A
4 09003462111000166000008292S0 6315772 SORIANA SA por menor en 250 AVENIDA
288 GRAN D
DE CV supermercados personas
SUR
5 rows × 34 columns
[Link] 28/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
df = [Link](clave_area = '09003', clave_actividad = ['464111', '464112'], estrato= '1') #farmacias con y sin minisuper en C
display(df)
AE AG Total
1 464112 09003 46
Ruteo
class [Link](token)
Parámetros
La clase Ruteo contiene los métodos relacionados a la API del Sistema de Ruteo de México. Esta API utiliza la Red Nacional de Caminos y
todas sus especificaciones técnicas, para generar el resultado de acuerdo a las restricciones de circulación en el mundo real como sentidos de
circulación vehicular, pasos a desnivel, distribuidores viales, enlaces, retornos glorietas, y maniobras prohibidas. Además, considera tres posibles
rutas: preferentemente libre, preferentemente cuota y la ruta sugerida para dar alternativas de traslado o viaje con diferente coste. Además
permite obtener información georeferenciada de los destinos que incluye la Red Nacional de Caminos como localidades urbanas y rurales o
sitios de interés como aeropuertos, puertos, servicios médicos, centros educativos de nivel superior, playas, cascadas, zonas arqueológicas,
museos, pueblos mágicos, y muchos más.
Para el cálculo de rutas el INEGI define dos formas de marcar el inicio y final:
Destino: Sitio de partida o llegada para una ruta. Están integrados por localidades, instalaciones de transporte como aeropuertos y
puertos, así como sitios de interés contenidos en la Red Nacional de Caminos.
Línea: Es cualquier segmento de la Red Nacional de Caminos.
Los destinos y líneas se obtienen de sus respectivas funciones BuscarDestino y BuscarLinea , los DataFrames resultantes de estas funciones
contienen los valores necesarios para las funciones de ruteo. Las funciones de ruteo reciben estos DataFrames o diccionarios equivalentes para
calcular las rutas.
Métodos
BuscarDestino()
[Link] 29/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
[Link](busqueda,
cantidad,
proyeccion = 'GRS80')
Parámetros
busqueda: str. Define el nombre o parte del destino que se desea encontrar. Se puede utilizar una coma para especificar la entidad
federativa, p. e. “San Juan, Jalisco”.
cantidad: int. Número de destinos que se desea obtener.
proyeccion: str. Define la proyección de los puntos resultantes. GRS80 para coordenadas geográficas y MERC para coordenadas Spherical
Mercator. Por default será GRS80.
Permite buscar destinos como localidades urbanas y rurales, así como los sitios de interés que pueden ser instalaciones de servicios como
aeropuertos, puertos, servicios médicos, centros educativos de nivel superior, así como sitios atractivos para el turismo como playas, cascadas,
zonas arqueológicas, museos, pueblos mágicos, y más. El DataFrame resultante contiene los valores necesarios para calcular una ruta desde o
hacia el destino.
*Valor necesario para calcular una ruta desde o hacia el destino definido
BuscarLinea()
[Link](lat,
lng,
escala = 1_000_000,
proyeccion = 'GRS80')
Parámetros
[Link] 30/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
proyeccion: str. Define la proyección de los puntos resultantes. GRS80 para coordenadas geográficas y MERC para coordenadas Spherical
Mercator. Por default será GRS80.
Obtiene un GeoDataFrame con la información de la línea registrada en la Red Nacional de Caminos más cercana a una coordenada. El
DataFrame resultante contiene los valores necesarios para calcular una ruta desde o hacia la coordenada:
*Valores necesarios para calcular una ruta desde o hacia la coordenada definida
CalcularRuta()
[Link](linea_inicial = None,
linea_final = None,
destino_inicial = None,
destino_final = None,
tipo_vehiculo = 0,
ruta = 'optima',
ejes_excedentes = 0,
saltar_lineas = None,
proyeccion = 'GRS80')
Parámetros
linea_inicial: DataFrame con las columnas id_routing_net, source y target de la línea inicial obtenido por la función BuscarLinea. También
acepta un diccionario con la misma información.
linea_final: DataFrame con las columnas id_routing_net, source y target de la línea final obtenido por la función BuscarLinea. También
acepta un diccionario con la misma información.
destino_inicial: DataFrame con la columna id_dest del destino inicial obtenido por la función BuscarDestino. También acepta el valor de
id_dest en string o integer.
destino_final: DataFrame con la columna id_dest del destino final obtenido por la función BuscarDestino. También acepta el valor de
id_dest en string o integer.
tipo_vehiculo: int. Clave de un dígito que identifica el tipo de vehículo con el cual calcular la ruta. Por default es 0. 0: Motocicleta 1:
Automóvil 2: Autobús dos ejes 3: Autobús tres ejes 4: Autobús cuatro ejes 5: Camión dos ejes 6: Camión tres ejes 7: Camión cuatro ejes 8:
Camión cinco ejes 9: Camión seis ejes 10: Camión siete ejes 11: Camión ocho ejes 12: Camión nueve ejes
[Link] 31/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
ruta: str. ["optima" | "libre" | "cuota"]. Tipo de ruta que se desea obtener.
ejes_excedentes: int. Clave de un dígito que identifica el número de ejes excedentes del vehículo. Por default es 0. 0: Sin ejes excedentes 1:
un eje excedente 2: dos ejes excedentes 3: tres ejes excedentes 4: cuatro ejes excedentes 5: cinco ejes excedentes
saltar_lineas: list. Lista con los id_routing_net de las líneas por las cuales la ruta no pasará por ningún motivo. Por default es None.
proyeccion: str. Define la proyección de los puntos resultantes. GRS80 para coordenadas geográficas y MERC para coordenadas Spherical
Mercator. Por default será GRS80.
Obtiene un GeoDataFrame con la ruta calculada por Sistema de Ruteo de México y la Red Nacional de Caminos. Se puede obtener rutas de
línea-línea, destino-destino, línea-destino y destino-linea. El DataFrame resultante contine las columnas:
DetalleRuta()
[Link](linea_inicial = None,
linea_final = None,
destino_inicial = None,
destino_final = None,
tipo_vehiculo = 0,
ruta = 'optima',
ejes_excedentes = 0,
saltar_lineas = None,
proyeccion = 'GRS80')
Parámetros
linea_inicial: DataFrame con las columnas id_routing_net, source y target de la línea inicial obtenido por la función BuscarLinea. También
acepta un diccionario con la misma información.
linea_final: DataFrame con las columnas id_routing_net, source y target de la línea final obtenido por la función BuscarLinea. También
acepta un diccionario con la misma información.
[Link] 32/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
destino_inicial: DataFrame con la columna id_dest del destino inicial obtenido por la función BuscarDestino. También acepta el valor de
id_dest en string o integer.
destino_final: DataFrame con la columna id_dest del destino final obtenido por la función BuscarDestino. También acepta el valor de
id_dest en string o integer.
tipo_vehiculo: int. Clave de un dígito que identifica el tipo de vehículo con el cual calcular la ruta. Por default es 0. 0: Motocicleta 1:
Automóvil 2: Autobús dos ejes 3: Autobús tres ejes 4: Autobús cuatro ejes 5: Camión dos ejes 6: Camión tres ejes 7: Camión cuatro ejes 8:
Camión cinco ejes 9: Camión seis ejes 10: Camión siete ejes 11: Camión ocho ejes 12: Camión nueve ejes
ruta: str. ["optima"|"libre"|"cuota"]. Tipo de ruta que se desea obtener.
ejes_excedentes: int. Clave de un dígito que identifica el número de ejes excedentes del vehículo. Por default es 0. 0: Sin ejes excedentes 1:
un eje excedente 2: dos ejes excedentes 3: tres ejes excedentes 4: cuatro ejes excedentes 5: cinco ejes excedentes
saltar_lineas: list. Lista con los id_routing_net de las líneas por las cuales la ruta no pasará por ningún motivo. Por default es None.
proyeccion: str. Define la proyección de los puntos resultantes. GRS80 para coordenadas geográficas y MERC para coordenadas Spherical
Mercator. Por default será GRS80.
Obtiene un GeoDataFrame con los detalles de la ruta calculada por Sistema de Ruteo de México y la Red Nacional de Caminos. Se puede
obtener rutas de línea-línea, destino-destino, línea-destino y destino-linea. El DataFrame resultante contine las columnas:
Combustibles()
[Link]()
Regresa un DataFrame con los 4 tipos de combustibles más comunes y su costo promedio que se consultan el primer día hábil de cada semana
en la página web de la Comisión Reguladora de Energía del Gobierno Federal
Nota: el dato que provee esta API solo es una referencia en función del precio promedio nacional excluyendo las 7 regiones sobre la frontera.
También lo que refiere al gas LP el precio es un promedio ponderado que publica la Comisión Reguladora de Energía.
[Link] 33/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Uso
linea_inicial = [Link](lat = 19.435237353, lng = -99.141374223) # equvalente a buscar bellas artes pero con las coordenadas
linea_final = [Link](lat = 19.4326290000001, lng = -99.133203) # equivalente a buscar zócalo con las coordenadas
display(linea_inicial)
display(linea_final)
0 701895 695491 Eje vial Central Lázaro Cárdenas 701896 POINT (-99.14070 19.43514)
[Link] 34/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
display(ruta_optima)
POINT
Gire a la derecha en
3 0.0 0.0 0.639794 426.529251 None 2 (-99.13746
Calle Ignacio Allende
19.43956)
POINT
Continúe por Calle
4 0.0 0.0 0.215491 143.660612 None 0 (-99.13802
Bolívar
19.43573)
[Link] 35/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
POINT
Gire a la derecha en
6 0.0 0.0 0.136318 90.878944 None 2 (-99.13404
Calle Monte de Piedad
19.43397)
POINT
¡Haz llegado a tu
8 0.0 0.0 0.000000 0.000000 None 0 (-99.13411
destino!
19.43315)
combustibles = [Link]()
display(combustibles)
Casos de uso
Indicadores y MarcoGeoestadistico
token = 'TuToken'
inegi = Indicadores(token)
marco = MarcoGeoestadistico()
[Link] 36/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
indicadores = [str(i) for i in range(472080,472112)] # indicadores del PIB real por entidad federativa
entidades = [Link]()
nombres = entidades.nom_agee.tolist() # nombres de las entidades
pib_edos = inegi.obtener_df(indicadores = indicadores, nombres = nombres, inicio = '2019')
display(pib_edos)
Baja Coahuila
Baja Ciu
Aguascalientes California Campeche de Colima Chiapas Chihuahua
California M
Sur Zaragoza
fechas
2019-
222456.200 575342.251 158953.105 517311.384 603930.571 109109.572 261697.349 572966.871 3133
01-01
2020-
204142.637 553945.092 121577.942 482973.093 535373.609 101068.064 251650.751 539293.544 2848
01-01
2 rows × 32 columns
fechas
2019-
NaN NaN NaN NaN NaN NaN NaN NaN NaN N
01-01
2020-
-0.082324 -0.03719 -0.235133 -0.066378 -0.113518 -0.073701 -0.03839 -0.05877 -0.090756 -
01-01
[Link] 37/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
2 rows × 32 columns
cambios_pcts = cambios_pcts.stack().reset_index()
cambios_pcts.columns = ['fechas','nom_agee','cambio_pct_pib_real']
display(cambios_pcts.head())
geometry cvegeo cve_agee nom_agee nom_abrev pob pob_fem pob_mas viv fechas
POLYGON
((-102.28787
2020-
0 22.41649, 01 01 Aguascalientes Ags. 1425607 728924 696683 386671
01-01
-102.28753
22.4...
MULTIPOLYGON
(((-117.10047 2020-
1 02 02 Baja California BC 3769020 1868431 1900589 1149563
32.53656, 01-01
-117.0992...
MULTIPOLYGON
(((-112.75825 Baja California 2020-
2 03 03 BCS 798447 392568 405879 240660
27.97538, Sur 01-01
-112.7574...
20.84833,
geometry cvegeo cve_agee nom_agee nom_abrev pob pob_fem pob_mas viv fechas
-90.38182 ...
POLYGON
((-102.31079
Coahuila de 2020-
4 29.87695, 05 05 Coah. 3146771 1583102 1563669 901249
Zaragoza 01-01
-102.31050
29.8...
ax = [Link](column = 'cambio_pct_pib_real',
cmap = 'hot',
legend = True,
legend_kwds={'label':'Cambio (%)', 'orientation':"horizontal"},
figsize = (8,8),
edgecolor = 'black',
linewidth = 0.5)
ax.set_title('Cambio Porcentual del PIB real por Entidad Federeativa \n 2019 - 2020')
ax.set_axis_off()
[Link] 39/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Distancia radial
token = 'TuToken'
denue = DENUE(token)
marco = MarcoGeoestadistico()
token_ruteo = 'TuOtroToken'
ruteo = Ruteo(token_ruteo)
# utilizamos el DENUE para obtener una capa con los establecimientos en un radio de 5 km
# inicié queriendo ver todos los establecimientos pero son demasiados para hacer buenos visuales así que acoté a solo los Oxxos
lat, lng = [Link][0].y, [Link][0].x
estabs = [Link]('oxxo',lat,lng,5000)
<AxesSubplot:>
[Link] 40/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
# utilizamos el marco geostadistico para obtener la capa del area geografica sobre la que plotear
# Si no conoces la clave de alguna entidad, municipio o localidad la puedes buscar por nombre en el marco geoestadístico
ax = [Link](alpha = 0.5)
[Link](ax=ax, color='yellow', zorder=2, markersize=20)
[Link](ax=ax, color='red', alpha=0.4)
<AxesSubplot:>
[Link] 41/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
ax = [Link](alpha = 0.5)
[Link](ax=ax, color='yellow', zorder=2, markersize=20)
[Link](ax=ax, color='red', alpha=0.4)
<AxesSubplot:>
# ya podemos hacer operaciones y obtener datos como las distancias al punto definido:
# para poder tener las distancias en metros necesitamos cambiar los crs de los geodataframes
zocalo = zocalo.to_crs('EPSG:6372')
estabs = estabs.to_crs('EPSG:6372')
muns = muns.to_crs('EPSG:6372')
estabs['distancia_radial'] = [Link]([Link][0])
# podemos ver que la distancia mínima son 300 metros, la máxima es cercana a los 5 km y la media es de 3.1 km
[Link] 42/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
<AxesSubplot:>
<AxesSubplot:>
[Link] 43/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
<AxesSubplot:>
[Link] 44/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
Distancia en ruta
# Para calcular una ruta se requiere la utilizar la función BuscarLinea (o BuscarDestino dependiendo de lo que se busca) con el fin de
# Como tenemos varios puntos finales más bien sería una lista de líneas
# Noté que en ocasiones el Sistema de Ruteo no encuentra información para una coordenada si la escala no está correcta por lo que aume
# la escala a 1,000,000 lo cual resolvió el problema para las coordenadas resultantes del DENUE sin embargo es importante tenerlo en c
[Link] 45/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
lineas_f = [[Link]([Link][i], [Link][i]) for i in range([Link][0])]
len(lineas_f)
385
# una vez con las líneas resultantes de cada oxxo usamos la función CalcularRuta para obtener la rúta óptima desdse el punto inicial e
# solo debemos darle como argumentos los DataFrames resultantes
# El INEGI no me ha respondido sobre límites o preferencias de uso pero noté que las primeras 280 rutas las calcula más rápido y a par
# en lo que me responen estoy pausando cada 100 requests por si es una cuestión de límites aunque también puede ser que esas rutas tom
# el tiempo en el que corre la celda se acortó con el [Link](30) así que sí puede ser una cuesstión de límites
import time
rutas = []
for j in range(len(lineas_f)):
r = [Link](linea_i, lineas_f[j])
[Link](r)
if j%100 == 0: [Link](30)
len(rutas)
385
rutas = [Link]([Link](rutas,axis=0).reset_index(drop=True))
display([Link]())
[Link] 46/47
6/18/23, 5:20 PM DatosMex/INEGIpy at master · andreslomeliv/DatosMex · GitHub
# con las rutas ya podemos tener la distancia y clasificar así los puntos
# la columna long_km y el length que calcula Shapely difiere por metros, ambos son de fácil acceso así que cualquiera se puede usar
estabs['distancia_ruta'] = rutas.long_km
<AxesSubplot:>
[Link] 47/47