ee.Image.arraySlice

สร้างอาร์เรย์ย่อยโดยการแบ่งแต่ละตำแหน่งตามแกนที่กำหนดจาก "start" (รวม) ไปยัง "end" (ไม่รวม) โดยเพิ่มทีละ "step" ผลลัพธ์จะมีมิติข้อมูลเท่ากับอินพุต และมีความยาวเท่ากันในทุกทิศทาง ยกเว้นแกนการแบ่ง ซึ่งความยาวจะเป็นจำนวนตำแหน่งจาก "start" ถึง "end" ตาม "step" ที่อยู่ในช่วงความยาวของอาร์เรย์อินพุตตาม "axis" ซึ่งหมายความว่าผลลัพธ์อาจมีความยาวเป็น 0 ตามแกนที่กำหนด หาก start=end หรือหากค่าเริ่มต้นหรือค่าสิ้นสุดอยู่นอกช่วงทั้งหมด

การใช้งานการคืนสินค้า
Image.arraySlice(axis, start, end, step)รูปภาพ
อาร์กิวเมนต์ประเภทรายละเอียด
ดังนี้ inputรูปภาพรูปภาพอาร์เรย์อินพุต
axisจำนวนเต็ม ค่าเริ่มต้น: 0แกนที่จะสร้างชุดข้อมูลย่อย
startรูปภาพ (ค่าเริ่มต้น): nullพิกัดของ Slice แรก (รวม) ตาม "แกน" ระบบจะใช้ตัวเลขติดลบเพื่อจัดตำแหน่งจุดเริ่มต้นของการแบ่งส่วนเทียบกับจุดสิ้นสุดของอาร์เรย์ โดย -1 จะเริ่มต้นที่ตำแหน่งสุดท้ายในแกน, -2 จะเริ่มต้นที่ตำแหน่งรองสุดท้าย เป็นต้น ต้องมีแถบสำหรับดัชนีเริ่มต้น 1 แถบ หรือ 1 แถบต่อแถบ "อินพุต" หากไม่ได้ตั้งค่าอาร์กิวเมนต์นี้หรือมาสก์ที่พิกเซลใดพิกเซลหนึ่ง สไลซ์ที่พิกเซลนั้นจะเริ่มต้นที่ดัชนี 0
endรูปภาพ (ค่าเริ่มต้น): nullพิกัด (เฉพาะ) ที่จะหยุดการแบ่ง โดยค่าเริ่มต้น ความยาวนี้จะเป็นความยาวของแกนที่ระบุ ตัวเลขติดลบใช้เพื่อกำหนดตำแหน่งจุดสิ้นสุดของการแบ่งส่วนเทียบกับจุดสิ้นสุดของอาร์เรย์ โดย -1 จะยกเว้นตำแหน่งสุดท้าย, -2 จะยกเว้น 2 ตำแหน่งสุดท้าย เป็นต้น ต้องมีแถบดัชนีสิ้นสุด 1 แถบ หรือ 1 แถบต่อแถบ "อินพุต" หากไม่ได้ตั้งค่าหรือมาสก์อาร์กิวเมนต์นี้ที่พิกเซลใด พิกเซลนั้นจะสิ้นสุดหลังจากดัชนีสุดท้าย
stepจำนวนเต็ม ค่าเริ่มต้น: 1การแยกส่วนระหว่างชิ้นตาม "แกน" โดยจะมีการนำชิ้นที่แต่ละจำนวนเต็มของ "ขั้นตอน" จาก "เริ่มต้น" (รวม) ไปยัง "สิ้นสุด" (ไม่รวม) ต้องเป็นค่าบวก

ตัวอย่าง

โปรแกรมแก้ไขโค้ด (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 API และการใช้ geemap เพื่อการพัฒนาแบบอินเทอร์แอกทีฟได้ที่หน้า สภาพแวดล้อม Python

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]]