毕设思路和过程梳理【4月27日及以后】

时间序列求标准差:

每一时刻变量值与变量均值之差再平方,求得一个数值,再将每一时刻这个数值相加后求平均,再开方。


1、change_divided我改成了月合成。然后想要试着剔除异常值,代码写好了发现分辨率500m的数据有问题:1000m分辨率数据导出是没问题的(像元的值呈正态分布),但是500m分辨率的数据有80%的像元的值都分布在同一个狭小的区间内,如(-0.1, 0.1)。正常来说1000m的数据呈现正态分布说明数据本应没问题。

求助了AI,它说可能是500m的分辨率超出了数据的原始分辨率,导致重采样时出现失真和噪声。于是我发现制作的作物底图的分辨率是大于500m(但原始数据的分辨率正好是500×500m):

 然而导出的相对变化率的分辨率小于500m:

 于是对作物底图重采样至第二张图的500m,用的是最邻近法。

“重采样的图像必须有投影坐标系,因为只有投影后的平面坐标才有米这种长度单位,地理坐标系是用度分秒这样的角度单位来度量的。”

ArcGIS操作系列(一)之地理配准_为什么要进行地理配准_GIS之路的博客-CSDN博客

最终解决方法!!!把小于-1、大于1的值全部设置成NAN【指导:ENVI里的波段运算-1>b1<1,可以搞定,把异常值压缩到-1或1(比如说识别到1000自动赋值为1,-100自动赋值为-1),其他软件应该也有类似的语法运算功能。处理遥感直方图两侧的异常值是经常要做的事情,很常见】


arcgis怎么把一个栅格数据value不为0的像元全部赋值变为1

栅格计算器:Con(数据, 1, 0)

2、(0502更新)MCD43A4数据集似乎有质量问题(下图是band6),质量控制后也很奇怪。决定不用这个数据集。

 MCD43A4的质量控制代码【.map(maskclouds)放在map(getNBARVIs)之前】👇

function maskclouds(image) {
    var q1 = image.select('BRDF_Albedo_Band_Mandatory_Quality_Band1');
    var q2 = image.select('BRDF_Albedo_Band_Mandatory_Quality_Band2');
    var q6 = image.select('BRDF_Albedo_Band_Mandatory_Quality_Band6');
    var Mask1 = 1 << 0;  
    var mask1 = q1.bitwiseAnd(Mask1).eq(0);
    var mask2 = q2.bitwiseAnd(Mask1).eq(0);
    var mask6 = q6.bitwiseAnd(Mask1).eq(0);

    var mask = mask1.and(mask2).and(mask6);
    
    return image.updateMask(mask);
  }

参考论文:

  • EI那篇,用了SG滤波。NDVI用的MOD13A3(月),LSWI用的MOD09A1(8天?)。先转换为地理坐标、重采样、8天变为月尺度取平均。
  • GCB那篇,NDVI是AVHRR的数据,EVI用的MOD13C1(0.05° 16天),用QA对EVI质量过滤。

        对anomaly归一化,以比较SIF和VI的空间动态。

        热胁迫的时空动态:1)时间上:与温度时间序列在16天上响应幅度的对比。2)空间上:2、3、4、5月份——温度的空间格局,VI归一化异常的空间格局。

        统计遭受不同程度胁迫的区域占比。然后单独看SIFyield的anomaly在2-5月的空间分布(非归一化,值在-3到3)

  • ERL蒙古高原那篇,EVI数据来自MOD13A3,月合成,分辨率1km;对anomaly标准化了。
  • water那篇,NDVI用的MOD13Q1,LSWI用的MOD09A1,月合成

总结:MOD13A3:16d。NDVI和EVI(GCB用的MOD13C1)。

           MOD09A1:8d。  LSWI和NIRv。


