前言
如何对于多个波段值进行统计分析?可使用reduceRegions函数
Image.reduceRegions(collection, reducer, scale, crs, crsTransform, tileScale)
在给定集合中每个特征的区域上应用减速器。 reducer 的输入数量必须与输入图像的波段数量相同。 返回输入特征,每个特征都增加了相应的 reducer 输出。
一、利用reduceRegions对多个波段统计
以NAIP美国国家农业影像计划的数据为例进行分析,空间分辨率1m,共有4个波段,分别为R、G、B、N,分比为红、绿、蓝、近红波段,该数据的描述如下:
- 国家农业影像计划 (NAIP) 在美国大陆的农业生长季节获取航空影像。
- NAIP 项目每年根据可用资金和图像采集周期签订合同。从 2003 年开始,NAIP 以 5
年为周期被收购。2008年是一个过渡年,2009年开始了一个三年的周期。 - NAIP 图像在一米的地面采样距离 (GSD) 处获取,其水平精度与在图像检查期间使用的照片可识别地面控制点的六米范围内匹配。
- 使用 3 个波段(红色、绿色和蓝色:RGB)收集较旧的图像,但通常使用附加的近红外波段 (RGBN) 收集较新的图像。RGB 资产 ID
以“n ”开头,NRG 资产 ID 以“c ”开头,RGBN 资产 ID 以“m_”开头。
以美国金门大桥周边区域的影像进行分析
二、使用步骤
1.分析步骤
导入影像
加载空间分析区域
对各个波段进行统计分析
得到分析结果
需学习掌握的函数:
- ee.reduceRegions():Apply a reducer over the area of each feature in the given collection. The reducer must have the same number of inputs as the input image has bands. Returns the input features, each augmented with the corresponding reducer outputs.
- ee.Reducer.mean():Returns a Reducer that computes the (weighted) arithmetic mean of its inputs.返回计算其输入的(加权)算术平均值的 Reducer。
- ee.Reducer.forEachBand():Creates a Reducer by combining a copy of the given reducer for each band in the given image, using the band names as output names.通过为给定图像中的每个波段组合给定 reducer 的副本,使用波段名称作为输出名称来创建一个 Reducer。
2.python代码
代码如下:
Map = geemap.Map()
image = ee.Image('USDA/NAIP/DOQQ/m_3712213_sw_10_1_20140613')
Map.setCenter(-122.4712, 37.8041, 14)
Map.addLayer(image, {'bands':['N', 'R', 'G']}, 'NAIP')
Map
geometry = image.geometry()
means = image.reduceRegions(geometry, ee.Reducer.mean().forEachBand(image), 10)
means.getInfo()
结果显示如下:
{'type': 'FeatureCollection',
'columns': {'B': 'Float<0.0, 255.0>',
'G': 'Float<0.0, 255.0>',
'N': 'Float<0.0, 255.0>',
'R': 'Float<0.0, 255.0>',
'system:index': 'String'},
'features': [{'type': 'Feature',
'geometry': {'type': 'Polygon',
'coordinates': [[[-122.50384809968367, 37.815186584325374],
[-122.50384809968367, 37.747300979776796],
[-122.43357895772449, 37.747300954003066],
[-122.43357895772449, 37.815186523981325],
[-122.50384809968367, 37.815186584325374]]]},
'id': '0',
'properties': {'B': 113.92255161564239,
'G': 125.41387897689918,
'N': 86.16627228617047,
'R': 121.34327479453404}}]}
总结
小结一下: 主要对于 ee.reduceRegions、ee.Reducer.mean、ee.Reducer.forEachBand函数进行了学习,实现了对于多个波段的同时统计处理,可以应用于对于landsat等影像多个波段光谱亮度平均值、最大值、最小值等进行统计分析等。
|