2017-08-22 8 views
0

私はアフリカの湖の時系列解析を実行しようとしています。関心のある領域は赤道にあるので、センサが全領域をカバーしていない数日おきにギャップの影響を受けます(下図参照)。例は2015年10月2日の下のコードで与えられています。ここでは、湖の端だけがMODIS経路に含まれています。この画像を自分の時系列に含めると、その日のAOIの平均値は正しくありません。ですから、私は関心領域が完全に覆われていない日付を除外するためにimageCollectionをフィルタリングする方法を探しています。赤道でギャップのMODIS毎日パスのGEEのMODIS赤道隙間を扱う

//Import image 
var image = ee.Image('MOD09GA/MOD09GA_005_2015_10_02'); 
//Area of interest 
var AOI = /* color: #d63000 */ee.Geometry.Polygon(
    [[[35.48583984375, 2.1967272417616712], 
     [36.97998046875, 2.1967272417616712], 
     [37.1337890625, 4.631179340411012], 
     [35.3759765625, 4.653079918274051]]]); 
// True Colour Composite 
var visParams = {bands: ['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03']}; 
//Add to map 
Map.addLayer(image, visParams, '2ndOct2015'); 

画像: https://eoimages.gsfc.nasa.gov/images/imagerecords/0/687/world_2000_110_rgb143_lrg.jpg

ありがとうございます!

答えて

0

あなたはこのような何かを行うことができます:

var mod09 = ee.ImageCollection("MODIS/006/MOD09GA"); 
var image = ee.Image('MOD09GA/MOD09GA_005_2015_10_02'); 
var visParams = {bands: ['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03']}; 
Map.addLayer(image, visParams, '2ndOct2015'); 

//Area of interest 
var AOI = /* color: #d63000 */ee.Geometry.Polygon(
    [[[35.48583984375, 2.1967272417616712], 
     [36.97998046875, 2.1967272417616712], 
     [37.1337890625, 4.631179340411012], 
     [35.3759765625, 4.653079918274051]]]); 
Map.centerObject(AOI); 
Map.addLayer(AOI); 

var count = image.select('sur_refl_b01').unmask().reduceRegion({ 
    reducer: 'count', 
    geometry: AOI, 
    scale: image.select('sur_refl_b01').projection().nominalScale(), 
}); 
print(count); 

var counter = function(image) { 
    return image.set(image.select('sur_refl_b01').unmask().reduceRegion({ 
    reducer: ee.Reducer.count(), 
    geometry: AOI, 
    scale: image.select('sur_refl_b01').projection().nominalScale(), 
    })); 
}; 

var filteredCollection = mod09 
    .filterDate('2016-01-01', '2016-12-31') 
    .map(counter) 
    // You probably want to add some delta here. 
    .filter(ee.Filter.gte('sur_refl_b01', count.get('sur_refl_b01'))); 
print(filteredCollection); 
+0

こんにちはNicholas!あなたのスクリプトをありがとう! 1つの簡単なこと、デルタの意味は?私はまた、あなたが働いているように思われる同様の機能のためのあなたの以前の応答を発見した。あなたはそれに何か問題を見ることができますか?私は答えとしてそれを加えました。 –

+0

領域が完全に覆われていない領域をフィルタリングしたかった。あなたの答えはこの質問に対する答えではありません。私はこれが部分的に空の画像を残して、完全に空の画像だけをフィルタリングすると考えています。私が言及したデルタは、これに対処しています。許容可能なヌルピクセル数を表します。ヌルピクセル数はゼロより大きい場合があります。 –

0

これは私がGEEヘルプフォーラムでスレッドから適応され、動作しているようです。

////// MODIS COLLECTION //////// 
var ci = ee.ImageCollection('MOD09GA').filterDate('2015-10-01', '2016 08-05'); 

// Function to exclude MODIS swath gaps 
function filterEmpty(imageCollection, polygon) { 
var scale = 500 
return imageCollection.map(function(i) { 
    return i.set('first_value', i.select(0) 
     .reduceRegion({reducer: ee.Reducer.firstNonNull(), geometry: polygon, scale: scale}) 
    .values().get(0)) 
}).filter(ee.Filter.eq('first_value', 1)) 
} 
var c = filterEmpty(ci, Turkana); 
print(c);