GEE官网提供的GPP数据集有8天的,但是NPP都是以年为单位的,挺不友好的。此链接是对数据集的介绍(链接)。
想要产生NPP8天、月度的数据集,需要利用NPP年度数据和GPP八天数据进行计算,代码如下。参考链接
首先导入八天的GPP数据和年度的NPP数据:

GPP
MYD17A2H.006: Aqua Gross Primary Productivity 8-Day Global 500M 500m
NPP
MOD17A3HGF.006: Terra Net Primary Production Gap-Filled Yearly Global 500m

然后进行计算:

var startdate = ee.Date.fromYMD(2021,1,1);
var enddate = ee.Date.fromYMD(2021,12,31);
var nppCollection = npp.filterDate(startdate, enddate).filterBounds(region).select("Npp");
var gppCollection = gpp.filterDate(startdate, enddate).filterBounds(region).select("Gpp");
//print(nppCollection);
//print(gppCollection);
var myNpp = function(myimg){var d = ee.Date(myimg.get('system:time_start'));var y = d.get('year').toInt();var GPPy = ee.Image(gppCollection.filter(ee.Filter.calendarRange(y, y, 'year')).sum());var NPPy = ee.Image(nppCollection.filter(ee.Filter.calendarRange(y, y, 'year')).mean());var npp8 = myimg.expression('(GGP8 / GPPy) * NPPy', {GGP8: myimg,GPPy: GPPy,NPPy: NPPy});return npp8.copyProperties(myimg,['system:time_start']);
};var npp8Collection = ee.ImageCollection(gppCollection.map(myNpp));
print(npp8Collection);

这样产生的就说八天的NPP数据集(未进行比例变换)。
查看官网对两个数据集的介绍,变换的比例都是0.0001。


故进行比例变换:

function scale(image){ return image.multiply(0.0001).set(image.toDictionary(image.propertyNames()));
}var npp8=npp8Collection.map(scale);
print(npp8);

产生的npp8就是最终的八天数据集。在此基础上,因为老师要求我产生月度的NPP数据集,所以进行了月度合成。

var years = ee.List.sequence(2021, 2021);
var months = ee.List.sequence(1, 12);
var meanNpp =  ee.ImageCollection.fromImages(years.map(function (y) {return months.map(function(m) {return npp8.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).millis());});}).flatten()
);
print(meanNpp);
Map.addLayer(meanNpp.mean().clip(region),npp_viz,"npp");

和其他博主的一般合成代码不一样的一个地方就是加了millis(),不加的时候在后面导出会产生问题(真的研究了好久问题解决链接)。

ee.Date.fromYMD(y, m, 1).millis());

这样经过处理之后一年应该有46景的八天数据,12景的月度数据。

之后进行导出(导出以为很简单,结果一直出错,要么全黑,要么不是覆盖整个研究区),要想成功导出必须俩条件(虽然我也不知道为什么,反正成功导出,数据在Arcgis中查看也没有问题):
1、加上之前说的.millis()
2、对月度数据集进行裁剪(很离谱啊)
少一个就出问题,服了。
导出代码如下参考链接:这个是一个大牛写的批下载ImageCollection的方法,拿来直接用就行。

