文章版权由作者pxtgis和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/pxtgis/。

一、概述

在数据处理工作中经常遇到批量裁剪ArcGIS文件地理数据库(GDB)的需求。利用ArcGIS进行GDB批量裁剪的方法主要有三种。本文以矢量GDB批量裁剪为例。

1、利用ArcToolbox中Analysis Tools工具箱中的Extract工具集下Clip裁剪工具的Batch批量处理(右键工具箱即可调出批量裁剪面板)。在Input Features下方单元格点击Browse可以批量选取GDB中多个要素(如果有数据集,则需单独添加要素集中要素类),Clip Features下方单元格点击Open指定裁剪文件,Output Feature Class这列第一个单元格也会自动填充内容,默认存放在Default.gdb下带” _Clip”后缀文件名。选中Clip Features列已填充的内容右键Fill,即可将该列其他空白单元格填充同样内容,也可以自己选中特定几行再点击Fill,则只填充选中的几行内容。Output Feature Class最好不动,保持默认,因为要修改路径就得都修改,修改一个其他还是默认。该列空白单元格程序运行时会自动填充同样路径,文件名与输入要素对应,所以无需Fill。点击OK即可执行批量裁剪,裁剪完可以把Default.gdb中的要素拷贝出来。但是Batch批量裁剪工具中裁剪要素只能取一个要素,就算输入的裁剪要素类中有多个面要素,也只执行第一个进入程序中的要素面。而且,在GDB中包含数据集的情况下,Batch批量处理在浏览数据时就很不方便,输出时也无法保留原始数据集结构。所以针对只需利用一个面要素进行批量裁剪,而且不需要保留GDB要素集结构的情况下,Batch批量处理比较合适。

图1 Batch Clip界面

2、利用Python,ArcPy站点包编写程序进行处理。本文先不过多介绍。

3、利用Model Builder制作工作流进行处理。Model Builder包含一组支持构建灵活且功能强大的模型的实用工具,可实现零代码对GDB进行批量分区裁剪且可选择是否保留原始GDB要素集要素类结构。这也是本文的重点,下文将详细介绍。

二、数据

1、待批量分区裁剪的市基础地理信息数据(部分测试数据,GDB格式),包含要素集和要素类。

2、用于裁剪的市区界(包含多个面要素,shp格式),也可以换成分幅或其他裁剪要素类(包含一个或多个面要素)。

图2 部分基础地理信息数据

三、GDB批量裁剪模型

需求是:利用市区界要素面数据对全市GDB数据进行批量分区裁剪出按区名命名的GDB,并且保留原始GDB的要素集结构。

如下图所示,由于Model Builder中只能添加一个迭代器,所以要用到子模型,甚至子子模型。

1、主模型添加裁剪要素Clip FeatureClass,也就是本文的市区界shp数据,先经过筛选Select(这步可省,为了减少测试数据量加的),然后执行迭代要素选择,选择的要素作为两个裁剪子模型的裁剪要素输入;同时,在OutputGDB Folder位置创建名为GDB Name (其值为%Value%,行内替换迭代选择出要素的name属性) 的文件地理数据库OutputGDB, 该GDB作为两个子模型的输出GDB参数;InputGDB为待批量分区裁剪的GDB,也就是本文的基础地理信息库。

图3 GDB批量裁剪总模型

2、要素类裁剪子模型中,仅对GDB目录下的要素类进行迭代裁剪,不递归至要素集下的要素类。

图4 要素类裁剪子模型

3、要素集裁剪子模型1中再嵌套了一个要素集裁剪子模型0。要素集裁剪子模型0中是对要素集裁剪子模型1中的迭代的要素集进行要素类迭代和裁剪。要素集裁剪子模型1中对输入的基础地理信息数据库进行迭代要素集,同时在总模型中生成的分区GDB中建立相应要素集,要素集路径和迭代的要素集以及迭代的裁剪要素共同作为要素集裁剪子模型0的输入。

图5 要素集裁剪子模型

4、本例中的GDB批量裁剪生成的GDB可以保留原始GDB的要素集合要素类的结构。如果不需要输出原始要素集的结构,可以去掉要素集裁剪子模型1,修改要素类裁剪子模型中迭代要素类的工具的Recursive递归选项勾上,则会批量裁剪GDB中包含数据集下的所有要素类,如图6所示。

图6 勾选要素集裁剪子模型中递归选项

5、运行总模型,模型参数和结果如下。结果为按区界名命名的各个GDB,GDB的要素集合要素类结构也和原GDB结构一致。

图7 模型运行及结果

四、总结

1、本文参考了《ArcGIS之GDB(文件地理数据库)批量处理(20190115)》

2、模型中三层嵌套有些复杂,下一步还需研究改善。

3、利用模型运行出来存在一些空图层并没有删除,有需求删除的话可以在模型中再加入批量删除空图层工具。

4、需注意若要将裁剪结果写入网络路径下可能会报错无法写入,将OutputGDB Folder参数改为磁盘绝对路径就可以正常写入。

-----欢迎转载,但请于明显处标明出处:http://www.cnblogs.com/pxtgis/

如果您觉得本文确实帮助了您,可小小打赏下,谢谢

