公告:凡是在
2025 年 4 月 15 日前註冊使用 Earth Engine 的非商業專案,都必須
驗證非商業用途資格,才能繼續存取 Earth Engine。
ee.Image.arraySlice
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
從「start」(含) 到「end」(不含) 沿著指定軸,以「step」的增量切出每個位置,建立子陣列。結果的維度數量會與輸入內容相同,且除了切片軸之外,所有方向的長度都會相同。在切片軸上,長度會是從「start」到「end」的「step」位置數,這些位置位於輸入陣列沿「axis」的長度範圍內。也就是說,如果 start=end,或 start 或 end 值完全超出範圍,則結果沿指定軸的長度可能為 0。
用量 | 傳回 |
---|
Image.arraySlice(axis, start, end, step) | 圖片 |
引數 | 類型 | 詳細資料 |
---|
這個:input | 圖片 | 輸入陣列圖片。 |
axis | 整數,預設值為 0 | 軸到子集。 |
start | 圖片 (預設值:null) | 沿著「軸」的第一個切片座標 (含)。負數用於相對於陣列結尾定位切片開頭,其中 -1 從軸上的最後一個位置開始,-2 從倒數第二個位置開始,依此類推。起始索引必須有一個帶狀區域,或每個「輸入」帶狀區域各有一個帶狀區域。如果未設定或遮蓋這個引數的某些像素,該像素的切片就會從索引 0 開始。 |
end | 圖片 (預設值:null) | 停止擷取切片的座標 (不含)。根據預設,這會是指定軸的長度。負數可用來指定切片結尾相對於陣列結尾的位置,其中 -1 會排除最後一個位置,-2 會排除最後兩個位置,依此類推。結尾索引必須有一個帶,或每個「輸入」帶有一個帶。如果未在某個像素設定或遮蓋這個引數,該像素的切片會在最後一個索引之後結束。 |
step | 整數,預設值為 1 | 沿著「axis」的切片間隔;系統會從「start」(含) 到「end」(不含) 的每個「step」整數倍數位置取一個切片。必須為正數。 |
範例
程式碼編輯器 (JavaScript)
// A function to print arrays for a selected pixel in the following examples.
function sampArrImg(arrImg) {
var point = ee.Geometry.Point([-121, 42]);
return arrImg.sample(point, 500).first().get('array');
}
// Create a 1D array image with length 12.
var arrayImg1D = ee.Image([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).toArray();
print('1D array image (pixel)', sampArrImg(arrayImg1D));
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
// Get the first 3 elements.
print('1D array image first 3 elements (pixel)',
sampArrImg(arrayImg1D.arraySlice(0, 0, 3)));
// [0, 1, 2]
// Get the last 3 elements.
print('1D array image last 3 elements (pixel)',
sampArrImg(arrayImg1D.arraySlice(0, -3)));
// [9, 10, 11]
// Get elements at index positions 3 through 5 (0-based).
print('1D array image elements at index positions 3 through 5 (pixel)',
sampArrImg(arrayImg1D.arraySlice(0, 3, 6)));
// [3, 4, 5]
// Get elements at index positions 4 through end (0-based).
print('1D array image elements at index positions 4 through end (pixel)',
sampArrImg(arrayImg1D.arraySlice(0, 4)));
// [4, 5, 6, 7, 8, 9, 10, 11]
// Get elements using a step of 3.
print('1D array image elements at a step of 3 (pixel)',
sampArrImg(arrayImg1D.arraySlice(0, 0, null, 3)));
// [0, 3, 6, 9]
// Create a 2D array image with 3 rows and 4 columns.
var arrayImg2D = arrayImg1D.arrayReshape(ee.Image([3, 4]).toArray(), 2);
print('2D array image (pixel)', sampArrImg(arrayImg2D));
// [[0, 1, 2, 3],
// [4, 5, 6, 7],
// [8, 9, 10, 11]]
// Get the second row.
print('2D array image second row (pixel)',
sampArrImg(arrayImg2D.arraySlice(0, 1, 2)));
// [[4, 5, 6, 7]
// Get the second column.
print('2D array image second column (pixel)',
sampArrImg(arrayImg2D.arraySlice(1, 1, 2)));
// [[1],
// [5],
// [9]]
// Get all columns except the last.
print('2D array image all columns except last (pixel)',
sampArrImg(arrayImg2D.arraySlice(1, 0, -1)));
// [[0, 1, 2],
// [4, 5, 6],
// [8, 9, 10]]
Python 設定
請參閱
Python 環境頁面,瞭解 Python API 和如何使用 geemap
進行互動式開發。
import ee
import geemap.core as geemap
Colab (Python)
# A function to print arrays for a selected pixel in the following examples.
def samp_arr_img(arr_img):
point = ee.Geometry.Point([-121, 42])
return arr_img.sample(point, 500).first().get('array')
# Create a 1D array image with length 12.
array_img_1d = ee.Image([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).toArray()
print('1D array image (pixel):', samp_arr_img(array_img_1d).getInfo())
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
# Get the first 3 elements.
print('1D array image first 3 elements (pixel):',
samp_arr_img(array_img_1d.arraySlice(0, 0, 3)).getInfo())
# [0, 1, 2]
# Get the last 3 elements.
print('1D array image last 3 elements (pixel):',
samp_arr_img(array_img_1d.arraySlice(0, -3)).getInfo())
# [9, 10, 11]
# Get elements at index positions 3 through 5 (0-based).
print('1D array image elements at index positions 3 through 5 (pixel):',
samp_arr_img(array_img_1d.arraySlice(0, 3, 6)).getInfo())
# [3, 4, 5]
# Get elements at index positions 4 through end (0-based).
print('1D array image elements at index positions 4 through end (pixel)',
samp_arr_img(array_img_1d.arraySlice(0, 4)).getInfo())
# [4, 5, 6, 7, 8, 9, 10, 11]
# Get elements using a step of 3.
print('1D array image elements at a step of 3 (pixel)',
samp_arr_img(array_img_1d.arraySlice(0, 0, None, 3)).getInfo())
# [0, 3, 6, 9]
# Create a 2D array image with 3 rows and 4 columns.
array_img_2d = array_img_1d.arrayReshape(ee.Image([3, 4]).toArray(), 2)
print('2D array image (pixel)', samp_arr_img(array_img_2d).getInfo())
# [[0, 1, 2, 3],
# [4, 5, 6, 7],
# [8, 9, 10, 11]]
# Get the second row.
print('2D array image second row (pixel):',
samp_arr_img(array_img_2d.arraySlice(0, 1, 2)).getInfo())
# [[4, 5, 6, 7]
# Get the second column.
print('2D array image second column (pixel):',
samp_arr_img(array_img_2d.arraySlice(1, 1, 2)).getInfo())
# [[1],
# [5],
# [9]]
# Get all columns except the last.
print('2D array image all columns except last (pixel):',
samp_arr_img(array_img_2d.arraySlice(1, 0, -1)).getInfo())
# [[0, 1, 2],
# [4, 5, 6],
# [8, 9, 10]]
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
[null,null,["上次更新時間:2025-07-26 (世界標準時間)。"],[[["\u003cp\u003e\u003ccode\u003eImage.arraySlice()\u003c/code\u003e extracts a subarray from an image by specifying the axis, start, end, and step.\u003c/p\u003e\n"],["\u003cp\u003eIt allows you to select portions of an array image along a given axis, similar to slicing in Python.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003estart\u003c/code\u003e and \u003ccode\u003eend\u003c/code\u003e parameters can be negative to index from the end of the array.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003estep\u003c/code\u003e parameter controls the interval between selected elements.\u003c/p\u003e\n"],["\u003cp\u003eThe resulting image has the same dimensions as the input except along the sliced axis, where the length depends on the slicing parameters.\u003c/p\u003e\n"]]],[],null,["# ee.Image.arraySlice\n\nCreates a subarray by slicing out each position along the given axis from the 'start' (inclusive) to 'end' (exclusive) by increments of 'step'. The result will have as many dimensions as the input, and the same length in all directions except the slicing axis, where the length will be the number of positions from 'start' to 'end' by 'step' that are in range of the input array's length along 'axis'. This means the result can be length 0 along the given axis if start=end, or if the start or end values are entirely out of range.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|---------------------------------------------------------------|---------|\n| Image.arraySlice`(`*axis* `, `*start* `, `*end* `, `*step*`)` | Image |\n\n| Argument | Type | Details |\n|---------------|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| this: `input` | Image | Input array image. |\n| `axis` | Integer, default: 0 | Axis to subset. |\n| `start` | Image, default: null | The coordinate of the first slice (inclusive) along 'axis'. Negative numbers are used to position the start of slicing relative to the end of the array, where -1 starts at the last position on the axis, -2 starts at the next to last position, etc. There must one band for start indices, or one band per 'input' band. If this argument is not set or masked at some pixel, then the slice at that pixel will start at index 0. |\n| `end` | Image, default: null | The coordinate (exclusive) at which to stop taking slices. By default this will be the length of the given axis. Negative numbers are used to position the end of slicing relative to the end of the array, where -1 will exclude the last position, -2 will exclude the last two positions, etc. There must be one band for end indices, or one band per 'input' band. If this argument is not set or masked at some pixel, then the slice at that pixel will end just after the last index. |\n| `step` | Integer, default: 1 | The separation between slices along 'axis'; a slice will be taken at each whole multiple of 'step' from 'start' (inclusive) to 'end' (exclusive). Must be positive. |\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 1D array image with length 12.\nvar arrayImg1D = ee.Image([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).toArray();\nprint('1D array image (pixel)', sampArrImg(arrayImg1D));\n// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]\n\n// Get the first 3 elements.\nprint('1D array image first 3 elements (pixel)',\n sampArrImg(arrayImg1D.arraySlice(0, 0, 3)));\n// [0, 1, 2]\n\n// Get the last 3 elements.\nprint('1D array image last 3 elements (pixel)',\n sampArrImg(arrayImg1D.arraySlice(0, -3)));\n// [9, 10, 11]\n\n// Get elements at index positions 3 through 5 (0-based).\nprint('1D array image elements at index positions 3 through 5 (pixel)',\n sampArrImg(arrayImg1D.arraySlice(0, 3, 6)));\n// [3, 4, 5]\n\n// Get elements at index positions 4 through end (0-based).\nprint('1D array image elements at index positions 4 through end (pixel)',\n sampArrImg(arrayImg1D.arraySlice(0, 4)));\n// [4, 5, 6, 7, 8, 9, 10, 11]\n\n// Get elements using a step of 3.\nprint('1D array image elements at a step of 3 (pixel)',\n sampArrImg(arrayImg1D.arraySlice(0, 0, null, 3)));\n// [0, 3, 6, 9]\n\n// Create a 2D array image with 3 rows and 4 columns.\nvar arrayImg2D = arrayImg1D.arrayReshape(ee.Image([3, 4]).toArray(), 2);\nprint('2D array image (pixel)', sampArrImg(arrayImg2D));\n// [[0, 1, 2, 3],\n// [4, 5, 6, 7],\n// [8, 9, 10, 11]]\n\n// Get the second row.\nprint('2D array image second row (pixel)',\n sampArrImg(arrayImg2D.arraySlice(0, 1, 2)));\n// [[4, 5, 6, 7]\n\n// Get the second column.\nprint('2D array image second column (pixel)',\n sampArrImg(arrayImg2D.arraySlice(1, 1, 2)));\n// [[1],\n// [5],\n// [9]]\n\n// Get all columns except the last.\nprint('2D array image all columns except last (pixel)',\n sampArrImg(arrayImg2D.arraySlice(1, 0, -1)));\n// [[0, 1, 2],\n// [4, 5, 6],\n// [8, 9, 10]]\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 1D array image with length 12.\narray_img_1d = ee.Image([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).toArray()\nprint('1D array image (pixel):', samp_arr_img(array_img_1d).getInfo())\n# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]\n\n# Get the first 3 elements.\nprint('1D array image first 3 elements (pixel):',\n samp_arr_img(array_img_1d.arraySlice(0, 0, 3)).getInfo())\n# [0, 1, 2]\n\n# Get the last 3 elements.\nprint('1D array image last 3 elements (pixel):',\n samp_arr_img(array_img_1d.arraySlice(0, -3)).getInfo())\n# [9, 10, 11]\n\n# Get elements at index positions 3 through 5 (0-based).\nprint('1D array image elements at index positions 3 through 5 (pixel):',\n samp_arr_img(array_img_1d.arraySlice(0, 3, 6)).getInfo())\n# [3, 4, 5]\n\n# Get elements at index positions 4 through end (0-based).\nprint('1D array image elements at index positions 4 through end (pixel)',\n samp_arr_img(array_img_1d.arraySlice(0, 4)).getInfo())\n# [4, 5, 6, 7, 8, 9, 10, 11]\n\n# Get elements using a step of 3.\nprint('1D array image elements at a step of 3 (pixel)',\n samp_arr_img(array_img_1d.arraySlice(0, 0, None, 3)).getInfo())\n# [0, 3, 6, 9]\n\n# Create a 2D array image with 3 rows and 4 columns.\narray_img_2d = array_img_1d.arrayReshape(ee.Image([3, 4]).toArray(), 2)\nprint('2D array image (pixel)', samp_arr_img(array_img_2d).getInfo())\n# [[0, 1, 2, 3],\n# [4, 5, 6, 7],\n# [8, 9, 10, 11]]\n\n# Get the second row.\nprint('2D array image second row (pixel):',\n samp_arr_img(array_img_2d.arraySlice(0, 1, 2)).getInfo())\n# [[4, 5, 6, 7]\n\n# Get the second column.\nprint('2D array image second column (pixel):',\n samp_arr_img(array_img_2d.arraySlice(1, 1, 2)).getInfo())\n# [[1],\n# [5],\n# [9]]\n\n# Get all columns except the last.\nprint('2D array image all columns except last (pixel):',\n samp_arr_img(array_img_2d.arraySlice(1, 0, -1)).getInfo())\n# [[0, 1, 2],\n# [4, 5, 6],\n# [8, 9, 10]]\n```"]]