如何使用ArcGIS进行可视化分析
概述
通视分析是指以某一点为观察点,研究某一区域通视情况的地形分析,利用DEM判断地形上任意两点之间是否可以互相可见的技术方法,分为视线通视分析和视域通视分析,前者判断任意两点之间能否通视,后者从任一点出发,判断该区域内所有其他点的通视情况,这里为大家介绍一下如何使用ArcGIS进行可视化分析。
02
数据来源
本教程所使用的数据是从水经微图中下载的DEM数据,除了DEM数据,常见的GIS数据都可以从水经微图中下载,你可以通过关注微信公众号“水经注GIS”,然后在后台回复“微图”即可获取软件下载地址,当然也可以直接在水经注GIS官方网站下载。

水经微图
03
绘制视线确定通视性
在菜单空白处点击右键,勾选上3D Analyst,如下图所示。

勾选上3D Analyst
在显示的3D Analyst工具条上,点击创建视线按钮,创建视线。
![]()
点击创建视线按钮
点击后在图上绘制一条需要分析的视线,绘制之后会得到通视结果,红色代表不可视区域,绿色代表可视区域,蓝色点为障碍点。

可见性结果
04
改变视点高度
在通视分析对话框内,将观测点的高度增加100m,如下图所示。

增加观测点高度
再次绘制同路径的视线,可以看到可视范围变得更大,如下图所示。

更改观测点高度后的可见性结果
05
基于单点的可视域分析
在ArcToolbox内点击“3D Analyst工具\可见性\视域”,调用视域工具。

调用视域工具
在显示的视域对话框内,输入栅格为下载的DEM数据,输入观察点为准备的视点数据。

视域设置
点击确定之后可以看到观察点的视域,绿色代表可见,红色代表不可见,如下图所示。

单点可视域
06
改变单点视点高度
默认使用的是观察点对应的DEM高度进行可视域分析,如果要提高观察点高度,可以通过对观察点图层增加字段的方式解决。
其中,字段名Spot代表指定观察点的绝对高程值;OffisetA代表三维表面高程不变,设定观察点的高程偏移值;OffsetB代表观察点高程不变,设定三维表面的高程偏移值,这里增加字段OffsetA,值为100,表示观测点高度增加100m,如下图所示。

修改后属性表
在ArcToolbox内点击“3D Analyst工具\可见性\视域”,调用视域工具。

调用视域工具
在显示的视域对话框内,输入栅格为下载的DEM数据,输入观察点为增加字段后的观察点文件。

视域设置
点击确定之后可以的到视域范围,相比于增加字段之前,明显变得更广。

视域范围
07
基于路径的可视域分析
如果需要对某个路径进行可视域分析,需要先将路径转换为3D Shapefile,不然分析结果是错误的。
在ArcToolbox内点击“3D Analyst工具\功能性表面\插值Shape”,调用插值Shape工具。

调用插值Shape工具
在显示的插值Shape对话框内,输入表面为下载的DEM文件,输入要素类为需要3D化的线文件。

插值Shape设置
点击确定之后就得到了3D化后的线文件。

3D化的线文件
在ArcToolbox内点击“3D Analyst工具\可见性\视域”,调用视域工具。

调用视域工具
在显示的视域对话框内,输入栅格为下载的DEM,输入观察折线为3D化后的路线。

视域设置
点击确定之后可以看到视域范围,如下图所示。

视域范围
打开属性表,可以看到有Value和Count两个字段,其中Value代表被看到的次数,Count代表被看到的次数下对应的栅格有多少个。

可视域属性表
08
基于线要素通视性分析
在ArcToolbox内点击“3D Analyst工具\可见性\通视分析”,调用通视分析工具。

调用通视分析工具
在显示通视分析对话框内,输入表面为下载的DEM数据,输入线要素为之前得到的3D化后的线。

通视分析设置
点击确定之后可以得到通视分析的结果,绿色代表可见,红色代表不可见。