var batch = require('users/fitoprincipe/geetools:batch');
//这个就是裁剪,不进行这个导出就出错
//我想的是导出的时候反正有个region
//导出的时候裁剪不就行了吗,结果是NO
var clipped = meanNpp.map(function (image) {return image.clip(region);
});// Download images for a set region
batch.Download.ImageCollection.toDrive(clipped,//图像'Gangcha', //文件夹{region: region,//研究区范围crs: 'EPSG:4326',//坐标系scale: 500,//分辨率maxPixels: 1e13,type: 'float'});


运行之后有十二个run,为了一键运行,可参考链接。
导出之后在ENVI中查看:对于1、2、11、12月份大面积都是0,我查看了GPP数据集,是本身就是0,并不是后续计算的问题。
八月份图像:

至此整个流程完成。全文链接。有不足的地方请及时指出,大家一起学习进步。

GEE学习记录(四)基于NPP和GPP数据集产生NPP8天、月度数据相关推荐

  1. leveldb 学习记录(四)Log文件

    前文记录 leveldb 学习记录(一) skiplist leveldb 学习记录(二) Slice leveldb 学习记录(三) MemTable 与 Immutable Memtable le ...

  2. MySQL学习记录 (四) ----- SQL数据管理语句(DML)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  3. python气象数据可视化学习记录1——基于ERA5数据画风场和海平面气压填色叠加图

    python气象数据可视化学习记录1--基于ERA5数据画风场和海平面气压填色叠加图 1. 写在前面 2. 图片效果 3. 逐步代码解析 3.1导入库 3.2 读取NC格式数据 3.3 对数据进行加工 ...

  4. Kafka学习记录(四)——消费者

    Kafka学习记录(四)--消费者 目录 Kafka学习记录(四)--消费者 对应课程 Kafka消费者工作流程 消费方式和流程 消费者组原理 消费者组初始化流程 消费者组详细消费流程 重要参数 ka ...

  5. Twain的学习记录和基于Qt的相关开源项目详解

    Twain学习记录和基于Qt的开源项目详解 twpp-qml 适用于 C++11 及更高版本的便携式.仅标头 TWAIN 框架. 原项目作者使用Qtwidget基于Twain静态传输一张图片 我基于h ...

  6. 【ArcGIS学习记录01】--利用CRU TS数据集绘制降雨量分布图

    [ArcGIS学习记录01]–利用CRU TS数据集绘制降雨量分布图 注:仅作为本人的学习记录方便以后复习查阅. 一.介绍 CRU TS 是目前使用最广泛的气候数据集之一,由英国国家大气科学中心 (N ...

  7. GEE学习记录(一)基于GEE利用LANDSAT 8数据计算遥感生态指数(RSEI)

    最近老师让看一下关于GEE的东西,实现大面积的反演.计算地表温度等,也算熟悉一下.参考网上很多大佬的文章,按照自己的思路和想法算出了RSEI,参考的文章都有列出来. 目录 所用数据集 影像数据 矢量数 ...

  8. 【故障诊断发展学习记录四——数字孪生与控制系统健康管理(DT PHM)】

    数字数字 目录 1. 数字孪生的起源 1.1 数字工程 1.2  模型贯穿决策 1.3 数字工程路线图 1.4 数字工程战略目标 2. 美军数字工程 2.1 生态系统全视图 2.2 支持采办的的完整视 ...

  9. GEE学习记录~~~

    目录 20220510--学习GEE平台上遥感信息的处理 20220511--GEE中上传tif文件 20221203--GEE计算导出辐射日均值csv 20230114--GEE计算多年辐射平均值导 ...

  10. 【学习记录】基于python爬取Flickr图片及元数据

    为复现师姐论文成果,爬取Flickr网站数据,只需爬取图片元数据,无需爬取图片: (一已成功,二失败了,这里记录给自己看.) 一.用Python的icrawler包 icrawler是一个轻型框架,自 ...

最新文章

  1. 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)
  2. Linux下nginx支持.htaccess文件实现伪静态的方法!
  3. SpringCloud-使用路由网关统一访问接口(附代码下载)
  4. 江南大学物联网工程学院数据库课程实验二作业2实验报告
  5. 现代起亚混合动力SUV全球销量突破50万辆
  6. ATL--创建简单的ATL之dll工程,给接口添加属性(实际上就是一个函数对)
  7. dbscan和谱聚类_R 无监督聚类算法(1)K-means和层次聚类
  8. mysql 索引长度解释及不使用索引的一种特殊情况
  9. 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛题解
  10. 富士相机设置传原图_「富士相机」机身设置分享,摄影小白也可以拍摄到胶片感的照片...
  11. ios 添加浮动效果_自定义悬浮窗详解(模拟IOS小球拖动,轮盘滑动)
  12. php函数参数中括号,thinkphp手册中函数的可选参数的中括号为什么是包含的关系?...
  13. Xamarin.Android之绑定库教程
  14. 7000词汇这么背我比较可以接受,连续看20天足以
  15. 关于小米手机无法将照片添加到图库解决方法
  16. python 内置函数 reversed()
  17. 【视频】vim代码飞天遁地之术
  18. linux etc目录讲解
  19. window编译最新的spiderMonkey
  20. html引入echart地图点击,基于echarts实现3D地图的定时高亮和点击事件

热门文章

  1. 谷歌金山词霸合作版在PDF中不能取词
  2. FastReport添加Sqlite数据源
  3. HTTP/HTTPS/SOCKS5协议的区别
  4. java 答题卡_·(B卷)Java期末试卷及答题卡(2005-2006第二学期).doc
  5. 如何清空c盘只剩系统_c盘怎么清理到最干净只保留系统,教你如何给C盘减肥
  6. netlogo笔记(4):森林火灾模拟与模型改进
  7. 常用汇编指令大全(有注释)
  8. 数据抽取常见的几种模式
  9. 计算机桌面常见故障,电脑常见故障问题以及解决办法
  10. 全世界最全牛人的博客