Skip to content

Commit

Permalink
actualizo las bases de datos de mapa normativo
Browse files Browse the repository at this point in the history
  • Loading branch information
mpvaldez committed Mar 14, 2024
1 parent 735a91e commit bf3365a
Show file tree
Hide file tree
Showing 24 changed files with 310 additions and 18,447 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@
VAR_TELEFONO_INDEC = 'telefono_indec'

# ARCHIVO CON INFORMACIÓN PROVINCIAL > DE ACA SE TOMA EL LISTADO DE VALIDACIÓN
establec_educativos_completo_original=gpd.read_file("./data/establecimientos-educativos-PBA.geojson")
establec_educativos_completo_original=gpd.read_file("establecimientos-educativos-PBA.geojson")

establec_educativos_completo = establec_educativos_completo_original.copy()
establec_educativos_completo = establec_educativos_completo[establec_educativos_completo[VAR_PARTIDO]== FILTRO_PARTIDOS]

# LIMPIEZA Y ORDENAMIENTO DE DATOS
# Se unifican los codigos postales para evitar pérdida de información
validacion_cp = pd.read_csv('data\codigo_postales_pba.csv', encoding = 'latin1', on_bad_lines='skip', sep = ";", decimal=",")
validacion_cp = pd.read_csv('codigo_postales_pba.csv', encoding = 'latin1', on_bad_lines='skip', sep = ";", decimal=",")
validacion_cp = validacion_cp.dropna(how= 'all', axis=0)
validacion_cp[VAR_CP_MANUAL] = validacion_cp[VAR_CP_MANUAL].astype(int).astype(str).replace({'0': 'S/CP'})
validacion_cp[VAR_LOCALIDAD_MANUAL] = validacion_cp[VAR_LOCALIDAD_MANUAL].str.upper()
Expand All @@ -57,7 +57,7 @@
establec_educativos_completo[VAR_CODIGO_UNICO] = establec_educativos_completo[VAR_COD_POSTAL] + ' - ' + establec_educativos_completo[VAR_CUE].astype(str) + ' - ' + establec_educativos_completo[VAR_SEDE_ANEXO_EXT]

# Base de datos actualizada manualmente
escuelas_informacion_manual = pd.read_csv('data\est_educativos_actualizacion_provincial.csv', encoding = 'latin1', on_bad_lines='skip', sep = ";", decimal=",")
escuelas_informacion_manual = pd.read_csv('est_educativos_actualizacion_provincial.csv', encoding = 'latin1', on_bad_lines='skip', sep = ";", decimal=",")
escuelas_informacion_manual = escuelas_informacion_manual.dropna(how= 'all', axis=0)
escuelas_informacion_manual = escuelas_informacion_manual.dropna(how= 'all', axis=1)
escuelas_informacion_manual[VAR_CP_MANUAL] = escuelas_informacion_manual[VAR_CP_MANUAL].astype(int).astype(str).replace({'0': 'S/CP'})
Expand Down Expand Up @@ -114,7 +114,7 @@
print(f'Al cruzar los datos se pierden {len(escuelas_faltantes)} escuelas. Por favor, corregir y volver a correr el código. Este es el listado de escuelas faltantes: {escuelas_faltantes}')

base_escuelas_actualizada_gsjon = gpd.GeoDataFrame(base_escuelas_actualizada, geometry=gpd.points_from_xy(base_escuelas_actualizada[VAR_LONGITUD], base_escuelas_actualizada[VAR_LATITUD]), crs='EPSG:4326')
base_escuelas_actualizada_gsjon.to_file('./data/escuelas_informacion_actualizada_v230420.geojson', driver='GeoJSON')
base_escuelas_actualizada_gsjon.to_file('escuelas_informacion_actualizada.geojson', driver='GeoJSON')



Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
library(sf)
library(leaflet)

sf::sf_use_s2(F)

escuelas=st_read("./escuelas_informacion_actualizada_v230420.geojson")
escuelas=st_read("./escuelas_informacion_actualizada.geojson")
parcelas=st_read("./Inputs/parcelas/110101.shp")

escuelas=st_transform(escuelas,st_crs(4326))
Expand All @@ -16,7 +15,7 @@ no_match=escuelas[!escuelas$codigo_unico_pis %in% join$codigo_unico_pis,]

#Unir archivos de parcelas que se cargaron manualmente