通视分析结果
09
结语
以上就是如何使用ArcGIS进行可视化分析的详细说明,主要包括了数据来源、绘制视线确定通视性、改变视点高度、基于单点的可视域分析、改变单点视点高度、基于路径的可视域分析和基于线要素通视性分析等功能。
更多免费教程、资源、数据:树谷资料库大全(2023年8月16日更新)
相关文章:
如何使用ArcGIS进行可视化分析
概述 通视分析是指以某一点为观察点,研究某一区域通视情况的地形分析,利用DEM判断地形上任意两点之间是否可以互相可见的技术方法,分为视线通视分析和视域通视分析,前者判断任意两点之间能否通视,后者从任一点出发&am…...
计算机竞赛 基于LSTM的天气预测 - 时间序列预测
0 前言 🔥 优质竞赛项目系列,今天要分享的是 机器学习大数据分析项目 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/po…...
uniapp 回退到指定页面 保存页面状态
uniapp 历史页面回退到指定页面。 getCurrentPages() 内容如下 let delta getCurrentPages().reverse().findIndex(item > item.route "pages/popularScience/daodi") if(delta-1){uni.navigateTo({url: /pages/popularScience/daodi,success: res > {},fa…...
ansible(1)-- 部署ansible连接被控端
目录 一、部署ansible 1.1 安装 1.2 测试连接 192.168.136.55 ansible 192.168.136.56被控端 一、部署ansible 1.1 安装 zabbix-s只是主机名,不用在意,更好该主机也安装了zabbix,不好更改。 下载阿里云epel源 #安装阿里云的epel源&#…...
Log4j反序列化命令执行漏洞(CVE-2017-5645)Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)
一.Log4j反序列化命令执行漏洞(CVE-2017-5645) Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码 环境:vulhub 工具下载地址࿱…...
echarts 之 科技感进度条
1.图片展示 2.代码实现 /* ng qty 进度条 */ <template><div class"ngqty-progress"><div class"ngqty-info"><span>X4</span><span>50%</span></div><div :id"barNgQtyProgress index" c…...
基于gin关于多级菜单的处理
多级菜单是很多业务场景需要的。下面是一种处理方式 // 生成树结构 func tree(menus []*video.XkVideoCategory, parentId uint) []*video.XkVideoCategory {//定义子节点目录var nodes []*video.XkVideoCategoryif reflect.ValueOf(menus).IsValid() {//循环所有一级菜单for …...
Oracle/PL/SQL奇技淫巧之Lable标签与循环控制
在一些存储过程场景中,可能存在需要在满足某些条件时跳出循环的场景, 但是在PL/SQL中,不能使用break语句直接跳出循环, 但是可以通过lable标签的方式跳出循环,例: <<outer_loop>> FOR i IN 1..5 LOOPDBMS…...
Docker基础操作
1.安装docker服务,配置镜像加速器 安装docker服务 清理缓存 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-enginesystemctl enable --now docker 脚…...
AMBA总线协议(8)——AHB(六):分割传输
一、前言 在之前的文章中,我们重点介绍了AHB传输的仲裁,首先介绍了仲裁相关的信号,然后分别介绍了请求总线访问,授权总线访问,猝发提前终止,锁定传输和默认主机总线,在本文中我们将继续介绍AHB的…...
时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化
时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于SWD群体分解的分量可视化,基于群体分解的信号分解技术,MATLAB程序…...
【makefile】自动化变量的简述及实例
文章目录 10. env20. 简述百度百科常用的自动化变量 30. 实例90. 附件下载 10. env ubuntu1804 GNU Make 4.120. 简述 百度百科 https://baike.baidu.com/item/Makefile/4619787?frge_ala makefile 文件的格式: 目标:依赖命令软件编译的流程概述&am…...
IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/
IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/ Idea下载官网一键直达: 官网一键直达...
C#,《小白学程序》第一课:初识程序
曰:扫地僧练就绝世武功的目的是为了扫地更干净。 1 文本格式 /// <summary> /// 《小白学程序》第一课:初识程序 /// </summary> /// <param name"sender"></param> /// <param name"e"></param&…...
LeetCode--HOT100题(38)
目录 题目描述:226. 翻转二叉树(简单)题目接口解题思路代码 PS: 题目描述:226. 翻转二叉树(简单) 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 LeetCode做题链…...
C语言:指针(超深度讲解)
目录 指针: 学习目标: 指针可以理解为: 字符指针: 定义:字符指针 char*。 字符指针的使用: 练习: 指针数组: 概念:指针数组是一个存放指针的数组。 实现模拟二维…...
Docker详解
文章目录 Docker详解一、Docker简介什么是容器 ?容器技术有哪些优点 ?什么是Docker ?Docker的特点Docker的使用场景 二、Docker的基本组成Docker 客户端 / 守护进程Docker Image 镜像Docker Container 容器Docker Registry 仓库 三、Docker 依…...
软件开发方法:复用与扩展
软件开发方法:复用与扩展 一、面向对象二、进一步认识 一、面向对象 封装 工程上的意义:屏蔽细节,隔离变化 public、protected、private 继承 工程上的意义:复用 多态工程上的意义:高内聚,低耦合 —— 面…...
C++新经典09--函数新特性、inline内联函数与const详解
函数回顾与后置返回类型 函数定义中如果有形参则形参应该有名字,而不光是只有类型,但是如果并不想使用这个形参,换句话说这个形参并不在这个函数中使用,则不给形参名也可以,但在调用这个函数的时候,该位置…...
C++中机器人应用程序的行为树(ROS2)
马库斯布赫霍尔茨 一、说明 以下文章为您提供了对机器人应用程序或框架中经常使用的行为树的一般直觉:ROS,Moveit和NAV2。了解行为 Tress (BT) 框架的原理为您提供了在游戏领域应用知识的绝佳机会。BT可以与Unity或Unreal集成。 由…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
