Google Earth Engine(区域统计)

2022-04-29 08:30:55 浏览数 (1)

Google Earth Engine(区域统计)

在通过GEE计算遥感的地表参量以后,我们就需要对计算出来的数据进行统计。GEE上面画图的功能并不是很齐全,得到的效果也不尽如人意。因此我们就需要将GEE对区域的统计量进行导出,导入到本地以后,再进行绘图。

本期的的主要内容就是利用GEE对区域内的地表参量(如植被覆盖度、叶面积指数、蒸散量,本次以NDVI为例)进行统计(如平均值、面积等)。最后把统计的值导出到本地。

landsat-8实例分享

数据:Landsat-8

研究区域:北京

统计量:全北京的NDVI平均值

我们本次是统计了北京一年里面的4次NDVI的平均值,1-3,3-6,6-9,9-12月份全北京的Landsat-8的4次的NDVI平均值。这样子我们就可以看出全北京在一年中4个季度的NDVI变化值。同理我们也可以做逐年的变化趋势,稍微改一下间隔和日期就可以。 代码:

代码语言:javascript复制
var table = ee.FeatureCollection("users/boyxiaozheng/feature/beijing");
//定义计算NDVI的函数
function cal_ndvi(image){
  var mask=ee.Algorithms.Landsat.simpleCloudScore(image).select(['cloud']).lte();
  var ndvi=image.normalizedDifference(['B5', 'B4']).updateMask(mask);
  return ndvi;
}
//设置开始时间
var start_time=ee.Date('2014-01-01')
//初始化列表,存储统计的值
var data_list=[]
for (var index = ;index< ; index  ){
  var temp_image= ee.ImageCollection("LANDSAT/LC08/C01/T1_RT")
  .filterBounds(table.geometry())
  .filter(ee.Filter.lt('CLOUD_COVER',))
  //根据循环的index依次筛选四个季度的Landsat-8数据
.filterDate(ee.Date(start_time).advance(index*,'month'),ee.Date(start_time).advance((index )*,'month'))
  .map(cal_ndvi)
  .mean();
  //对每个季度的影像进行求平均
  var meanDictionary = temp_image.reduceRegion({
//可以设置成max、min或count(像元个数)
  reducer: ee.Reducer.mean(),
  geometry: table.geometry(),
  scale: ,
  maxPixels: 1e9
  });
  //把统计量存成Feature,并记录开始时间和结束时间
  var temp_feature=ee.Feature(null,meanDictionary);
  temp_feature = temp_feature.set('satr_time', ee.Date(start_time).advance(index*,'month'));
  temp_feature = temp_feature.set('end_time', ee.Date(start_time).advance((index )*,'month'));
  data_list.push(temp_feature)

}
//把存储Feature的列表转成FeatureCollection
var featureCollection = ee.FeatureCollection(data_list);
//把数据存到谷歌云盘上面
Export.table.toDrive({
  collection: featureCollection,
  description: 'exportTableExample',
  fileFormat: 'CSV'
});

导出结果:

导出的csv文件就记录了北京2017年4个季度的NDVI平均值。

本次我们讲了如何运用GEE对影像进行统计和数据导出。下一期,我们将会讲到,如何利用影像和其他气象数据进行运算。

0 人点赞