お知らせ:
2025 年 4 月 15 日より前に Earth Engine の使用を登録したすべての非商用プロジェクトは、Earth Engine へのアクセスを維持するために
非商用目的での利用資格を確認する必要があります。
ee.FeatureCollection.iterate
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
ユーザーが指定した関数をコレクションの各要素に適用します。ユーザーが指定した関数には、現在の要素と、前の iterate() 呼び出しで返された値(最初の反復処理の場合は最初の引数)の 2 つの引数が渡されます。結果は、ユーザー指定の関数に対する最後の呼び出しによって返される値です。
Collection.iterate() 呼び出しの結果を返します。
用途 | 戻り値 |
---|
FeatureCollection.iterate(algorithm, first) | ComputedObject |
引数 | タイプ | 詳細 |
---|
これ: collection | コレクション | Collection インスタンス。 |
algorithm | 関数 | 各要素に適用する関数。コレクションの要素と前のイテレーションの値の 2 つの引数を取る必要があります。 |
first | オブジェクト、省略可 | 初期状態。 |
例
コードエディタ(JavaScript)
/**
* CAUTION: ee.FeatureCollection.iterate can be less efficient than alternative
* solutions implemented using ee.FeatureCollection.map or by converting feature
* properties to an ee.Array object and using ee.Array.slice and
* ee.Array.arrayAccum methods. Avoid ee.FeatureCollection.iterate if possible.
*/
// Monthly precipitation accumulation for 2020.
var climate = ee.ImageCollection('IDAHO_EPSCOR/TERRACLIMATE')
.filterDate('2020-01-01', '2021-01-01')
.select('pr');
// Region of interest: north central New Mexico, USA.
var roi = ee.Geometry.BBox(-107.19, 35.27, -104.56, 36.83);
// A FeatureCollection of mean monthly precipitation accumulation for the
// region of interest.
var meanPrecipTs = climate.map(function(image) {
var meanPrecip = image.reduceRegion(
{reducer: ee.Reducer.mean(), geometry: roi, scale: 5000});
return ee.Feature(roi, meanPrecip)
.set('system:time_start', image.get('system:time_start'));
});
// A cumulative sum function to apply to each feature in the
// precipitation FeatureCollection. The first input is the current feature and
// the second is a list of features that accumulates at each step of the
// iteration. The function fetches the last feature in the feature list, gets
// the cumulative precipitation sum value from it, and adds it to the current
// feature's precipitation value. The new cumulative precipitation sum is set
// as a property of the current feature, which is appended to the feature list
// that is passed onto the next step of the iteration.
var cumsum = function(currentFeature, featureList) {
featureList = ee.List(featureList);
var previousSum = ee.Feature(featureList.get(-1)).getNumber('pr_cumsum');
var currentVal = ee.Feature(currentFeature).getNumber('pr');
var currentSum = previousSum.add(currentVal);
return featureList.add(currentFeature.set('pr_cumsum', currentSum));
};
// Use "iterate" to cumulatively sum monthly precipitation over the year with
// the above defined "cumsum" function. Note that the feature list used in the
// "cumsum" function is initialized as the "first" variable. It includes a
// temporary feature with the "pr_cumsum" property set to 0; this feature is
// filtered out of the final FeatureCollection.
var first = ee.List([ee.Feature(null, {pr_cumsum: 0, first: true})]);
var precipCumSum =
ee.FeatureCollection(ee.List(meanPrecipTs.iterate(cumsum, first)))
.filter(ee.Filter.notNull(['pr']));
// Inspect the outputs.
print('Note cumulative precipitation ("pr_cumsum") property',
precipCumSum);
print(ui.Chart.feature.byFeature(
precipCumSum, 'system:time_start', ['pr', 'pr_cumsum']));
Python の設定
Python API とインタラクティブな開発での geemap
の使用については、
Python 環境のページをご覧ください。
import ee
import geemap.core as geemap
Colab(Python)
import altair as alt
# CAUTION: ee.FeatureCollection.iterate can be less efficient than alternative
# solutions implemented using ee.FeatureCollection.map or by converting feature
# properties to an ee.Array object and using ee.Array.slice and
# ee.Array.arrayAccum methods. Avoid ee.FeatureCollection.iterate if possible.
# Monthly precipitation accumulation for 2020.
climate = (
ee.ImageCollection('IDAHO_EPSCOR/TERRACLIMATE')
.filterDate('2020-01-01', '2021-01-01')
.select('pr')
)
# Region of interest: north central New Mexico, USA.
roi = ee.Geometry.BBox(-107.19, 35.27, -104.56, 36.83)
# A FeatureCollection of mean monthly precipitation accumulation for the
# region of interest.
def mean_precip_ts_fun(image):
mean_precip = image.reduceRegion(
reducer=ee.Reducer.mean(), geometry=roi, scale=5000
)
return ee.Feature(roi, mean_precip).set(
'system:time_start', image.get('system:time_start')
)
mean_precip_ts = climate.map(mean_precip_ts_fun)
# A cumulative sum function to apply to each feature in the
# precipitation FeatureCollection. The first input is the current feature and
# the second is a list of features that accumulates at each step of the
# iteration. The function fetches the last feature in the feature list, gets
# the cumulative precipitation sum value from it, and adds it to the current
# feature's precipitation value. The new cumulative precipitation sum is set
# as a property of the current feature, which is appended to the feature list
# that is passed onto the next step of the iteration.
def cumsum(current_feature, feature_list):
feature_list = ee.List(feature_list)
previous_sum = ee.Feature(feature_list.get(-1)).getNumber('pr_cumsum')
current_val = ee.Feature(current_feature).getNumber('pr')
current_sum = previous_sum.add(current_val)
return feature_list.add(current_feature.set('pr_cumsum', current_sum))
# Use "iterate" to cumulatively sum monthly precipitation over the year with
# the above defined "cumsum" function. Note that the feature list used in the
# "cumsum" function is initialized as the "first" variable. It includes a
# temporary feature with the "pr_cumsum" property set to 0 this feature is
# filtered out of the final FeatureCollection.
first = ee.List([ee.Feature(None, {'pr_cumsum': 0, 'first': True})])
precip_cum_sum = ee.FeatureCollection(
ee.List(mean_precip_ts.iterate(cumsum, first))
).filter(ee.Filter.notNull(['pr']))
precip_cum_sum = precip_cum_sum.map(
lambda feature: feature.set(
'date',
ee.Date(feature.getNumber('system:time_start')).format('YYYY-MM-dd'),
)
)
# Inspect the outputs.
display('Note cumulative precipitation ("pr_cumsum") property', precip_cum_sum)
df = geemap.ee_to_df(precip_cum_sum, ['date', 'pr', 'pr_cumsum'])
display(df)
chart = (
alt.Chart(df)
.mark_line()
.encode(x='date:T', y='pr:Q', color=alt.value('blue'))
)
chart += (
alt.Chart(df)
.mark_line()
.encode(x='date:T', y='pr_cumsum:Q', color=alt.value('red'))
)
chart
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-26 UTC。
[null,null,["最終更新日 2025-07-26 UTC。"],[[["\u003cp\u003e\u003ccode\u003eFeatureCollection.iterate()\u003c/code\u003e applies a custom function iteratively to each element of a FeatureCollection, using the output of the previous iteration as input for the next.\u003c/p\u003e\n"],["\u003cp\u003eIt allows for accumulating or aggregating data across features, enabling operations like cumulative sums or sequential processing.\u003c/p\u003e\n"],["\u003cp\u003eThe user-provided function receives the current element and the previous iteration's result, returning a value used in the next step.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFeatureCollection.iterate()\u003c/code\u003e can be less efficient than \u003ccode\u003emap()\u003c/code\u003e or array-based methods for certain tasks, so consider alternatives if performance is critical.\u003c/p\u003e\n"],["\u003cp\u003eThe final output is the result of the last function call, typically a modified FeatureCollection or a computed value.\u003c/p\u003e\n"]]],[],null,["# ee.FeatureCollection.iterate\n\n\u003cbr /\u003e\n\nApplies a user-supplied function to each element of a collection. The user-supplied function is given two arguments: the current element, and the value returned by the previous call to iterate() or the first argument, for the first iteration. The result is the value returned by the final call to the user-supplied function.\n\n\u003cbr /\u003e\n\nReturns the result of the Collection.iterate() call.\n\n| Usage | Returns |\n|---------------------------------------------------|----------------|\n| FeatureCollection.iterate`(algorithm, `*first*`)` | ComputedObject |\n\n| Argument | Type | Details |\n|--------------------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------|\n| this: `collection` | Collection | The Collection instance. |\n| `algorithm` | Function | The function to apply to each element. Must take two arguments: an element of the collection and the value from the previous iteration. |\n| `first` | Object, optional | The initial state. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n/**\n * CAUTION: ee.FeatureCollection.iterate can be less efficient than alternative\n * solutions implemented using ee.FeatureCollection.map or by converting feature\n * properties to an ee.Array object and using ee.Array.slice and\n * ee.Array.arrayAccum methods. Avoid ee.FeatureCollection.iterate if possible.\n */\n\n// Monthly precipitation accumulation for 2020.\nvar climate = ee.ImageCollection('IDAHO_EPSCOR/TERRACLIMATE')\n .filterDate('2020-01-01', '2021-01-01')\n .select('pr');\n\n// Region of interest: north central New Mexico, USA.\nvar roi = ee.Geometry.BBox(-107.19, 35.27, -104.56, 36.83);\n\n// A FeatureCollection of mean monthly precipitation accumulation for the\n// region of interest.\nvar meanPrecipTs = climate.map(function(image) {\n var meanPrecip = image.reduceRegion(\n {reducer: ee.Reducer.mean(), geometry: roi, scale: 5000});\n return ee.Feature(roi, meanPrecip)\n .set('system:time_start', image.get('system:time_start'));\n});\n\n// A cumulative sum function to apply to each feature in the\n// precipitation FeatureCollection. The first input is the current feature and\n// the second is a list of features that accumulates at each step of the\n// iteration. The function fetches the last feature in the feature list, gets\n// the cumulative precipitation sum value from it, and adds it to the current\n// feature's precipitation value. The new cumulative precipitation sum is set\n// as a property of the current feature, which is appended to the feature list\n// that is passed onto the next step of the iteration.\nvar cumsum = function(currentFeature, featureList) {\n featureList = ee.List(featureList);\n var previousSum = ee.Feature(featureList.get(-1)).getNumber('pr_cumsum');\n var currentVal = ee.Feature(currentFeature).getNumber('pr');\n var currentSum = previousSum.add(currentVal);\n return featureList.add(currentFeature.set('pr_cumsum', currentSum));\n};\n\n// Use \"iterate\" to cumulatively sum monthly precipitation over the year with\n// the above defined \"cumsum\" function. Note that the feature list used in the\n// \"cumsum\" function is initialized as the \"first\" variable. It includes a\n// temporary feature with the \"pr_cumsum\" property set to 0; this feature is\n// filtered out of the final FeatureCollection.\nvar first = ee.List([ee.Feature(null, {pr_cumsum: 0, first: true})]);\nvar precipCumSum =\n ee.FeatureCollection(ee.List(meanPrecipTs.iterate(cumsum, first)))\n .filter(ee.Filter.notNull(['pr']));\n\n// Inspect the outputs.\nprint('Note cumulative precipitation (\"pr_cumsum\") property',\n precipCumSum);\nprint(ui.Chart.feature.byFeature(\n precipCumSum, 'system:time_start', ['pr', 'pr_cumsum']));\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\nimport altair as alt\n\n# CAUTION: ee.FeatureCollection.iterate can be less efficient than alternative\n# solutions implemented using ee.FeatureCollection.map or by converting feature\n# properties to an ee.Array object and using ee.Array.slice and\n# ee.Array.arrayAccum methods. Avoid ee.FeatureCollection.iterate if possible.\n\n# Monthly precipitation accumulation for 2020.\nclimate = (\n ee.ImageCollection('IDAHO_EPSCOR/TERRACLIMATE')\n .filterDate('2020-01-01', '2021-01-01')\n .select('pr')\n)\n\n# Region of interest: north central New Mexico, USA.\nroi = ee.Geometry.BBox(-107.19, 35.27, -104.56, 36.83)\n\n\n# A FeatureCollection of mean monthly precipitation accumulation for the\n# region of interest.\ndef mean_precip_ts_fun(image):\n mean_precip = image.reduceRegion(\n reducer=ee.Reducer.mean(), geometry=roi, scale=5000\n )\n return ee.Feature(roi, mean_precip).set(\n 'system:time_start', image.get('system:time_start')\n )\n\n\nmean_precip_ts = climate.map(mean_precip_ts_fun)\n\n\n# A cumulative sum function to apply to each feature in the\n# precipitation FeatureCollection. The first input is the current feature and\n# the second is a list of features that accumulates at each step of the\n# iteration. The function fetches the last feature in the feature list, gets\n# the cumulative precipitation sum value from it, and adds it to the current\n# feature's precipitation value. The new cumulative precipitation sum is set\n# as a property of the current feature, which is appended to the feature list\n# that is passed onto the next step of the iteration.\ndef cumsum(current_feature, feature_list):\n feature_list = ee.List(feature_list)\n previous_sum = ee.Feature(feature_list.get(-1)).getNumber('pr_cumsum')\n current_val = ee.Feature(current_feature).getNumber('pr')\n current_sum = previous_sum.add(current_val)\n return feature_list.add(current_feature.set('pr_cumsum', current_sum))\n\n\n# Use \"iterate\" to cumulatively sum monthly precipitation over the year with\n# the above defined \"cumsum\" function. Note that the feature list used in the\n# \"cumsum\" function is initialized as the \"first\" variable. It includes a\n# temporary feature with the \"pr_cumsum\" property set to 0 this feature is\n# filtered out of the final FeatureCollection.\nfirst = ee.List([ee.Feature(None, {'pr_cumsum': 0, 'first': True})])\nprecip_cum_sum = ee.FeatureCollection(\n ee.List(mean_precip_ts.iterate(cumsum, first))\n).filter(ee.Filter.notNull(['pr']))\n\nprecip_cum_sum = precip_cum_sum.map(\n lambda feature: feature.set(\n 'date',\n ee.Date(feature.getNumber('system:time_start')).format('YYYY-MM-dd'),\n )\n)\n\n# Inspect the outputs.\ndisplay('Note cumulative precipitation (\"pr_cumsum\") property', precip_cum_sum)\n\ndf = geemap.ee_to_df(precip_cum_sum, ['date', 'pr', 'pr_cumsum'])\ndisplay(df)\n\nchart = (\n alt.Chart(df)\n .mark_line()\n .encode(x='date:T', y='pr:Q', color=alt.value('blue'))\n)\nchart += (\n alt.Chart(df)\n .mark_line()\n .encode(x='date:T', y='pr_cumsum:Q', color=alt.value('red'))\n)\nchart\n```"]]