如何从 landsat 8 表面反射率集合中删除具有特定 WRS_PATH 和 WRS_ROW 的图像?

How to remove images with specific WRS_PATH and WRS_ROW from a landsat 8 surface reflectance collection?

LANDSAT 8 表面反射率有四块(路径:41,行:35/路径:41,行:36/路径:42,行:35/路径:42,行:36)覆盖了我的学习区。我只想从此集合中删除路径为 42 且行为 36 的图像(平铺)。我怎样才能做到这一点? 这是我的代码:

Map.centerObject(table);
Map.addLayer(table);

var sd = '2015-01-01';//Start Date
var ed = '2016-01-01';//End   Date

var suro = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(table)
.filterDate(sd,ed)
//.filter(ee.Filter.and(ee.Filter.notEquals('WRS_PATH',42),ee.Filter.notEquals('WRS_ROW',36)))
.filter(ee.Filter.lt('CLOUD_COVER', 45));

var sur = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(table)
.filterDate(sd,ed)
//.filter(ee.Filter.and(ee.Filter.notEquals('WRS_PATH',42),ee.Filter.notEquals('WRS_ROW',36)))
.filter(ee.Filter.lt('CLOUD_COVER', 45))
//Map a function to mask clouds and negative values
.map(function(img){
  var idd = img.id();
  // Bits 3 and 5 are cloud shadow and cloud, respectively.
  var cloudShadowBitMask = 1 << 3;
  var cloudsBitMask = 1 << 5;
  // Get the pixel QA band.
  var qa = img.select('pixel_qa');
  // Both flags should be set to zero, indicating clear conditions.
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
      .and(qa.bitwiseAnd(cloudsBitMask).eq(0));
  // Return the masked image, scaled to reflectance, without the QA bands.
  var img2 = img.updateMask(mask).multiply(0.0001).select("B1").rename(idd);
  //Mask negative values from images
  var mask2 = img2.gt(0);
  return img2.multiply(mask2);
})
.toBands()
.clip(table);
Map.addLayer(sur);

var imColl_sur = sur.getInfo().bands;
print(imColl_sur);
print(imColl_sur.length);

for (var i = 0; i < imColl_sur.length; i++) {
  //Image Load
  var im = sur.select(imColl_sur[i]["id"]);
  //var id = imColl_sur[i]["id"];
  //var im = ee.Image.load(id);
  //Image Properties from original collection
  var idl = suro.getInfo().features[i]["properties"]["LANDSAT_ID"];
  var st = suro.getInfo().features[i]["properties"]["SENSING_TIME"];
  var sza = (suro.getInfo().features[i]["properties"]["SOLAR_ZENITH_ANGLE"])
    .toString();
  //Download
  Export.image.toDrive({
    image: im,
    description: 'L8_surReflectance_B1_'+idl.slice(10,26)
      +st.slice(11,13)+st.slice(14,16)+'_'
      +sza.slice(0,2)+sza.slice(3,8),
    scale: 30,
    region: table,
    maxPixels: 1e9
  });
}

编辑:

组合过滤器可能会以某种方式起作用,并且会更优雅。

但您可以使用第二种方法:创建一个结合 ROW 和 PATH 的新元数据变量,并基于它进行过滤:

var geometry = ee.Geometry({"type":"Polygon","coordinates":[[[-98.01249999999999,41.430123208731864],[-98.01249999999999,38.809492348693325],[-92.03593749999999,38.809492348693325],[-92.03593749999999,41.430123208731864]]],"geodesic":false,"evenOdd":true})

var sd = '2015-01-01';//Start Date
var ed = '2016-01-01';//End   Date

var suro = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(geometry)
.filterDate(sd,ed)
.map(function(image){
  return image.set({'WRS_PATHROW':{'path':image.get('WRS_PATH'),
                          'row':image.get('WRS_ROW')}
})})
.filter(ee.Filter.neq('WRS_PATHROW',  {'path':25, 'row':32}))

您可以将两个过滤器与 ee.Filter.and 结合使用,以删除任何包含 WRS_PATH=21WRS_ROW=32 的图像:

var filters =  ee.Filter.and(
  ee.Filter.neq('WRS_PATH',21),
  ee.Filter.neq('WRS_ROW',32)
);

var suro = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(geometry)
.filterDate(sd,ed)
.filter(filters);