arcgis批量出图python代码_python使用arcpy.mapping模块批量出图
出图是项目里常见的任务,有的项目甚至会要上百张图片,所以批量出土工具很有必要。arcpy.mapping就是ArcGIS里的出图模块,能快速完成一个出图工具。
arcpy.mapping模块里常用的类有MapDocument、DataFrame、Layer、DataDrivenPages和TextElement。
MapDocument类是地图文档(.mxd文件)对应的类。初始化参数是一个字符串,一般是.mxd文件的路径:
mxd=arcpy.mapping.MapDocument(r"F:\GeoData\ChinaArea\ChinaVector.mxd")
DataFrame类用于操作地图内的Data Frame(即下图的Layers),能够控制地图的范围、比例尺等。用arcpy.mapping.ListDataFrames(map_document, {wildcard})函数获取。
df= arcpy.mapping.ListDataFrames(mxd)[0]
Layer类用于操作具体的图层。能够控制图斑的样式、可见性等。可以用.lyr文件的路径初始化,也可以通过arcpy.mapping.ListLayers(map_document_or_layer, {wildcard}, {data_frame})函数获取。
lyr1=arcpy.mapping.Layer(r" F:\GeoData\ChinaArea\Province.lyr")
df.addLayer(lyr1)
lyr2=arcpy.mapping.ListLayer(mxd,"",df)[0]
DataDrivenPages类需要配合ArcMap中的Data Driven Pages工具使用。用于一个矢量文件内的全部或部分图斑每个出一张图的情况。
TextElement类用于操作地图上的文字,比如图名、页数。通过arcpy.mapping.ListLayoutElements (map_document, {element_type}, {wildcard})函数获取。
txtElm=arcpy.mapping.ListLayoutElements(mxd,"TEXT_ELEMENT")[0]
常见的出图模式有两种:一个矢量文件里每个图斑出一张图,一个文件夹下每个矢量文件出一张图。
每个图斑出一张图:
这种情况有Data Driven Pages工具配合最好。打开ArcMap的Customize->Toolbars->Data Driven Pages,设置好图层、名称字段、排序字段、显示范围和比例尺,保存地图。
# coding:utf-8
import arcpy
mxd=arcpy.mapping.MapDocument(r"F:\GeoData\ChinaArea\ChinaVector.mxd")
for pageNum in range(1,mxd.dataDrivenPages.pageCount):
mxd.dataDrivenPages.currentPageID=pageNum
mapName=mxd.dataDrivenPages.pageRow.getValue(mxd.dataDrivenPages.pageNameField.name)
print mapName
arcpy.mapping.ExportToPNG(mxd,r"F:\GeoData\ChinaArea\Province\\"+mapName+".png")
print 'ok'
一个文件夹下的每个矢量文件出一张图:
# coding:utf-8
import arcpy
import os
def GetShpfiles(shpdir):
shpfiles=[]
allfiles=os.listdir(shpdir)
for file in allfiles:
if os.path.isfile(file):
if file.endswith('.shp'):
shpfiles.append(file)
else:
shpfiles.extend(GetShpfiles(file))
return shpfiles
allshps=GetShpfiles(r"F:\GeoData\ChinaArea\Province")
mxd=arcpy.mapping.MapDocument(r"F:\GeoData\ChinaArea\ChinaVector.mxd")
lyr=arcpy.mapping.ListLayer(mxd)[0]
for shp in allshps:
paths=os.path.split(shp)
print paths[1]
lyr.replaceDataSource(paths[0],"SHAPEFILE_WORKSPACE",paths[1])
arcpy.mapping.ExportToPNG(mxd,r"F:\GeoData\ChinaArea\Province\\"+paths[1]+".png")
print 'ok'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
本文标题: python使用arcpy.mapping模块批量出图
本文地址: http://www.cppcns.com/jiaoben/python/181234.html
arcgis批量出图python代码_python使用arcpy.mapping模块批量出图相关推荐
- 心形图Python代码详细解析
心形图Python代码详细解析 源代码 print('\n'.join([''.join([('pikachu'[(x-y)%7]\if((x*0.05)**2+(y*0.1)**2-1)**3-(x ...
- ArcGIS利用数据驱动工具条批量出图(python代码)
一.设置数据驱动 参考文章: ArcGIS高级制图及批量出图使用数据驱动 二.在工作空间自动生成图片 1.PDF批量出图 参考阅读:ArcGIS批量出图操作流程(附练习数据下载) 目前在ArcGIS1 ...
- 写出漂亮 Python 代码的 20条准则
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自 | 架构头条 按照<代码整洁之道>的说法,"花在阅读和编码 ...
- python代码怎么写出色_如何写出更具有Python风格的代码,五分钟教会你!
我们都喜欢 Python,因为它让编程和理解变的更为简单.但是一不小心,我们就会忽略规则,以非 Pythonic 方式编写一堆垃圾代码,从而浪费 Python 这个出色的语言赋予我们的优雅.Pytho ...
- 如何运行一段python代码_Python退出时强制运行一段代码如何实现 Python退出时强制运行一段代码实现方法...
本篇文章小编给大家分享一下Python退出时强制运行一段代码实现方法,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 设想这样一个场景,你要给一个项目开发测 ...
- 读懂python代码_Python面试|一文让你读懂if __name__==’__main__’的含义
程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要 ...
- postman生成python代码_python代码直接生成可执行exe文件
前言: python中有一个很厉害的库可以直接将写好的python代码打包成可执行的.exe文件,生成好的文件不需要python运行环境和pycharm等IDE就可以直接双击运行,是不是很厉害呢!这样 ...
- ArcGIS基础:基于python代码简单计算坡度、坡向和洪水淹没
第一个:[计算坡度] 读取原始栅格影像: rast_file=r'F:\arcpy_data\imagery\钦州湾.tif' ... rast_obj=arcpy.Raster(rast_file) ...
- 层次聚类python代码_python实现层次聚类
BAFIMINARMTO BA0662877255412996 FI6620295468268400 MI8772950754564138 NA2554687540219869 RM412268564 ...
最新文章
- 2019年1月份A项目面试纪要
- mongodb部署以及数据操作
- axure 图片切换图片的交互_AxureRP8中实现伸缩式的图片展示交互效果
- Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported or published. Runtim
- 如何卸载bytefence anti-malware
- python编程快速上手第四章_《Python编程快速上手——让繁琐的工作自动化》读书笔记 第四章 列表...
- Spring Boot使用自定义的properties
- 关系图︱python 关系网络的可视化NetworkX(与Apple.Turicreate深度契合)
- 王庆的边缘计算(第三章)
- 如何发布一个BT种子文件
- JUCE框架教程(2)—— 创建一个基本的音频/MIDI 插件第一部分:设置
- goland等IDE连接远程服务器
- QQ微信实现连续发送消息【代码实现】
- 怎样通过一根网线,一台电脑,做到月入过万。
- 成都月嫂提醒你,宝宝的疫苗接种时间
- 暑假实训-3_Oracle数据库-3_单行函数
- Java池化技术你了解多少?
- 阿里工程师修养之:如何量化考核技术人的 KPI ?
- USBasp制作资料及全过程(菜鸟版)
- 以太坊导以太坊导_以太坊网络钓鱼诈骗在Facebook上的剖析
热门文章
- SQL Server中行列转换 Pivot UnPivot (转载)
- Lucene正则表达式查询RegenxQuery
- 牛客14392 猴子吃香蕉
- windows安装pygame(python3.6)_当我试图安装PyGameforPython3.6时,Pip不起作用[过时]
- is在python中是什么意思_Python 中 is 与 == 有啥区别?
- mysql多表添加怎么写_mysql多表连接的几种写法
- python3异常_python3 异常处理
- keras安装_代码详解:构建一个简单的Keras+深度学习REST API
- C语言ODBC连接MySQL数据库制作简易用户登录系统
- 图像处理中的通信原理——冈萨雷斯读书笔记(二)