arcgis pro之arcpy使用记录

所有函数在使用前应该在ArcGIS Pro Python 参考—ArcGIS Pro | 文档查看详细的功能说明以及对应的参数解释,本文只记录实现特定功能时所需调用的函数以及使用过程中的注意事项,避免在遇到某些需求时像无头苍蝇一样。

读取文件

栅格数据
# 读取哨兵2号文件,可以直接读取xml文件,默认返回10m分辨的栅格
s2_10m = arcpy.Raster("E:\\S2B_MSIL2A_*_*_*_*_*.SAFE\\MTD_MSIL2A.xml")
# 获取s2_10m在x方向的cell size
cellsizex = arcpy.management.GetRasterProperties(s2_10m, 'CELLSIZEX').getOutput(0)
shapefile

​ 不需要显式的读取shp,给出shp的路径,在需要shp时,直接传入路径即可

path_shp = "E:\\roi.shp"
s2_clip = arcpy.sa.ExtractByMask(s2_10m, path_shp, "INSIDE")  # 利用roi提取s2_10m的对应区域

创建要素

​ 目前用到了创建点、圆、圆的外接矩形

创建点

​ 给出的点坐标要与坐标系对应,比如给出了点的经纬度,点的坐标系就应该是合适的地理坐标系,不能为如UTM等投影坐标系,即点的真实坐标系与属性坐标系一致,理解不同坐标系之间的区别,参考科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文 (sciencenet.cn)

pnt = arcpy.Point(125.2, 44.7)  # 创建点,不是点要素
pnt_fc = arcpy.PointGeometry(pnt_93, spatial_reference=sr)  # sr为点坐标对应的坐标系
arcpy.management.CopyFeatures(pnt_fc, path_dst)  # 保存为shp
创建圆

​ 创建圆要用Buffer实现

circle_fc = arcpy.management.CreateFeatureclass(dir_save, name_save, 'POLYGON', spatial_reference=sr)  # 创建一个面要素类
circle = arcpy.analysis.Buffer(pnt_fc, circle_fc, "3000 Meters")  # 以pnt_fc为圆心,画一个半径为3000m的圆,结果保存到circle_fc
创建外接矩形
arcpy.management.MinimumBoundingGeometry(circle, path_dst, "ENVELOPE", "NONE", None, "MBG_FIELDS")

一些操作

按mask提取

​ 用ExtractByMask会在工作空间自动生成tif文件,目前没找到如何自定义生成文件的名称,利用save可以自定义保存路径及文件名

with arcpy.EnvManager(cellSize=s2_10m):  # 设置cellsize与s2_10m一致
    rect_raster = arcpy.sa.ExtractByMask(raster, mask, "INSIDE")
    rect_raster.save(path_save)
创建渔网
# origin_coord为渔网的原点,可以自定义或者从模板栅格中读取一个顶点作为原点;
# y_coord为y轴的方向,不能与origin_coord相同,如果渔网不旋转,x可以与origin_coord相同,y在y轴正向加一个值即可
# origin_coord,y_coord均为字符串格式,如"123.3333 44.444"
# 如果规定了cell_width, cell_height,则number_rows,number_columns应该留空,反之亦然
arcpy.management.CreateFishnet(path_save, origin_coord, y_coord, cell_width, cell_height, number_rows, number_columns, template=rect_raster, labels='LABELS', geometry_type="POLYGON")
生成近邻表
# 计算near中元素到origin中元素的距离
arcpy.analysis.GenerateNearTable(origin, near, path_dst, None, "LOCATION", "NO_ANGLE", "ALL", 0, "GEODESIC")
# 保存为dbf格式,arcgis可以读取
arcpy.conversion.TableToTable(src_table, dir_dst, name_dst)
表与属性表关联
# 按照src_table里的NEAR_FID字段与dst_table里的FID字段的对应关系,将src_table数据关联到dst_table
joined = arcpy.management.JoinField(dst_table, "FID", src_table, "NEAR_FID")
shapefile转栅格
# 将src转为栅格,利用NEAR_DIST字段给栅格文件赋值,保存到dst
arcpy.conversion.PolygonToRaster(src, "NEAR_DIST", dst, "CELL_CENTER", "NONE", 10, "BUILD")
读取栅格为numpy array
array = arcpy.RasterToNumPyArray(raster,nodata_to_value=1000)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ArcGIS 10.2 arcpy是一种用于Python编程语言的模块,可用于与ArcGIS软件交互和自动化地理信息系统(GIS)任务。通过arcpy,用户可以通过编写脚本来创建、编辑和分析GIS数据。 ArcGIS 10.2是Esri公司开发的一个GIS软件套件的版本,提供了一系列工具和功能,允许用户处理和分析地理空间数据。arcpyArcGIS的一部分,它为开发人员和用户提供了全面的GIS处理和分析能力。 利用arcpy,用户可以进行各种GIS操作,例如: 1. 数据管理:使用arcpy可以创建、复制、移动、删除和查找GIS数据。用户可以创建年度的地理数据库,将数据从一个地理数据库复制到另一个地理数据库,并且可以根据不同的条件查询数据。 2. 数据分析:arcpy提供了许多地理专题分析工具,如缓冲区分析、空间查询和地理加权回归等。用户可以编写脚本来操作数据,获得所需的结果。 3. 地图生成:arcpy还提供了创建和编辑地图文档的功能。用户可以自动创建并操纵地图文档中的图层,设置符号、标注和样式等。 4. 地理处理:用户可以使用arcpy来执行各种地理处理任务,例如地图代数、栅格计算、空间插值等。对于大规模的地理处理任务,arcpy还支持多线程操作,提高处理速度。 总之,arcpyArcGIS 10.2中一种强大的工具,它提供了许多方便的功能和操作,使用户能够更高效地处理和分析GIS数据。通过使用Python编程语言,用户可以编写脚本来自动化GIS任务,并结合arcpy的功能来实现各种地理空间分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值