代码之家  ›  专栏  ›  技术社区  ›  geo_dd

GEE中不同分辨率的掩蔽数据集

  •  0
  • geo_dd  · 技术社区  · 7 年前

    我根据MCD43A4(空间分辨率500米)收集的数据计算了一个存在各种水体的区域的NDMI指数。 但我不知道怎么做。 我必须做的第一件事,是改变陆地卫星的空间分辨率,以便与MODIS一号相匹配,但我不明白 如何做到这一点,我应该使用一种类型的减少?

    谢谢

    var geometry = /* color: #d63000 */ee.Geometry.Polygon(
            [[[69.75758392503599, 50.151303763817786],
              [71.60328705003599, 40.18192251959151],
              [93.70777923753599, 41.54446477874571],
              [91.86207611253599, 51.09912927236651]]]);
    var dataset = ee.ImageCollection('GLCF/GLS_WATER')
    .filterBounds(geometry)
        .map(function(image){return image.clip(geometry)}) ;
    var water = dataset.select('water');
    var imageCollection = ee.ImageCollection("MODIS/006/MCD43A4")
     .filterBounds(geometry)
        .map(function(image){return image.clip(geometry)}) 
        .filter(ee.Filter.calendarRange(6,8,'month'));
       var modNDMI = imageCollection.select("Nadir_Reflectance_Band2","Nadir_Reflectance_Band6","BRDF_Albedo_Band_Mandatory_Quality_Band2","BRDF_Albedo_Band_Mandatory_Quality_Band6");
    /////////////////////////////////////////////////
    
    var quality = function(image){ 
      var mask1 = image.select("BRDF_Albedo_Band_Mandatory_Quality_Band2").eq(0);
      var mask2 = image.select("BRDF_Albedo_Band_Mandatory_Quality_Band6").eq(0);
      return image.updateMask(mask1).updateMask(mask2);
    };
    
    var clean_collection = modNDMI.map(quality);
    
    var addNDMI = function(image) {
      var ndmi = image.normalizedDifference(['Nadir_Reflectance_Band2', 'Nadir_Reflectance_Band6']).rename('NDMI');
      return image.addBands(ndmi);
    };
    var ndmi = clean_collection.map(addNDMI);
    
    var NDMI=ndmi.select('NDMI')
    print(water)
    //And from this point, I have no idea how to mask the water bodies based on the
    //Landsat collection
    
    0 回复  |  直到 7 年前
        1
  •  1
  •   Nicholas Clinton    7 年前

    你所说的“遮掩水体”并不完全清楚,但如果这不是你想要的,那就用吧 water_mask.not()

    var gsw = ee.Image('JRC/GSW1_0/GlobalSurfaceWater');
    var occurrence = gsw.select('occurrence');
    // Create a water mask layer, and set the image mask so that non-water areas
    // are opaque.
    var water_mask = occurrence.gt(90).unmask(0);
    Map.addLayer(water_mask)
    
    var dataset = ee.ImageCollection('GLCF/GLS_WATER')
    var water = dataset.select('water');
    
    var imageCollection = ee.ImageCollection("MODIS/006/MCD43A4")
        .filterDate('2017-01-01', '2018-12-31')
        .filter(ee.Filter.calendarRange(6,8,'month'));
    var modNDMI = imageCollection.select("Nadir_Reflectance_Band2","Nadir_Reflectance_Band6","BRDF_Albedo_Band_Mandatory_Quality_Band2","BRDF_Albedo_Band_Mandatory_Quality_Band6");
    
    var quality = function(image){ 
      var mask1 = image.select("BRDF_Albedo_Band_Mandatory_Quality_Band2").eq(0);
      var mask2 = image.select("BRDF_Albedo_Band_Mandatory_Quality_Band6").eq(0);
      return image.updateMask(mask1).updateMask(mask2);
    };
    
    var clean_collection = modNDMI.map(quality);
    
    var addNDMI = function(image) {
      var ndmi = image.normalizedDifference(['Nadir_Reflectance_Band2', 'Nadir_Reflectance_Band6']).rename('NDMI');
      return image.addBands(ndmi).updateMask(water_mask);
    };
    var ndmi = clean_collection.map(addNDMI);
    
    var NDMI=ndmi.select('NDMI')
    Map.addLayer(NDMI)
    

    this tutorial .