Announcement: All noncommercial projects registered to use Earth Engine before April 15, 2025 must verify noncommercial eligibility to maintain Earth Engine access.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-06 UTC."],[[["\u003cp\u003e\u003ccode\u003eflatten()\u003c/code\u003e transforms a FeatureCollection of FeatureCollections into a single FeatureCollection.\u003c/p\u003e\n"],["\u003cp\u003eIt's used to simplify nested collections for easier analysis and data access.\u003c/p\u003e\n"],["\u003cp\u003eThis function is helpful when dealing with results from operations like \u003ccode\u003ereduceRegions()\u003c/code\u003e applied across image collections.\u003c/p\u003e\n"],["\u003cp\u003eThe output of \u003ccode\u003eflatten()\u003c/code\u003e is a FeatureCollection with all the features from the nested collections combined.\u003c/p\u003e\n"]]],["The `flatten()` method transforms a nested `FeatureCollection` of `FeatureCollections` into a single, flat `FeatureCollection`. It takes a `FeatureCollection` as input and returns a flattened `FeatureCollection`. This allows for the metadata of features within the nested collections to be viewed, which is not possible with unflattened collections. An example demonstrates calculating mean climate variables for counties per climate surface timestep and then flattening the resulting nested collection.\n"],null,["# ee.FeatureCollection.flatten\n\nFlattens collections of collections.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|-------------------------------|-------------------|\n| FeatureCollection.flatten`()` | FeatureCollection |\n\n| Argument | Type | Details |\n|--------------------|-------------------|--------------------------------------|\n| this: `collection` | FeatureCollection | The input collection of collections. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// Counties in New Mexico, USA.\nvar counties = ee.FeatureCollection('TIGER/2018/Counties')\n .filter('STATEFP == \"35\"');\n\n// Monthly climate and climatic water balance surfaces for January 2020.\nvar climate = ee.ImageCollection('IDAHO_EPSCOR/TERRACLIMATE')\n .filterDate('2020-01', '2020-02');\n\n// Calculate mean climate variables for each county per climate surface\n// time step. The result is a FeatureCollection of FeatureCollections.\nvar countiesClimate = climate.map(function(image) {\n return image.reduceRegions({\n collection: counties,\n reducer: ee.Reducer.mean(),\n scale: 5000,\n crs: 'EPSG:4326'\n });\n});\n\n// Note that a printed FeatureCollection of FeatureCollections is not\n// recursively expanded, you cannot view metadata of the features within the\n// nested collections until you isolate a single collection or flatten the\n// collections.\nprint('FeatureCollection of FeatureCollections', countiesClimate);\n\nprint('Flattened FeatureCollection of FeatureCollections',\n countiesClimate.flatten());\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\n# Counties in New Mexico, USA.\ncounties = ee.FeatureCollection('TIGER/2018/Counties').filter('STATEFP == \"35\"')\n\n# Monthly climate and climatic water balance surfaces for January 2020.\nclimate = ee.ImageCollection('IDAHO_EPSCOR/TERRACLIMATE').filterDate(\n '2020-01', '2020-02')\n\n# Calculate mean climate variables for each county per climate surface\n# time step. The result is a FeatureCollection of FeatureCollections.\ndef reduce_mean(image):\n return image.reduceRegions(**{\n 'collection': counties,\n 'reducer': ee.Reducer.mean(),\n 'scale': 5000,\n 'crs': 'EPSG:4326'\n })\ncounties_climate = climate.map(reduce_mean)\n\n# Note that a printed FeatureCollection of FeatureCollections is not\n# recursively expanded, you cannot view metadata of the features within the\n# nested collections until you isolate a single collection or flatten the\n# collections.\nprint('FeatureCollection of FeatureCollections:', counties_climate.getInfo())\n\nprint('Flattened FeatureCollection of FeatureCollections:',\n counties_climate.flatten().getInfo())\n```"]]