如何在 Pysal 中使用 Shapefile
How to use Shapefile in Pysal
我想要在给定多边形中相交的点的结果,但出现错误。
我的代码是:
from pysal.cg.standalone import get_polygon_point_intersect
poly=pysal.open('Busroute_buffer.shp')
point=pysal.open('pmpml_24.shp')
i=get_polygon_point_intersect(poly,point)
但我收到错误消息:
'PurePyShpWrapper' object has no attribute 'bounding_box'
pysal.open
return 是形状 "file" 对象,而不是形状。
要获取形状,您需要遍历文件,或调用文件的读取方法,return这是一个形状列表。即使您的文件中只有 1 个形状,这也会 return 一个列表。 get_polygon_point_intersect
恰好需要 1 个多边形和 1 个点,因此您需要为每个要比较的 point/polygon 调用它。
point_file = pysal.open('points.shp')
polygon_file = pysal.open('polygons.shp')
# .read with no arguments returns a list of all shapes in the file.
polygons = polygon_file.read()
for polygon in polygons:
# for x in shapefile: iterates over each shape in the file.
for point in point_file:
if get_polygon_point_intersect(polygon, point):
print point, 'intersects with', polygon
还有其他可能更有效的方法可以做到这一点。有关详细信息,请参阅 pysal.cg.locators
。
*以上代码未经测试,仅供参考。
我想要在给定多边形中相交的点的结果,但出现错误。
我的代码是:
from pysal.cg.standalone import get_polygon_point_intersect
poly=pysal.open('Busroute_buffer.shp')
point=pysal.open('pmpml_24.shp')
i=get_polygon_point_intersect(poly,point)
但我收到错误消息:
'PurePyShpWrapper' object has no attribute 'bounding_box'
pysal.open
return 是形状 "file" 对象,而不是形状。
要获取形状,您需要遍历文件,或调用文件的读取方法,return这是一个形状列表。即使您的文件中只有 1 个形状,这也会 return 一个列表。 get_polygon_point_intersect
恰好需要 1 个多边形和 1 个点,因此您需要为每个要比较的 point/polygon 调用它。
point_file = pysal.open('points.shp')
polygon_file = pysal.open('polygons.shp')
# .read with no arguments returns a list of all shapes in the file.
polygons = polygon_file.read()
for polygon in polygons:
# for x in shapefile: iterates over each shape in the file.
for point in point_file:
if get_polygon_point_intersect(polygon, point):
print point, 'intersects with', polygon
还有其他可能更有效的方法可以做到这一点。有关详细信息,请参阅 pysal.cg.locators
。
*以上代码未经测试,仅供参考。