如何使用Arcpy获取文件夹内shapefile几何质心的最小纬度
实现方案
你可以用arcpy.da.SearchCursor读取每个要素的质心坐标,遍历所有要素后筛选出最小纬度值即可,不需要调用额外的地理处理工具。
修改后可直接运行的代码
import arcpy arcpy.env.overwriteOutput = True arcpy.env.workspace = r"C:\Users\username\dataset_folder" for fc in arcpy.ListFeatureClasses(): # 初始化最小纬度为无穷大 min_lat = float('inf') # 用搜索游标遍历所有要素,SHAPE@XY返回(x, y)元组,y值对应纬度 with arcpy.da.SearchCursor(fc, ["SHAPE@XY"]) as cursor: for row in cursor: centroid_y = row[0][1] if centroid_y < min_lat: min_lat = centroid_y # 打印结果 print(f"要素类名称:{fc},质心最小纬度:{min_lat}")
注意事项
- 使用
with语句调用游标会自动释放资源,不需要手动删除游标和行对象 - 如果你的shapefile使用的是投影坐标系,
SHAPE@XY返回的y值是投影坐标系下的北距,若需要WGS84等地理坐标系的纬度,可以在调用游标时添加空间参考转换参数,写法参考:with arcpy.da.SearchCursor(fc, ["SHAPE@XY"], spatial_reference=arcpy.SpatialReference(4326)) as cursor:
其中4326是WGS84坐标系的EPSG编码,可替换为你需要的目标地理坐标系编码 - 如果存在空要素类的情况,
min_lat会保持无穷大,可根据业务需要添加空要素类判断逻辑。
内容的提问来源于stack exchange,提问作者puredata
相关产品推荐
相关产品推荐

