GEE 教程(二):遥感图像的基本计算¶
1 计算坡度¶
1.1 代码实现¶
现在我们已经知道了如何加载和显示所需区域的图像了,接下来就可以对其进行应用计算了。
例如,我们可以通过将 SRTM 高程图像传递给 ee.Terrian
包中的 slope()
方法来计算地形的坡度。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
【注】:在代码 ee.Terrain.slope(srtm)
中,SRTM
图像是作为坡度算法的参数提供的。
1.2 结果展示¶
- 结果应该如图 1 所示。
2 计算坡向¶
2.1 代码实现¶
ee.Image
类中还有一些方法可以在图像对象上调用。我们可以使用图像带(有时称为带数学或映射代数)进行一些计算。
- 例如,如果我们需要实现对坡度图像上的三角运算,首先要将一个坡向图像转换为弧度,然后对它调用
sin()
函数计算。 - 这里我们仍然使用
SRTM
图像进行操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
aspect.divide(180).multiply(Math.PI).sin()
:除以 \(180\) 后,将其结果再乘以 \(π\),最后取 \(sin()\)- 我们可以通过这种方式组合各种方法,从而对图像执行复杂的数学运算。
2.2 结果展示¶
- 结果应该如图 2 所示。
3 计算平均高程¶
3.1 代码实现¶
此外,另一类实用的图像操作涉及到计算图像区域的像素统计,或者是光栅-矢量叠加。如果我们想在 Earth Engine 中计算统计信息,则需要使用 ee.Reducer
包中的 类对 reducer
进行操作。
例如,我们对武汉市内的平均海拔感兴趣,就需要使用以下代码获取武汉市行政区域内的平均像素值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
这里有几点需要注意。
- 首先,要注意到
reducregion()
是对Image
对象操作的方法。 - 其次,方法参数是在作为单个参数传递的 JavaScript 对象中提供的。(具体来说,对象的键是方法参数的名称。值是方法的参数)。
- 第三,
reducer
参数指定要计算的统计量类型,geometry
参数指定要计算统计量的区域。scale
参数是要使用的像素大小,以米为单位。为了避免歧义,在进行约分化简时应该始终指定比例,因为 Earth Engine 可能无法从输入中自动确定适当的比例。 - 最后,
reducregion()
的返回值是一个字典类型,其中,键是条带名称,值是条带的像素统计信息。字典上的get()
方法返回作为参数提供的键对应的值。在本例中,SRTM 图像有一个频带 “elevation”,因此代码从字典中获取该统计数据并打印出来。 - 同时,还要注意的是,区域中的像素最多只允许 10000000 个点,超出范围将会在控制台报错。
3.2 结果展示¶
最后更新:
2023-05-20
创建日期: 2023-04-25
作者:
创建日期: 2023-04-25
作者: