ee.Image.arraySlice

Tạo một mảng con bằng cách cắt từng vị trí dọc theo trục đã cho từ "start" (bao gồm) đến "end" (không bao gồm) theo các bước tăng của "step".

Kết quả sẽ có số chiều bằng với số chiều của dữ liệu đầu vào và có cùng độ dài theo mọi hướng, ngoại trừ trục cắt. Ở đó, độ dài sẽ là số vị trí từ "start" đến "end" theo "step" nằm trong phạm vi độ dài của mảng đầu vào dọc theo "axis". Điều này có nghĩa là kết quả có thể có độ dài bằng 0 dọc theo trục đã cho nếu start=end hoặc nếu các giá trị bắt đầu hoặc kết thúc hoàn toàn nằm ngoài phạm vi.

Cách sử dụngGiá trị trả về
Image.arraySlice(axis, start, end, step)Hình ảnh
Đối sốLoạiThông tin chi tiết
this: inputHình ảnhHình ảnh mảng đầu vào.
axisSố nguyên, mặc định: 0Trục để tạo tập hợp con.
startHình ảnh, mặc định: nullToạ độ của lát cắt đầu tiên (bao gồm) dọc theo "axis". Các số âm được dùng để định vị điểm bắt đầu của việc cắt tương ứng với điểm kết thúc của mảng, trong đó -1 bắt đầu ở vị trí cuối cùng trên trục, -2 bắt đầu ở vị trí kế cuối, v.v. Phải có một dải ô cho các chỉ mục bắt đầu hoặc một dải ô cho mỗi dải ô "input". Nếu đối số này không được đặt hoặc che phủ ở một số pixel, thì lát cắt tại pixel đó sẽ bắt đầu ở chỉ mục 0.
endHình ảnh, mặc định: nullToạ độ (không bao gồm) để dừng việc lấy lát cắt. Theo mặc định, đây sẽ là độ dài của trục đã cho. Các số âm được dùng để định vị điểm kết thúc của việc cắt tương ứng với điểm kết thúc của mảng, trong đó -1 sẽ loại trừ vị trí cuối cùng, -2 sẽ loại trừ 2 vị trí cuối cùng, v.v. Phải có một dải ô cho các chỉ mục kết thúc hoặc một dải ô cho mỗi dải ô "input". Nếu đối số này không được đặt hoặc che phủ ở một số pixel, thì lát cắt tại pixel đó sẽ kết thúc ngay sau chỉ mục cuối cùng.
stepSố nguyên, mặc định: 1Khoảng cách giữa các lát cắt dọc theo "axis"; một lát cắt sẽ được lấy ở mỗi bội số nguyên của "step" từ "start" (bao gồm) đến "end" (không bao gồm). Phải dương.

Ví dụ

Trình soạn thảo mã (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]]

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về Python API và cách sử dụng geemap cho quá trình phát triển có tính tương tác.

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()
display('1D array image (pixel):', samp_arr_img(array_img_1d))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

# Get the first 3 elements.
display('1D array image first 3 elements (pixel):',
        samp_arr_img(array_img_1d.arraySlice(0, 0, 3)))
# [0, 1, 2]

# Get the last 3 elements.
display('1D array image last 3 elements (pixel):',
        samp_arr_img(array_img_1d.arraySlice(0, -3)))
# [9, 10, 11]

# Get elements at index positions 3 through 5 (0-based).
display('1D array image elements at index positions 3 through 5 (pixel):',
        samp_arr_img(array_img_1d.arraySlice(0, 3, 6)))
# [3, 4, 5]

# Get elements at index positions 4 through end (0-based).
display('1D array image elements at index positions 4 through end (pixel)',
        samp_arr_img(array_img_1d.arraySlice(0, 4)))
# [4, 5, 6, 7, 8, 9, 10, 11]

# Get elements using a step of 3.
display('1D array image elements at a step of 3 (pixel)',
        samp_arr_img(array_img_1d.arraySlice(0, 0, None, 3)))
# [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)
display('2D array image (pixel)', samp_arr_img(array_img_2d))
# [[0, 1,  2,  3],
#  [4, 5,  6,  7],
#  [8, 9, 10, 11]]

# Get the second row.
display('2D array image second row (pixel):',
        samp_arr_img(array_img_2d.arraySlice(0, 1, 2)))
# [[4, 5, 6, 7]

# Get the second column.
display('2D array image second column (pixel):',
        samp_arr_img(array_img_2d.arraySlice(1, 1, 2)))
# [[1],
#  [5],
#  [9]]

# Get all columns except the last.
display('2D array image all columns except last (pixel):',
        samp_arr_img(array_img_2d.arraySlice(1, 0, -1)))
# [[0, 1,  2],
#  [4, 5,  6],
#  [8, 9, 10]]