1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Google Earth Engine(GEE)实例代码学习五——计算山体阴影(HillShade)

Google Earth Engine(GEE)实例代码学习五——计算山体阴影(HillShade)

时间:2021-02-01 13:02:22

相关推荐

Google Earth Engine(GEE)实例代码学习五——计算山体阴影(HillShade)

标题

本文分享利用数字高程模型SRTMS数据,模拟太阳方位角由0到360度变化的山体阴影。

首先引入计算山体阴影的计算公式

二、山体阴影计算方法

山体阴影的计算公式如下

(1) Hillshade = cos(Zenith) * cos(Slope)+cos(Azimuth - Aspect) * sin(Slope) * sin(Zenith)

其中,Zenith是太阳天顶角的的弧度数,Slope是某一点的坡度弧度数,Azimuth是指太阳方位角弧度数,Aspect是某一点的坡向弧度数。

实例代码如下

// 首先定义一个函数将度转换为弧度function radians(img) {return img.toFloat().multiply(Math.PI).divide(180);}//定义计算山体阴影函数function hillshade(az, ze, slope, aspect) {var azimuth = radians(ee.Image(az));//太阳方位角var zenith = radians(ee.Image(ze));//太阳天顶角//山体阴影计算公式如上return azimuth.subtract(aspect).cos().multiply(slope.sin()).multiply(zenith.sin()).add(zenith.cos().multiply(slope.cos()));}//引入GEE自带计算数字高程模型的函数//‘Terrain’计算得到影像的高程,坡度,坡向,山体阴影var terrain = ee.Algorithms.Terrain(ee.Image('CGIAR/SRTM90_V4'));var slope = radians(terrain.select('slope'));var aspect = radians(terrain.select('aspect'));//位置大概位于北京Map.setCenter(116, 39.9, 11);//模拟太阳方位角从0到360度分别显示for (var i = 0; i < 360; i += 60) {Map.addLayer(hillshade(i, 60, slope, aspect), {}, i + ' deg');}

代码运行结果如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。