[经济学]空间分析 31页

  • 813.50 KB
  • 2022-08-22 发布

[经济学]空间分析

  • 31页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
空间分析\n内容叠加分析1缓冲区分析2裁剪3\n概述空间分析是GIS系统的重要功能之一,是GIS系统与CAD的主要区别.空间分析的对象是一系列跟空间位置有关的数据,这些数据包括空间专业坐标和专业属性两部分,其中空间坐标用于描述实体的空间位置和几何形态,专业属性则是实体某一方面的性质\n组件mc_Spc_Anly70Lib空间分析组件,主要用于进行空间运算和buffer分析以及拓扑查错等空间分析。主要接口ISpatialAnalysis2进行叠加分析、裁剪分析等操作ITopoBuffer2进行缓冲区分析\n叠加分析定义地理信息系统的叠加分析是将有关主题层组成的数据层面进行叠加,产生一个新的数据层面的操作,其结果是原来的要素被分割、剪断、套合,然后生成新的要素,新要素综合了原来两层要素所具有的属性。也就是说,空间叠加,不仅产生新的空间特征,还将实体的属性联接起来,产生新的属性。空间叠加是分矢量和栅格两种数据类型进行的。对于矢量数据,采用矢量叠加方法,该方法对矢量的空间数据进行分割、剪断、套合等操作,对和矢量相关的属性进行连接,叠加结果是新的矢量数据和属性数据。借助叠加分析可以进行空间数据相交、求并、相减等多种空间分析操作。注意:在矢量叠加分析中至少涉及到三个数据集,其中进行叠加的两个数据集可以是点、线、面类型的,但结果数据集的几何类型必须与进行叠加分析的第一个数据集类型相同。\n叠加分析类型区对区区对点点对区线对区点对线结果与第一个简单要素类相同类型\n叠加过程说明简单要素类A(A图形和A属性)简单要素类B(B图形和B属性)简单要素类C(C图形和C属性)说明1.简单要素类C的图形类型和A要素类相同2.简单要素类C的属性是要素类A和B连接的结果\n叠加分析方式1. 相交2. 求并3. 相减4. 对称差※\n叠加分析示意图相交:C求并:A+B+C相减:A对称差:A+B说明:1.A+C为第一简单要素类2.B+C为第二简单要素类BAC\n区对区的叠加分析求并:属于A或属于B的区域标志码面积周长F11320.561.2A标志码面积周长F21280.750.1B标志码面积周长F1区号F21198.251.3A2122.342.1A1B3158.453.41B\n区对区的叠加分析相交:属于A且属于B的区域标志码面积周长F11320.561.2A标志码面积周长F21280.750.1B标志码面积周长F1区号F21122.342.1A1B\n相减:属于A且不属于B的区域标志码面积周长F11320.561.2A标志码面积周长F21280.750.1B标志码面积周长F1区号F21198.251.3A区对区的叠加分析\n对称差:除掉既属于A又属于B的公共区域外的所有属于A或属于B的区域标志码面积周长F11320.561.2A标志码面积周长F21280.750.1B标志码面积周长F1区号F21198.251.3A2122.342.1B12区对区的叠加分析\n如何进行区对区的叠加?连接数据源打开数据库打开进行叠加的两个简单要素类操作步骤GDBSvr.Connect("MapGislocal","","");GDB=GDBSvr.get_gdb("DevelopDB");SFeatureCls=GDB.get_XClass(meXClsType.meXSFCls)asmcSFeatureCls; SFeatureCls.Open(“Ku6_1s.wl”,0);(另一个同样打开)创建结果简单要素类ResultSCls=GDB.get_XClass(meXClsType.meXSFCls)asmcSFeatureCls; ResultSCls.Create("Result",SFeatureCls.type,0,0,null);调用叠加分析方法SpatialAnalysis.OverLay(SFeatureCls,OverLaySFeature,ResultSCls,meOverlayType.OVLY_INTER,null);\n注意:usingmc_basXcls7Lib; usingmc_basObj7Lib; usingmc_Spc_Anly70Lib;SpatialAnalysis.OverLay(mcSFeatureClssrcSFCls0,mcSFeatureClssrcSFCls,mcSFeatureClsdestSFCls,meOverlayTypeopType,mcOverlayOptionoption)第一个参数:被叠加简单要素类;第二个参数:叠加简单要素类;第三个参数:结果简单要素类;第四个参数:叠加类型;第五个参数:拓扑信息相关设置。option:当简单要素类srcSFCls0,srcSFCls具有严格正确的拓扑信息时,设置option=NULL[默认情况]:当简单要素类srcSFCls0,srcSFCls的拓扑信息不完整时,设option.LabelPnt=1[采用label点方法]。开始时添加引用\n缓冲区分析1.线Buffer区域定义:对于任意曲线L,半径为R的实心圆,圆心沿着曲线L从一端运动到另一端时,该实心圆所覆盖的区域就称为曲线L半径为R的Buffer区。2.一组线的Buffer半径为R的实心圆,圆心沿着所有的曲线从一端运动到另一端而构成的整个覆盖区域\n缓冲区分析的类型根据缓冲半径的不同分为:半径恒定的缓冲区分析与可变半径的缓冲区分析。半径恒定的缓冲区分析:半径等距,指缓冲半径一致,单位为与当前激活图层地图单位一致,它的数值要手工输入;可变半径的缓冲区分析:半径为变距型半径,指指缓冲半径变化,可以分为按字段(缓冲半径从属性字段值里提取)和指定值(分别输入左侧半径和右侧半径,单位是地图单位)两种。注:生成出来的结果与缓冲半径的大小有关,半径越小,结果越精确。并且,生成出来的结果放在面类型的简单要素类里。\n下图显示的是单个点、单个线以及单个面的缓冲区,Buffer半径选项选择等距型中的地图单位,缓冲区生成方法选择光栅法,圆头。\n如果缓冲目标是多个点(或多个线、多个面),则缓冲分析的结果是各单个点(线、面)的缓冲区的合并,碰撞到一起的多边形,将会被合并成一个,也就是说,MapGISK9可以自动处理多个特征缓冲区重叠的情况,取消由于重叠而落在缓冲区内的弧段。分析结果如下举例所示。\n根据地理实体的性质和属性,对其规定不同的缓冲区距离,通常是十分必要。例如,沿河流两岸禁止砍伐树木带的宽度应根据河流类型以及两岸土质而定。因此,GIS系统应有求取可变缓冲区的能力,例如允许用户在属性表中定义一项,作为缓冲区宽度,如下图所示:可变宽度缓冲\n如何进行恒定半径缓冲分析?连接数据源打开数据库打开进行缓冲的源简单要素类操作步骤GDBSvr.Connect("MapGislocal","","");GDB=GDBSvr.get_gdb("DevelopDB");SFeatureCls=GDB.get_XClass(meXClsType.meXSFCls)asmcSFeatureCls; SFeatureCls.Open(“Ku6_1s.wl”,0);创建结果简单要素类ResultCls=GDB.get_XClass(meXClsType.meXSFCls)asmcSFeatureCls; ResultCls.Create("Result",SFeatureCls.type,0,0,null);调用缓冲分析方法TopoBuffer.ConstantBufRadius(SFeatureCls,ResultCls,null);\n注意:usingmc_basXcls7Lib; usingmc_basObj7Lib; usingmc_Spc_Anly70Lib;SpatialAnalysis.OverLay(mcSFeatureClssrcSFCls,mcSFeatureClsdestSFCls,mcObjectIDssrcIDs)第一个参数:缓冲前的源简单要素类;第二个参数:缓冲后的结果简单要素类;第三个参数:局部buffer分析的要素id序列。另外:destSFCls:必须是面简单要素类;恒定半径缓冲区分析包括双边等半径缓冲和双边不等半径缓冲。开始时添加引用\n注意:TopoBuffer.SetBufRadius(2,2);//设置缓冲分析半径TopoBuffer.TraceRadius=0;//buffer跟踪半径TopoBuffer.SideType=meBufSideType.FULL_SIDE;//双边缓冲TopoBuffer.BufMethod=meBufferType.RASTER_BUF;//缓冲方法:光栅方法TopoBuffer.KnobFlg=meBufJointType.CIRCLE_ANGLE;//结束类型:圆头缓冲前要进行缓冲设置\n恒定半径缓冲分析与可变缓冲分析的区别?区别:可变半径缓冲区分析是根据属性字段名来缓冲。即是进行缓冲分析前参数设置不同TopoBuffer.FldName="ID"; TopoBuffer.TraceRadius=0;//buffer跟踪半径TopoBuffer.SideType=meBufSideType.FULL_SIDE;//双边缓冲TopoBuffer.BufMethod=meBufferType.RASTER_BUF;//缓冲方法:光栅方法TopoBuffer.KnobFlg=meBufJointType.CIRCLE_ANGLE;//结束类型:圆头\n裁剪分析定义按照用户指定的空间范围,形成的裁剪框的边界(边界可以是任意多边形),按照该裁剪框对地图图层进行框内或框外的切取,即保留框内或框外的图形及相关属性信息,并把保留的图形及属性内容写到一个地图数据库文件中,尤其是对面域数据的裁剪操作,裁剪后还需重新组织图形数据的拓扑关系后再予以保存;在MapGISK9中,裁剪分析主要是针对简单要素类进行的,根据提供的多边形或者裁剪框的边界,从该简单要素类中提取部分要素,因此进行裁剪分析需要准备三种数据:1.被裁剪的简单要素类2.裁剪框3.结果简单要素类。\n注意:1、被裁简单要素类:要进行裁剪分析的对象,即对该对象进行裁剪。被裁简单要素类可以是任意类型的简单要素类。2、裁剪框:即利用它来对被裁简单要素类进行裁剪。裁剪框必须是区类型的简单要素类或者是用户自定义的多边形。   注:裁剪框必须与被裁简单要素类具有相同的空间参照。3、结果简单要素类:用来存放裁剪结果的简单要素类。结果简单要素类与被裁简单要素类要保持几何约束类型一致。\n裁剪分析类型裁剪分析包括两种类型:内裁和外裁。 内裁:裁剪结果保留为裁剪框边界之内的图形及相关属性。 外裁:裁剪结果保留为裁剪框边界之外的图形及相关属性。\n两种裁剪方式示意图外裁内裁\n如何用简单要素类进行内裁?连接数据源打开数据库打开进行裁剪的两个简单要素类操作步骤GDBSvr.Connect("MapGislocal","","");GDB=GDBSvr.get_gdb("DevelopDB");SFeatureCls=GDB.get_XClass(meXClsType.meXSFCls)asmcSFeatureCls; SFeatureCls.Open(“Ku6_1s.wl”,0);创建结果简单要素类ResultCls=GDB.get_XClass(meXClsType.meXSFCls)asmcSFeatureCls; ResultCls.Create("Result",SFeatureCls.type,0,0,null);调用裁剪分析方法SpatialAnalysis.Clip(SFeatureCls,Clip,ResultCls,meOverlayType.OVLY_INCLIP,null);\n注意:usingmc_basXcls7Lib; usingmc_basObj7Lib; usingmc_Spc_Anly70Lib;SpatialAnalysis.Clip(mcSFeatureClssrcSFCls0,mcSFeatureClssrcSFCls,mcSFeatureClsdestSFCls,meOverlayTypeopType,mcOverlayOptionoption)第一个参数:被裁简单要素类;第二个参数:裁剪框简单要素类;第三个参数:结果简单要素类;第四个参数:裁剪操作类型(内裁或外裁)第五个参数:拓扑信息相关设置。option:当简单要素类srcSFCls0,srcSFCls具有严格正确的拓扑信息时,设置option=NULL[默认情况]:当简单要素类srcSFCls0,srcSFCls的拓扑信息不完整时,设option.LabelPnt=1[采用label点方法]。开始时添加引用\n谢谢!

相关文档