分别质量控制后月合成(参考博文:file:///C:/Users/%E4%BA%A6%E5%BF%83/Documents/tencent%20files/2740306286/filerecv/mobilefile/%E9%80%89%E6%8B%A9%E6%B5%8F%E8%A7%88%E5%99%A8%E6%89%93%E5%BC%80127006292.html

GEE(Google earth engine)QA质量波段控制去云——以MCD15A3H与MOD09GA为例

Google Earth Engine(GEE)实例代码学习三十七——MODIS地表反射率(MOD09GA)去云处理 - 点击领取

 

//'SummaryQA'quality control 
function maskclouds(image) {
  var qa = image.select('SummaryQA');
  
  var Mask1 = 1 << 0;  
  var mask = qa.bitwiseAnd(Mask1).eq(0);
  
  var Mask2 = 1 << 1;
  var Mask = qa.bitwiseAnd(Mask2).eq(0);
  mask = mask.and(Mask);
  
  return image.updateMask(mask);
}


function rmCloud(image) {  
//修改了这一行代码就可以了
  var cloudState = (1<<10);
  var cloudBitMask = (1 << 2);  
  var SnowBitMask = (1 << 15);  
  var qa = image.select("StateQA");  
  var mask = qa.bitwiseAnd(cloudState).eq(0).and(qa.bitwiseAnd(cloudBitMask).eq(0)).and(qa.bitwiseAnd(SnowBitMask).eq(0));  
  return image.updateMask(mask);  
} 


更新:0508

【MCD数据集的7sheng的 lswi 8月是正的。。。MOD 09和13的NDVI计算结果相似,09的变化更显著些,但是LSWI表现都不突出,服了】

【我还尝试了不用相对变化率,用标准化anomaly。理想结果是大部分分布在绝对值2左右,结果均值只有0.3左右。】

思考:安徽、江苏北部的冬小麦是夏季VI上升的主要原因。但冬小麦在6月份已经基本收割,不该叠加小麦啊……

一季稻开花抽穗,造成水稻结实率降低、空秕粒增加、灌浆期缩短、千粒重下降;玉米出现秃尖和缺粒。晚稻长势弱、灌浆进度缓慢,水稻等秋粮作物处于灌溉需水关键期

中稻是目前受旱情影响最大的主粮。长江流域一般种一季稻和双季稻,其中双季稻分早稻晚稻接替播种,播种期介于两者之间的一季稻称为中稻。8月中旬开始,南方中稻陆续进入抽穗扬花期,对温度、水分敏感,高温干旱将导致花粉活性下降,严重影响产量。

8月中旬,一季稻处于拔节至孕穗期,部分早熟品种处于抽穗扬花至灌浆结实期,双季晚稻处于返青分蘖期,高温热害影响明显。持续高温会加快幼穗分化进程,影响大穗形成;倒2叶期之后遇到持续38℃以上高温,容易引起部分品种颖花退化,尤其是处于抽穗扬花期的水稻,持续35℃以上高温有可能显著降低结实率。

持续高温危害一季稻开花抽穗,造成水稻结实率降低、空秕粒增加、灌浆期缩短、千粒重下降;高温干旱叠加导致土壤持续缺墒,玉米出现秃尖和缺粒,大豆结荚率降低,棉花落铃增加,茶叶、柑橘、油茶等特色作物品质及产量受到影响。安徽、湖北、江西、湖南、福建等地因旱情持续或发展,导致无水源保障地区的晚稻长势弱、灌浆进度缓慢,影响棉花裂铃吐絮、柑橘果实膨大及果实着色。此外,持续干旱也影响了油菜、蔬菜等作物的秋播工作。

8 月中下旬是长江中下游地区秋粮及秋收作物产量形成的关键期,在灌溉条件比较差的地区,晚稻孕穗、抽穗以及灌浆均受到不利影响,出现萎蔫、卡穗、结实率下降等状况;玉米、大豆等作物结实率、粒重也明显下降;棉花的产量和纤维品质也受影响严重,蕾铃脱落增加,成铃减少、早衰;对蔬菜播种和移栽油菜的播种育苗等秋种工作也产生一定影响;持续高温少雨还影响到柑橘、柚子、脐橙等水果的产量和品质,果实明显偏小。[论文]

“对高温热害造成结实率下降的中稻,要抓住有限的灌浆时间,科学增施穗粒肥,喷施叶面肥,增强光合作用和灌浆速率,努力增加粒重,弥补结实率下降损失;双季晚稻正处于拔节孕穗期,重点要防范可能发生的伏秋连旱,提前做好抗旱工作预案,提早调度储备水源,适时增施孕穗肥,落实大水孕穗、有水抽穗、寸水促穗、湿润壮粒等水分管理措施,促进生长发育;南方高温区的玉米,要针对水分和养分消耗大的问题,落实“一喷多促”等稳产增产措施。同时,蔬菜、水果、茶叶等作物也要针对高温热害和干旱影响,落实好抗灾减损措施。”


7号发现问题

var ndvi_max_mean = MultiMean.filterMetadata('month', 'equals', 8) .first().select('lswi_max_mean') 
var A = change.filterMetadata('month', 'equals', 8).first().select('lswi_max_mean') 
var m = A.get('month'); 
var B = A.divide(ndvi_max_mean).set('system:time_start', ee.Date.fromYMD(year, m, 1)).set('month', m) 

这个代码是计算8月份的相对变化率,GEE中print出的图显示ndvi_max_mean数值是0.315,A是-0.013,但是打印出的B是0.613。而对应在arcgis中,A、B都为正值且B的数值也和GEE不同。我认为B应该是-0.013/0.315,即使数值不同它也应该是个负值。

指导1:分子或分母上存在0值或其他背景值吗

指导2:把每一次筛选都分开输出一次看看结果;把前面的变量像change也print一遍。

回复1:我分别输出了,A在arcgis里打开平均值是0.00158,在GEE里ee.Reducer.mean()的图像显示是-0.013,为啥这俩是不一样的呢?

指导3:那可能是计算涉及的像元数不太一样,你创建两个栅格导入进去再看看和gis运算的一不一样。意思是:自己用gis创建两个4×4的栅格,你可以创建渔网(arcgis软件arcmap中如何创建渔网-百度经验)再点转栅格,然后对比下用gee和gis计算平均值的结果差异。如果不一样的话可能是对边缘像元的处理不太一样导致的。如果确实是差异,可能要用一个标准的栅格去把周围的一圈mask掉,可以gis弄好导进GEE,计算前mask一次。

思考:可能是看错了,并不存在差异

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值