【GIS教程】ArcGIS做日照分析(附练习数据下载)

news2024/10/6 8:35:51

 我国对住宅日照标准的规定是:冬至日住宅底层日照不少于1小时或大寒日住宅层日照不少于2小时(通常以当地冬至日正午12时的太阳高度角作为依据)。因冬至日太阳高度角最低,照射范围最小,如果冬至日12:00建筑物底层能够接收到阳光,那么一年中其他天数就能接收到更多的太阳辐射。

        随着数字城市的建设,在大量的城市建筑数据支持下,应用GIS空间分析方法可以找出不符合建筑日照规范的建筑,为城市规划与设计提供有效的方法依据。

        小编通过12:00的日照情况来模拟该时刻的建筑物产生的阴影范围,如果在这时刻建筑物都没有被遮挡,则建筑间距满足日照要求,最后通过分析阴影与建筑物的空间叠加关系可以找出不符合日照标准的建筑物。

        我们用到的数据只有建筑物高度的矢量数据“Build”和小区数据“Community”,并且当地12:00太阳高度角为34.75197°。具体怎么求这个建筑物的日照阴影,看小编画的技术流程图啦!

图片

1.矢量转栅格

在Arcmap中处理阴影都是在栅格数据的基础上进行的,为此我们要把这个矢量数据转换成栅格数据。使用【转换工具】|【转为栅格】|【面转栅格】,【输出栅格】设置为“BuildR”。

图片

2.栅格重分类

现在要对刚才处理出来的栅格进行重分类,把旧值为“NoData”的像元值改成新值“0”,其他的不变。有的小伙伴可能不明白为什么要做这一步。在解释这个问题之前小编先说一下坡向计算的原理。

坡度计算是使用邻域分析,有多种计算方法,但是都涉及到模板,就是说计算某一个栅格的坡向,至少需要知道X轴和Y轴4个方向相邻像元的高程值。那么这里的建筑物边缘在后面的操作中也要计算坡向,但是边缘外面的值是“NoData”,这样无法计算建筑物的边缘,所以为了后续的坡向计算需要将“NoData”的像元值设置为0。

选择【Spatial Analyst 工具】|【重分类】|【重分类】工具,【输入栅格】选择“BuildR”,【值字段】选择“Value”,【输出栅格】设置为“reclass1”,如下图所示:

图片

图片

3.计算坡向

选择【Spatial Analyst工具】|【表面分析】|【坡向】工具,【输入栅格】选择“reclass1”,【输出栅格】设置为“aspect”,根据需要,设置其他参数,点击【确定】,生成坡向数据“aspect”,如下图所示:

图片

可以发现坡向都是在建筑物边缘,因为只有在边缘才有高度落差,才能形成坡向,其他同一水平面高度无法形成坡向。

4.提取建筑物的背光面轮廓

本次计算在12:00时刻太阳方位角在180°时建筑物的背光面轮廓,此时建筑物阴影应该是在0°—90°和270°—360°。

打开【Spatial Analyst 工具】|【地图代数】|【栅格计算器】,输入一个判断语句:

(("Aspect2">=0)&("Aspect2"<=90))|(("Aspect2">=270)&("Aspect2"<=360))

得到建筑物背光面轮廓“back12”,图中蓝色为轮廓,值为1。

图片

5.提取建筑物背光面的高度数据

由于栅格数据只能表示一种属性,而后面山体阴影分析需要的是高程数据,为此我们需要计算背光面的高度。已知前面的数据“reclass1”是表示高度的,而“back12”中背光面像元值为1,因此我们只要将两个相同位置的像元相乘即可的得到背光面像元的高度值。

打开【Spatial Analyst 工具】|【地图代数】|【栅格计算器】,输入:“reclass1”*“back12”,设置【输出栅格】为“DEM12”,这时候的背光面轮廓都有了高度属性。

图片

6.计算建筑物的阴影

我们要根据当地时间12:00太阳的方位角和高度角,以及背光面的高度计算建筑物的阴影。

打开【Spatial Analyst Tools】|【表面分析】|【山体阴影】工具,【输入栅格】选择“DEM12”,方位角:180(北半球当地时间12:00太阳方位角都是180°啦),高度:34.75197,选中【模拟阴影】,如果不选中的话就没有阴影出来,只有物体本身的阴阳面出现,【输出栅格】设置为“Shade12”,如下图所示:

图片

我们在结果图层的基础上叠加上建筑物的蓝色轮廓,我们可以发现有些建筑物轮廓里面有黑色的阴影,可以肯定该建筑物底层在12:00一定是无法接收到太阳照射的,不满足日照规范。

图片

在这里有的小伙伴就会想,为什么我不可以直接在“reclass1”这个建筑物高度数据上面做【山体阴影】?小编曾经也有这个疑惑,于是乎照着操作了一遍,得到的结果如下图所示:

图片

