4

Google Earth Engine で、いくつかのポリゴンを含む JSON として Featurecollection に読み込みました。この FeatureCollection に列を追加したいと思います。これにより、各ポリゴンの 2 つのバンドの平均値と、画像コレクションに含まれる複数の画像のそれぞれからの平均値が得られます。

ここに私がこれまでに持っているコードがあります。

//Polygons

var polygons = ee.FeatureCollection('ft:1_z8-9NMZnJie34pXG6l-3StxlcwSKSTJFfVbrdBA');

Map.addLayer(polygons);

//Date of interest

var start = ee.Date('2008-01-01');
var finish = ee.Date('2010-12-31');

//IMPORT Landsat IMAGEs
var Landsat = ee.ImageCollection('LANDSAT/LT05/C01/T1') //Landsat images
.filterBounds(polygons)
.filterDate(start,finish)
.select('B4','B3');

//Add ImageCollection to Map
Map.addLayer(Landsat);

//Map the function over the collection and display the result
print(Landsat);

// Empty Collection to fill
var ft = ee.FeatureCollection(ee.List([]))

var fill = function(img, ini) {
  // type cast
  var inift = ee.FeatureCollection(ini)

  // gets the values for the points in the current img
  var mean = img.reduceRegions({
    collection:polygons,
    reducer: ee.Reducer.mean(),
 });

 // Print the first feature, to illustrate the result.
print(ee.Feature(mean.first()).select(img.bandNames()));

  // writes the mean in each feature
  var ft2 = polygons.map(function(f){return f.set("mean", mean)})

  // merges the FeatureCollections
  return inift.merge(ft2)

  // gets the date of the img
  var date = img.date().format()

  // writes the date in each feature
  var ft3 = polygons.map(function(f){return f.set("date", date)})

  // merges the FeatureCollections
  return inift.merge(ft3)
}

// Iterates over the ImageCollection
var newft = ee.FeatureCollection(Landsat.iterate(fill, ft))

// Export
Export.table.toDrive(newft,
"anyDescription",
"anyFolder",
"test")

コンソールにエラー メッセージが表示される

要素 (エラー) JSON のデコードに失敗しました。エラー: オブジェクト '{"type":"ArgumentRef","value":null}' のフィールド 'value' が見つからないか、null です。オブジェクト: {"type":"ArgumentRef","value":null}。

生成された私のcsvファイルでは、平均と呼ばれる新しい列を取得しますが、これには実際の値が入力されていません。

4

1 に答える 1