这是我的尝试,但我得到了错误
"AttributeError: 'numpy.ndarray' object has no attribute 'contains'"
。你知道吗
如果你们中有人能帮助我理解如何在这段代码中定义'y'
,这样它就是一个numpy数组,1s对应于包含指定点的多边形索引,0s对应于不包含指定点的多边形索引,我将不胜感激。你知道吗
polygonss=[]
for i in range(0, len(verts)):
polygonc = Polygon(verts[i])
print (polygonc)
polygonss.append(polygonc)
print (polygonss)
p=np.array(polygonss)
print (p)
vertsf=meshinformation_fine.celltoverticesandcentroid(0)[0]
point = Point(vertsf[0])
y=np.where(p.contains(point), 0, 1)
print (y)
首先,错误信息实际上是阻止你成功的原因。
.ndarray object
只是没有那个属性contains
它将您的问题呈现给其中一个solutions,讨论如何检查元素是否在numpy数组中。你知道吗
如果我理解正确的话,有一件事可以代替contains:
注意:如果您为您的变量和预期输出添加示例性值,将会有所帮助。你知道吗
numpy对象数组在这里对您不是特别有用,您也可以使用列表来完成此过程
但是,如果你对大量的点这样做,那么我鼓励你阅读geopandas,它使你能够对几何图形进行矢量化计算,并将它们应用于表格数据。你知道吗
相关问题 更多 >
编程相关推荐