Google Earth Engine 多个过滤器日期
Google Earth Engine multiple filters on date
使用Google地球引擎API,我可以过滤卫星数据的开始和结束日期。例如,在此代码中,我可以检索 2018 年 1 月 1 日至 2018 年 7 月 15 日之间的 ASTER 信息。
var dataset = ee.ImageCollection('ASTER/AST_L1T_003')
.filter(ee.Filter.date('2018-01-01', '2018-08-15'));
var falseColor = dataset.select(['B3N', 'B02', 'B01']);
var falseColorVis = {
min: 0.0,
max: 255.0,
};
Map.setCenter(-122.0272, 39.6734, 11);
Map.addLayer(falseColor.median(), falseColorVis, 'False Color');
我需要做的是检索 2010 年到 2020 年之间的数据,但仅限于夏季。当然,当我应用多个 ee.Filter.date
过滤器时,它 returns 从每年的夏天开始就没有重叠,没有重叠。有什么方法可以有多个 OR
过滤器或以某种方式从我检索的数据中排除秋季和冬季。
这是我的发现。在 Google Earth Engine 的 javascript
api 中,您可以找到以下过滤器:
ee.Filter.dayOfYear(start, end)
并将问题解决为
var dataset = ee.ImageCollection('ASTER/AST_L1T_003')
.filter(ee.Filter.date('2018-01-01', '2018-08-15'));
var falseColor = dataset.select(['B3N', 'B02', 'B01']);
var falseColorVis = {
min: 0.0,
max: 255.0,
};
Map.setCenter(-122.0272, 39.6734, 11);
Map.addLayer(falseColor.median(), falseColorVis, 'False Color');
但在python
api中,这是不可能的,因为我猜有些功能没有实现。因此,一种可能的替代方法是使用 ee.filter.OR()
添加多个日期的过滤器,例如:
filterSummer = ee.Filter.Or(
ee.Filter.date('2004-06-01', '2004-10-01'),
ee.Filter.date('2005-06-01', '2005-10-01'),
ee.Filter.date('2006-06-01', '2006-10-01'),
ee.Filter.date('2007-06-01', '2007-10-01')
)
然后应用到 ImageCollection()
class:
dataset = ee.ImageCollection('ASTER/AST_L1T_003') \
.filterDate(start, end) \
.filter(filterSummer)\
.filterBounds(roi)\
.filterMetadata('CLOUDCOVER', 'less_than', cloud_filter)
使用Google地球引擎API,我可以过滤卫星数据的开始和结束日期。例如,在此代码中,我可以检索 2018 年 1 月 1 日至 2018 年 7 月 15 日之间的 ASTER 信息。
var dataset = ee.ImageCollection('ASTER/AST_L1T_003')
.filter(ee.Filter.date('2018-01-01', '2018-08-15'));
var falseColor = dataset.select(['B3N', 'B02', 'B01']);
var falseColorVis = {
min: 0.0,
max: 255.0,
};
Map.setCenter(-122.0272, 39.6734, 11);
Map.addLayer(falseColor.median(), falseColorVis, 'False Color');
我需要做的是检索 2010 年到 2020 年之间的数据,但仅限于夏季。当然,当我应用多个 ee.Filter.date
过滤器时,它 returns 从每年的夏天开始就没有重叠,没有重叠。有什么方法可以有多个 OR
过滤器或以某种方式从我检索的数据中排除秋季和冬季。
这是我的发现。在 Google Earth Engine 的 javascript
api 中,您可以找到以下过滤器:
ee.Filter.dayOfYear(start, end)
并将问题解决为
var dataset = ee.ImageCollection('ASTER/AST_L1T_003')
.filter(ee.Filter.date('2018-01-01', '2018-08-15'));
var falseColor = dataset.select(['B3N', 'B02', 'B01']);
var falseColorVis = {
min: 0.0,
max: 255.0,
};
Map.setCenter(-122.0272, 39.6734, 11);
Map.addLayer(falseColor.median(), falseColorVis, 'False Color');
但在python
api中,这是不可能的,因为我猜有些功能没有实现。因此,一种可能的替代方法是使用 ee.filter.OR()
添加多个日期的过滤器,例如:
filterSummer = ee.Filter.Or(
ee.Filter.date('2004-06-01', '2004-10-01'),
ee.Filter.date('2005-06-01', '2005-10-01'),
ee.Filter.date('2006-06-01', '2006-10-01'),
ee.Filter.date('2007-06-01', '2007-10-01')
)
然后应用到 ImageCollection()
class:
dataset = ee.ImageCollection('ASTER/AST_L1T_003') \
.filterDate(start, end) \
.filter(filterSummer)\
.filterBounds(roi)\
.filterMetadata('CLOUDCOVER', 'less_than', cloud_filter)