ArcGIS制图之阴影效果的表达与运用

news2024/11/26 13:57:53

一、运用制图表达进行投影表达

在专题图的制作过程中,经常需要将目标区域从底图中进行突显,运用制图表达制作图层投影可以较好地实现这一目的。具体步骤如下:

1.将目标图层存储于数据库中并加载至窗口(shapefile格式数据无法支持制图表达的转换与存储);

2.右键图层-“将符号系统转换为制图表达”;

3.单击“转换”,在内容列表中即生成一个名为“示例_Rep”的制图表达图层,将该图层放置在原始图层下方;

4.双击“示例_Rep”打开其属性窗口,点击“+”号添加“移动”几何效果;

5.设置移动距离与颜色,完成单色阴影效果;

单色阴影效果示例

6.更进一步,可将单色阴影调整为渐变模式,并调整色带与相关参数,形成渐变阴影效果。

渐变阴影效果示例

与其他制图软件相似,ArcGIS制图表达是基于源数据的一种显示规则,其优点是会随着源数据的变化而变化,但在微观尺度上,也存在着无法准确表达建筑阴影的问题,因此,下面介绍另一种在ArcGIS中表达阴影的方法。

二、利用要素折点构建阴影图层

原理如下,通过要素偏移,构建与原始要素折点的连接线,从而形成阴影矢量图层。

1.准备建筑矢量图层并加载至窗口;

2.使用“数据管理工具-要素-要素折点转点”将面要素转换为折点要素,并在属性表中给每个点进行编号赋值;

3.打开编辑器,选中折点进行复制粘贴后,将其进行移动;

4.使用“数据管理工具-要素-点集转线”分两次将点集转为建筑轮廓及其连接线,两次参数设置分别如下;

5.使用“数据管理工具-要素-要素转面”将折线转换为面要素后,放置在原始图层下方,形成矢量化建筑阴影。

构建建筑矢量阴影的过程较为繁琐,但通过模型构建器(ModelBuilder)可将其串联形成个性化的模型工具,从而极大地简化这一流程。与其他软件相比,本方法形成的建筑阴影为矢量图形,不会随图形的缩放而失真,且在存储与读取方面也具有显著优势。

三、阴影效果的进阶运用

1、真实阴影的表达

在利用要素折点构建阴影图层的方法中,我们可以引入太阳方位角和太阳高度角公式,模拟特定时刻下特定位置的建筑阴影,计算公式如下所示:

1.太阳高度角计算公式:

sinhs=sinφ·sinδ+cosφ·cosδ·cosΩ

2.太阳方位角计算公式:

cosAs= sinhs·sinφ-sinδ/(coshs·cosφ)

3.阴影横坐标偏移量:

x=H·cosAs/tanhs

4.阴影纵坐标偏移量:

y= H·sinAs/tanhs

式中:hs-太阳高度角;φ-地理纬度;δ-⾚纬;Ω-时角;As-太阳方位角;H-建筑高度;x-阴影横坐标偏移量;y-阴影纵坐标偏移量。

通过以上公式进行计算,可以模拟出任意时段任意地点的实际阴影效果,如下图所示:

在此基础上,一方面可以在时间滑块中将阴影设置为实时模式,阴影将跟随当前系统时间显示为对应的阴影形式,再通过ArcGIS online进行发布便可以实现在线地图的实时阴影变化;另一方面,也可以缩短计算时间间隔来生成更为频繁的阴影变化,从而进行日照分析,这与湘源控规等软件的日照分析工具采用了相同的逻辑。

2、复杂表面的阴影构建

上述阴影的构建,适用于平面地表的阴影模拟并构建其矢量图形,但在实际项目中,往往需要考虑到地形起伏、屋顶阴影等多种状况,这里提供一种栅格化阴影的计算思路:

  1. 使用面转栅格工具,将建筑矢量图层转为栅格:

2.使用“栅格计算器”或“镶嵌至新栅格”工具将建筑栅格与地形栅格进行叠加;

3.通过山体阴影工具计算阴影,该步骤可叠加上述太阳高度角、太阳方位角计算公式,如图为2021年冬至日上午10点某建筑群阴影。

 

