第三章 Model Builder
- 格式:doc
- 大小:284.00 KB
- 文档页数:12
arcgis批量裁剪矢量方法-回复ArcGIS是一种功能强大的地理信息系统软件,可以进行各种地理数据处理和分析。
在大规模数据处理中,有时需要批量裁剪矢量数据以满足特定要求。
本文将为您介绍如何使用ArcGIS进行批量裁剪矢量的方法,让您能够更高效地处理大规模数据。
第一步:准备工作在使用ArcGIS进行批量裁剪矢量数据之前,您需要准备一些必要的工作。
首先,确保您已经安装了ArcGIS软件,并且具有相应的许可证。
其次,您需要准备待裁剪的矢量数据集和裁剪范围的数据集。
这些数据可以是.shp文件、文件地理数据库或者其他ArcGIS支持的格式。
第二步:创建裁剪工具在ArcGIS中,您可以通过使用ModelBuilder或者Python脚本来创建一个自定义的裁剪工具,以满足您的特定需求。
下面将分别介绍这两种方法。
使用ModelBuilder创建裁剪工具ModelBuilder是ArcGIS中一种图形化的工具,可以帮助用户创建和编辑地理处理模型。
以下是使用ModelBuilder创建裁剪工具的步骤:1. 打开ArcGIS软件,并进入Catalog窗口。
2. 在Catalog窗口中,右键单击一个文件地理数据库,然后选择“新建→模型”。
3. 在模型设计器中,单击“添加数据”工具,并将待裁剪的矢量数据集和裁剪范围的数据集分别添加到模型中。
4. 在“工具箱”选项卡中,选择“分析工具→抽取数据→裁剪”工具,并将其添加到模型中。
5. 使用工具右键单击连接数据输入和工具的输入,以及工具的输出和数据输出,以建立正确的数据流。
6. 在模型设计完成后,单击“保存模型”按钮,并为模型命名。
使用Python脚本创建裁剪工具如果您更加熟悉Python编程,可以使用ArcPy库来编写裁剪工具的脚本。
以下是使用Python脚本创建裁剪工具的步骤:1. 打开Python编程环境,并导入ArcPy库。
2. 定义待裁剪的矢量数据集和裁剪范围的数据集的路径。
【ABP】从零开始学习ABP_001_新建实体功能上⼀篇⽂章中介绍了如何下载、运⾏ABP Zero⽰例项⽬,这个⽰例项⽬可以直接作为模板进⾏⼆次开发,很适合做企业开发框架。
本未介绍基于ABP Zero⽰例项⽬,如何新建⼀个⾃定义的实体。
此处以EquipmentType(设备类型)为例,建⽴⼀个简单的实体。
以下是之前添加⼀个简单实体类的效果:主页公司列表新建公司编辑公司删除公司建⽴⽅法按ABP的标准格式,完整建⽴⼀个实体,映射到数据库,作为⼀个基础资料,并通过前端进⾏增删查改功能,最⼩步骤如下:1. 新增实体类。
2. 添加数据库映射。
3. 同步到数据库。
4. 新建Dto,建⽴Dto与实体类的映射。
5. 建⽴实体类的功能接⼝(增删查改),并实现接⼝。
6. 添加视图模型ViewModel。
7. 添加控制器。
8. 添加视图。
9. 添加js脚本。
10. 添加前端菜单(⼊⼝)。
11. 添加权限管理。
1. 添加实体类在core层添加实体类1namespace oMES_APServer.Equipments2 {3public class EquipmentType : MESBase.MESBaseEntity4 {56 }7 }这⾥我把MES会⽤到的常规属性单独建了⼀个基类,并继承ABP全属性基类FullAuditedEntity1using Abp.Domain.Entities;2using Abp.Domain.Entities.Auditing;3using ponentModel.DataAnnotations;45namespace oMES_APServer.MESBase6 {7public class MESBaseEntity : FullAuditedEntity<int>, IPassivable8 {910public const int MaxCodeLength = 64;11public const int MaxNameLength = 256;12public const int MaxBriefNameLength = 64;13public const int MaxRemarkLength = 64;1415 [Required]16 [StringLength(MaxCodeLength)]17public string Code { get; set; }1819 [Required]20 [StringLength(MaxNameLength)]21public string Name { get; set; }2223 [StringLength(64)]24public string BriefName { get; set; }2526 [StringLength(512)]27public string Remark { get; set; }28public bool IsActive { get; set; }2930 }31 }2. 添加数据库映射在EFCore层添加以下代码:为了让EFCore能够⾃动⽣成数据库表结构。
EFCore⼀对⼀⼀对多多对多关系定义1、定义模型⽰例:学⽣和桌⼦的⼀对⼀关系:每个学⽣需要对应⼀个桌位信息,桌位信息不⽤包含学⽣信息public class Desk{ public int Id { get; set; } public string Name { get; set; } public Student Student { get; set; }}//这两个就是⽆论在那个就是就是在对应的⼀个添加上对应的类的主键public class Student{ public int Id { get; set; } public string Name { get; set; } public int DeskID { get; set; }//这个是对应Desk的主键,是Student的外键 public Desk Desk { get; set; }}在Student中定义 DeskID和Desk模型,在Desk表中定义Student模型2、在DataContext中定义两者的关系protected override void OnModelCreating(ModelBuilder modelBuilder){ // Do:⼀对⼀关系模型 modelBuilder.Entity<Student>().HasOne(l => l.Desk).WithOne(l => l.Student) .HasForeignKey<Student>(l => l.DeskID);}public DbSet<Student> Students { get; set; }public DbSet<Desk> Desks { get; set; }此时通过迁移命令将会⽣成Students表和Desks表1、定义模型⽰例:学校和⽼师的⼀对多关系:⼀个学校对应多个⽼师,⼀个⽼师对应⼀个学校public class School{public int Id { get; set; }public string Name { get; set; }public List<Teacher> Teachers { get; set; }//在"——"中,添加List<多个>}public class Teacher{public int Id { get; set; }public string Name { get; set; }public int SchoolID { get; set; }//这个SchoolID是Teacher的外键,对应School的逐渐;系统会⾃⼰配置的public School School { get; set; }//在"多"中,添加"⼀"对应的类的名字和ID}2、在DataContext中定义两者的关系protected override void OnModelCreating(ModelBuilder modelBuilder){ // Do:⼀对多关系模型 modelBuilder.Entity<Teacher>().HasOne(l => l.School).WithMany(l => l.Teachers) .HasForeignKey(l => l.SchoolID);}public DbSet<Teacher> Teachers { get; set; }public DbSet<School> Schools { get; set; }此时通过迁移命令将会⽣成Schools表和Teachers表五、多对多的关系模型多对多的模型,就是需要创建第三个类,来关联两个多多类1、定义模型:⽰例:建⽴⽗母和孩⼦的多对多模型,⽗母可以对应多个孩⼦,孩⼦可以有⽗亲,母亲的对应关系// Do:定义⽗母类型public class Parent{ public Parent() { this.RelationShips =new List<RelationShip>(); } public int Id { get; set; } public string Name { get; set; } // Do:3、定义关系集合 public List<RelationShip> RelationShips { get; set; }}// Do:定义⼦类型public class Child{ public Child() { this.RelationShips=new List<RelationShip>(); } public int Id { get; set; } public string Name { get; set; } // Do:2、定义关系集合 public List<RelationShip> RelationShips { get; set; }}///<summary>/// 1、多对多关系模型///</summary>public class RelationShip{ public int ChildID { get; set; } public Child Child { get; set; } public int ParentID { get; set; } public Parent Parent { get; set; }}2、在DataContext中定义两者的关系protected override void OnModelCreating(ModelBuilder modelBuilder){ // Do:多对多配置联合主键 modelBuilder.Entity<RelationShip>().HasKey(l => new {l.ChildID, l.ParentID}); // Do:多对多定义关系模型映射(本段代码可有可⽆) modelBuilder.Entity<RelationShip>().HasOne(l => l.Child).WithMany(l => l.RelationShips) .HasForeignKey(l => l.ChildID); modelBuilder.Entity<RelationShip>().HasOne(l => l.Parent).WithMany(l => l.RelationShips) .HasForeignKey(l => l.ParentID);} public DbSet<Teacher> Teachers { get; set; } public DbSet<School> Schools { get; set; }。
OPENSEESOpensees模型OpenSEES中有限元对象被划分成更多的子对象,其中包括节点对象、材料对象、截面对象、单元对象、荷载对象和约束对象等,并且为其子对象提供了多种不同的选择,包括不同的材料类型,截面形式,荷载模式以及约束方式等,再由它们组合成为有限元模型对象。
在程序中建立子对象的命令主要有:Node、Mass、Material、Section、Element、LoadPattern、TimeSeries、Transformation、Block和Constraint等等。
通过上述命令,我们可以分别确定对象中各节点的位置、节点集中质量、材料本构关系、截面恢复力模型、单元类型、外加荷载模式、几何坐标转换类型和约束形式等。
这些命令构建了有限元模型相应的子对象,由这些子对象组合构成有限元模型对象ModelBuilder。
纤维模型纤维模型是指将纤维截面赋予梁柱构件(即定义构件的每一截面为纤维截面),纤维截面是将构件截面划分成很多小纤维(包括钢筋纤维和混凝土纤维)对每一根纤维只考虑它的轴向本构关系,且各个纤维可以定义不同的本构关系。
纤维模型假定构件的截面在变形过程中始终保持为平面,这样只要知道构件截面的弯曲应变和轴向应变就可以得到截面每一根纤维的应变,从而可以计算得到截面的刚度。
纤维模型能很好的模拟构件的弯曲变形和轴向变形,但不能模拟构件的剪切非线性和扭曲非线性。
构件零长度构件可以赋予零长度构件BARSLIPMaterial(这种材料的本构关系可以精确模拟循环加载时在构件节点处由于钢筋的滑移和混凝土的开裂所引起的构件的刚度退化和强度退化现象)来模拟构件节点处的变形,另外用Bond-SP01Material可以模拟节点处钢筋的应力渗透现象(节点处钢筋还没有整体滑移)所引起的构件的强度和刚度变化。
OPENSEES中零长度构件虽然在建模时是零长度,但在计算这种构件变形时却是取其长度为单位长度。
计算时将零长度截面的弯曲曲率乘以1得到构件的弯曲变形。
JASON操作流程及实用初级手册(invertrace部分-试用版)JASON(invertrace)操作流程前言一:JASON软件工作的基础与关键:井数据编辑、子波提取、合成记录制作与时深关系的调整。
二:工作思路:1:所有的井数据应能较好地反映地下地质情况的变化。
2:首要的是要作好井数据的编辑工作;时深转换要准确;合成记录要尽可能的与地震记录接近;子波提取要合理;极性与地震数据相匹配。
3:先做InverTrace,了解油藏的大致分布,并在AI体上重新解释储层的顶、底面(因为受地震分辨率的限制,地震数据的波峰或波谷不一定代表油藏的反射)。
4:通过交会图(crossplot)寻找与反映油藏关系密切的有关属性(如:GR、RES、Impedance、Porosity…).5:在此基础上进行IverMod的属性反演,但要有一定数量的井,InverMod反演才可靠。
6:在作好InverTrace、InverMod的基础上,再应用StatMod模块。
第一章数据连接与加载一:首先要建立一个JASON的工作目录。
(例sn4jason)加载的数据、中间过程数据及最终成果将保存在此目录下,相当于一个Seis Project。
二:数据连接与加载。
在所建的工作目录下启动JASON,出现JASON工作主菜单。
图1-1 JASON工作主菜单(一)地震工区相关数据连接主菜单→Datalinks→Landmark→Landmark98(97,2000)出现次级菜单。
图1-2 地震工区相关数据连接菜单1:File→SeisWorks project(选择要研究的地震工区)2:Select→import→Seismic/property data(选择要加载的地震数据体)import→Horizons(选择要研究的地震层位)注:若LandMark地震工区有现成可用井曲线,可import→wells直接加载。
3:Select→Trace gate(选择要研究的地震工区范围)4: Select→Time gate(选择要研究的地震工区时间范围)5:Options→Desire JGW format→As file(8 bit integer……可供选择的数据加载格式) 6:Options→Existing files→overwrite(Append……对已存在文件的处理方式)7:Transport→Import(加载数据执行)注:在整个数据加载过程中,有些选项是可选的,注意选择。
简单制作飞机模型英语作文Title: Crafting a Simple Airplane Model。
Crafting a simple airplane model can be an enjoyable and rewarding activity for hobbyists of all ages. Whether you're a seasoned model builder or a beginner looking to try your hand at a new craft, creating an airplane model offers an opportunity to unleash your creativity and attention to detail. In this essay, I'll guide you through the process of making a basic airplane model step by step.Step 1: Gather Your Materials。
Before diving into the construction process, it's essential to gather all the necessary materials. Here's a list of what you'll need:1. Balsa wood or foam board for the airplane body。
2. Craft knife or scissors for cutting。
3. Sandpaper for smoothing rough edges。
4. Glue suitable for your chosen materials。
5. Paints and brushes for adding color and detail。
ARCGIS考试试题一、填空题。
1. 地理信息系统要解决的核心问题包括:位置、条件、变化趋势、模式和模型。
P32. Geodatabase是一种在专题图层和空间表达中组织GIS数据的核心地理信息模型,是一套获取和管理GIS数据的全面的应用逻辑和工具。
P123. ArcCatalog是一个空间数据资源管理器,它以数据为核心。
P15在ArcCatalog中,按照搜索依据可分为四种:按内容项搜索、按地理范围搜索、按时间搜索、利用关键词搜索。
P31—334. Build和Clean都是建立拓扑的方法。
Build在确定Coverage 的同时,需要选择建立拓扑关系的空间要数类型。
Build后的Coverage仍保持原来属性表中的数据项,但不保留关系特征。
P455. Geodatabase是按照层次型的数据对象来组织地理数据,这些数据对象包括:对象类、要素类和要素数据集。
P486. 一个拓扑关系存储了三个参数:规则、等级和拓扑容限。
P827. 3DAnalyst扩展模块的核心是Arcscene应用。
P3088. ArcGIS中的空间数据主要有:基于文件的空间数据、基于数据库的空间数据。
P1179.GIS主要组成部分:硬件系统、软件系统、地理空间数据以及系统操作人员。
P110.栅格结构的显著特点:属性明显和定位隐含。
P18411.数据的空间参考系统包括:坐标系统、投影方式。
P10612.投影变换主要包括:投影类型、投影参数或椭球体等的改变。
P10913.创建表面模型的主要方法:插值法和三角测量法。
P30914.根据标注对象的类型及其内容的来源,可以分为:交互式标注、自动标注、链接式标注。
P16315.统计报告时根据空间数据的属性特征值统计而成的。
P17416.矢量数据分析方法包括:矢量数据包含分析,矢量数据的缓冲区分析,多边形叠置分析,矢量数据的网络分析,泰森多边形分析,矢量数据的量算。
P189 17. 在ArcGIS中,矢量数据的空间分析主要有缓冲区分析、叠置分析和网络分析等。
在PC机上地震和声波场建模程序Tesseral 2-D 全波建模程序用户手册目录1. 概述 (4)1.1 建模器 (4)1.2 计算引擎 (4)1.3 浏览器 (5)1.7 数据输入/输出 (5)2. 启动 (5)3. 用建模器创建模型 (6)3.1 第一次启动 (6)3.2 建模器面版 (6)3.3 建模器菜单和工具条 (7)3.4 剖面页 (7)3.6 观测系统页 (12)3.7 多边形 (15)3.8 静态物理参数 (18)3.9 通用菜单条目 (18)3.10 选项对话框 (19)3.11 炮点和接收点对象 (21)3.12 画模型 (22)3.13 梯度/复合参数分布 (23)3.14 模型修改 (24)3.15 修改多边形 (25)3.16 观看模型 (26)3.17 图片放大 (28)3.18 等轴和调整比例尺 (30)3.19 拖动图片 (30)3.20 保存模型数据 (30)3.21 模型硬拷贝 (33)3.22 彩色色标 (34)3.23 颜色选项 (34)3.24 坐标标记 (35)3.25 “微调位置” 对话框选项 (37)3.26 震源模式 (37)3.27 在建模器中运行计算引擎 (39)3.28 应用主窗口的管理 (40)3.29 改变主窗口的大小 (41)3.30 图片重叠 (42)3.31 下一版本的窗格特征 (43)4. 全波场模型计算 (45)4.1 计算对话框 (45)4.2 报告窗口. (46)4.3 波场成分 (47)5. 数据管理约定 (48)6. 用浏览器分析成果 (50)6.1 浏览器面板 (50)6.2 别的标准格式文件 (50)6.3 浏览器窗口菜单和工具条 (50)6.4 “File” 下拉菜单列表 (51)6.5 “View” 下拉菜单列表: (52)6.6 图片视觉选项 (53)6.7 浏览快照 (57)6.8 在浏览器中对图片处理 (57)6.9 硬拷贝 (57)6.10 浏览器“Run” 菜单条目 (57)6.11 [++下一版] 累加 (57)6.12 网格转换 (58)7. 问题解答 (59)8. 附录A 转换模型到网格格式 (61)9. 附录B 多分区网格 (61)10. 附录C 测井曲线文件(.las)输入 (62)11. 附录D 网格模型计算 (64)12. 附录E 模型文本文件的输入/输出 (65)1.概述Tesseral 2-D 全波波场建模软件包版本2.5包含3个主要的部分: Modelbuilder(建模器),Computational Engine(计算引擎)和 Viewer(浏览器)。
entity framework core 动态创建表在Entity Framework Core中,可以使用代码来动态创建表。
这可以通过`ModelBuilder`类的API来实现。
下面是一个示例:```csharpusing Microsoft.EntityFrameworkCore;using System;namespace YourApp{public class YourContext : DbContext{public DbSet<YourEntity> YourEntities { get; set; }protected override void OnModelCreating(ModelBuilder modelBuilder){// 动态创建表modelBuilder.Entity<YourEntity>().ToTable("YourTable"); }}public class YourEntity{public int Id { get; set; }public string Name { get; set; }}public class Program{static void Main(string[] args){var optionsBuilder = new DbContextOptionsBuilder<YourContext>();eSqlServer("your-connection-string"); using (var context = newYourContext(optionsBuilder.Options)){// 将新的迁移应用到数据库context.Database.Migrate();// 向表中添加数据context.YourEntities.Add(new YourEntity { Name = "Entity 1" });context.SaveChanges();}}}}```在上面的示例中,通过`ModelBuilder`的`Entity<T>()`方法来指定要创建表的实体类型。
ANSYS Twin Builder 是一款强大的集成开发环境,用于创建和运行ANSYS 的工程仿真应用程序。
以下是一个简单的使用 ANSYS Twin Builder 构建案例的步骤:1. **启动ANSYS Twin Builder**:首先,打开ANSYS Twin Builder。
2. **创建新项目**:在主界面上,选择"File" -> "New" -> "Project"。
在弹出的对话框中,为项目命名并选择合适的项目类型。
3. **添加模型**:在项目资源管理器中,右键点击项目名称并选择"Add" -> "Model"。
这将打开一个向导,引导您选择和导入您的模型。
4. **配置模型**:在模型编辑器中,您需要配置模型的几何、材料属性、边界条件等。
这些设置将决定仿真的准确性和精度。
5. **运行仿真**:配置完成后,选择 "Simulate" 菜单项以运行仿真。
ANSYS 将处理模型并生成结果。
6. **查看结果**:仿真完成后,您可以在结果浏览器中查看和分析结果。
这包括应力、应变、位移等数据。
7. **导出和分享**:如果您希望与他人共享您的仿真结果,可以选择 "File" -> "Export" 将结果导出为可共享的文件格式。
请注意,以上步骤是一个非常基础的示例。
实际的仿真过程可能会根据您的具体需求和模型复杂性而有所不同。
在处理复杂模型或高级仿真时,可能需要更深入地了解ANSYS Twin Builder 和相关的工程仿真技术。
制作跑车模型英语作文Title: Making a Sports Car ModelMaking a sports car model can be a fun and rewarding experience for enthusiasts of all ages. Whether you are a seasoned model builder or a beginner looking to try something new, creating a miniature replica of a sleek and powerful sports car can be a fulfilling project. In this essay, we will explore the process of making a sports car model, from gathering materials to adding intricate details that bring the model to life.The first step in making a sports car model is selecting the right kit. There are numerous kits available on the market, ranging from beginnerfriendly snaptogether models to more advanced kits that require painting and glue assembly. Choose a kit that matches your skill level and interests, ensuring that you have the necessary tools and materials to complete the project.Once you have your kit, carefully read the instructions to familiarize yourself with the assembly process. Organize the various parts and components included in the kit, ensuring that you have everything you need before starting. Take your time during assembly, following the instructions closely to avoid mistakes that could affect the final outcome of the model.As you progress through the assembly process, consider adding custom details to enhance the realism of the sports car model. This could include painting the body in a custom color scheme, adding decals and stickers for authenticity, or incorporating aftermarket parts for a personalized touch. Pay attention to small details such as headlights, taillights, and interior features to make the model more lifelike.Once the model is fully assembled and detailed, take the time to admire your handiwork. Display the sports car model proudly, whether on a shelf in your home or at a model car show to showcase your skills and creativity. Making a sports car modelis not just about building a miniature replica—it is about expressing your passion for cars and craftsmanship in a unique and tangible way.In conclusion, making a sports car model is a rewarding and enjoyable hobby that allows enthusiasts to unleash their creativity and attention to detail. By following the steps outlined in this essay, you can create a stunning replica of a sports car that reflects your passion for automotive design. So gather your materials, choose a kit that speaks to you, and get ready to embark on a journey of craftsmanship and skill as you bring your sports car model to life.。
《地理信息系统原理及应用》复习题第一章地理信息系统软件应用概述1.概念ARCGIS ——美国环境系统研究所公司的产品地理信息:与空间地理分布有关的事物的信息,它描述了事物的位置、数量、质量、分布特征、相互联系和变化规律。
地理信息系统:是在计算机软硬件的支持下,对整个或部分地球表层空间中的有关地理分布数据进行采集、存储、管理、运算、分析、显示和描述的技术系统。
矢量(图形)数据:通过记录地理空间实体坐标(坐标对、坐标串和封闭的坐标串)的方式精确的表示点、线、面、体等实体空间位置和形状。
栅格数据:以规则的像元阵列来表示空间地物或现象分布的数据结构。
其阵列中的每个数据表示地物或现象的属性特征。
2.简答题(1)地理信息的特征①空间定位特征,通过统一的空间定位基础实现②多维属性特征,按专题来表达多维的属性信息。
③时序动态特征,按照时间的尺度来区分地理信息。
(2)地理信息系统的构成①计算机硬件系统。
可以是电子的、电的、机械的或装置,是GIS的物理外壳。
②计算机软件系统。
包括计算机系统软件、地理信息系统软化和其他支持软件、应用分析程序。
③地理空间数据和系统管理操作人员。
④地理空间数据(核心)。
(3)地理信息系统的功能①数据采集与输入②数据编辑与更新③数据存储与管理④空间数据分析⑤数据显示与输出(4)ArcGIS 10 Desktop的各组成软件及其功能Desktop GIS主要由ArcMap、ArcCatalog 和Geoprocessing 组成。
①ArcMap是ArcGIS桌面系统的核心程序,用于显示、査询、编辑和分析地图数据及地图制图②ArcCatalog是一个空间数据资源管理器,用于创建、定位、浏览、搜索、组织和管理空间数据③Geoprocessing地理处理框架是具有强大的空间数据处理和分析工具,主要包括两个部分:ArcToolbox(地理处理工具的集合)和ModelBuilder(模型构建器),这2者主要内嵌于ArcMap之中。
ArcToolbox工具详解—三维分析工具 2010-06-04 16:04 转载自 gis理想 最终编辑 gis理想 大家好!最近看到很多群友问到有关ArcMAP里的工具问题 这里我把ArcMAP工具里的各项列出来 请大家先熟悉一些基本的常识 有些单词也不是很好翻译 估计会有很多不当之处 请大家不吝赐教!这次先把三维分析工具整理了一下 以后会陆续整理其他工具的说明 好了 言归正传! 3D Analyst Tools 三维分析工具
这里请看上图 第一个是转换 里面有 从要素类进行转换 从文件进行转换 从栅格进行转换 从地形开始转换 从三角网开始转换 转换至KML 三维图层转换至要素类 而这些里面又有更加细化的工具 这里就举一个例子 从地形转换里另有两个方面 一个是从地形到栅格 一个是从地形到三角网 请大家自行对照理解!如图:
第二个是表面功能 里面有五个小方面 一是Interpolate Shape(插值形状)二是Line Of Sight(视线) 三是 Surface Length(表面长度) 四是Surface Spot(表面地点)五是Surface Volume(表面体积)
第三个是栅格修补 这里有八个方面 一是IDW 二是Kriging(克里金) 三是Natural Neighbor(自然邻域)四是Spline 五是Spline with Barriers 六是Topo to Raster(地形到栅格) 七是Topo to Raster by File(用文件地形到栅格) 八是Trend(趋势) 第四个是栅格计算 这个很好理解 一是除 二是浮点 三是取整 四是减 五是加 六是乘 第五是栅格重分类 一是查找 二是用ASCII文件重分类 三是用表重分类 四是重分类 五是切片
第六是栅格表面 一是坡向 二是等高线 三是等高线列表 四是带路障的等高线 五是曲率 六是填挖 七是山影 八是观察点 九是坡度 十是视域
第七是地形 一是增加要素类到地形 二是增加地形点 三是增加地形金字塔 四是建立地形 五是改变地形参考比例 六是创建地形 七是从地形中移去要素类 八是移去地形点 九是移去地形金字塔
第八是TIN的创建 一是创建TIN 二是划定TIN数据区域 三是编辑TIN 第九是TIN的表面 一是消除节点 二是从中挑出 三是多边形插值成多个面 四是TIN坡向 五是 TIN轮廓 六是TIN差异 七是TIN表面体积 八是TIN坡度 第三章 Model Builder 第一节 Model基础 前面讲了很多的地里处理的概念,涉及好几个地里处理运行方式。在这章中,我们来看看Model Builder的具体的框架结构与功能。Model Builder具有几个优势,而且在目前ArcGIS Server的地理处理发布,也是通过Model Builder来实现。
Model Builder的优势:(一)自动地理处理流程。Model Builder可以把你分析和准备数据过程所用到的所有分析工具和数据通过流程化结合在一起。每次更新操作都可以保存,并且重新运行。(二)共享地理处理知识。Model的数据,工具都通过图形方式表示,通俗易懂,并且可以保存下来与别人共享,同时也可以保存在SDE数据库中,或通过ArcGIS Server实现互联网共享。(三)记录与文挡化。Model的运行可以象Toolbox中的工具一样运行,并且还提供了图文结合的帮助,方便共享。(四)、根据需要添加复杂模型。模型可以包括复杂的处理过程,而一个模型中还可以包含子模型,实现更复杂的应用。
图3-1 Model Builder的元素如图3-1: Tools—与ArcToolbox一样,可以直接拖拽到Model中来使用。在Model中,默认用金黄色的方框表现。
Project data—在工具执行之前存在的任何数据. Project data 作为工具的输入数据,用兰色的椭圆来表现。
Derived data—衍生数据,是根据项目数据与工具分析之后生成的新数据。衍生数据可以作为项目数据来作另一个处理,衍生数据用绿色的椭圆来表现。 Values—参考工具参数而不是数据集;例如缓冲工具的缓冲距离。值通过浅兰色椭圆表现。
Derived values—运行工具以后创建的参考值,例如计算默认簇容限工具的输出值。用浅绿色椭圆表现。
下面举个简单的Model Builder例子:任务:我们假设有全国的河流数据,现在通过Model Builder做一个长江2公里范围缓冲区。 步骤: 1、打开ArcMAP,并且添加河流数据; 2、 打开ArcToolbox,并鼠标右击-->New Toolbox,在ArcToolbox下列表中,会添加一个Toolbox的工具箱,可以修改此工具箱的名称。鼠标右击-->NewModel,建立一个新的Model; 3、 把河流数据和Select工具以及Buffer工具拖拽到Model中,通过Add Connection,把数据与工具连接在一起,如图3-2所示。双击Select和Buffer,设置Select的SQL语句,选择河流名称,如[NAME] = '长江',设置Buffer的缓冲区为2KM.并设置输出的结果的文件路径和名称; 4、 点击“Run”运行模型; 5、 保存Model。 上面是一个简单的建立Model的例子,在Model里边可以添加的不仅仅是已有工具,也可以是自己写的Script脚本工具,以及SubModel。 图3-2 第二节 Model参数 当你定义模型的时候,你可能需要设置一些变量作为模型的参数(model parameters)。这样做有两个目的:首先,可以让你在对话框中运行模型,其次,可以与子模型结合。如图3-3所示。这里还要强调一点,当我们需要把模型通过ArcGIS Server作为地理处理服务发布出去时候,我们就必须要设置这样的参数。
模型对话框 模型可以在Model Builder或在对话框中运行。和其他的任意工具一样,在运行模型以前必须设定参数值。当你创建好了自己的模型,你必须定义什么样的参数在对话框中可见;否则,是无法实现在对话框中运行的。在对话框中运行模型,只有模型参数的变量显示。而且变量值在每次运行模型时候都可以改变。例如,一个水质量模型对话框,可以让用户指定水域的名称来做分析,并对选择的井做缓冲分析。
子模型 我们知道,使用子模型可以把一个大的模型分成许多的小模型,这样更容易进行管理。在一个子模型添加到主模型之前,首先需要把子模型的输出变量设置为模型的参数。这样可以让这些输出变量在模型之间共享。 第三节 Model条件循环 在任何一种处理中,都希望有实现与程序交互的功能,有时候我们经常可以把这种交互处理过程认为循环。对于大多数编程语言来说,交互式关键的概念。那么使用交互,你可以不断使用不同的数据来执行处理过程。在ModelBuilder里,你可以使用iteration来对整个模型进行交互,或则只是对某个单独的处理过程进行交互。批处理就是其中一个例子,它交互时候使用不同的数据,从而实现对整个模型的交互。使用批处理过程,你可以使用模型参数来设置数据和条件值的参数,完成每个交互的过程。 批处理可以在ArcToolbox中实现,而不是在Model Builder中完成。在Model Builder中,你可以使用集中方法来执行过程或模型的交互,这些方法在下面中描述,为了方便,我用英文原文来表示名称。 Lists: 你可以声明一个或多个变量做为列表变量。一旦你声明了一个变量作为列表值,打开这个变量将显示批处理对话框。当这个列表变量连接到一个工具以后,这个工具和所有下游的处理(这个处理依赖这个工具的输出内容)将把这个列表的变量都执行一遍。 Series: 你可以声明一个或多个变量作为系列参数。系列参数与列表相似,它可以包含多个值。所不同的地方在于,对于系列中的每个值,整个模型只执行一次。你可以在模型中设置多个系列变量,但是你只能够声明一个模型交互控制。见图3-4。 Boolean condition: 你可以指定模型进行交互,直到它的参数变量值为false为止。你可以使用Boolean或Long型变量。如果你使用Long变量,那么负数或0表示false。所有的正数都认为是true。 Count: 你可以设置模型交互的次数,直到达到某个Count数。 Feedback:反馈是设置把某个处理的输出作为最开始的输入。见图3-5
第四节 模型执行可视界面与帮助 我们的所有处理可以直接在ModelBuilder中执行,并得到结果。ModelBuilder还提供另外一种选择,就是它可以作为一个工具来进行使用。象ArcToolbox中其它的工具一样,可以在窗口中打开,通过设置输入数据,参数,输出结果参数等来执行。并且和其它tools一样,可以提供帮助系统。 对于上图的这个模型工具,我们参考一下图3-7,看在实际模型当中这些输入框是怎么设置的。
从上图可以看到四个输入的参数数据和输出的参数数据都是设置为P参数。即在ModelBuilder中我们通过设置参数,把这些作为变量,以便执行操作时候,可以提供交互式的选择。输入参数的名称可以在ModelBuilder的属性项参数,然后添加名字和数据类型,如上图的Input Feature Class,数据类型为Feature Layer。这样就可以实现模型的人机界面的交互。
对于使用帮助帮助系统,ModelBuilder提供了一套方便的工具。通过点击模型鼠标右键Edit Documentation,如图3-8。