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);
热门推荐
紫药水并非高锰酸钾,这些误区你需要了解
犬瘟热疫苗接种指南:守护爱宠健康
宠物狗日常护理新趋势!
孩子咳嗽发热?警惕支原体肺炎!
妈祖信俗:从地方信仰到全球非遗
台湾妈祖庙:从出海到过海守护神
煮鸡蛋不粘壳的神操作,你get了吗?
水煮鸡蛋隔夜吃真的安全吗?这样做就放心了!
煮鸡蛋时如何避免致癌黑膜?
完美煮出溏心蛋:温度、时间与技巧全攻略
中国古代防护装备“甲胄”的发展与演变
中国古代军队何时开始注重下身防御?秦汉时代腿部铠甲问题初探
世界十大奇幻名著:尼尔斯骑鹅旅行记上榜,冰与火之歌仅排第五
登革热防控,预防是关键!
登革热防治全攻略:12个关键问题权威解答
苕粉是什么东西做的?哪个省的叫法?
詹姆斯·韦布望远镜新发现:银河系恒星尘埃揭秘与古老银盘之谜
游戏账号被盗?法律帮你维权!
雷霆通行证:如何安全找回你的游戏账号?
泰国香米的营养功效与选购技巧
黄药水可以治皮炎吗
黄药水可以治皮炎吗
秋冬徒步必备:这份装备清单让你轻松上路!
北京户外那些事儿:最新徒步装备大揭秘!
冬日打卡:许昌“满城荷花半城柳”
许昌两日游:三国文化与钧瓷艺术的完美邂逅
许昌首山景区春节活动全攻略:三国遗迹、美食娱乐应有尽有
成人喉咙痛挂什么科看病
揭秘香砂养胃丸:功效、适应症及副作用
冬游苏州:园林、湿地与金鸡湖畔的绝美邂逅