有什么不一样吗?眼尖的小伙伴一眼就识破。绝大多数的建筑物没有被阴影遮挡,这个是很正常的对吧?因为一部分的建筑物阴影会被后面楼层的向光面覆盖掉,而我们看到的图像是上帝视角,所以就觉得阴影缺失了一部分,只有极少部分由于建筑物太高,产生的阴影才可能会覆盖到后面建筑物的楼顶。

如下图所示:

图片

(小部分阴影会覆盖到其他建筑物屋顶)

图片

(大部分阴影被建筑物向光面遮挡)

由于图像显示的是上帝视角,垂直往下看的,这样看到的阴影没有覆盖住其他建筑物,就不好判断该建筑物是否被其他建筑物的阴影覆盖,是否符合日照标准。

由于阴影都是由建筑物的背光面遮挡太阳光线产生的,因此只要我们使用背光面来创建阴影即可,这样做有什么作用吗?有!这样背光面产生的阴影就不会因为有向光面而被残忍覆盖了,阴影就可以直接覆盖到建筑物的底层,叠加上建筑物就可以很容易判断其是否满足日照标准啦,如下图所示:

图片

7.判断阴影和建筑物的覆盖关系

此时我们需要将阴影栅格转换成矢量格式,在“Shade12”中,像元值为0的就是阴影,所以我们在属性表里面选中值为0的栅格,使用【转换工具】|【由栅格转出】|【栅格转面】,【输入数据】设置为“Shade12”,【字段】选择“Value”,选中简化面,输出文件名为“Mshade”,结果图层如下所示:

图片

接下来我们要查询不符合日照标准的建筑物了。选择菜单栏里面的选择选项卡,在下拉选项卡中点击【按位置选择】工具,选择方法设置为“从以下图层中选择要素”,目标图层勾选为建筑物矢量数据“Build”,源图层选择“Mshade”,空间选择方法为“目标图层要素的质心在源图层要素内”,为什么选择这个呢?因为根据这两个图层的空间关系来看,建筑物矢量数据都和它的阴影相交。

有的小伙伴又会问,为什么都相交?不应该是阴影和建筑物边界相邻吗?我第一感觉也是这样的,但是我看到建筑物的栅格数据“BuildR”时,发现矢量边界线一部分和建筑物边界外面的像元相交了,这说明阴影计算的结果阴影栅格中一定会有和建筑物边界线相交的像元,如下图所示:

图片

(黄色为建筑物栅格,蓝色线是建筑物矢量边框)

图片

(黑色为阴影栅格,蓝色线是建筑物矢量边框)

综上所述,只能选择建筑物的质心是否在阴影上面来判断其是否是不符合日照标准的建筑物咯,最后点击确定。

这时候我们可以看到“Build”中有一部分建筑物高亮显示,我们把选中的建筑物右键导出来,然后叠加到建筑物数据“Build”和小区上面进行符号化,最终结果如下图所示:

图片

如果有小伙伴准备买房的哈,对采光条件比较有要求的,可以自己做一个这样的日照分析,拿着这个图去挑房绝对不会吃亏哦!

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

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

相关文章

Go语言中通过数据对齐降低内存消耗和提升性能

数据对齐是一种安排数据分配方式以加速 CPU 访问内存的方法。 不了解这个概念会导致额外的内存消耗甚至性能下降。 要了解数据对齐的工作原理&#xff0c;让我们首先讨论没有它会发生什么。假设我们分配两个变量&#xff0c;一个 int32 类型的 &#xff08;32 B&#xff09; 和…

OJ:数字三角形(搜索)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;每日一练 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f337;1.问题描述&#xff1a; ⛳️题目描述&#xff1a; 示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路…

指针的使用以及运算、二级指针、造成野指针的原因以及解决方法、指针和数组相互使用

第七章&#xff0c;指针的学习 目录 前言 一、指针的概念 二、指针的类型 三、野指针 四、指针的运算 五、指针和数组的关系以及使用 六、指针数组 七、二级指针 总结 前言 这章主要学习的是指针方面的知识&#xff0c;这节只是简单了解一下指针&#xff0c;并不会深…

使用HTML和CSS和PHP实现一个简单的简历制作项目

实 验 目 的 掌握HTML表单作用&#xff0c;以及action和method属性&#xff1b; 掌握HTML输入域作用、类型、标签&#xff0c;以及name和value属性&#xff1b; 掌握$_REQUEST变量的作用、语法和使用&#xff1b; 掌握注释&#xff0c;以及变量的作用、命名、赋值和输出&#…

SpringBoot项目错误:找不到主类(解决办法)

清理和重新编译项目即可&#xff0c;在项目中点击右键Maven-Reload project&#xff0c;之后再重新运行就行了

MySQL、Oracle查看最大连接数和当前连接数

文章目录 1. MySQL2. Oracle 1. MySQL -- 查看最大连接数 show variables like max_connections; select max_connections; -- select * from performance_schema.session_variables where VARIABLE_NAME in (max_connections); -- select * from performance_schema.global…

SpringCloud 基础配置

