arcgis批量出图python代码_利用arcpy批量出图(arcgis10.0)

第二个版本:

#用途:将一个文件夹中的所有mxd文件(包括所有子目录中的mxd文件)导出成jpg图片,并存储到该文件夹下。

import arcpy, os, time

path = r'D:/workspace'

res = 200

print '程序开始:' + str(time.ctime())

for root, dirs, files in os.walk(path):

for afile in files:

if afile[-4:].lower() == '.mxd':

mxd = arcpy.mapping.MapDocument(os.path.join(root,afile))

arcpy.mapping.ExportToJPEG(mxd, os.path.join(path,afile[:-3] + 'jpg'), resolution = res)

del mxd

print '程序结束:' + str(time.ctime())

———————————————————————————————————————————————————

说明:

1.对于方法二可以将path改成root,这样就可以将jpg文件放入每一个mxd对应的目录下面,而不是放到path制定的目录下面。

2.使用filegeodatabase比personalgeodatabase导出时会有效率上的提升,以我的图按dpi=10来算有10%的提升。

——————————————————————————————————————————————————

———————————————————————————————————————————————————

另外作者弄了个改进版,增加了出图后自动关机功能:

import arcpy, os, timepath = ur'C:Documents and SettingsAdministrator桌面导图'res = 100#mode1可选值为0或1,0表示导出path这个目录及其所有层次子目录中的mxd,1表示只导出path这个目录的mxd文件。mode1 = 0#mode2可选值为0或1,0表示mxd导出的图片放到与mxd相同的文件夹下,1表示放到path下面。mode2 = 0#mode3可选值为0或1,0表示导图结束后不关机,1表示结束后关机。mode3 = 0def main():

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个简单的ArcGIS批量Python代码示例: ```python import arcpy # 设置工作空间 arcpy.env.workspace = "C:/data" # 设置地文档 mxd = arcpy.mapping.MapDocument("C:/data/myMap.mxd") # 设置输文件夹 out_folder = "C:/output" # 获取地文档中的所有数据框 data_frames = arcpy.mapping.ListDataFrames(mxd) # 循环遍历每个数据框 for data_frame in data_frames: # 设置输文件名 out_name = data_frame.name + ".png" # 设置输路径 out_path = out_folder + "/" + out_name # 设置输分辨率 dpi = 300 # 导 arcpy.mapping.ExportToPNG(mxd, out_path, data_frame, resolution=dpi) # 释放地文档对象 del mxd ``` 这个代码将遍历地文档中的所有数据框,并将它们导为PNG格式的像文件。输文件将保存在指定的输文件夹中,并使用数据框名称作为文件名。您可以根据需要修改输文件格式、输路径、分辨率等参数。 ### 回答2: ArcGIS是一个强大的地理信息系统软件包,它拥有很多强大的功能,其中之一是批量。在ArcGIS中,批量是一种将多个地制品一次性制作成多个文件的方法,以提高地制作效率和减少制作时间的一种方式。Python是一种非常好的编程语言,可以批量生成地。以下是一些编写ArcGIS批量Python代码的步骤: 1. 导入ArcGIS Python库 首先需要导入ArcGISPython库。 在Python代码的第一行中,使用以下代码导入ArcGIS Python库: ``` import arcpy.mapping as mapping ``` 2. 设置输路径 接下来需要设置输路径。可以使用以下代码将输路径设置为环境变量中的默认值: ``` arcpy.env.overwriteOutput = True arcpy.env.workspace = "C:/ArcGIS/Output/" ``` 3. 配置地属性 接下来需要配置地属性,如地名称、例、文本框等属性。可以使用以下代码创建地框架: ``` mapDoc = "C:/ArcGIS/Input/Map.docx" mxd = mapping.MapDocument(mapDoc) df = mapping.ListDataFrames(mxd)[0] ``` 4. 配置层属性 需要设置每个层的属性,包括颜色、透明度等。可以使用以下代码层进行修改: ``` lyr = mapping.ListLayers(mxd, "Layer")[0] lyr.visible = False lyr.name = "New Layer" lyr.transparency = 50 ``` 5. 执行地批量 最后一步是生成批量。可以使用以下代码执行批量生成地: ``` for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1): mxd.dataDrivenPages.currentPageID = pageNum pageName = mxd.dataDrivenPages.pageRow.Name outName = "Map_Page" + str(pageNum) + ".pdf" mapping.ExportToPDF(mxd, outName) ``` 以上是一些基本步骤和代码段来批量生成地。当代码执行时,将在输路径中生成多个地,并按照每个页面编写的名进行命名。这是快速生成多个地的一种简单方式。 ### 回答3: ArcGIS是一个常用的地制作与空间分析软件,它的批量功能可以很好地支持大批量的生成与导Python是一种常用的脚本语言,其在ArcGIS的地制作与批处理方面也有较高的应用价值,可以通过编写Python代码实现批量。下面,我们将介绍如何使用Python编写ArcGIS批量代码。 首先需要说明的是,ArcGIS批量功能需要通过定义一个模板地文档(MXD)并将其与数据集关联起来来实现。因此,我们需要通过Python来打开这个MXD文件,设置数据层和其他参数,最后输到指定的文件夹。 1. 打开MXD文件。 这一步可以通过下面的代码实现: ```python import arcpy.mapping as mapping mxd = mapping.MapDocument(r"C:\temp\Sample.mxd") ``` 在上述代码中,我们使用arcpy.mapping模块中的MapDocument()方法打开了一个名为"Sample.mxd"的MXD文档,并将其赋值给了变量mxd。 2. 配置输参数。 在设置输像的大小、分辨率、颜色模式和其他参数之前,我们需要指定要输名。下面是一个例子: ```python df = mapping.ListDataFrames(mxd)[0] # 获取文档中的第一个数据框架 lyr = mapping.ListLayers(mxd, "LayerName", df)[0] # 获取指定名称的层 ``` 在上述代码中,我们通过mapping.ListDataFrames()和mapping.ListLayers()方法获取到了文档中的一个数据框架(DF)和一个指定名称的层。这里需要注意的是,如果需要批量多个层,则可以在此处添加循环结构对层列表进行遍历。 3. 设置输参数。 这一步需要根据实际情况来设置输参数,例如输像的大小、分辨率、颜色模式等。下面是一个例子: ```python arcpy.env.outputWidth = 800 arcpy.env.outputHeight = 600 arcpy.env.resolution = 300 arcpy.env.colorMode = "RGB" ``` 在上述代码中,我们使用arcpy.env属性来分别设置了输像的宽度、高度、分辨率和颜色模式。 4. 执行输。 最后一步是执行输操作,将生成的地保存到指定的文件夹中。下面是一个例子: ```python mapping.ExportToJPEG(mxd, r"C:\temp\output.jpg", df, 800, 600) ``` 在上述代码中,我们使用mapping.ExportToJPEG()方法将生成的地保存为JPG格式,并将其保存到了指定的文件夹中。 以上就是使用Python批量进行ArcGIS的基本流程。需要注意的是,具体的代码实现还需要根据实际需求进行相应的调整与优化。除此之外,还可以通过引入更多的Python库或模块来扩展更多的功能,例如使用matplotlib库来对地进行更加精细的绘制,或使用pandas库来处理数据,并将结果显示在地上等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值