基于 GEE 提取指定点的土壤湿度数据

目录

1 数据介绍

2 完整代码

3 运行结果



1 数据介绍

数据集ee.ImageCollection("NASA/GLDAS/V021/NOAH/G025/T3H")

数据集NASA/GLDAS/V021/NOAH/G025/T3H,包含很多数据集,包括气象、土壤、气温等数据,例如:CanopInt_inst植物冠层地表水含量、ECanop_tavg树冠水分蒸发、ESoil_tavg裸土蒸发量、Snowf_tavg雪速率、SoilMoi0_10cm_inst土壤湿度、SoilTMP0_10cm_inst土壤温度、Tair_f_inst气温、Wind_f_inst风速等等。

2 完整代码

var roi = /* color: #d63000 */ee.Geometry.Point([121.3664979892787, 37.45796001127996]);
// Create a chart for SoilMoi100_200cm_inst trend in point 1.
Map.centerObject(roi,7)
var dataset = ee.ImageCollection('NASA/GLDAS/V021/NOAH/G025/T3H')
          .filterBounds(roi)
          .filterDate('2006-01-01', '2016-12-31')
          .select('SoilMoi100_200cm_inst');

var radius_lst = ee.List([250, 500, 1000, 1500, 2000]);

var colByRadius = ee.List(radius_lst).map(function (radius) {

  var months = ee.List.sequence(1, 12);
  var start_year = 2006;
  var start_date = '2006-01-01';
  var end_year = 2016;
  var end_date = '2016-12-31';

  var years = ee.List.sequence( start_year, end_year);

  var ptsbuff = ee.FeatureCollection(roi).map(function (radius, bounds) {
    return function(pt) {
      pt = ee.Feature(pt);
    return bounds ? pt.buffer(radius).bounds() : pt.buffer(radius);
  };
  }(radius, false));

  var byMonthYear =  years.map(function (y) {
      return months.map(function(m) {
        var w = dataset.filter(ee.Filter.calendarRange(y, y, 'year'))
                    .filter(ee.Filter.calendarRange(m, m, 'month'))
                    .mean();
        var pointMean = w.reduceRegion(
          {reducer:ee.Reducer.first(), 
          geometry:ptsbuff, scale:500});  
     
      // set the dictionary as property and cast to an ee.Image, as setMulti returns an ee.Element.
      return ee.Feature(null).set("value",
                                  pointMean
                                    .get("SoilMoi100_200cm_inst"))
                                    .set("year",y)
                                    .set("month",m)
                                    .set("radius", radius);
      

      });
    }).flatten();

  return byMonthYear;

}).flatten();

Export.table.toDrive({collection:ee.FeatureCollection(colByRadius), description:"csvExport"}) 

3 运行结果

