免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3460|回复: 6
收起左侧

[经验共享] 模型生成器(ModelBuilder)

[复制链接]

4

主题

230

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
46
发表于 2015-4-23 14:46 | 显示全部楼层 |阅读模式
1、背景:
规划编制成果对于规划业务部门办理业务有着重要的指导作用,尤其是控制性详细规划更是规划审批、行政管理的基础。而规划编制成果的建库长期以来有着步骤多、操作复杂、耗时长的特点,这与规划编制成果的数据特点密切相关。规划设计部门习惯于使用AutoCAD + Office + PhotoShop来进行成果编制,而最后提交的数据成果往往是JPG格式的效果图。今年来已经加强了规划编制成果提交的数据标准的制定,也因此增强了提交成果的质量,但是长期的使用习惯和技术上的原因,不可能实现提交的规划编制成果完全满足后期审批、管理等应用的需要。最终的规划编制成果需要制作成为完整的GIS格式数据在统一平台上使用,用户可以通过简单的工具实现数据定位、指标查询等,同时通过对成果的符号化的展示,用户也可以很直观的看到规划编制成果的效果。
非GIS的CAD数据、JPG文件、Office文档需要经过一系列的处理、转换才能够在统一平台上使用。长期以来已经形成了比较完善的、稳定的处理流程来处理这些数据。由于涉及的软件平台较多如AutoCAD、Office、ArcGIS等,操作人员需要按照一定的步骤进行数据处理和转换,通常花费较长的时间。
ArcGIS的ModelBuilder是将既定的工作自动化,将稳定的流程模型化的建模平台,通过使用ModelBuilder将规划编制成果的建库过程全部或者部分模型化,可以极大的提高数据处理的效率,使得操作人员将时间精力集中于加强数据的质量审核。
2ArcGIS模型生成器(ModelBuilder)概述2.1模型生成器(ModelBuilder
模型生成器是ArcGIS9提供的构造地理处理工作流和脚本的图形化建模工具,它加速复杂地理处理模型的设计和实施,也集成了3D、空间分析、地理统计等多种空间处理工具。使用建模器可以简化复杂空间处理模型的设计和实施,可以运用直观的图形语言将具体的建模过程表达出来。简单的模型包括模型输入、输出分析或者处理工具三方面内容,复杂的分析过程可以由一系列简单模型组合而成。使用模型生成器构建的模型可以自动执行所定义的操作功能。当模型经过检验和执行无误后即可被保存以便在需要时候使用。模型的建立和应用有很大的灵活性,而且能够实现多用户的共享。
2.2模型的基本组成
模型基本由三部分组成:输入数据、输出数据和空间处理工具。ModelBuilder的空间处理工具包括ArcToolBox中所有的工具集,也可以是模型、脚本定制的工具或者其它系统工具。输入数据和输出数据的类型多种多样,可以是栅格数据集或者矢量数据集(shape和coverage)等。不同的空间处理工具要求的输入数据不同,产生的输出数据也不同。建模由脚本编写和连接,连接是模型中一个不可或缺的要素,连接指定了数据与操作之间的关系,因此符合条件的要素才能被连接,如果连接了不适合的要素,模型会提示出错信息。只有将各种要素有机的连接起来,才能组成一个完整的图形模型。
2.3模型生成器的元素
1)Tools与ArcToolBox一样,可以直接拖拽到Model中来使用,在Model中默认用金黄色的方框来表现。
2)Project Data是在工具执行之前存在的任何数据。Project Data作为工具的输入数据,用蓝色的椭圆来表现。
3)Derived Data是衍生数据,是根据项目数据与工具分析之后生成的新数据。衍生数据可以作为项目数据来做另一个处理。衍生数据用绿色的椭圆来表现。
4)Values是参考工具参数而不是数据集,例如缓冲工具的缓冲距离,值通过浅蓝色椭圆表现。
5)Derived Values是运行工具以后创建的参考值,例如计算默认簇容限工具的输出值。用浅绿色椭圆表现。
2.4图形模型的类型
一个模型由一个或多个过程组成,每个过程都有个共同的基本结构:输入—>函数—>输出,不同模型所包含的输入、函数、输出的数量可以发生变化,但是整体的结构保持不变。
简单处理过程模型
复杂处理过程模型
3、利用建模进行数据建库3.1规划编制成果传统建库过程
规划编制成果建库的过程就是将收集的规划编制成果分类整理,采用不同的技术手段分别建库到统一平台一网三层规划成果数据库中的过程。

                                   一网三层结构图
