Calcula radios de influencia o distancias exactas entre clientes y almacenes cruzando mapas y datos estructurados.
Calculate influence zones or exact distances between customers and warehouses by combining maps and structured data.
Este ejercicio es solo para aprendizaje y pruebas. No ejecutes scripts contra datos reales, ambientes de producción, APIs externas, portales con login, datos sensibles, sistemas críticos o repositorios empresariales sin autorización, respaldos, pruebas previas, permisos mínimos, control de cambios y cumplimiento de los protocolos de ciberseguridad de tu organización.
This exercise is for learning and testing only. Do not run scripts against real data, production environments, external APIs, login portals, sensitive data, critical systems, or enterprise repositories without authorization, backups, prior testing, least-privilege permissions, change control, and compliance with your organization's cybersecurity protocols.
Usar GeoPandas para convertir puntos geográficos en geometrías y crear zonas de influencia alrededor de ubicaciones.
Use GeoPandas to convert geographic points into geometries and create influence zones around locations.
| cliente | lat | lon |
|---|---|---|
| Cliente A | 25.7617 | -80.1918 |
| Cliente B | 25.8576 | -80.2781 |
import geopandas as gpd
puntos = gpd.read_file("clientes.geojson")
puntos["zona_influencia"] = puntos.buffer(5000)| cliente | buffer_metros | status |
|---|---|---|
| Cliente A | 5000 | created |
| Cliente B | 5000 | created |
# ==========================================================
# Python Advanced Topic 19
# GPS Coordinate Calculations with GeoPandas
# ==========================================================
# pip install geopandas shapely pandas
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
df = pd.DataFrame({
"cliente": ["Cliente A", "Cliente B", "Cliente C"],
"lat": [25.7617, 25.8576, 25.7907],
"lon": [-80.1918, -80.2781, -80.1300]
})
geometry = [Point(xy) for xy in zip(df["lon"], df["lat"])]
gdf = gpd.GeoDataFrame(df, geometry=geometry, crs="EPSG:4326")
# Project to meters for buffer calculations
gdf_meters = gdf.to_crs(epsg=3857)
gdf_meters["zona_influencia"] = gdf_meters.geometry.buffer(5000)
gdf_meters.to_file("clientes_zona_influencia.geojson", driver="GeoJSON")
print(gdf[["cliente", "lat", "lon"]])
print("GeoJSON created: clientes_zona_influencia.geojson")cliente lat lon 0 Cliente A 25.7617 -80.1918 1 Cliente B 25.8576 -80.2781 2 Cliente C 25.7907 -80.1300 GeoJSON created: clientes_zona_influencia.geojson
Los cálculos geoespaciales permiten responder preguntas de cobertura, distancia y territorio que no se ven en tablas tradicionales.
Geospatial calculations answer coverage, distance, and territory questions that traditional tables do not reveal.