Arcgis常用功能 Python脚本
对一些常用功能的python脚本进行总结,方便以后直接调用。
1. 根据属性值删除行
arcpy.MakeFeatureLayer_management(outputpath, "parcels_lyr")#根据输入要素类或图层创建临时图层,如果不将此图层保持到磁盘或地图文档,该图层在会话结束后将不会继续存在。
arcpy.SelectLayerByAttribute_management("parcels_lyr", "NEW_SELECTION", '"field" < 4')#按属性表选择图层
arcpy.DeleteRows_management("parcels_lyr") #删除上一级选定的行
2. 添加字段
try:
arcpy.AddField_management(in_table, "field_name", "field_type")
except:field_name
arcpy.DeleteField_management(in_table, "field_name")
arcpy.AddField_management(in_table, "field_name", "field_type")
官方链接
字段类型
TEXT —任何字符串。
FLOAT — 在 -3.4E38 和 1.2E38 之间的小数。
DOUBLE — 在 -2.2E308 和 1.8E308 之间的小数。
SHORT — 在 -32,768 和 32,767 之间的整数。
LONG — 在 -2,147,483,648 和 2,147,483,647 之间的整数。
DATE —日期和/或时间。
BLOB —长二进制数序列。您需要一个自定义的加载器、查看器或第三方应用程序将这些项加载到 BLOB 字段中或者查看 BLOB 字段的内容。
RASTER —栅格影像。可以存储 ArcGIS 软件支持的所有栅格数据集格式,但强烈建议您仅使用小影像。
GUID —全局唯一标识符。
3 .计算要素面积、长度
try:
arcpy.AddField_management(in_table, "field_name", "field_type")
except:field_name
arcpy.DeleteField_management(in_table, "field_name")
arcpy.AddField_management(in_table, "field_name", "field_type")
express = "!SHAPE.area@squaremeter!" # !shape.length@kilometers!
arcpy.CalculateField_management (in_table, "field_name", express, "PYTHON_9.3") #计算字段
官方链接
面积测量单位关键字:
ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | SQUAREMAPUNITS
英亩 | 公亩 | 公顷 | 平方厘米 | 平方分米 | 平方英寸 | 平方英尺 | 平方千米 | 平方米 | 平方英里 | 平方毫米 | 平方码 | 平方地图单位
线性测量单位关键字:
CENTIMETERS | DECIMALDEGREES | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | POINTS | UNKNOWN | YARDS
厘米 | 十进制度 | 分米 | 英尺 | 英寸 | 千米 | 米 | 英里 | 毫米 | 海里 | 磅 | 未知 | 码
4. 将图层文件添加到mxd中
不设置符号系统
tempmxd = r"D:\xxx\xxx\temp.mxd" #空的mxd的路径
mxd = arcpy.mapping.MapDocument(tempmxd)
df = arcpy.mapping.ListDataFrames(mxd)[0]
layer = arcpy.mapping.Layer(inputfiles) #
arcpy.mapping.AddLayer(df, layer) #将图层文件添加到地图文档中
arcpy.RefreshTOC()
arcpy.RefreshActiveView()
mxd.saveACopy(resultMxd)
设置符号系统
tempmxd = r"D:\xxx\xxx\xxx.mxd" #空的mxd的路径
layerFile = r"D:\xxx\xxx\xxx.lyr" #图层文件
mxd = arcpy.mapping.MapDocument(tempmxd)
layer = arcpy.mapping.Layer(inputfiles)
df = arcpy.mapping.ListDataFrames(mxd)[0]
arcpy.mapping.AddLayer(df, layer)
layer1 = arcpy.mapping.ListLayers(mxd, "name", df)[0]
arcpy.ApplySymbologyFromLayer_management(layer1, layerFile)
arcpy.RefreshTOC