GEE学习记录~~~

目录

20220510——学习GEE平台上遥感信息的处理

20220511——GEE中上传tif文件

20221203——GEE计算导出辐射日均值csv

20230114——GEE计算多年辐射平均值导出图像


20220510——学习GEE平台上遥感信息的处理

1.google账号的申请以及GEE平台的注册

参考:GEE注册详细指南,第二次注册,亲测成功._BetterQ.的博客-CSDN博客_gee注册

Google Earth Engine账号申请 - 知乎

过程还是比较顺利滴;

2.B站上有长时间序列影像数据处理视频,准备学习学习!

B站UP主的GEE入门;

遥感大数据平台 Google Earth Engine 教学视频_哔哩哔哩_bilibili

我准备用MODIS气溶胶数据,04-20年,对于每一个栅格要每一年的月均值;

(1)B站up主,实现研究区多年水平下的年均值分区统计;这个角度也不错,可以提取县域的分区获得每个县域多年的值;我在实战过程中遇到的问题是,多年水平下我想要月均值,不清楚循环嵌套格式是否正确;

借鉴UP主代码,加循环嵌套,RUN了5个小时,结果不太对;好在平台可以一次多操作,还是逐年求吧,也不错;

【Google earth engine】GEE代码实战,获取黄河流域逐区县年平均LAI数据_哔哩哔哩_bilibili


Map.addLayer(table,{},'table');
var addYearsInfo = function(agent)
{
  for(var year = year1; year <=year2; year++)
  {
    // for(var mon = mon1; mon <=mon2; mon++)
    // {
    // var start=ee.Date.fromYMD(year,mon,1);
    // var end=start.advance(1,'month');
    var thismonmean = ee.ImageCollection(var_id)
                        .filterDate((year)+'-01-01',(year)+'-02-01')
                        // .filterDate(start,end)
                        .select(var_str)
                        .mean()
                        .multiply(0.001);
    var thisAgentData = thismonmean.clip(agent.geometry());
    var meandata = thisAgentData.reduceRegion({
        reducer: ee.Reducer.mean(),
        geometry:agent.geometry(),
        scale : IMGscale});
        agent=agent.set(ee.String.encodeJSON(year),meandata.get(var_str));
    // }
    
  }
  return agent
};

var year1=2003;
var year2=2020;
// var mon1=1;
// var mon2=12;
var var_id="MODIS/006/MCD19A2_GRANULES";
var var_str='Optical_Depth_047';
var IMGscale = 1000;

var mondata=table.map(addYearsInfo);

Export.table.toDrive({
  collection:mondata,
  description:'table'+var_str+'mondata',
  fileFormat:'csv'
});

(2)其它博主的月均值求法也值得学习,他们是针对研究区的所有栅格在全域上求均值;和自己想要的不一样;

GEEer成长日记十二:Modis_LST地表温度产品时间序列分析_爱探索的GEEer的博客-CSDN博客_modis地表温度产品

(博主对某一年的12个月,各个月份求均值) 

GEEer成长日记五:Sentinel-2计算NDVI并逐月时间序列分析_爱探索的GEEer的博客-CSDN博客_sentinel计算ndvi

(原文的代码:不太懂)!!!

var years = ee.List.sequence(2020, 2020);
var months = ee.List.sequence(1, 12);
var S2_monthlymeanNDVI =  ee.ImageCollection.fromImages(
  years.map(function (y) {
    return months.map(function(m) {
    return NDVI.filter(ee.Filter.calendarRange(y,y, 'year')).filter(ee.Filter.calendarRange(m, m, 'month')).mean().set('year', y).set('month', m).set('system:time_start', ee.Date.fromYMD(y, m, 1));
    });
  }).flatten()
);
————————————————
版权声明:本文为CSDN博主「爱探索的GEEer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51691876/article/details/122729769

20220511——GEE中上传tif文件

出现的问题:单独上传一张时,可以成功,但是一次上传多张tif不成功,后来同学建议单独上传,多次操作;但是15年×365天一张一张点进去有点emmm

GEE平台数据集中没有臭氧浓度、二氧化硫等浓度的数据集,这些数据集在GEOS中找到的,数据集日分辨率,想要每年的月均值,如果按以前的方法,只能matlab先将源文件nc数据日值求平均后转换成nc文件才能转格式,再在GIS里进行后续批量 裁剪,今天发现GIS里不用裁剪可以进行分区统计;

使用GEE平台是为了不用自己写代码求月均值,一张一张点也不现实;

再试试老方法吧!!!

arcgis里的分区统计:
问题:分区统计时,只有栅格数据分辨率很高时,也就是说县域内包括了多个栅格才会计算出该县域的统计值!!!不清楚为什么?我用京津冀县域研究区计算时,栅格数据是比较粗的0.5°的气溶胶光学厚度数据,京津冀县域shp文件里有204个县域属性,分区统计完发现只有54个县域属性的值,迷惑~~~

考虑对原0.25°的网格数据降尺度处理

学习学习!!!!!!

20221203——GEE计算导出辐射日均值csv

 辐射数据小时数据,逐天计算日均值

Map.centerObject(table)
var ROI = table
var dict1 = {reducer: ee.Reducer.mean(),geometry: ROI,bestEffort: true}
var era5_2mt = ee.ImageCollection('ECMWF/ERA5_LAND/HOURLY')
                  .select('surface_solar_radiation_downwards')
                  .filter(ee.Filter.date('2021-01-01', '2021-12-31'))
                  .filterBounds(ROI)
                  .map(function(img) {return img.clip(ROI)})
var monthly = ee.List.sequence(0,365,1)
                     .map(function(n){
                        var start = ee.Date.fromYMD(2021,01,01).advance(n,'day');
                        var end = start.advance(1, 'day');
                        var meanValue = era5_2mt.filterDate(start,end).mean();
                        return meanValue
                      });
var monthly_Col = ee.ImageCollection(monthly);
print("monthly_Col:", monthly_Col)
Map.addLayer(monthly_Col,{},"monthly_Col")

20230114——GEE计算多年辐射平均值导出图像

var table2 = ee.FeatureCollection("users/chenxilu89/nccc")
    
var mean = ee.ImageCollection("ECMWF/ERA5_LAND/MONTHLY")
var meann=mean.filterMetadata('surface_solar_radiation_downwards','greater_than',1000000)
              .filterBounds(table2.geometry())
              .filterDate('2005-01-01','2020-12-31')
              .mean();

    
Export.image.toDrive({
  image:meann,
  description:"surface_solar_radiation_downwards",
  scale:5000,
  region:table2.union(),//一开始没有这步运行不出来,请教同学说是得把不同的分区矢量合成一个
  crs:"EPSG:4326",
  maxPixels:1e13
});

成功导出TIFF图像后,在ARCGIS里进行后续操作,原本的影像里有异常值,问题:还不知道怎么在GEE中处理的时候筛选只处理大于某个值的栅格;;; 最后是在ARCGIS中通过设置空函数筛选了异常值得到新的栅格数据,奇怪的是,新栅格数据最小值不为0,但在以新栅格数据为基础的分区统计中最小值竟然是0,重做一遍最大值为空值,在工作环境里瞎鼓捣了一下,选择工作坐标为新栅格数据坐标好像又正常了。

猜你喜欢

转载自blog.csdn.net/weixin_45626690/article/details/124689338
今日推荐