iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python使用arcpy.mapping模块批量出图
  • 555
分享到

python使用arcpy.mapping模块批量出图

批量模块python 2022-06-04 18:06:30 555人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

出图是项目里常见的任务,有的项目甚至会要上百张图片,所以批量出土工具很有必要。arcpy.mapping就是ArcGIS里的出图模块,能快速完成一个出图工具。 arcpy.mapping模块里常用的类有Ma

出图是项目里常见的任务,有的项目甚至会要上百张图片,所以批量出土工具很有必要。arcpy.mapping就是ArcGIS里的出图模块,能快速完成一个出图工具。

arcpy.mapping模块里常用的类有MapDocument、DataFrame、Layer、DataDrivenPages和TextElement。

MapDocument类是地图文档(.mxd文件)对应的类。初始化参数是一个字符串,一般是.mxd文件的路径:


 mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.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:GeoDataChinaAreaProvince.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:GeoDataChinaAreaChinaVector.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:GeoDataChinaAreaProvince\"+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:GeoDataChinaAreaProvince")

mxd=arcpy.mapping.MapDocument(r"F:GeoDataChinaAreaChinaVector.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:GeoDataChinaAreaProvince\"+paths[1]+".png")

print 'ok'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: python使用arcpy.mapping模块批量出图

本文链接: https://www.lsjlt.com/news/13639.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python模块pygal,出图工具
       呵呵。天气炎热,没啥心情,闲逛博客,看到pygal这个画图工具,挺有意思的,就研究了下。一直用rrdtool工具画图,但不能通过数据立即生成图片。安装pip install pygal官方文档http://pygal.org/docu...
    99+
    2023-01-31
    模块 工具 python
  • Python利用os模块批量修改文件名
    初学Python.随笔记录自己的小练习. 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名   renames:可以修改文件名,还可以修改文件上级目录名称 另一个用到的方法是os.l...
    99+
    2023-01-31
    文件名 批量 模块
  • 使用Python批量拼接图片
    前言 当需要将多张图像拼接成一张更大的图像时,通常会用到图片拼接技术。这种技术在许多领域中都有广泛的应用,例如计算机视觉、图像处理、卫星图像、地理信息系统等等。在实际应用中,拼接图像可以用于创建全景图像、地图、海报、广告牌等等。 本文将使用...
    99+
    2023-09-28
    python 图像处理
  • 使用Python模块:struct模块
    Python没有提供直接的将用户定义的数据类型和文件IO关联起来的功能,但是它提供了struct库(是一个内置库)——我们可以以二进制模式来写这些数据(有趣的是,它真的是设计来讲文本数据写为缓存的) 1)bytes、str...
    99+
    2023-01-31
    模块 Python struct
  • 如何使用Python批量缩放图片
    今天小编给大家分享一下如何使用Python批量缩放图片的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。导读为了解决图片被改变大...
    99+
    2023-06-29
  • Python用turtle模块画图
    学习使用模块turtle画图功能,主要记住几个参数import turtle #导入turtle画图模块turtle.showturtle() #调出turtle画板turtle.forward(100) #坐标前进100个位置tu...
    99+
    2023-01-31
    画图 模块 Python
  • python 绘图模块matplotlib的使用简介
        上周对线上某几个磁盘进行了fio硬盘性能测试,测试完成之后的结果需要绘制成图像展示出来。我在官网上查找了一下fio自带的命令fio_genera...
    99+
    2024-04-02
  • python如何批量将PPT导出成图片集
    本篇内容主要讲解“python如何批量将PPT导出成图片集”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何批量将PPT导出成图片集”吧!导读需要使用python做一个将很多个不规则...
    99+
    2023-06-07
  • 如何在python中用os模块实现批量移动文件
    本文介绍一下利用python批量把一个文件夹(及其子文件夹)下面的特定类型的文件移动到另一个文件夹下 通过python操作系统目录及其文件,需要用到os包,本次具体用到如下方法 os...
    99+
    2024-04-02
  • 怎么在python中用os模块实现批量移动文件
    这篇“怎么在python中用os模块实现批量移动文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么在python中用os...
    99+
    2023-06-30
  • Python使用turtle模块绘制爱心图案
    程序员的浪漫,你懂吗? 今天使用python小海龟实现爱心图案的绘制,代码如下: import turtle import time # 清屏函数 def clear_a...
    99+
    2024-04-02
  • Python中模块的使用--binascii模块用法
    目录binascii模块用法binascii模块和进制转换笔记 Python内置函数binascii模块用法 binascii模块用于在二进制和ASCII之间转换 >...
    99+
    2024-04-02
  • python ipaddress模块使用
    # -*- coding:utf-8 -*- import ipaddress n1 = ipaddress.ip_network('192.0.2.0/28') n2 = ipaddress.ip_network('192.0.2.1/...
    99+
    2023-01-31
    模块 python ipaddress
  • python使用syslog模块
        syslog模块是在unix环境下工作的模块,不能用于windows,在windows环境下可以使用logging模块。syslog模块可以用于记录系统运行的信息,这个模块提供的方法有,syslog(priority,messag...
    99+
    2023-01-31
    模块 python syslog
  • python winrm模块使用
    使用session方法### import winrm s=winrm.Session('http://10.10.60.14:5985/wsman',auth=('administrator','password')) r=s.run_p...
    99+
    2023-01-31
    模块 python winrm
  • 使Python中的turtle模块画图两
    turtle.circle(radius, extent=None, steps=None) 描述: 以给定半径画圆 参数: radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆 extent(弧度) (optiona...
    99+
    2023-01-31
    画图 模块 Python
  • python绘图模块matplotlib怎么用
    这篇文章给大家分享的是有关python绘图模块matplotlib怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。    上周对线上某几个磁盘进行了fio硬盘性能测试,测试完成之...
    99+
    2023-06-14
  • 怎么用Vue3+Vite批量导入模块或资源
    今天小编给大家分享一下怎么用Vue3+Vite批量导入模块或资源的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1,前置基础知...
    99+
    2023-06-29
  • 如何利用Vue3+Vite批量导入模块/资源
    目录前言1,前置基础知识 - JavaScript模块化编程(1) export语句 - 暴露函数和变量使外部调用(2) import语句 - 导入变量/函数并使用(3) impor...
    99+
    2024-04-02
  • 怎么用Python代码批量抠图
    这篇文章主要讲解了“怎么用Python代码批量抠图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python代码批量抠图”吧!1.准备为了实现这个实验,Python是必不可少的,如果你...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作