天天看点

【GEE 学习】在云平台实现波段计算--以MOD09GA计算albedo为例1.实验背景2.参考文献3.实验代码4.结果5. 讨论

目录

  • 1.实验背景
    • 1.1实验目的
        • (1)使用MOD09GA的六个波段计算albedo,使用梁老师的计算公式:
        • (2)裁剪
        • (3)批量导出
    • 1.2 实验数据
  • 2.参考文献
  • 3.实验代码
  • 4.结果
  • 5. 讨论

1.实验背景

最近在计算地表反照率albedo,如果在NASA官网上下载,得下载六幅影像进行拼接,一天六幅,一年365天,我觉得比较麻烦,正好GEE提供了在线拼接的影像,那就稍微处理一下再下载。

1.1实验目的

本文章的代码想要完成以下的任务:

(1)使用MOD09GA的六个波段计算albedo,使用梁老师的计算公式:

【GEE 学习】在云平台实现波段计算--以MOD09GA计算albedo为例1.实验背景2.参考文献3.实验代码4.结果5. 讨论

(2)裁剪

(3)批量导出

1.2 实验数据

MOD09GA

MODIS/Terra Surface Reflectance Daily L2G Global 1 km and 500 m SIN Grid

2.参考文献

《GEE开发之Sentinel-2计算NDVI和数据分析》

3.实验代码

//裁剪函数
function ExtractByMask(Image) 
{
  return Image.clip(roi)
}

//乘参函数
function Multiply(Image)
{
  return Image.multiply(0.0001)
}
 //计算反照率albedo
function Cal_Albedo(img)
{
  
  var b01=img.select('sur_refl_b01');  //提取波段
  var b02=img.select('sur_refl_b02');
  var b03=img.select('sur_refl_b03');
  var b04=img.select('sur_refl_b04');
  var b05=img.select('sur_refl_b05');
  var b07=img.select('sur_refl_b07');
  var albedo = img.expression(
  "0.16*b01+0.291*b02+0.243*b03+0.116*b04+0.112*b05+0.018*b07-0.0015",
  {
    'b01':b01,'b02':b02,'b03':b03,'b04':b04,'b05':b05,'b07':b07
  }  //表达式,以及参数对应关系
  );
  
  return albedo;
}

//影像投影和重采样
function Reproject(image){
  var wkt = 'GEOGCS["WGS 84",\
    DATUM["WGS_1984",\
        SPHEROID["WGS 84",6378137,298.257223563,\
            AUTHORITY["EPSG","7030"]],\
        AUTHORITY["EPSG","6326"]],\
    PRIMEM["Greenwich",0,\
        AUTHORITY["EPSG","8901"]],\
    UNIT["degree",0.0174532925199433,\
        AUTHORITY["EPSG","9122"]],\
    AUTHORITY["EPSG","4326"]]';
  //设置新的坐标系统
 var proj_mollweide = ee.Projection(wkt);
 //将影像进行重投影
 var image_reproject = image.reproject({
  crs: proj_mollweide,
  scale: 500
  })
  return image_reproject;
}

var roi=table.geometry()
var batch = require('users/fitoprincipe/geetools:batch') //调用导出工具
//筛选影像
var Reflect_dataset=ee.ImageCollection("MODIS/061/MOD09GA")
          .filterDate('2004-07-01','2004-10-01')
          //.select(['sur_refl_b01','sur_refl_b02','sur_refl_b03','sur_refl_b04','sur_refl_b05','sur_refl_b06','sur_refl_b07']) 不要在这里筛选
          .filterBounds(roi);
var Reflect_Multiply=Reflect_dataset.map(Multiply)  //乘参
var Reflect_calalbedo=Reflect_Multiply.map(Cal_Albedo)
var Reflect_ExtractByMask=Reflect_calalbedo.map(ExtractByMask) //裁剪
print(Reflect_ExtractByMask)
var Reflect_Reproject=Reflect_ExtractByMask.map(Reproject) //重投影
print(Reflect_Reproject.first().projection())

//COLLECTION导出
batch.Download.ImageCollection.toDrive(Reflect_Reproject,"2004albedo", {
scale: 10000,
crs: "EPSG:4326",
type:"float" })

           

4.结果

【GEE 学习】在云平台实现波段计算--以MOD09GA计算albedo为例1.实验背景2.参考文献3.实验代码4.结果5. 讨论

5. 讨论

在筛选数据集的时候,不需要加入波段条件。如果先加入了波段,有时候会出现说投影问题,但print投影的时候又是对的。

【GEE 学习】在云平台实现波段计算--以MOD09GA计算albedo为例1.实验背景2.参考文献3.实验代码4.结果5. 讨论

继续阅读