GEE训练——如何检查GEE中数据集的最新日期
创作时间:
作者:
@小白创作中心
GEE训练——如何检查GEE中数据集的最新日期
引用
CSDN
1.
https://blog.csdn.net/qq_31988139/article/details/137541248
本教程主要的目的是实现影像加载并且获取影像的最新日期,并按照指定的格式将影像时间打印到控制台中。其实这里最基本的操作步骤就是影像数据预处理,将我们影像的时间进行筛选,然后将百万毫秒单位转化为指定的时间格式,这样方便我们查询数据集的日期。
在Google Earth Engine (GEE) 中检查数据集的最新日期,可以通过以下步骤实现:
- 登录GEE账户:首先,您需要登录到您的Google Earth Engine账户。如果您尚未创建账户,您可以在GEE的官方网站上注册一个账户。
- 访问GEE代码编辑器:在登录成功后,您可以访问GEE的代码编辑器。在这个编辑器中,您可以编写和运行地理空间分析的代码。
- 寻找数据集:根据您的需求,选择您想要检查最新日期的数据集。您可以通过GEE的数据目录、GEE的开放数据仓库或者其他数据提供者的数据目录来查找适合您需求的数据集。
- 导入数据集:使用GEE的代码编辑器,您可以导入您选择的数据集。在导入数据集之前,请确保您已经了解数据集提供者的数据格式和许可要求。
- 使用GEE函数获取最新日期:GEE提供了一些函数和方法来获取数据集的最新日期。其中一种方法是使用
ee.ImageCollection,该方法可以根据时间范围和过滤条件获取图像集合。另一种方法是使用ee.Image,它可以获取单个影像的日期。 - 在代码编辑器中编写代码:使用GEE的代码编辑器,您可以编写代码来获取数据集的最新日期。最后,我们使用
print函数将结果打印到控制台。 - 运行代码和结果:在GEE的代码编辑器中,您可以运行代码并查看结果。请确保您已经正确导入了数据集,并且代码没有任何错误。最新日期将输出在控制台中。
通过上述步骤,在GEE中检查数据集的最新日期。请注意,具体的代码和步骤可能因数据集和需求的不同而有所变化。在实际使用中,您可能需要根据数据集的特定属性和格式进行进一步的调整和定制。
函数
ee.Date(date, tz)
Constructs a new Date object.
Arguments:
- date (ComputedObject|Date|Number|String): The date to convert, one of: a number (number of milliseconds since the epoch), an ISO Date string, a JavaScript Date or a ComputedObject.
- tz (String, optional): An optional timezone only to be used with a string date.
Returns: Date
getNumber(key)
Extracts a named number value from a dictionary.
Arguments:
- this:dictionary (Dictionary)
- key (String)
Returns: Number
format(format, timeZone)
Convert a date to string.
Arguments:
- this:date (Date)
- format (String, default: null): A pattern, as described at DateTimeFormat (Joda time 2.2 API); if omitted will use ISO standard date formatting.
- timeZone (String, default: null): The time zone (e.g. 'America/Los_Angeles'); defaults to UTC.
Returns: String
floor()
On an element-wise basis, computes the largest integer less than or equal to the input.
Arguments:
- this:input (Array): The input array.
Returns: Array
代码
//加载指定研究区
var geometry=ee.Geometry.Rectangle(-97.4, 40.96, -88.08, 34.87);
// 使用此脚本可帮助比较 Earth Engine 存档与提供商的
// 针对给定产品、区域和日期范围的存档。
// 导入图像集(本例中为哨兵-2 Level-1C TOA 反射率)。
// 本例中为 Sentinel-2 Level-1C TOA 反射率)。请确保导入的集合具有正确的层级和处理级别。
//var imgCol = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED');
var imgCol = ee.ImageCollection('NOAA/VIIRS/001/VNP21A1D');
//var imgCol = ee.ImageCollection('projects/satromo-int/assets/COL_S2_SR_HARMONIZED_SWISS');
// 2.通过有限的感兴趣区域过滤图像集。绘制区域
// 或定义一个 ee.Geometry 对象。这里,一个点已从绘图工具中导入。
imgCol = imgCol.filterBounds(geometry);
// 或者,通过足迹或平铺来定义感兴趣的区域。例如
// 下面一行根据 "MGRS_TILE "属性过滤集合。
// imgCol = imgCol.filter(ee.Filter.eq('MGRS_TILE', '10SEG'));
// 3.根据感兴趣的狭窄日期窗口过滤图像集。请注意
// 第二个日期是排他性的(返回的集合将包含给定日期之前的图像,但不包括给定日期)。
imgCol = imgCol.filterDate('2024-02-01', '2024-04-08');
// 4.添加摄入日期属性。
imgCol = imgCol.map(function(img) {
var ingestTime = ee.Date(img.getNumber('system:version').divide(1000));
var ingestDate = ingestTime.format('YYYY-MM-dd HH:mm:ss');
var productTime = img.date();
var productDate = productTime.format('YYYY-MM-dd HH:mm:ss');
// 以毫秒为单位计算差值
var timeDifference = ingestTime.millis().subtract(productTime.millis());
// 将毫秒转换为小时
var hours = ee.Number(timeDifference.divide(1000 * 60 * 60)).floor();
// 格式化差值
var differenceFormatted = ee.String(hours.format('%02d'));
return img.set({
'Product_Date': productDate,
'Ingest_Date': ingestDate,
'Difference': differenceFormatted,
'ID': img.id()
});
});
// 将图像产品日期、摄取日期和地球引擎 ID 的列表打印到控制台。
var props = ee.List(['Product_Date', 'Ingest_Date', 'Difference', 'ID']);
var lists = ee.List(imgCol.reduceColumns({
reducer: ee.Reducer.toList().repeat(props.size()),
selectors: props
}).get('list'));
print('Product Date, Ingest Date, Difference (HH), ID');
print(ee.List(lists.get(0)).zip(ee.List(lists.get(1))).zip(ee.List(lists.get(2))).zip(ee.List(lists.get(3))));
// 6.在地图上加载显示集合。
Map.centerObject(imgCol.first(), 6);
Map.addLayer(imgCol, {bands: ['Emis_14', 'Emis_15', 'Emis_16']});
// 7. 打印集合中第一个图像的产品日期、摄取日期和差值。
var firstImage = imgCol.first();
print(firstImage);
var firstProductDate = ee.String(firstImage.get('Product_Date'));
var firstIngestDate = ee.String(firstImage.get('Ingest_Date'));
var firstDifference = ee.String(firstImage.get('Difference'));
print('Ingest Date (First Image):', firstIngestDate);
print('Product Date (First Image):', firstProductDate);
print('Difference (in hours) (First Image):', firstDifference);
热门推荐
2024春运抢票新招:微信小程序绑定12306
应对百万级并发,微信小程序抢票系统的架构设计与优化
春节回家更轻松:微信小程序抢票全攻略
免疫力下降竟致血小板减少,专家揭秘背后真相
从“铁锹”到“鼠标” 山西煤矿有“智慧”
《全世界都在等你心动》:顾清河言臻的甜蜜互动
陕煤集团张家峁矿业开展“班组长讲安全”活动:分享班组管理经验,助力矿井安全生产
支气管肺泡灌洗:最新医疗应用揭秘
杭州取消新房限价并降至15%首付,楼市成交量显著回升
从首份“关爱提示函”到数字化帮教,山东法院创新未成年人保护
企业如何做OHSAS18001职业健康安全管理体系认证,需要注意些什么
MySQL数据库COMMENT属性用法详解
掌握月线突破技术,精准捕捉股市反弹机会
2025年股市或收阴,山河智能航空业务成亮点
发酵过程中pH值调控方法浅析
2025春运购票指南:15天预售期,这些购票技巧要掌握
2024春运购票指南:官方渠道VS第三方抢票软件
世界卫生组织教你应对职场冲突
泉州心理专家支招:用心理学原理化解职场冲突
全球南方国家如何突破殖民 legacy,应对发展挑战
车船税缴纳指南:最新标准、计算方法和所需资料
职场人的西行之路:从唐僧取经看现代职场生存法则
唐僧的恐惧与勇气:一个凡人的西行之旅
玄奘与大象:一段被遗忘的“情缘”
迟重瑞、徐少华、汪粤:三位演员塑造的唐僧经典
胖东来人才培养秘籍:零售业的“人才工厂”
胖东来“家长式”管理:是员工福利还是过度干预?
揭秘魔术:科学原理解构“魔法”
微信账号安全指南:10个实用技巧保护你的信息和财产
17万元装出111平米后现代三房,南北通透设计感强