赞
踩
1.查询gdb格式文件内某个文件所具有的字段属性和相关类型和长度
import arcpy
arcpy.env.workspace = "C:/ArcpyBook/data/CityOfSanAntonio.gdb" “确定工作空间”
try:
fieldList = arcpy.ListFields("Burglary")
for fld in fieldList:
print "%s is a type of %s with a length of %i" % (fld.name, fld.type, fld.length)
except Exception as e:
print(e.message)
2.保存副本工程.mxd;以及更改地图文档标题
import arcpy.mapping as mapping “引入arcpy”
mxd = mapping.MapDocument("CURRENT") “获取当前地图文档” “也可引用绝对路径”
print(mxd.title)
mxd.title = "Copy of Crime Project" “更改地图文档名称”
mxd.saveACopy("c:/ArcpyBook/Ch2/crime_copy.mxd") “保存工程副本”
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
for df in mapping.ListDataFrames(mxd): “文本框”
if (df.name == 'Crime'):
layers = mapping.ListLayers(mxd,"Burg*",df) “列表函数ListLayers”“通配符Burg*”
for layer in layers:
print(layer.name)
4.缩放至所选要素
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
df = mapping.ListDataFrames(mxd,"Crime")[0]
layer = mapping.ListLayers(mxd,"Burglaries*",df)[0]
df.extent = layer.getSelectedExtent()
import arcpy.mapping as mapping
... mxd = mapping.MapDocument("CURRENT")
... mxd.activeDataFrame.zoomToSelectedFeatures() “当前活动的框”
5.定义查询
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
for df in mapping.ListDataFrames(mxd):
if (df.name == 'Crime'):
layers = mapping.ListLayers(mxd,'Crime Density by School District',df)
for layer in layers:
query = '"NAME" = \'Lackland ISD\''
layer.definitionQuery = query
df.extent = layer.getExtent()
6.添加图层到数据框
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
df = mapping.ListDataFrames(mxd, "Crime")[0]
layer=mapping.Layer("C:\ArcpyBook\data\School_Districts.lyr")
mapping.AddLayer(df,layer,"AUTO_ARRANGE")
7.插入图层到地图文档
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
df = mapping.ListDataFrames(mxd, "Crime")[0]
refLayer = mapping.ListLayers(mxd, "Burglaries*", df)[0]
insertLayer = mapping.Layer(r"C:\ArcpyBook\data\CityOfSanAntonio.gdb\Crimes2009")
mapping.InsertLayer(df,refLayer,insertLayer,"BEFORE")
8.更新图层的符号系统
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
df = mapping.ListDataFrames(mxd, "Crime")[0]
updateLayer = mapping.ListLayers(mxd,"Crime Density by School District",df)[0]
sourceLayer = mapping.Layer(r"C:\ArcpyBook\data\CrimeDensityGradSym.lyr")
mapping.UpdateLayer(df,updateLayer,sourceLayer,True)
9.更新图层的属性
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
df = mapping.ListDataFrames(mxd, "Crime")[0]
updateLayer = mapping.ListLayers(mxd,"Crimes2009",df)[0]
sourceLayer = mapping.Layer(r"C:\ArcpyBook\data\BurglariesNoForcedEntry.lyr")
mapping.UpdateLayer(df,updateLayer,sourceLayer,False)
10.操作数据框中启用时间的图层
import arcpy.mapping as mapping, os
mxd = mapping.MapDocument("CURRENT")
df = mapping.ListDataFrames(mxd, "Crime")[0]
dft = df.time
dft.currentTime = dft.startTime
while dft.currentTime <= dft.endTime:
fileName = str(dft.currentTime).split(" ")[0] + ".pdf"
mapping.ExportToPDF(mxd,os.path.join(r"C:\ArcpyBook\Ch2", fileName))
print "Exported " + fileName
dft.currentTime = dft.currentTime + dft.timeStepInterval
11.修复数据源
import arcpy.mapping as mapping
mxd = mapping.MapDocument(r"c:\ArcpyBook\Ch3\Crime_BrokenDataLinks.mxd")
mxd.findAndReplaceWorkspacePaths(r"C:\ArcpyBook\Ch3\Data\OldData\CityOfSanAntonio.gdb", r"C:\ArcpyBook\Data\CityOfSanAntonio.gdb") “被查找位置”
mxd.saveACopy(r"C:\ArcpyBook\Ch3\Crime_DataLinksFixed.mxd")
12.将文件地类数据库gdb 转换为个人地理数据库mdb
import arcpy.mapping as mapping
mxd = mapping.MapDocument(r"c:\ArcpyBook\Ch3\Crime_DataLinksFixed.mxd")
mxd.replaceWorkspaces(r"c:\ArcpyBook\data\CityOfSanAntonio.gdb", "FILEGDB_WORKSPACE",r"c:\ArcpyBook\new_data\CityOfSanAntonio_Personal.mdb","ACCESS_WORKSPACE")
mxd.saveACopy(r"c:\ArcpyBook\Ch3\Crime_DataLinksUpdated.mxd")
13.单个图层的数据源修复
import arcpy.mapping as mapping
mxd = mapping.MapDocument(r"c:\ArcpyBook\Ch3\Crime_DataLinksLayer.mxd")
df = mapping.ListDataFrames(mxd,"Crime")[0]
lyr = mapping.ListLayers(mxd,"Burglary",df)[0]
lyr.replaceDataSource(r"c:\ArcpyBook\data","SHAPEFILE_WORKSPACE","Burglaries_2009")
mxd.saveACopy(r"c:\ArcpyBook\Ch3\Crime_DataLinksNewLayer.mxd")
14.查找文件中所有地图文档丢失的数据源
import arcpy.mapping as mapping, os
f = open('BrokenDataList.txt', 'w')
for root, dirs, files in os.walk("c:\ArcpyBook"):
for name in files:
filename = os.path.join(root, name)
if ".mxd" in filename:
mxd = mapping.MapDocument(filename)
f.write("MXD: " + filename + "\n")
brknList = mapping.ListBrokenDataSources(mxd)
for brknItem in brknList:
print("Broken data item: " + brknItem.name + " in " + filename)
f.write("\t" + brknItem.name + "\n")</
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。