Wynik będzie miał tyle wymiarów co dane wejściowe i taką samą długość we wszystkich kierunkach z wyjątkiem osi dzielenia, w której długość będzie równa liczbie pozycji od „start” do „end” z krokiem „step”, które mieszczą się w zakresie długości tablicy wejściowej wzdłuż osi „axis”. Oznacza to, że wynik może mieć długość 0 wzdłuż danego osi, jeśli start=end lub jeśli wartości początkowe lub końcowe są całkowicie poza zakresem.
| Wykorzystanie | Zwroty |
|---|---|
Image.arraySlice(axis, start, end, step) | Obraz |
| Argument | Typ | Szczegóły |
|---|---|---|
to: input | Obraz | Obraz tablicy wejściowej. |
axis | Liczba całkowita, domyślnie: 0 | Oś do podzbioru. |
start | Obraz, domyślny: null | Współrzędna pierwszego wycinka (włącznie) wzdłuż osi. Liczby ujemne służą do określania położenia początku wycinania względem końca tablicy. Wartość -1 oznacza ostatnią pozycję na osi, -2 – przedostatnią itd. Musi być jeden zakres indeksów początkowych lub jeden zakres na każdy zakres „wejściowy”. Jeśli ten argument nie jest ustawiony lub jest zamaskowany w przypadku danego piksela, wycinek w tym pikselu zacznie się od indeksu 0. |
end | Obraz, domyślny: null | Współrzędna (wyłączna), przy której należy przestać pobierać wycinki. Domyślnie będzie to długość danej osi. Liczby ujemne służą do określania położenia końca wycinka względem końca tablicy. Wartość -1 wyklucza ostatnią pozycję, -2 wyklucza 2 ostatnie pozycje itd. Musi być jeden zakres dla indeksów końcowych lub jeden zakres na zakres „wejściowy”. Jeśli ten argument nie jest ustawiony lub jest zamaskowany w przypadku niektórych pikseli, wycinek w tych pikselach zakończy się tuż po ostatnim indeksie. |
step | Liczba całkowita, domyślnie: 1 | Odstęp między wycinkami wzdłuż osi; wycinek będzie pobierany przy każdej wielokrotności liczby całkowitej „step” od „start” (włącznie) do „end” (wyłącznie). Musi być dodatnia. |
Przykłady
Edytor kodu (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]]