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\u003earrayProject\u003c/code\u003e reduces the dimensionality of an array image by projecting it onto specified axes.\u003c/p\u003e\n"],["\u003cp\u003eDropped axes must have a maximum length of 1, meaning they can't contain more than one element along that dimension.\u003c/p\u003e\n"],["\u003cp\u003eThis operation effectively reshapes the array within each pixel of the image, retaining data from the specified \u003ccode\u003eaxes\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt's useful for operations like concatenating elements from different axes or reducing the complexity of an array image.\u003c/p\u003e\n"]]],[],null,["# ee.Image.arrayProject\n\nProjects the array in each pixel to a lower dimensional space by specifying the axes to retain. Dropped axes must be at most length 1.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|----------------------------|---------|\n| Image.arrayProject`(axes)` | Image |\n\n| Argument | Type | Details |\n|---------------|-------|--------------------------------------------------------------------------------|\n| this: `input` | Image | Input image. |\n| `axes` | List | The axes to retain. Other axes will be discarded and must be at most length 1. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// A function to print arrays for a selected pixel in the following examples.\nfunction sampArrImg(arrImg) {\n var point = ee.Geometry.Point([-121, 42]);\n return arrImg.sample(point, 500).first().get('array');\n}\n\n// Create a 2D array image with the 0-axis having length 6 and the 1-axis\n// having length 1.\nvar arrayImg2D = ee.Image([0, 1, 2, 3, 4, 5]).toArray().toArray(1);\nprint('2D array image (pixel)', sampArrImg(arrayImg2D));\n// [[0],\n// [1],\n// [2],\n// [3],\n// [4],\n// [5]]\n\n// Project the 2D array to a 1D array, retain the 0-axis (concatenate elements\n// from the 1-axis into the 0-axis).\nvar arrayImg2Dto1D = arrayImg2D.arrayProject([0]);\nprint('2D array image (pixel)', sampArrImg(arrayImg2Dto1D));\n// [0, 1, 2, 3, 4, 5]\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# A function to print arrays for a selected pixel in the following examples.\ndef samp_arr_img(arr_img):\n point = ee.Geometry.Point([-121, 42])\n return arr_img.sample(point, 500).first().get('array')\n\n# Create a 2D array image with the 0-axis having length 6 and the 1-axis\n# having length 1.\narray_img_2d = ee.Image([0, 1, 2, 3, 4, 5]).toArray().toArray(1)\nprint('2D array image (pixel):', samp_arr_img(array_img_2d).getInfo())\n# [[0],\n# [1],\n# [2],\n# [3],\n# [4],\n# [5]]\n\n# Project the 2D array to a 1D array, retain the 0-axis (concatenate elements\n# from the 1-axis into the 0-axis).\narray_img_2d_to_1d = array_img_2d.arrayProject([0])\nprint('2D array image (pixel):', samp_arr_img(array_img_2d_to_1d).getInfo())\n# [0, 1, 2, 3, 4, 5]\n```"]]