12-12-2020, 10:27 AM
Hola buenos días!
No sé si alguien me puede ayudar.
He utilizado estos datos a nivel mundial https://gadm.org/data.html
Lo que quiero es asociar a unas coordenadas un país.
Me salta el error: [color=var(--ansi-red)]ValueError[/color]: Null geometry supports no operations
Mi código es el siguiente:
import geopandas as gpd
import matplotlib.pyplot as plt
from shapely.geometry import Point, Polygon
# Filepaths
ub_shp = '/content/gadm36.shp'
# Read files
world = gpd.read_file(ub_shp, encoding='utf-8')
world.head()
#probamos con unas coordenadas
p_pais = Point(-177.75, -89.75)
for pais, poly in zip(world.NAME_0,world.geometry):
if p_pais.within(poly):
print(f"Esas coordenadas pertenencen al país: {pais}")
ERROR QUE ME SALTA:
Esas coordenadas pertenencen al país: Antarctica
[color=var(--ansi-red)]---------------------------------------------------------------------------
[color=var(--ansi-red)]ValueError[/color] Traceback (most recent call last)
[color=var(--colab-anchor-color)]<ipython-input-58-96d31c12442e>[/color] in [color=var(--ansi-cyan)]<module>[/color][color=var(--ansi-blue)]()[/color]
[color=var(--ansi-green)] 1[/color] [color=var(--ansi-green)]for[/color] pais[color=var(--ansi-blue)],[/color] poly [color=var(--ansi-green)]in[/color] zip[color=var(--ansi-blue)]([/color]world[color=var(--ansi-blue)].[/color]NAME_0[color=var(--ansi-blue)],[/color]world[color=var(--ansi-blue)].[/color]geometry[color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)]----> 2[/color] [color=var(--ansi-green)]if[/color] p_pais[color=var(--ansi-blue)].[/color]within[color=var(--ansi-blue)]([/color]poly[color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)] 3[/color] print[color=var(--ansi-blue)]([/color][color=var(--ansi-blue)]f"Esas coordenadas pertenencen al país: {pais}"[/color][color=var(--ansi-blue)])[/color]
[/color]
2 frames
[color=var(--colab-anchor-color)]/usr/local/lib/python3.6/dist-packages/shapely/topology.py in [color=var(--ansi-cyan)]_validate[color=var(--ansi-blue)](self, ob, stop_prepared)
[color=var(--ansi-green)] 16 [color=var(--ansi-green)]def _validate[color=var(--ansi-blue)](self[color=var(--ansi-blue)], ob[color=var(--ansi-blue)], stop_prepared[color=var(--ansi-blue)]=[/color][color=var(--ansi-green)]False[/color][color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)] 17[/color] [color=var(--ansi-green)]if[/color] ob [color=var(--ansi-green)]is[/color] [color=var(--ansi-green)]None[/color] [color=var(--ansi-green)]or[/color] ob[color=var(--ansi-blue)].[/color]_geom [color=var(--ansi-green)]is[/color] [color=var(--ansi-green)]None[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)]---> 18[/color] [color=var(--ansi-green)]raise[/color] ValueError[color=var(--ansi-blue)]([/color][color=var(--ansi-blue)]"Null geometry supports no operations"[/color][color=var(--ansi-blue)])[/color]
[color=var(--ansi-green)] 19[/color] [color=var(--ansi-green)]if[/color] stop_prepared [color=var(--ansi-green)]and[/color] hasattr[color=var(--ansi-blue)]([/color]ob[color=var(--ansi-blue)],[/color] [color=var(--ansi-blue)]'prepared'[/color][color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)] 20[/color] [color=var(--ansi-green)]raise[/color] ValueError[color=var(--ansi-blue)]([/color][color=var(--ansi-blue)]"Prepared geometries cannot be operated on"[/color][color=var(--ansi-blue)])[/color]
[color=var(--ansi-red)]ValueError[/color]: Null geometry supports no operations[/color]
[/color][/color][/color][/color][/color][/color][/color]
Muchas gracias de antemano!!
No sé si alguien me puede ayudar.
He utilizado estos datos a nivel mundial https://gadm.org/data.html
Lo que quiero es asociar a unas coordenadas un país.
Me salta el error: [color=var(--ansi-red)]ValueError[/color]: Null geometry supports no operations
Mi código es el siguiente:
import geopandas as gpd
import matplotlib.pyplot as plt
from shapely.geometry import Point, Polygon
# Filepaths
ub_shp = '/content/gadm36.shp'
# Read files
world = gpd.read_file(ub_shp, encoding='utf-8')
world.head()
#probamos con unas coordenadas
p_pais = Point(-177.75, -89.75)
for pais, poly in zip(world.NAME_0,world.geometry):
if p_pais.within(poly):
print(f"Esas coordenadas pertenencen al país: {pais}")
ERROR QUE ME SALTA:
Esas coordenadas pertenencen al país: Antarctica
[color=var(--ansi-red)]---------------------------------------------------------------------------
[color=var(--ansi-red)]ValueError[/color] Traceback (most recent call last)
[color=var(--colab-anchor-color)]<ipython-input-58-96d31c12442e>[/color] in [color=var(--ansi-cyan)]<module>[/color][color=var(--ansi-blue)]()[/color]
[color=var(--ansi-green)] 1[/color] [color=var(--ansi-green)]for[/color] pais[color=var(--ansi-blue)],[/color] poly [color=var(--ansi-green)]in[/color] zip[color=var(--ansi-blue)]([/color]world[color=var(--ansi-blue)].[/color]NAME_0[color=var(--ansi-blue)],[/color]world[color=var(--ansi-blue)].[/color]geometry[color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)]----> 2[/color] [color=var(--ansi-green)]if[/color] p_pais[color=var(--ansi-blue)].[/color]within[color=var(--ansi-blue)]([/color]poly[color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)] 3[/color] print[color=var(--ansi-blue)]([/color][color=var(--ansi-blue)]f"Esas coordenadas pertenencen al país: {pais}"[/color][color=var(--ansi-blue)])[/color]
[/color]
2 frames
[color=var(--colab-anchor-color)]/usr/local/lib/python3.6/dist-packages/shapely/topology.py in [color=var(--ansi-cyan)]_validate[color=var(--ansi-blue)](self, ob, stop_prepared)
[color=var(--ansi-green)] 16 [color=var(--ansi-green)]def _validate[color=var(--ansi-blue)](self[color=var(--ansi-blue)], ob[color=var(--ansi-blue)], stop_prepared[color=var(--ansi-blue)]=[/color][color=var(--ansi-green)]False[/color][color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)] 17[/color] [color=var(--ansi-green)]if[/color] ob [color=var(--ansi-green)]is[/color] [color=var(--ansi-green)]None[/color] [color=var(--ansi-green)]or[/color] ob[color=var(--ansi-blue)].[/color]_geom [color=var(--ansi-green)]is[/color] [color=var(--ansi-green)]None[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)]---> 18[/color] [color=var(--ansi-green)]raise[/color] ValueError[color=var(--ansi-blue)]([/color][color=var(--ansi-blue)]"Null geometry supports no operations"[/color][color=var(--ansi-blue)])[/color]
[color=var(--ansi-green)] 19[/color] [color=var(--ansi-green)]if[/color] stop_prepared [color=var(--ansi-green)]and[/color] hasattr[color=var(--ansi-blue)]([/color]ob[color=var(--ansi-blue)],[/color] [color=var(--ansi-blue)]'prepared'[/color][color=var(--ansi-blue)])[/color][color=var(--ansi-blue)]:[/color]
[color=var(--ansi-green)] 20[/color] [color=var(--ansi-green)]raise[/color] ValueError[color=var(--ansi-blue)]([/color][color=var(--ansi-blue)]"Prepared geometries cannot be operated on"[/color][color=var(--ansi-blue)])[/color]
[color=var(--ansi-red)]ValueError[/color]: Null geometry supports no operations[/color]
[/color][/color][/color][/color][/color][/color][/color]
Muchas gracias de antemano!!