基于ArcGIS ModelBuilder的GDB批量分区裁剪——可保留原始GDB要素集要素类结构的更多相关文章

  1. ArcGIS案例学习笔记-批量裁剪地理模型

    ArcGIS案例学习笔记-批量裁剪地理模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:空间数据的批量裁剪 优点:1.批量裁剪:任意多个目标数据,去裁剪任意 ...

  2. 基于ArcGIS的CAD数据向GIS数据转换方法(转)

    基于ArcGIS的CAD数据向GIS数据转换方法 1 CAD数据与ArcGIS数据介绍 地图数据来源多种多样,大多数使用的是计算机辅助设计软件(CAD)制作的数据,CAD软件制图自动化程度高,操作简单 ...

  3. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  4. 基于ArcGIS Viewer for Flex开发的一款跨平台的应用程序

    特点: 1.基于ArcGIS Viewer for Flex开发的一款跨平台的应用程序: -(IBAction) showTOC:(id)sender { if (_tocViewController ...

  5. PictureCutting图片批量裁切(裁剪)工具

    PictureCutting图片批量裁切(裁剪)工具 写这个工具的原因是因为在获取一个软件的皮肤包中的图片的时候需要进行批量的裁切工作,而有没有找到在linux下简单好用的工具,干脆就用QT写了一个. ...

  6. 基于ArcGIS JS API的在线专题地图实现

    0 引言     专题地图是突出而深入的表示一种或几种要素或现象,即按照地图主题的要求,集中表示与主题有关内容的地图.专题地图的专题要素多种多样,分类方法也多种多样,根据专题地图表现数据的特点可分为定 ...

  7. 基于 ArcGIS Silverlight API开发的WebGIS应用程序的部署

    部署流程概述 在微软的iis服务器上部署基于ArcGIS  Silverlight API的应用程序,主要包括以下几个步骤: 1)(可选)部署GIS服务 如果需要将GIS服务也部署在Web服务器上,则 ...

  8. 基于ArcGIS的栅格图像平滑处理(转)

    基于ArcGIS的栅格图像平滑处理 栅格数据获取的途径多种多样,造成了栅格数据质量的很大差异,一些质量较差的栅格数据存在大量“噪音”象元,即在表达同类型的地理要素时,出现个别像元值与周边像元不一致的情 ...

  9. 基于集合成工控机Ubuntu系统安装分区详解

    基于集合成工控机Ubuntu系统安装分区详解 硬件描述:双核的CPU,128G的固态硬盘 软件描述:使用Ubuntu12.04系统,内核3.8.0-29版本,QT4.8.1版本 1.新建分区表 /de ...

随机推荐

  1. PageObject课程培训记录

    前言 昨晚的培训课程讲了PO设计模式,对于PO模式我们需要去了解关于为什么要使用PO,而不使用PO是什么情况?什么是PO模式?PO怎么去使用? 第一,为什么要使用PO,而不使用PO是什么情况? 我们先 ...

  2. makefile实验四 编译本地的源文件 + 变量的高级主题一

    <一>编译本地的源文件 + 变量的模式替换    实验代码 root@ubuntu:~/Makefile_Test/5make_test# vim makefile target := t ...

  3. 烽火服务器IPMI远程装机

    连接控制台 一.通过vpn拨入进入内网,使用IE浏览器或者火狐等等,连接ilo地址.(需要安装java8.0,各个品牌的服务器需要的不一样) 二.启动虚拟连接控制台,进行控制主机 三.根据截图进行操作 ...

  4. IDEA2020版最佳优化思路(中文界面)

    IDEA优化 基于当前最新版idea 2020.1版本进行设置 设置中文 在idea 2020.1版本后官方是支持中文啦 先上效果图 设置方法 这里需要下载官方的中文包 鼠标悬停提示 效果图 设置方法 ...

  5. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  6. Androng,一个针对Android的Pong克隆

    下载application from Android market 下载source - 532 KB 内容 IntroductionAndroid游戏开发 活动视图绘图使用CanvasAnimati ...

  7. day64:nginx模块之限制连接&状态监控&Location/用nginx+php跑项目/扩展应用节点

    目录 1.nginx模块:限制连接 limit_conn 2.nginx模块:状态监控 stub_status 3.nginx模块:Location 4.用nginx+php跑wordpress项目 ...

  8. 8.Android-简单的登录案例编写

    本章来学习登录案例,由于还未学习自定义控件外观,所以ui界面先用最简单的,并保存登录账号密码到data/data/包名/files下 1.学习之前需要掌握的Context类(通过Context来往AP ...

  9. IDEA设置maven修改settings.xml配置文件无法加载仓库

    作为初学者配置maven一般网上搜索.然后你就看到各种配置文件片段,首先配置镜像,然后配置仓库.完事后再IDEA里面配置下maven的路径和配置文件路径. 这些文章属实坑爹,完全没讲一个重要的配置就是 ...

  10. matplotlib画图教程,设置坐标轴标签和间距

    大家好,欢迎来到周四数据处理专题,我们今天继续matplotlib作图教程. 在上周的文章当中我们介绍了如何通过xlabel和ylabel设置坐标轴的名称,以及这两个函数的花式设置方法,可以设置出各种 ...