1.SpringCloud配置 目前是2024了,笔者也是开始学习SpringCloud 下面是给大家总结的微服务需要的各种依赖的版本 首先我们说一个重点强调 约定 > 配置 > 编码 千万不要一把梭,上来就是干代码,千万记得配置一定得对 2.微服务工程Base构建 首先我们创建父工程 创建出来直接把…

嵌入式Linux开发

(17 封私信 / 1 条消息) 嵌入式Linux应用 - 搜索结果 - 知乎 (zhihu.com)

37. UE5 RPG创建自定义的Ability Task

在前面的文章中&#xff0c;我们实现了一个火球术的一些基本功能&#xff0c;火球术技能的释放&#xff0c;在技能释放后&#xff0c;播放释放动画&#xff0c;在动画播放到需要释放火球术的位置时&#xff0c;将触发动画通知&#xff0c;在动画通知中触发标签事件&#xff0c;…

课时100:正则表达式_基础实践_基础知识

3.1.1 基础知识 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 需求 我们之前的一些操作&#xff0c;很大程度上都是基于特定的关键字来进行实践的&#xff0c;尤其是面对一些灵活的场景&#xff0c;我们因为过于限定一些关键字&am…

线性代数基础2矩阵

矩阵是什么 矩阵就是二维数组&#xff0c;下面是一个 m 乘 n 的矩阵&#xff0c;它有 m 行&#xff0c;n 列&#xff0c;每行每列上面都有元素&#xff0c;每个元素都有行标i 和列标 j&#xff0c; a ij 。简称m n矩阵&#xff0c;记作&#xff1a; 注意a11的索引是 A[0,0]。…

多模态视觉语言模型:BLIP和BLIP2

1. BLIP BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation BLIP的总体结构如下所示&#xff0c;主要包括三部分&#xff1a; 单模态编码器&#xff08;Image encoder/Text encoder&#xff09;&#xff1a;分别进…

论文笔记:UrbanGPT: Spatio-Temporal Large Language Models

1 intro 时空预测的目标是预测并洞察城市环境随时间和空间不断变化的动态。其目的是预见城市生活多个方面的未来模式、趋势和事件&#xff0c;包括交通、人口流动和犯罪率。虽然已有许多努力致力于开发神经网络技术&#xff0c;以准确预测时空数据&#xff0c;但重要的是要注意…

卷王问卷考试系统/SurveyKing调查系统源码

SurveyKing是一个功能强大的开源调查问卷和考试系统&#xff0c;它能够快速部署并适用于各个行业。 这个系统提供了在线表单设计、数据收集、统计和分析等功能&#xff0c;支持20多种题型&#xff0c;提供多种创建问卷的方式和设置。 项 目 地 址 &#xff1a; runruncode.c…

[阅读笔记16][Orca-2]Teaching Small Language Models How to Reason

接下来是Orca-2&#xff0c;这篇是微软在23年11月发表的论文&#xff0c;在Orca-1的基础上又进行了一些改进。 作者希望教会Orca-2各种推理策略&#xff0c;例如逐步思考、回忆然后回答、先回忆再推理再回答、直接生成回答等等策略。并且Orca-2应该能针对不同任务应该使用最合适…

安装Zipkin

官网&#xff1a;https://zipkin.io/pages/quickstart.html Jar包方式 下载 方式一&#xff1a;百度网盘下载 链接&#xff1a;https://pan.baidu.com/s/1PRV1RamJ8IWX32IJb7jw3Q?pwde8vu 提取码&#xff1a;e8vu 方式二&#xff1a;Central Repository: io/zipkin/zipk…

linux离线安装mysql

一、下载mysql 地址&#xff1a;MySQL 这里选择64为还是32为要根据操作系统来 uname -m 二、上传解压配置mysql 使用root账户登录linux服务器&#xff0c;在opt文件下创建mysql文件夹 cd /opt sudo mkdir mysql 使用Xftp上传mysql压缩包到此文件夹下(自行决定路径) cd mysql/…

李宏毅2022机器学习/深度学习 个人笔记(2)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲&#xff08;选修&#xff09;&#xff1a;神奇宝贝分类&#xff08;续&#xff09; 如图&#xff0c;boundary变为直线&#xff0c;结果也有上升 我们不一定采用高斯几率模型&#xff0c;…

【C++初识继承】

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C进阶 本篇文章主要讲解 继承 的相关内容 目录 1. 继承的概念和定义 1.1 继承的概念 1.2 继承的定义 1.2.1 继承定义格式 1.2.2 继承方式与访问修饰限定符 2. 基类和派生类对象赋值转换 3. 继承中的作用域 …

NIMAX下载安装使用,pyvisa基本使用

NIMAX部分&#xff1a; 1、先在NI官网下载系统配置和NI-VISA&#xff1a; 系统配置&#xff1a; https://www.ni.com/zh-cn/support/downloads/drivers/download.system-configuration.html#532687https://www.ni.com/zh-cn/support/downloads/drivers/download.system-conf…