archivos_escuelas_parcelas_manuales=list.files("./Inputs/Parcelas/escuelas_manuales/",full.names = T)
archivos_escuelas_parcelas_manuales=list.files("./Inputs/parcelas/escuelas_manuales/",full.names = T)
for(archivo in archivos_escuelas_parcelas_manuales){
data=st_read(archivo)
if(archivo==archivos_escuelas_parcelas_manuales[1]){
Expand Down Expand Up @@ -208,34 +207,34 @@ sum(!is.na(join$cue))

sum(!is.na(escuelas$cue))

leaflet(save) %>%addPolygons(label=~nombre.establecimiento)%>%addTiles()

leaflet() %>%addCircleMarkers(data=no_match,label=~nombre.establecimiento)%>%addTiles()


t=st_read("./Inputs/escuelas_en_parcelas.geojson")


map <- leaflet() %>%
# Base groups
addProviderTiles(providers$Esri.WorldImagery) %>%
addPolygons(data = parcelas,
fill = T,fillOpacity = 0.2, weight = 2, color = "#19a82c", group = "Parcelas") %>%
# Overlay groups
addCircleMarkers(data=escuelas,fillOpacity = 0.5,radius=5, group = "Escuelas",color="#19a82c",label=~as.character(nombre.establecimiento),
# highlight = highlightOptions(
# weight = 3,
# fillOpacity = 0.9,
# color = "#19a82c",
# opacity = 1,
# bringToFront = TRUE,
# sendToBack = TRUE)
) %>%
# Layers control
addLayersControl(
overlayGroups = c("Escuelas", "Parcelas"),
options = layersControlOptions(collapsed = FALSE)
)
map

providers
# leaflet(save) %>%addPolygons(label=~nombre.establecimiento)%>%addTiles()

# leaflet() %>%addCircleMarkers(data=no_match,label=~nombre.establecimiento)%>%addTiles()


# t=st_read("./Inputs/escuelas_en_parcelas.geojson")


# map <- leaflet() %>%
# # Base groups
# addProviderTiles(providers$Esri.WorldImagery) %>%
# addPolygons(data = parcelas,
# fill = T,fillOpacity = 0.2, weight = 2, color = "#19a82c", group = "Parcelas") %>%
# # Overlay groups
# addCircleMarkers(data=escuelas,fillOpacity = 0.5,radius=5, group = "Escuelas",color="#19a82c",label=~as.character(nombre.establecimiento),
# # highlight = highlightOptions(
# # weight = 3,
# # fillOpacity = 0.9,
# # color = "#19a82c",
# # opacity = 1,
# # bringToFront = TRUE,
# # sendToBack = TRUE)
# ) %>%
# # Layers control
# addLayersControl(
# overlayGroups = c("Escuelas", "Parcelas"),
# options = layersControlOptions(collapsed = FALSE)
# )
# map

# providers
10 changes: 5 additions & 5 deletions pages/mapa_normativo/data/Inputs/1_Agregar_poblacion.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
# #### Localidades y parajes #####

# #Leemos input y los transformamos a la proyeccion que usamos
localidades=gpd.read_file("pages/mapa_normativo/data/Inputs/Localidades.geojson")
localidades=gpd.read_file("./Localidades.geojson")
localidades=localidades.reset_index()
localidades = localidades.to_crs("epsg:4326")
#Lista de localidades para chequear
Expand All @@ -44,7 +44,7 @@
listado_localidades = localidades[VAR_NOMBRE_INDEC].unique()

# #Parajes
parajes=gpd.read_file("pages/mapa_normativo/data/Inputs/Parajes.geojson")
parajes=gpd.read_file("./Parajes.geojson")
parajes=parajes.reset_index()
parajes = parajes.to_crs("epsg:4326")
#Lista de parajes para chequear
Expand All @@ -65,7 +65,7 @@
print(mensaje_repetidos)

#Agregar otros datos a las localidades y parajes
poblacion=pd.read_excel("pages\mapa_normativo\data\Inputs\Base de Datos - Mar Chiquita.xlsx")
poblacion=pd.read_excel("./Base de Datos - Mar Chiquita.xlsx")
poblacion[VAR_NOMBRE_INDEC] = poblacion[VAR_NOMBRE_MANUAL].str.normalize('NFD').str.encode('ascii', errors='ignore').str.decode('utf-8').str.strip()
poblacion = poblacion[poblacion[VAR_NOMBRE_INDEC].isin(listado_localidades_parajes)]
listado_poblados = poblacion[VAR_NOMBRE_INDEC].unique()
Expand Down Expand Up @@ -95,11 +95,11 @@

base_final_paraje = base_localidades_parajes[base_localidades_parajes['Tipo']=='Paraje']

base_final_paraje.to_file('pages/mapa_normativo/data/Inputs/Parajes_Poblacion.geojson', driver = 'GeoJSON')
base_final_paraje.to_file('./Parajes_Poblacion.geojson', driver = 'GeoJSON')

base_final_localidad = base_localidades_parajes[base_localidades_parajes['Tipo']=='Localidad']

base_final_localidad.to_file('pages/mapa_normativo/data/Inputs/Localidad_Poblacion.geojson', driver = 'GeoJSON')
base_final_localidad.to_file('./Localidad_Poblacion.geojson', driver = 'GeoJSON')



Expand Down
86 changes: 43 additions & 43 deletions pages/mapa_normativo/data/Inputs/2_Crear_zonas_excl_y_amort.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import pickle
from itertools import combinations

SAVE_FOLDER = 'pages/mapa_normativo/data/'
SAVE_FOLDER = '../'

#Definir parametros de zonas de exclusion y amortiguamiento
local_excl=150
Expand All @@ -44,7 +44,7 @@
#### Localidades y parajes #####

#Leemos input y los transformamos a la proyeccion que usamos
localidades=gpd.read_file(f"{SAVE_FOLDER}Inputs/Localidad_Poblacion.geojson")
localidades=gpd.read_file(f"./Localidad_Poblacion.geojson")
localidades = localidades.to_crs("epsg:4326")

#Creamos las zonas de excl y amort haciendo un buffer (borde) al rededor de las geometrias. Cambiamos la proyeccion para que el buffer se mida en metros
Expand All @@ -62,12 +62,12 @@
localidades_amort = localidades_amort.overlay(localidades_excl, how='difference')
localidades_excl = localidades_excl.overlay(localidades, how='difference')

localidades_excl.to_parquet(f"{SAVE_FOLDER}localidades_excl.parquet")
localidades_amort.to_parquet(f"{SAVE_FOLDER}localidades_amort.parquet")
localidades_excl.to_parquet(f"../localidades_excl.parquet")
localidades_amort.to_parquet(f"../localidades_amort.parquet")


#PARAJES
parajes=gpd.read_file(f"{SAVE_FOLDER}Inputs/Parajes_Poblacion.geojson")
parajes=gpd.read_file(f"./Parajes_Poblacion.geojson")
parajes=parajes.reset_index()

parajes = parajes.to_crs("epsg:4326")
Expand All @@ -86,24 +86,24 @@
parajes_excl = parajes_excl.overlay(parajes, how='difference')

# Guardar parquet de parajes excl y amor
parajes_excl.to_parquet(f"{SAVE_FOLDER}parajes_excl.parquet")
parajes_amort.to_parquet(f"{SAVE_FOLDER}parajes_amort.parquet")
parajes_excl.to_parquet(f"../parajes_excl.parquet")
parajes_amort.to_parquet(f"../parajes_amort.parquet")


#Unir y guardar localidades y parajes
localidades_parajes=pd.concat([localidades,parajes],ignore_index=True)
localidades_parajes=localidades_parajes.drop(["index"],axis=1)
localidades_parajes=localidades_parajes.reset_index()
localidades_parajes.to_parquet(f"{SAVE_FOLDER}localidades_parajes.parquet")
localidades_parajes.to_parquet(f"../localidades_parajes.parquet")

#Transformar a json (para mapa) y guardar
localidades_parajes_geojson=json.loads(localidades_parajes.to_json(na="keep"))
with open(f'{SAVE_FOLDER}localidades_parajes_geojson.pkl', 'wb') as f:
with open(f'../localidades_parajes_geojson.pkl', 'wb') as f:
pickle.dump(localidades_parajes_geojson, f, protocol=pickle.HIGHEST_PROTOCOL)

################################################### ESCUELAS ###########################################

escuelas_en_parcelas = gpd.read_file(f"{SAVE_FOLDER}Inputs/escuelas_en_parcelas.geojson")
escuelas_en_parcelas = gpd.read_file(f"./escuelas_en_parcelas.geojson")
# escuelas_en_parcelas['característica.telefónica']=escuelas_en_parcelas['característica.telefónica'].astype(str).replace('\.0', '', regex=True)
# escuelas_en_parcelas['teléfono']=escuelas_en_parcelas['teléfono'].astype(str).replace('\.0', '', regex=True)
# escuelas_en_parcelas.reset_index(inplace=True)
Expand All @@ -123,12 +123,12 @@
for idx in [i for i, c in enumerate(escuelas_en_parcelas.columns) if c.startswith("direccion")]:
escuelas_en_parcelas.iloc[:, idx] = escuelas_en_parcelas.iloc[:, idx].fillna("-")

escuelas_en_parcelas.to_parquet(f"{SAVE_FOLDER}escuelas_parcelas.parquet")
escuelas_en_parcelas.to_parquet(f"../escuelas_parcelas.parquet")


#Transformar a json (para mapa) y guardar
escuelas_en_parcelas_geojson=json.loads(escuelas_en_parcelas.to_json(na="keep"))
with open(f'{SAVE_FOLDER}escuelas_parcelas_geojson.pkl', 'wb') as f:
with open(f'../escuelas_parcelas_geojson.pkl', 'wb') as f:
pickle.dump(escuelas_en_parcelas_geojson, f, protocol=pickle.HIGHEST_PROTOCOL)

escuelas_en_parcelas = escuelas_en_parcelas.to_crs("epsg:4326")
Expand All @@ -149,8 +149,8 @@
escuelas_amort = escuelas_amort.overlay(escuelas_excl, how='difference')
escuelas_excl = escuelas_excl.overlay(escuelas_en_parcelas, how='difference')

escuelas_excl.to_parquet(f"{SAVE_FOLDER}escuelas_parcelas_excl.parquet")
escuelas_amort.to_parquet(f"{SAVE_FOLDER}escuelas_parcelas_amort.parquet")
escuelas_excl.to_parquet(f"../escuelas_parcelas_excl.parquet")
escuelas_amort.to_parquet(f"../escuelas_parcelas_amort.parquet")

# escuelas=gpd.read_file("./Inputs/escuelas.geojson")
# escuelas=escuelas.reset_index()
Expand All @@ -177,15 +177,15 @@


################################################### AGUAS ###########################################
cuerpos=gpd.read_file(f"{SAVE_FOLDER}Inputs/cuerpos.geojson",encoding="ASCI")
cuerpos=gpd.read_file(f"./cuerpos.geojson",encoding="ASCI")
cuerpos=cuerpos.reset_index()

cuerpos.to_parquet(f"{SAVE_FOLDER}cuerpos.parquet")
cuerpos.to_parquet(f"../cuerpos.parquet")


#Transformar a json (para mapa) y guardar
cuerpos_geojson=json.loads(cuerpos.to_json(na="keep"))
with open(f'{SAVE_FOLDER}cuerpos_geojson.pkl', 'wb') as f:
with open(f'../cuerpos_geojson.pkl', 'wb') as f:
pickle.dump(cuerpos_geojson, f, protocol=pickle.HIGHEST_PROTOCOL)

cuerpos = cuerpos.to_crs("epsg:4326")
Expand All @@ -196,7 +196,7 @@
cuerpos_excl= cuerpos_excl.to_crs('epsg:4326')


cursos=gpd.read_file(f"{SAVE_FOLDER}Inputs/cursos_agua.geojson")
cursos=gpd.read_file(f"./cursos_agua.geojson")
cursos=cursos.reset_index()
cursos = cursos.to_crs("epsg:4326")

Expand All @@ -210,25 +210,25 @@
cuerpos_excl = cuerpos_excl.overlay(cuerpos, how='difference')
cursos_excl = cursos_excl.overlay(cursos, how='difference')

cuerpos_excl.to_parquet(f"{SAVE_FOLDER}cuerpos_excl.parquet")
cursos_excl.to_parquet(f"{SAVE_FOLDER}cursos_excl.parquet")
cuerpos_excl.to_parquet(f"../cuerpos_excl.parquet")
cursos_excl.to_parquet(f"../cursos_excl.parquet")


###### Generar areas de exclusion y amortiguamiento totales

localidades_excl=gpd.read_parquet(f"{SAVE_FOLDER}localidades_excl.parquet")
localidades_amort=gpd.read_parquet(f"{SAVE_FOLDER}localidades_amort.parquet")
parajes_excl=gpd.read_parquet(f"{SAVE_FOLDER}parajes_excl.parquet")
parajes_amort=gpd.read_parquet(f"{SAVE_FOLDER}parajes_amort.parquet")
escuelas_parcelas_excl=gpd.read_parquet(f"{SAVE_FOLDER}escuelas_parcelas_excl.parquet")
escuelas_parcelas_amort=gpd.read_parquet(f"{SAVE_FOLDER}escuelas_parcelas_amort.parquet")
cuerpos_excl=gpd.read_parquet(f"{SAVE_FOLDER}cuerpos_excl.parquet")
cursos_excl=gpd.read_parquet(f"{SAVE_FOLDER}cursos_excl.parquet")
localidades_excl=gpd.read_parquet(f"../localidades_excl.parquet")
localidades_amort=gpd.read_parquet(f"../localidades_amort.parquet")
parajes_excl=gpd.read_parquet(f"../parajes_excl.parquet")
parajes_amort=gpd.read_parquet(f"../parajes_amort.parquet")
escuelas_parcelas_excl=gpd.read_parquet(f"../escuelas_parcelas_excl.parquet")
escuelas_parcelas_amort=gpd.read_parquet(f"../escuelas_parcelas_amort.parquet")
cuerpos_excl=gpd.read_parquet(f"../cuerpos_excl.parquet")
cursos_excl=gpd.read_parquet(f"../cursos_excl.parquet")

cuerpos=gpd.read_parquet(f"{SAVE_FOLDER}cuerpos.parquet")
localidades_parajes=gpd.read_parquet(f"{SAVE_FOLDER}localidades_parajes.parquet")
escuelas_parcelas=gpd.read_parquet(f"{SAVE_FOLDER}escuelas_parcelas.parquet")
reservas=gpd.read_parquet(f"{SAVE_FOLDER}reservas.parquet")
cuerpos=gpd.read_parquet(f"../cuerpos.parquet")
localidades_parajes=gpd.read_parquet(f"../localidades_parajes.parquet")
escuelas_parcelas=gpd.read_parquet(f"../escuelas_parcelas.parquet")
reservas=gpd.read_parquet(f"../reservas.parquet")

# puntos_interes=pd.concat([cuerpos,localidades_parajes,escuelas_parcelas,reservas])
puntos_interes=pd.concat([cuerpos,localidades_parajes,escuelas_parcelas])
Expand All @@ -254,16 +254,16 @@
total_excl.reset_index(inplace=True)
total_amort.reset_index(inplace=True)

total_excl.to_parquet(f"{SAVE_FOLDER}total_excl.parquet")
total_amort.to_parquet(f"{SAVE_FOLDER}total_amort.parquet")
total_excl.to_parquet(f"../total_excl.parquet")
total_amort.to_parquet(f"../total_amort.parquet")

total_excl_geojson=json.loads(total_excl.to_json(na="keep"))
total_amort_geojson=json.loads(total_amort.to_json(na="keep"))

with open(f'{SAVE_FOLDER}total_excl_geojson.pkl', 'wb') as f:
with open(f'../total_excl_geojson.pkl', 'wb') as f:
pickle.dump(total_excl_geojson, f, protocol=pickle.HIGHEST_PROTOCOL)

with open(f'{SAVE_FOLDER}total_amort_geojson.pkl', 'wb') as f:
with open(f'../total_amort_geojson.pkl', 'wb') as f:
pickle.dump(total_amort_geojson, f, protocol=pickle.HIGHEST_PROTOCOL)


Expand Down Expand Up @@ -292,22 +292,22 @@
################################################### RESERVAS ###########################################


reservas=gpd.read_file(f"{SAVE_FOLDER}Inputs/Reservas.geojson")
reservas=gpd.read_file(f"./Reservas.geojson")
reservas=reservas.reset_index()

#Agregar la palabra "Reserva" al nombre si no esta
reservas.loc[~reservas['Name'].str.contains("reserva", case=False),"Name"] = "Reserva "+reservas.loc[~reservas['Name'].str.contains("reserva", case=False),"Name"]
reservas.to_parquet(f"{SAVE_FOLDER}reservas.parquet")
reservas.to_parquet(f"../reservas.parquet")

#Transformar a json (para mapa) y guardar
reservas_geojson=json.loads(reservas.to_json(na="keep"))
with open(f'{SAVE_FOLDER}reservas_geojson.pkl', 'wb') as f:
with open(f'../reservas_geojson.pkl', 'wb') as f:
pickle.dump(reservas_geojson, f, protocol=pickle.HIGHEST_PROTOCOL)

################################################### CURSOS ###########################################

cursos=gpd.read_file(f"{SAVE_FOLDER}Inputs/cursos_agua.geojson")
cursos.to_parquet(f"{SAVE_FOLDER}cursos_agua.parquet")
cursos=gpd.read_file(f"./cursos_agua.geojson")
cursos.to_parquet(f"../cursos_agua.parquet")



Expand Down Expand Up @@ -413,5 +413,5 @@
amortiguacion=pd.concat([amortiguacion,amortiguacion_x])
amortiguacion.reset_index(inplace=True)

amortiguacion.to_parquet(f"{SAVE_FOLDER}amortiguacion.parquet")
exclusion.to_parquet(f"{SAVE_FOLDER}exclusion.parquet")
amortiguacion.to_parquet(f"../amortiguacion.parquet")
exclusion.to_parquet(f"../exclusion.parquet")
Loading

0 comments on commit bf3365a

Please sign in to comment.