规划编制成果建库的重中之重是成果数据中的土地利用的数据建库,本文也是专门对这个建库流程进行了ModelBuilder建模研究,以将工作流程模型化、自动化操作的方式改进传统的建库方法,极大的提高建库效率。
土地利用送交数据格式为AutoCAD图形数据,土地利用按照用地性质分层,要素为闭合的Polyline,用地编码注记用Text的方式放置于地块范围线内,用地所带指标存放于Excel属性表中以用地编码为关键字。土地利用建库就是将CAD Polyline数据转换为Polygon格式将其范围线内的用地编码注记作为属性并通过属性关联将指标表挂接到地块要素上。
3.1.1传统规划编制成果土地利用建库流程
带有控制指标数据的土地利用规划
步骤1:将Excel控制指标表转换到Access数据表格式
步骤2:将CAD 中的用地边线转换到Coverage格式
步骤3:将coverage格式通过clean、build操作构面Polygon
步骤4:将CAD中的用地编码注记转换到点格式
步骤5:将步骤3和步骤4的结果通过polygon feature class from lines操作将用地编码注记内容赋值给用地多边形要素
步骤6:通过join操作将步骤1 的指标表和步骤5当中的带编码的用地地块挂接
步骤7:将步骤6生成的临时数据层文件转出为shape格式
步骤8:将shape格式数据入库到统一平台,配置上网
3.1.2只带有用地性质编码的土地利用
方法1:
       步骤1:创建SDE3图层表,包含LandCode属性字段
       步骤2:将CAD用地边线数据通过AutoCAD Client写入到步骤1的图层中,写入时候指定cad图形自带的Layer属性和LandCode对应
       步骤3:将SDE3图层导出到shape格式
       步骤4:将shape格式入库到统一平台,配置上网
方法2:
       步骤1:将CAD用地边线数据按照用地性质图层单独转换为Shape格式
       步骤2:编辑步骤1的shape文件,分别按照图层名为此图层所有要素赋用地性质属性
       步骤3:将shape格式入库到统一平台,配置上网
3.2 建模分析
规划编制成果土地利用规划数据上网实质上是将CAD图形数据转换为GIS数据并将属性数据关联到用地数据上,以便于空间管理与分析的过程。
建模流程有三个相对独立的分支;一是将Excel表转换为ArcGIS识别的Table View对象,而是将土地利用规划的用地边线转换为Polygon地块对象;三是将用地编码注记转换为点对象,再通过一系列的空间处理操作将三个流程关联到一起,实现利用模型将土地利用数据进行自动化建库处理。
3.3 建模过程
        步骤1:打开ArcMap,在ArcToolBox中选择New ToolBox,在新增加的toolbox上右键,然后选择Model,就打开了modelBuilder工作窗口
      
       步骤2:经过建模分析,有三个分支流程需要处理,ArcGIS 9.3中支持Excel表格的转换,可以拖(Drag )一个Copy Rows工具到model中。ArcGIS 9.0不支持Excel表格的转换,就需要手工将Excel表格转换到Access中,无法使用建模工具处理
      
       Copy Rows工具是将table View转换到Table对象的工具,这一步就将Excel表转换为ArcGIS可用的Table对象,用于后期的关联处理
      
       步骤3:将CAD数据中的用地界线Polyline选择出来,因为CAD数据中非常多的图层和要素,需要使用属性选择来过滤要转换的数据。拖放一个Select Layer By A Attribute工具到ModelBuilder窗口中,并设置相关参数
      
       步骤4:将CAD数据中的用地编码注记Annotation选择出来,拖放一个Select Layer By A Attribute工具到ModelBuilder窗口中,并设置相关参数
      
