GeoPandas plot — pre-checks
Propósito
Checklist rápido antes de plotear con GeoPandas: geometry
activa, NaNs, CRS y merges que degradan tipos.
Checklist (mínimo)
- NaNs en geometry
- Columna geometry activa (
set_geometry
) - CRS consistente entre capas
- Merge que preserva geometry (o reconstituir
GeoDataFrame
) - Plot de humo para descartar aspect ratio/coords inválidas
Snippets
1) NaNs y limpieza
# conteo de NaNs
n_nan = gdf['geometry'].isna().sum()
if n_nan:
print(f"[warn] {n_nan} geometrías NaN → se dropean para plot")
gdf = gdf.dropna(subset=['geometry'])
2) Activar columna geometry tras un merge
# si tras el merge la geometry quedó como object, reactivarla:
if 'geometry' in merged.columns:
gdf = geopandas.GeoDataFrame(merged, geometry='geometry', crs=ref_gdf.crs)
else:
raise ValueError("No se encontró columna 'geometry' luego del merge")
3) CRS y smoke-plot
assert gdf.crs is not None, "CRS ausente: definir o heredar de la capa fuente"
ax = gdf.plot() # smoke-plot
4) Merge que pierde geometry (patrón seguro)
# preferible: unir atributos tabulares a la capa geo, no al revés
attrs = attrs_df.set_index('CLAVE')
gdf = ref_gdf.set_index('CLAVE').join(attrs, how='left').reset_index()
gdf = gdf.set_geometry('geometry') # por si GeoPandas perdió el activo
Pitfalls comunes
- Aspect ratio ≤ 0 al plotear: suele ser geometry NaN o CRS roto.
merge
conpandas.DataFrame
puede degradar laGeoSeries
aobject
. Reconstruí elGeoDataFrame
.
Complementa: /metodos/geo_integration_methods (CRS canónico, claves y normalización).
(Ref: prechecks de NaN y `set_geometry` tras merges). <!-- removed contentReference -->