Skip to main content

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)

  1. NaNs en geometry
  2. Columna geometry activa (set_geometry)
  3. CRS consistente entre capas
  4. Merge que preserva geometry (o reconstituir GeoDataFrame)
  5. 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 con pandas.DataFrame puede degradar la GeoSeries a object. Reconstruí el GeoDataFrame.

Complementa: /metodos/geo_integration_methods (CRS canónico, claves y normalización).

(Ref: prechecks de NaN y `set_geometry` tras merges). <!-- removed contentReference -->