步骤5:将用地界线polyline转换到Polygon,拖放一个Feature To Polygon工具到ModelBuilder窗口中,并设置相关参数,同时设置一个连接,从用地编码注记到Feature To Polygon的空间处理工具,这样空间处理工具就会自动将用地界线范围内的用地编码文本带到用地界线的text属性中,完成polyline到polygon转换的同时关联了用地编码属性。具体操作用鼠标点击工具栏上的连接,然后拖放一个从Polygon工具到Annotation的箭头,鼠标松开时候即可看到连接成功
      
       步骤6:生成的用地界线.shp是Feature Class类型,不能直接用于和Table对象进行Join操作,需要将其转换为Feature Layer对象,拖放一个Make Feature Layer工具到ModelBuilder窗口中,并设置到用地界线.shp的连接
      
       步骤7:生成Feature Layer之后可以直接与Table对象进行图形与属性的挂接了,但是由于用地界线Feature Layer是从cad转换而来的,它带有很多cad本身的属性,因此使用delete Fields空间工具删除多余属性
      
       步骤8:将准备好的只带有用地编码属性的用地界线layer与Table指标表进行join,拖放一个Add Join工具到Model窗口,并设置相关参数
      
       步骤9:生成的用地layer3是个临时表,需要将临时表转换为Feature Class,拖放一个Copy Features工具,可以将Feature Layer转换到Feature Class,shape格式文件
      
3.4 模型运行方式
       模型运行有两种方式,一是对话框方式,如同我们使用的其他toolBox工具一样,二是窗口方式运行,类似于调试模式。
       3.4.1对话框方式运行
     
       默认情况下对话框是没有参数需要输入的。
     
              这个模型中我指定了四个参数需要在模型运行时交互选择,每个空间工具处理后都会生成一个结果,这个结果右键上有这些选项,其中非常有用的是第二个选项模型参数,设置这个选项后改输出右上角会出现P标志,表示模型运行时需要指定这个参数来源。
      
第三项增加到显示是指将此输出显示到ArcMap的图层列表中,注意此选项只在ModelBuilder Window打开方式下运行才生效。第四项为灰色的是中间过程文件选项,和输出到显示不能同时选择,默认的都是此项选中,意思是该输出为中间格式文件,模型运行之后就会自动删除。
       3.4.2 modelBuilder窗口模式运行
              第二个选项表示重新运行全部模型,第三个选项是删除中间格式的数据,第四个选项是保存当前的工作。

                               模型窗口运行结果
3.5 运行结果
       模型运行后自动生成了最终的土地利用.shp文件,确实非常高效的提高了转换效率,而且此模型可以多用户共享,单独使用,应用效果非常好。
       与传统的土地利用建库进行了对比,熟练的技术人员使用传统流程进行土地利用建库大概耗时15分钟,使用ModelBuilder的模型建库,即使不熟练的人员简单培训就能够在几十秒钟内完成建库流程。
3.6 只带用地性质的土地利用建库
       3.6.1建模过程
              步骤1:从CAD数据中选出要转换的Polyline数据
              步骤2:删除多余的字段,只保留要素的Layer属性
              步骤3:将Polyline转换到Polygon
       3.6.2建模成果
              
       3.6.3运行效果
      
       比传统的土地利用只带用地性质的转换方法也是高效了很多,而且可以多用户共享。
3.7 增加批处理
       使用ModelBuilder构建的模型能够导出为脚本,形如
   ' Mosaic... 空间处理过程
gp.Mosaic_management ‘参数1’, ‘参数2’, ‘参数3’
       每个空间处理过程都能够用一个直接的gp处理函数来表示,这样就为后期加入批处理提供了条件。举例说明,如果我们希望这个模型能够自动的循环处理多个不同的CAD文件与Excel记录的组合,那么我们可以将符合模型运行条件的文件名称都放到一个文本文件中,然后在脚本中读取这个文件,将文件名作为变量,就能够实现数据建库的自动处理过程。
       伪代码如下
       ‘打开文本文件到内存结构中
       ‘循环每个文件
       ‘循环每个空间处理过程,并写入当前处理日志
       ‘处理完毕,结束循环
       ‘关闭文件
使用批处理就在ModelBuilder图解建模节省了每个步骤需要手工参与的基础上又极大的节省了大量重复的文件的工作时间,也就将工作人员的精力集中到提高数据质量上。

0

主题

509

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
27
发表于 2019-3-19 14:24 | 显示全部楼层
只是写这么多字,都得给你点赞!!!
回复 支持 反对

使用道具 举报

1

主题

1万

铜板

2

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4845
发表于 2022-12-22 14:52 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

287

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
31
发表于 2023-5-9 21:49 | 显示全部楼层
必须点个赞
回复 支持 反对

使用道具 举报

0

主题

3736

铜板

8

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
707
QQ
发表于 2023-6-28 10:04 | 显示全部楼层
学习一下,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

891

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
109
发表于 2023-7-4 11:08 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

2737

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
93
发表于 2023-7-5 16:12 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表