ArcGIS Python 操作地图的基础入门笔记
前沿:首先需要确保你的ArcGIS 安装成功,ArcPy 也会默认安装成功,本文只对软件内带有的Python模块操作。
(1)打开ArcMap 随便加载一个已有的地图文件,我这里是“林地面积指标完成情况.mxd”,你可以打开自己的地图。
(2)在Desktop 界面上找到Python的按钮,打开IDE界面,如下图:
(3)开始写代码了,注意啊,敲黑板了:
# 导入地图模块, 打印地图标题
import arcpy.mapping as mapping
print mxd.title
输出结果:林地面积指标完成情况
# 可以将地图保存到指定路径下
mxd.saveACopy("D:/test.mxd")
可以到指定路径下查看是否保存。
# 获取地图中包含的图层信息列表
layer = mapping.ListLayers(mxd)
>>> for lyr in layer:
print(lyr.name) # 打印每个图层的名称
输出结果:
research_2017_Union
research_2017
tree_area_2015
landuse_map_2015
# 如果想要获取带有条件约束的图层,则加上名称正则
layer_1 = mapping.ListLayers(mxd,'research_2017_U*',frames)
for ly in layer_1:
print(ly.name)
输出结果:
research_2017_Union
# 将地图导出为图片,有各种支持的格式.jpg .png .tif等
data = mapping.ExportToJPEG(mxd,'D:/mxd_output_jpg.jpg')
可以到制定的路径下去查看是否成功
(4)获取地图里的数据:
实际上某图层内包含的数据属性信息如下图
import arcpy.da
with arcpy.da.SearchCursor("DLTB_土地利用现状_耕地",("Name")) as cursor:
for row in sorted(cursor):
print(row)
输出结果:
这是为什么呢?为什么呢?数据呢?
应该是编码问题,度娘查了一下,应该修改一下编码方式;
with arcpy.da.SearchCursor("DLTB_土地利用现状_耕地",("Name")) as cursor:
... for row in sorted(cursor):
... str = row[0].encode("gb2312").decode("gb2312")
... print(str)
输出结果:
耕地
耕地
大功告成!此处有掌声~~~~~
要想一次读取不止一个属性字段,就要修改一点点
with arcpy.da.SearchCursor("DLTB_土地利用现状_耕地",("Name","XING_ZHENG_QU_HUA")) as cursor:
... for row in sorted(cursor):
... str = row[1].encode("gb2312").decode("gb2312")
... print(str)
输出结果:
包头市
包头市
包头市
包头市
好了,今天就先这样吧,吃饭去了
转载自:https://blog.csdn.net/gwj992/article/details/84108925