树谷资料库资源大全(2月9日更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/393454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Looper简介

本文基于安卓11。 Looper是一个用具,在安卓程序中,UI线程是由事件驱动的(onCreate, onResume, onDestory),Looper就是处理这些事件的工具,事件被描述为消息(Message),Lo…

【PHP代码注入】PHP代码注入漏洞

漏洞原理RCE为两种漏洞的缩写,分别为Remote Command/Code Execute,远程命令/代码执行PHP代码注入也叫PHP代码执行(Code Execute)(Web方面),是指应用程序过滤不严,用户可以通过HTTP请求将代码注入到应用中执行。代码注入(代码执行)…

python甜橙歌曲音乐网站平台源码

wx供重浩:创享日记 对话框发送:python音乐 获取完整源码源文件说明文档配置教程等 在虚拟环境下输入命令“python manage.py runserver”启动项目,启动成功后,访问“http://127.0.0.1:5000”进入甜橙音乐网首页,如图1所…

YOLOS调试记录

YOLOS是由华中科大提出的将Transformer迁移到计算机视觉领域的目标检测方法,其直接魔改ViT!本文首次证明,通过将一系列固定大小的非重叠图像块作为输入,可以以纯序列到序列的方式实现2D目标检测。 模型结构 下面来调试一下该项目…

【微信小程序】-- 页面事件 - 上拉触底 - 案例(二十七)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

javaScript基础面试题 ---对象考点

1、对象是通过new操作符构建出来的,所以对象之间不相等 2、对象注意引用类型,如果是引用类型,就可能会相等 3、现在对象本身查找 -> 构造函数中找 -> 对象原型中找 -> 构造函数原型中找 -> 对象上一层原型… 1、对象是通过new操作…

被骗进一个很隐蔽的外包公司,入职一个月才发现,已经有了社保记录,简历污了,以后面试有影响吗?...

职场的套路防不胜防,一不留神就会掉坑,一位网友就被“骗”进了外包公司,他说公司非常隐蔽,入职一个月才发现是外包,但已经有了社保记录,简历污了,不知道对以后面试有影响吗?楼主说&a…

Mysql迁移Postgresql

目录原理环境准备操作系统(Centos7)Mysql客户端安装Psql客户端安装数据库用户导表脚本dbmysql2pgmysqlcopy测试在mysql中建表导表测试查看pg中的表原理 Mysql抽取:mysql命令重定向到操作系统文件,处理成csv文件; PG装载:copy方式…

【大数据源码】Hadoop源码解读 Namenode 启动加载FsImage的过程

Namenode 启动前言启动 Namenode 组件启动脚本Namenode.initializeFSNamesystem.loadFromDiskFsImage.recoverTransitionReadFSImageFormat.loadFSImageFormatProtobuf.load反序列化加载FsImage文件内容FsImage内存数据结构前言 NameNode是HDFS中负责元数据管理的组件&#xf…

PhpStudy下载安装使用教程,图文教程(超详细)

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 PhpStudy一、官网下载二、安装三、简单使用四、粉丝福利PhpStudy:让天下没有难…

bable和AST概述

这里写目录标题bable定义Babel概述Babel 中重要的对象VistorAST定义Javascript 语法的AST(抽象语法树)bable 定义 Babel 是我们知道的将 ES6、ES7等代码转译为 ES5 代码且能安全稳定运行最好的工具同时它允许开发者开发插件,能够在编译时期…

关于 interface{} 会有啥注意事项?上

学习 golang ,对于 interface{} 接口类型,我们一定绕不过,咱们一起来看看 使用 interface{} 的时候,都有哪些注意事项吧 interface {} 可以用于模拟多态 xdm 咱们写一个简单的例子,就举动物的例子 写一个 Animal 的…

【LeetCode】剑指 Offer(17)

目录 题目:剑指 Offer 34. 二叉树中和为某一值的路径 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer …

Spring Cache简单介绍和使用

目录 一、简介 二、使用默认ConcurrentMapManager (一)创建数据库和表 (二)创建boot项目 (三)使用Api 1、EnableCaching 2、CachePut 3、cacheable 4、CacheEvict 三、使用redis作为cache 一、简…

云计算基础——云计算认知

云计算的总体框架在服务方面,主要以提供用户基于云的各种服务为主,共包含3个层次:1.软件即服务(Software as a Service,简称SaaS),这层的作用是将应用主要以基于Web 的方式提供给客户;2.平台即服务(Platform as a Serv…

STL讲解——模拟实现vector

STL讲解——模拟实现vector vector深度剖析 在STL源码中,发现vector定义的并不是 start、size、capacity,而是start、finish、end_of_storage. 这样就可以得到size()和capacity()。 sizefinish-start capacityend_of_storage-start 扩容可能是本地扩容也…

Entity Framework简单使用

我喜欢比较老派的database first , 所以先创建sql server的数据库,比如dbname叫做:Blogging这里我省略了。 在visual studio里面创建一个控制台程序, 然后添加ado.net项目 选择“gen from database” 然后新建你的数据库连接&…

基于粒子群优化算法的分布式电源选址定容【IEEE33节点】(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…

测试人员须要知道的性能测试那些事

随着各企业的业务发展、用户量以及数据量的不断增加,系统承载的压力也会随之增加,服务系统的性能好坏又严重影响企业的利益。因此,性能测试重要性与需求越来越强烈。 常见的性能测试目的 性能测试是确定系统在特定工作负载下的稳定性和响应…

数智引航 共赢未来 | 科士达2023数据中心合作伙伴大会圆满召开!

3月5日,科士达2023年全国合作伙伴大会在广东深圳隆重召开,本次大会以“数智引航 共赢未来”为主题,来自全国各地的核心渠道伙伴齐聚一堂,深度交流,展望未来,共同探讨数据中心技术发展趋势,碰撞…