Das Ergebnis hat so viele Dimensionen wie die Eingabe und in allen Richtungen dieselbe Länge, mit Ausnahme der Slicing-Achse. Dort entspricht die Länge der Anzahl der Positionen von „start“ bis „end“ in Schritten von „step“, die innerhalb der Länge des Eingabearrays entlang der „axis“ liegen. Das bedeutet, dass das Ergebnis entlang der angegebenen Achse die Länge 0 haben kann, wenn „start“ = „end“ ist oder wenn die Start- oder Endwerte vollständig außerhalb des Bereichs liegen.
| Nutzung | Ausgabe |
|---|---|
Image.arraySlice(axis, start, end, step) | Bild |
| Argument | Typ | Details |
|---|---|---|
Dieses: input | Bild | Eingabe-Array-Bild. |
axis | Ganzzahl, Standardwert: 0 | Achse, die als Teilmenge verwendet werden soll. |
start | Bild, Standardwert: null | Die Koordinate des ersten Slice (einschließlich) entlang der Achse. Negative Zahlen werden verwendet, um den Beginn des Aufteilens relativ zum Ende des Arrays zu positionieren. Dabei beginnt -1 an der letzten Position auf der Achse, -2 an der vorletzten Position usw. Es muss ein Band für Startindexe oder ein Band pro „input“-Band vorhanden sein. Wenn dieses Argument nicht festgelegt oder an einem Pixel maskiert ist, beginnt der Slice an diesem Pixel mit dem Index 0. |
end | Bild, Standardwert: null | Die Koordinate (exklusiv), an der das Erstellen von Slices beendet werden soll. Standardmäßig ist dies die Länge der angegebenen Achse. Mit negativen Zahlen wird das Ende des Slicings relativ zum Ende des Arrays positioniert. Dabei wird mit -1 die letzte Position ausgeschlossen, mit -2 die letzten beiden Positionen usw. Es muss ein Bereich für Endindexe oder ein Bereich pro „input“-Bereich vorhanden sein. Wenn dieses Argument für ein Pixel nicht festgelegt oder maskiert ist, endet der Slice an diesem Pixel direkt nach dem letzten Index. |
step | Ganzzahl, Standard: 1 | Die Trennung zwischen Slices entlang der Achse. Ein Slice wird an jedem ganzzahligen Vielfachen von „step“ von „start“ (einschließlich) bis „end“ (ausschließlich) erstellt. Muss positiv sein. |
Beispiele
Code-Editor (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]]
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]]