指定点的土壤湿度数据结果
<think>好的,我现在需要帮助用户解决如何使用Google Earth Engine(GEE)下载土壤湿度数据集的问题。首先,用户提到了两个引用,分别关于GEE提取土壤湿度的示例和NASA-USDA增强型SMAP数据。我应该先确认用户的需求是下载土壤湿度数据,可能需要具体步骤和相关产品推荐。 首先,我需要回忆GEE的基本操作流程。通常,使用GEE获取数据包括几个步骤:访问数据集目录,搜索所需的数据产品,应用筛选条件(如时间、区域),处理数据(比如计算均值或时间序列),最后导出到Google Drive或Google Cloud Storage。用户可能需要具体的代码示例,特别是关于土壤湿度数据集,比如SMAP或者ERA5-Land。 接下来,我应该检查用户提供的引用内容。引用[1]是一个GEE演示链接,可能包含提取数据的代码。引用[2]提到了NASA-USDA增强型SMAP数据,空间分辨率10公里,相关论文信息。这说明用户可能对SMAP数据感兴趣,或者需要知道如何访问这类数据集。 用户的问题是如何下载土壤湿度相关的GEE数据产品,因此需要分步骤指导。首先,可能需要介绍GEE数据目录,如何搜索数据集,然后加载数据,进行空间或时间筛选,处理,最后导出。此外,可能需要提供具体的代码示例,比如使用JavaScript或Python API,但用户之前的示例是Python代码,但GEE主要使用JavaScript在线编辑器,不过用户可能也使用Python。需要确认这一,但通常GEE的演示代码是用JavaScript编写的,所以可能需要提供两种方式的示例? 不过用户的问题中没有说明使用哪种语言,可能需要默认使用JavaScript,因为GEE在线编辑器更常用。但用户之前的快速排序示例是Python,可能混淆。但根据引用中的链接,示例是JavaScript代码。所以可能需要以JavaScript为主。 另外,用户可能需要知道如何导出数据到本地。例如,导出为GeoTIFF或者CSV文件。对于土壤湿度数据,如果是时间序列,可能需要聚合或者提取特定数据。 还需要考虑用户是否有GEE的账号,并且已经授权,但可能这是基本前提,所以步骤中可能不需要提及注册过程,直接进入数据访问和导出步骤。 现在,整合这些信息,分步骤回答: 1. 访问GEE数据目录,搜索土壤湿度数据集,比如NASA-USDA增强型SMAP,或者ERA5-Land的土壤湿度数据。 2. 加载数据集,应用日期和区域筛选器,例如过滤特定时间范围和感兴趣区域(AOI)。 3. 处理数据,如计算平均值、时间序列或导出特定数据。 4. 导出数据到Google Drive或Cloud Storage。 然后,给出代码示例,比如JavaScript代码,因为GEE在线编辑器主要使用JS。例如,加载SMAP数据集,选择土壤湿度波段,设置区域,设置时间范围,然后导出。 另外,需要注意用户提到的引用[2]中的数据集,即NASA-USDA增强型SMAP数据,全称可能是NASA_USDA/HLS/SMAP_soil_moisture,或者需要确认正确的数据集名称。需要检查GEE数据集目录中的准确ID。 例如,正确的数据集ID是“NASA_USDA/HSL/SMAP10KM_soil_moisture”,或者根据引用中的描述,可能需要引用正确的ID。可能需要查看GEE的文档或示例代码。 此外,用户可能还需要知道如何将导出的数据下载到本地,比如从Google Drive下载。 另外,可能需要注意数据的分辨率、时间范围、波段名称等细节,以确保用户正确获取所需的数据。 在回答时,需要结构清晰,分步骤说明,并给出代码示例。同时,生成相关问题,比如如何筛选时间、如何处理数据、有哪些其他数据集可用等。 可能的问题包括:如何选择感兴趣的区域?如何处理长时间序列数据?有哪些土壤湿度数据集可用?如何导出为CSV文件? 总结回答结构: - 步骤1:访问GEE并搜索数据集 - 步骤2:筛选数据时间和区域 - 步骤3:处理数据(如选择波段、计算统计值) - 步骤4:导出数据 - 代码示例(JavaScript) - 相关数据集推荐 - 注意事项(如分辨率、单位) 然后,生成相关问题,比如如何处理导出后的数据,如何批量下载等。 需要确保LaTeX格式正确,如行内公式用$...$,独立公式用$$...$$,但土壤湿度数据可能涉及较少数学公式,但如果有统计计算,可能需要用LaTeX表达式。例如,计算平均值$\mu$。 同时,确保引用正确,在回答末尾添加引用标识,如[^1][^2]。 最后,检查是否符合用户的要求,使用中文,结构清晰,代码正确,引用正确。</think>要使用Google Earth Engine(GEE)下载土壤湿度数据集,可按照以下步骤操作: --- ### **步骤1:访问GEE数据目录并搜索数据集** 1. 打开[GEE数据目录](https://developers.google.com/earth-engine/datasets),搜索关键词(如“soil moisture”)。 2. 常用土壤湿度数据集: - **NASA-USDA增强型SMAP全球土壤水分数据**:数据集ID为`NASA_USDA/HSL/SMAP10KM_soil_moisture`,空间分辨率10公里,包含表层土壤水分数据[^2]。 - **ERA5-Land逐小时数据**:数据集ID为`ECMWF/ERA5_LAND/HOURLY`,包含多层土壤湿度信息。 - **SMAP L4 土壤水分数据**:数据集ID为`NASA/SMAP/SPL4SMAU`,提供全球高分辨率数据。 --- ### **步骤2:筛选数据时间和区域** 在GEE代码编辑器中,通过时间范围和感兴趣区域(AOI)筛选数据: ```javascript // 示例:加载NASA-USDA SMAP土壤湿度数据 var dataset = ee.ImageCollection('NASA_USDA/HSL/SMAP10KM_soil_moisture') .filterDate('2020-01-01', '2020-12-31') // 时间筛选 .filterBounds(geometry); // 空间筛选(需定义geometry) ``` --- ### **步骤3:数据处理与可视化** 选择土壤湿度波段并计算统计值(如均值): ```javascript // 选择土壤湿度波段 var soilMoisture = dataset.select('ssm'); // 计算时间序列均值 var meanSoilMoisture = soilMoisture.mean(); // 可视化参数设置 var visParams = {min: 0, max: 30, palette: ['blue', 'white', 'green']}; // 显示地图 Map.addLayer(meanSoilMoisture, visParams, 'Mean Soil Moisture'); ``` --- ### **步骤4:导出数据** 将数据导出至Google Drive或Google Cloud Storage: ```javascript // 导出为GeoTIFF Export.image.toDrive({ image: meanSoilMoisture, description: 'SoilMoisture_2020', scale: 1000, // 分辨率(单位:米) region: geometry, fileFormat: 'GeoTIFF' }); ``` --- ### **注意事项** 1. **权限与配额**:导出数据需确保GEE账号有足够配额。 2. **单位与波段**:不同数据集土壤湿度单位可能不同(如$m^3/m^3$或百分比),需查看数据集文档。 3. **数据提取**:若需提取特定数据,可使用`ee.Image.sample()`方法。 --- ### **相关推荐数据集** 1. **SMAP L3雷达土壤水分**:数据集ID`NASA/SMAP/SPL3SMP_E`,适用于高精度研究。 2. **GLDAS全球陆面数据**:数据集ID`NASA/GLDAS/V021/NOAH/G025/T3H`,包含多层土壤湿度。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值