基于ArcGIS的点抽稀方法总结

2024-01-25 21:20
文章标签 arcgis 总结 方法 抽稀

本文主要是介绍基于ArcGIS的点抽稀方法总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、牵引线抽稀法

利用ArcGIS的高级智能标注引擎Maplex的牵引线进行标注。将符号作为注记显示,把符号和注记绑在一起,通过阈值自动进行标注间避让,计算出地图上所有标注的最佳位置放置,达到抽稀的目的。能显示出注记的,那么该点的符号也跟随显示出,如不能显示出注记的,则该点的符号也不显示。有效避免了符号和注记互相压盖或符号显示而注记无法显示的问题。
缺点:

  1. 作牵引线标注后点符号的中心与实际点位存在半个符号的偏差,对位置精度要求较高的,不能使用该方法
  2. 每次移动都要对所有点进行一遍计算,在大数据量的情况下,处理速度慢,严重影响电子地图显示的流畅性
  3. 由于该方法只是对密集区域的点进行显示上的抽稀处理,同一点图层在不同缩放比例下显示的点可能不同,不能实现点在不同层级的一个连续显示

二、Subset随机抽稀法

Subset Feature(子集要素)工具是ArcGIS地统计分析模块的一个工具,对输入点按设置百分比进行随机抽稀,抽稀后兴趣点的密集度与抽稀前的密集程度一致。稀疏的地方更稀疏,密集的地方更密集,未考虑均匀效果。

特点:比较适合对无差别点进行抽稀,可以从根本上减少点的数量

三、SubPoints点抽稀

Sub Points是Esri中国自主开发的一个GP插件,但10.2以上版本不再提供技术支持了。该工具优先考虑点在空间分布上的均匀合理性,并考虑数据的重要性,对优先级高的,优先进行选取。如果所有点的优先级一样,该方法相比Subset便没有太大优势。

具体步骤如下:

1、修改下载程序相应cs文件
网上下载的GPSubPoints是基于ArcGIS10.0版本开发的,是通过ArcObjects新建的GP工具。ArcGIS10.1版本之后的Desktop许可名称发生了变化,比如以前的ArcView,现在是Basic;以前的ArcEditor,现在是Standard;以前的ArcInfo,现在是Advanced。所以程序需要进行相应修改后重新编译才有效。

  • SubPointsFunctionFactory.cs文件中CreateGPFunctionNames方法MinimumProduct属性修改为:在这里插入图片描述
  • SubPointsFunction.cs文件汇总IsLicensed()函数中if条件修改为:
    在这里插入图片描述

2、编译成功后将新生成的dll进行注册
将GPSubPoints.dll拷贝至ArcGIS安装目录\bin下,选择打开方式为ESRIRegAsm.exe(浏览到C:\Program Files (x86)\Common Files\ArcGIS\bin\ESRIRegAsm.exe),注册成功会弹出Registration successed的提示消息。

3、Arcmap添加工具
打开Arcmap,在我的工具箱中添加工具箱,然后添加工具,选择PointsSubset→Sub Points

4、数据准备
(1) 使用点距离工具(分析工具→邻域分析→点距离)创建两组点之间的距离表,输入和邻近要素都为需要进行抽稀的点数据,搜索半径为抽稀后任意两个点的最大距离

(2) 待抽稀的点数据属性表中必须包含“Name”和“优先级”(short)字段,如没有,则需新建并赋值,来设置不同点的重要性

5、执行Sub Points工具

四、距离阈值法

该方法通过设定距离阈值,批量删除距离小于该阈值的两点中的一个,实现密集区的点抽稀

具体步骤如下:

1、 利用点距离工具创建两组点之间的距离表(使用默认半径,则计算所有输入点与邻近点之间的距离;限定查找半径,输出表仅包含具有搜索半径内邻近点的这些记录)

2、 删除上步结果中重复记录。数据管理→常规→删除相同的(delete identical),字段选择Distance

3、 将结果表连接到点要素类中(点的FID对应表中Input_FID )

4、 删除Input_FID不为空的点

详细步骤截图参见 https://blog.csdn.net/hailiannanhai/article/details/79636563

这篇关于基于ArcGIS的点抽稀方法总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644644

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用