如何解决osmnx.geometries_from_polygon 返回 ValueError:真值系列不明确
因此,我尝试下载西班牙领土的所有 OSM 实体,并带有“leisure=park”或“amenity=park”标签。我首先编写了一个函数,按市政当局执行它,但它在 12 小时后超时。我尝试了一种新方法,该方法包括一方面溶解半岛中的所有多边形,另一方面溶解加那利群岛中的所有多边形,但它无法确定几何图形是否有效。这是我正在运行的代码和结果。
import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt
import osmnx as ox
# disolver capas vectoriales para bajada
def disolver(gdf):
""" Dissolves a polygon layer in a single multipolygon"""
gdfdis = gdf.copy()
gdfdis["dis"] = 1
gdfdis = gdfdis.dissolve(by="dis").reset_index()
gdfdis = gdfdis.drop("dis",axis=1)
gdfdis = gdfdis.buffer(0)
return gdfdis
candis = disolver(muniscan)
candis.plot()
plt.show()
pendis = disolver(munispen)
pendis.plot()
plt.show()
这正确地绘制了两个多边形。
pendis.geometry.is_valid
candis.geometry.is_valid
0 True
dtype: bool
0 True
dtype: bool
然后我尝试下载数据,但出现以下错误
# definir etiquetas
tags = {"amenity": "park","leisure": "park"}
# bajar datos
parquespen = ox.geometries.geometries_from_polygon(pendis,tags=tags)
parquescan = ox.geometries.geometries_from_polygon(candis,tags=tags)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-29-c6b4fd6cf689> in <module>
3 # bajar datos
4 #parquespen = ox.geometries.geometries_from_polygon(pendis,tags=tags)
----> 5 parquescan = ox.geometries.geometries_from_polygon(candis,tags=tags)
C:\ProgramData\Anaconda3\envs\gds\lib\site-packages\osmnx\geometries.py in geometries_from_polygon(polygon,tags)
249 other custom settings via ox.config().
250 """
--> 251 # verify that the geometry is valid and a Polygon/MultiPolygon
252 if not polygon.is_valid:
253 raise ValueError("The geometry of `polygon` is invalid")
C:\ProgramData\Anaconda3\envs\gds\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
1440 def __nonzero__(self):
1441 raise ValueError(
-> 1442 f"The truth value of a {type(self).__name__} is ambiguous. "
1443 "Use a.empty,a.bool(),a.item(),a.any() or a.all()."
1444 )
ValueError: The truth value of a Series is ambiguous. Use a.empty,a.any() or a.all().
这对两个变量都会发生(尝试注释掉第一个变量,如您所见),我不确定为什么会发生这种情况。有任何想法吗? 非常感谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。