Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 1.3 KB

File metadata and controls

27 lines (21 loc) · 1.3 KB

--- PIPELINE DE PROCESAMIENTO ---

1. Extracción: Carga de geometría y tablas alfanuméricas

deps_sdf = pd.DataFrame.spatial.from_featureclass(shp_path) data_df = pd.DataFrame.spatial.from_table(table_path)

2. Transformación: Normalización de llaves y Left Join (1:M)

data_df['COD_DPTO_O'] = data_df['COD_DPTO_O'].astype(str) join_df = deps_sdf.merge(data_df, left_on='ID', right_on='COD_DPTO_O', how='left')

3. Left Join

Se utiliza la función merge de Pandas para unir la geometría (izquierda) con los datos (derecha). how='left' asegura que conservamos todos los departamentos, haya o no datos de lesionados.

join_resultado = departamentos_sdf.merge( lesionados_df, left_on='ID', # Llave primaria en el Shapefile (Polígonos) right_on='COD_DPTO', # Llave foránea en la Tabla (Estadísticas) how='left' )

Al ser una relación 1:M, el DataFrame resultante crece en filas: [1 Departamento] x [N Años de registros] = N Filas con geometría repetida.

4. Ingeniería de Atributos: Limpieza y formato temporal

join_df['Fecha'] = pd.to_datetime(join_df['Año'].fillna(0).astype(int).astype(str) + '-01-01') final_df = join_df[['ID', 'NAME', 'Fecha', 'Numero_Casos', 'SHAPE']]

5. Carga: Persistencia en la Geodatabase de salida

final_df.spatial.to_featureclass(location=output_path)