অ্যারে এবং অ্যারে ছবি, অ্যারে এবং অ্যারে ছবি

আর্থ ইঞ্জিনের অ্যারেগুলি সংখ্যার তালিকা এবং তালিকার তালিকা থেকে তৈরি করা হয়। বাসা বাঁধার ডিগ্রি মাত্রার সংখ্যা নির্ধারণ করে। একটি সাধারণ, অনুপ্রাণিত উদাহরণ দিয়ে শুরু করতে, Landsat 8 tasseled cap (TC) সহগ ( Baig et al., 2014 ) থেকে তৈরি একটি Array নিম্নলিখিত উদাহরণটি বিবেচনা করুন :

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Create an Array of Tasseled Cap coefficients.
var coefficients = ee.Array([
  [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
  [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
  [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
  [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
  [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
  [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
]);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Create an Array of Tasseled Cap coefficients.
coefficients = ee.Array([
    [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
    [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
    [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
    [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
    [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
    [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
])

নিশ্চিত করুন যে এটি length() ব্যবহার করে একটি 6x6, 2-D অ্যারে, যা প্রতিটি অক্ষের দৈর্ঘ্য ফিরিয়ে দেবে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Print the dimensions.
print(coefficients.length()); //    [6,6]

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Print the dimensions.
display(coefficients.length())  #    [6,6]

নিম্নলিখিত টেবিলটি 0-অক্ষ এবং 1-অক্ষ বরাবর ম্যাট্রিক্স এন্ট্রিগুলির বিন্যাসকে চিত্রিত করে:

1-অক্ষ ->
0 1 2 3 4 5
0 0.3029 0.2786 0.4733 0.5599 0.508 0.1872
1 -0.2941 -0.243 -0.5424 0.7276 0.0713 -0.1608
0-অক্ষ 2 0.1511 0.1973 0.3283 0.3407 -0.7117 -0.4559
3 -0.8239 0.0849 0.4396 -0.058 0.2013 -0.2773
4 -0.3294 0.0557 0.1056 0.1855 -0.4349 0.8085
5 0.1079 -0.9023 0.4119 0.0575 -0.0259 ০.০২৫২

টেবিলের বাম দিকের সূচকগুলি 0-অক্ষ বরাবর অবস্থান নির্দেশ করে। 0-অক্ষের প্রতিটি তালিকার মধ্যে n-তম উপাদানটি 1-অক্ষ বরাবর n-তম অবস্থানে রয়েছে। উদাহরণস্বরূপ, অ্যারের স্থানাঙ্ক [3,1] এ এন্ট্রি হল 0.0849। ধরুন 'সবুজতা' হল আগ্রহের TC উপাদান। আপনি slice() ব্যবহার করে সবুজতা সাব-ম্যাট্রিক্স পেতে পারেন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Get the 1x6 greenness slice, display it.
var greenness = coefficients.slice({axis: 0, start: 1, end: 2, step: 1});
print(greenness);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Get the 1x6 greenness slice, display it.
greenness = coefficients.slice(axis=0, start=1, end=2, step=1)
display(greenness)

2-ডি গ্রিননেস ম্যাট্রিক্স দেখতে এমন কিছু হওয়া উচিত:

[[-0.2941,-0.243,-0.5424,0.7276,0.0713,-0.1608]]
    

লক্ষ্য করুন যে slice() এর start এবং end প্যারামিটারগুলি টেবিলে প্রদর্শিত 0-অক্ষ সূচকগুলির সাথে মিলে যায় ( start অন্তর্ভুক্ত এবং end একচেটিয়া)।

অ্যারে ইমেজ

একটি সবুজতা চিত্র পেতে, ম্যাট্রিক্স একটি ল্যান্ডস্যাট 8 চিত্রের ব্যান্ডগুলিকে সবুজতা ম্যাট্রিক্স দ্বারা গুণ করুন। এটি করার জন্য, প্রথমে মাল্টি-ব্যান্ড ল্যান্ডস্যাট ইমেজটিকে একটি "অ্যারে ইমেজ" এ রূপান্তর করুন, যেখানে প্রতিটি পিক্সেল ব্যান্ড মানের একটি Array । যেমন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Load a Landsat 8 image, select the bands of interest.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')
  .select(['B2', 'B3', 'B4', 'B5', 'B6', 'B7']);

// Make an Array Image, with a 1-D Array per pixel.
var arrayImage1D = image.toArray();

// Make an Array Image with a 2-D Array per pixel, 6x1.
var arrayImage2D = arrayImage1D.toArray(1);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a Landsat 8 image, select the bands of interest.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select(
    ['B2', 'B3', 'B4', 'B5', 'B6', 'B7']
)

# Make an Array Image, with a 1-D Array per pixel.
array_image_1d = image.toArray()

# Make an Array Image with a 2-D Array per pixel, 6x1.
array_image_2d = array_image_1d.toArray(1)

এই উদাহরণে, লক্ষ্য করুন যে toArray() image একটি অ্যারে ছবিতে রূপান্তর করে যেখানে প্রতিটি পিক্সেল একটি 1-D ভেক্টর, যার এন্ট্রিগুলি image ব্যান্ডের সংশ্লিষ্ট অবস্থানে 6টি মানের সাথে মিলে যায়। এই পদ্ধতিতে তৈরি 1-D ভেক্টরগুলির একটি অ্যারে চিত্র 2-D আকারের কোনও ধারণা নেই। শুধুমাত্র 2-ডি ক্রিয়াকলাপগুলি যেমন ম্যাট্রিক্স গুণন সম্পাদন করতে, এটিকে toArray(1) সহ একটি 2-D অ্যারে প্রতি-পিক্সেল চিত্রে রূপান্তর করুন। 2-ডি অ্যারে চিত্রের প্রতিটি পিক্সেলে, ব্যান্ড মানের একটি 6x1 ম্যাট্রিক্স রয়েছে। এটি দেখতে, নিম্নলিখিত খেলনা উদাহরণ বিবেচনা করুন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

var array1D = ee.Array([1, 2, 3]);              // [1,2,3]
var array2D = ee.Array.cat([array1D], 1);     // [[1],[2],[3]]

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

array_1d = ee.Array([1, 2, 3])  # [1,2,3]
array_2d = ee.Array.cat([array_1d], 1)  # [[1],[2],[3]]

লক্ষ্য করুন যে array1D ভেক্টর 0-অক্ষ বরাবর পরিবর্তিত হয়। array2D ম্যাট্রিক্সটিও করে, তবে এটি একটি অতিরিক্ত মাত্রা পেয়েছে। অ্যারে ইমেজে toArray(1) কল করা প্রতিটি পিক্সেলে cat(bandVector, 1) কল করার মত। 2-ডি অ্যারে ইমেজ ব্যবহার করে, বামে একটি ইমেজ দ্বারা গুন করুন যেখানে প্রতিটি পিক্সেলে সবুজতা সহগগুলির একটি 2-ডি ম্যাট্রিক্স রয়েছে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Do a matrix multiplication: 1x6 times 6x1.
// Cast the greenness Array to an Image prior to multiplication.
var greennessArrayImage = ee.Image(greenness).matrixMultiply(arrayImage2D);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Do a matrix multiplication: 1x6 times 6x1.
# Cast the greenness Array to an Image prior to multiplication.
greenness_array_image = ee.Image(greenness).matrixMultiply(array_image_2d)

ফলাফল হল একটি নতুন অ্যারে ইমেজ যেখানে প্রতিটি পিক্সেল হল 1x1 ম্যাট্রিক্স যা ম্যাট্রিক্স 1x6 গ্রীননেস ম্যাট্রিক্স (বাম) এবং 6x1 ব্যান্ড ম্যাট্রিক্স (ডান) গুণ করে। প্রদর্শনের উদ্দেশ্যে, arrayGet() সহ একটি নিয়মিত, এক-ব্যান্ড ছবিতে রূপান্তর করুন :

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Get the result from the 1x1 array in each pixel of the 2-D array image.
var greennessImage = greennessArrayImage.arrayGet([0, 0]);

// Display the input imagery with the greenness result.
Map.setCenter(-122.3, 37.562, 10);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], min: 0, max: 0.5}, 'image');
Map.addLayer(greennessImage, {min: -0.1, max: 0.13}, 'greenness');

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Get the result from the 1x1 array in each pixel of the 2-D array image.
greenness_image = greenness_array_image.arrayGet([0, 0])

# Display the input imagery with the greenness result.
m = geemap.Map()
m.set_center(-122.3, 37.562, 10)
m.add_layer(image, {'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 0.5}, 'image')
m.add_layer(greenness_image, {'min': -0.1, 'max': 0.13}, 'greenness')
m

এখানে একটি সম্পূর্ণ উদাহরণ রয়েছে, যা একসাথে একাধিক ট্যাসেলড ক্যাপ উপাদান গণনা করতে এবং ফলাফল প্রদর্শন করতে সমগ্র সহগ অ্যারে ব্যবহার করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Define an Array of Tasseled Cap coefficients.
var coefficients = ee.Array([
  [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
  [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
  [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
  [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
  [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
  [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
]);

// Load a Landsat 8 image, select the bands of interest.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')
  .select(['B2', 'B3', 'B4', 'B5', 'B6', 'B7']);

// Make an Array Image, with a 1-D Array per pixel.
var arrayImage1D = image.toArray();

// Make an Array Image with a 2-D Array per pixel, 6x1.
var arrayImage2D = arrayImage1D.toArray(1);

// Do a matrix multiplication: 6x6 times 6x1.
var componentsImage = ee.Image(coefficients)
  .matrixMultiply(arrayImage2D)
  // Get rid of the extra dimensions.
  .arrayProject([0])
  .arrayFlatten(
    [['brightness', 'greenness', 'wetness', 'fourth', 'fifth', 'sixth']]);

// Display the first three bands of the result and the input imagery.
var vizParams = {
  bands: ['brightness', 'greenness', 'wetness'],
  min: -0.1, max: [0.5, 0.1, 0.1]
};
Map.setCenter(-122.3, 37.562, 10);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], min: 0, max: 0.5}, 'image');
Map.addLayer(componentsImage, vizParams, 'components');

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Define an Array of Tasseled Cap coefficients.
coefficients = ee.Array([
    [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
    [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
    [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
    [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
    [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
    [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
])

# Load a Landsat 8 image, select the bands of interest.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select(
    ['B2', 'B3', 'B4', 'B5', 'B6', 'B7']
)

# Make an Array Image, with a 1-D Array per pixel.
array_image_1d = image.toArray()

# Make an Array Image with a 2-D Array per pixel, 6x1.
array_image_2d = array_image_1d.toArray(1)

# Do a matrix multiplication: 6x6 times 6x1.
components_image = (
    ee.Image(coefficients)
    .matrixMultiply(array_image_2d)
    # Get rid of the extra dimensions.
    .arrayProject([0])
    .arrayFlatten(
        [['brightness', 'greenness', 'wetness', 'fourth', 'fifth', 'sixth']]
    )
)

# Display the first three bands of the result and the input imagery.
viz_params = {
    'bands': ['brightness', 'greenness', 'wetness'],
    'min': -0.1,
    'max': [0.5, 0.1, 0.1],
}
m = geemap.Map()
m.set_center(-122.3, 37.562, 10)
m.add_layer(image, {'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 0.5}, 'image')
m.add_layer(components_image, viz_params, 'components')
m

লক্ষ্য করুন যে একটি অ্যারে ইমেজ থেকে ব্যান্ডগুলি পাওয়ার সময়, প্রথমে project() দিয়ে অতিরিক্ত মাত্রাগুলি থেকে মুক্তি পান, তারপর arrayFlatten() দিয়ে এটিকে একটি নিয়মিত ছবিতে রূপান্তর করুন। আউটপুট এমন কিছু হওয়া উচিত:

tasseled টুপি ইমেজ
চিত্র 1. ট্যাসেলড ক্যাপ উপাদান "উজ্জ্বলতা" (লাল), "সবুজতা" (সবুজ), এবং "আদ্রতা" (নীল)।
,

আর্থ ইঞ্জিনের অ্যারেগুলি সংখ্যার তালিকা এবং তালিকার তালিকা থেকে তৈরি করা হয়। বাসা বাঁধার ডিগ্রি মাত্রার সংখ্যা নির্ধারণ করে। একটি সাধারণ, অনুপ্রাণিত উদাহরণ দিয়ে শুরু করতে, Landsat 8 tasseled cap (TC) সহগ ( Baig et al., 2014 ) থেকে তৈরি একটি Array নিম্নলিখিত উদাহরণটি বিবেচনা করুন :

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Create an Array of Tasseled Cap coefficients.
var coefficients = ee.Array([
  [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
  [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
  [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
  [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
  [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
  [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
]);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Create an Array of Tasseled Cap coefficients.
coefficients = ee.Array([
    [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
    [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
    [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
    [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
    [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
    [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
])

নিশ্চিত করুন যে এটি length() ব্যবহার করে একটি 6x6, 2-D অ্যারে, যা প্রতিটি অক্ষের দৈর্ঘ্য ফিরিয়ে দেবে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Print the dimensions.
print(coefficients.length()); //    [6,6]

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Print the dimensions.
display(coefficients.length())  #    [6,6]

নিম্নলিখিত টেবিলটি 0-অক্ষ এবং 1-অক্ষ বরাবর ম্যাট্রিক্স এন্ট্রিগুলির বিন্যাসকে চিত্রিত করে:

1-অক্ষ ->
0 1 2 3 4 5
0 0.3029 0.2786 0.4733 0.5599 0.508 0.1872
1 -0.2941 -0.243 -0.5424 0.7276 0.0713 -0.1608
0-অক্ষ 2 0.1511 0.1973 0.3283 0.3407 -0.7117 -0.4559
3 -0.8239 0.0849 0.4396 -0.058 0.2013 -0.2773
4 -0.3294 0.0557 0.1056 0.1855 -0.4349 0.8085
5 0.1079 -0.9023 0.4119 0.0575 -0.0259 ০.০২৫২

টেবিলের বাম দিকের সূচকগুলি 0-অক্ষ বরাবর অবস্থান নির্দেশ করে। 0-অক্ষের প্রতিটি তালিকার মধ্যে n-তম উপাদানটি 1-অক্ষ বরাবর n-তম অবস্থানে রয়েছে। উদাহরণস্বরূপ, অ্যারের স্থানাঙ্ক [3,1] এ এন্ট্রি হল 0.0849। ধরুন 'সবুজতা' হল আগ্রহের TC উপাদান। আপনি slice() ব্যবহার করে সবুজতা সাব-ম্যাট্রিক্স পেতে পারেন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Get the 1x6 greenness slice, display it.
var greenness = coefficients.slice({axis: 0, start: 1, end: 2, step: 1});
print(greenness);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Get the 1x6 greenness slice, display it.
greenness = coefficients.slice(axis=0, start=1, end=2, step=1)
display(greenness)

2-ডি গ্রিননেস ম্যাট্রিক্স দেখতে এমন কিছু হওয়া উচিত:

[[-0.2941,-0.243,-0.5424,0.7276,0.0713,-0.1608]]
    

লক্ষ্য করুন যে slice() এর start এবং end প্যারামিটারগুলি টেবিলে প্রদর্শিত 0-অক্ষ সূচকগুলির সাথে মিলে যায় ( start অন্তর্ভুক্ত এবং end একচেটিয়া)।

অ্যারে ইমেজ

একটি সবুজতা চিত্র পেতে, ম্যাট্রিক্স একটি ল্যান্ডস্যাট 8 চিত্রের ব্যান্ডগুলিকে সবুজতা ম্যাট্রিক্স দ্বারা গুণ করুন। এটি করার জন্য, প্রথমে মাল্টি-ব্যান্ড ল্যান্ডস্যাট ইমেজটিকে একটি "অ্যারে ইমেজ" এ রূপান্তর করুন, যেখানে প্রতিটি পিক্সেল ব্যান্ড মানের একটি Array । যেমন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Load a Landsat 8 image, select the bands of interest.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')
  .select(['B2', 'B3', 'B4', 'B5', 'B6', 'B7']);

// Make an Array Image, with a 1-D Array per pixel.
var arrayImage1D = image.toArray();

// Make an Array Image with a 2-D Array per pixel, 6x1.
var arrayImage2D = arrayImage1D.toArray(1);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a Landsat 8 image, select the bands of interest.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select(
    ['B2', 'B3', 'B4', 'B5', 'B6', 'B7']
)

# Make an Array Image, with a 1-D Array per pixel.
array_image_1d = image.toArray()

# Make an Array Image with a 2-D Array per pixel, 6x1.
array_image_2d = array_image_1d.toArray(1)

এই উদাহরণে, লক্ষ্য করুন যে toArray() image একটি অ্যারে ছবিতে রূপান্তর করে যেখানে প্রতিটি পিক্সেল একটি 1-D ভেক্টর, যার এন্ট্রিগুলি image ব্যান্ডের সংশ্লিষ্ট অবস্থানে 6টি মানের সাথে মিলে যায়। এই পদ্ধতিতে তৈরি 1-D ভেক্টরগুলির একটি অ্যারে চিত্র 2-D আকারের কোনও ধারণা নেই। শুধুমাত্র 2-ডি ক্রিয়াকলাপগুলি যেমন ম্যাট্রিক্স গুণন সম্পাদন করতে, এটিকে toArray(1) সহ একটি 2-D অ্যারে প্রতি-পিক্সেল চিত্রে রূপান্তর করুন। 2-ডি অ্যারে চিত্রের প্রতিটি পিক্সেলে, ব্যান্ড মানের একটি 6x1 ম্যাট্রিক্স রয়েছে। এটি দেখতে, নিম্নলিখিত খেলনা উদাহরণ বিবেচনা করুন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

var array1D = ee.Array([1, 2, 3]);              // [1,2,3]
var array2D = ee.Array.cat([array1D], 1);     // [[1],[2],[3]]

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

array_1d = ee.Array([1, 2, 3])  # [1,2,3]
array_2d = ee.Array.cat([array_1d], 1)  # [[1],[2],[3]]

লক্ষ্য করুন যে array1D ভেক্টর 0-অক্ষ বরাবর পরিবর্তিত হয়। array2D ম্যাট্রিক্সটিও করে, তবে এটি একটি অতিরিক্ত মাত্রা পেয়েছে। অ্যারে ইমেজে toArray(1) কল করা প্রতিটি পিক্সেলে cat(bandVector, 1) কল করার মত। 2-ডি অ্যারে ইমেজ ব্যবহার করে, বামে একটি ইমেজ দ্বারা গুন করুন যেখানে প্রতিটি পিক্সেলে সবুজতা সহগগুলির একটি 2-ডি ম্যাট্রিক্স রয়েছে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Do a matrix multiplication: 1x6 times 6x1.
// Cast the greenness Array to an Image prior to multiplication.
var greennessArrayImage = ee.Image(greenness).matrixMultiply(arrayImage2D);

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Do a matrix multiplication: 1x6 times 6x1.
# Cast the greenness Array to an Image prior to multiplication.
greenness_array_image = ee.Image(greenness).matrixMultiply(array_image_2d)

ফলাফল হল একটি নতুন অ্যারে ইমেজ যেখানে প্রতিটি পিক্সেল হল 1x1 ম্যাট্রিক্স যা ম্যাট্রিক্স 1x6 গ্রীননেস ম্যাট্রিক্স (বাম) এবং 6x1 ব্যান্ড ম্যাট্রিক্স (ডান) গুণ করে। প্রদর্শনের উদ্দেশ্যে, arrayGet() সহ একটি নিয়মিত, এক-ব্যান্ড ছবিতে রূপান্তর করুন :

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Get the result from the 1x1 array in each pixel of the 2-D array image.
var greennessImage = greennessArrayImage.arrayGet([0, 0]);

// Display the input imagery with the greenness result.
Map.setCenter(-122.3, 37.562, 10);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], min: 0, max: 0.5}, 'image');
Map.addLayer(greennessImage, {min: -0.1, max: 0.13}, 'greenness');

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Get the result from the 1x1 array in each pixel of the 2-D array image.
greenness_image = greenness_array_image.arrayGet([0, 0])

# Display the input imagery with the greenness result.
m = geemap.Map()
m.set_center(-122.3, 37.562, 10)
m.add_layer(image, {'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 0.5}, 'image')
m.add_layer(greenness_image, {'min': -0.1, 'max': 0.13}, 'greenness')
m

এখানে একটি সম্পূর্ণ উদাহরণ রয়েছে, যা একসাথে একাধিক ট্যাসেলড ক্যাপ উপাদান গণনা করতে এবং ফলাফল প্রদর্শন করতে সমগ্র সহগ অ্যারে ব্যবহার করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Define an Array of Tasseled Cap coefficients.
var coefficients = ee.Array([
  [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
  [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
  [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
  [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
  [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
  [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
]);

// Load a Landsat 8 image, select the bands of interest.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')
  .select(['B2', 'B3', 'B4', 'B5', 'B6', 'B7']);

// Make an Array Image, with a 1-D Array per pixel.
var arrayImage1D = image.toArray();

// Make an Array Image with a 2-D Array per pixel, 6x1.
var arrayImage2D = arrayImage1D.toArray(1);

// Do a matrix multiplication: 6x6 times 6x1.
var componentsImage = ee.Image(coefficients)
  .matrixMultiply(arrayImage2D)
  // Get rid of the extra dimensions.
  .arrayProject([0])
  .arrayFlatten(
    [['brightness', 'greenness', 'wetness', 'fourth', 'fifth', 'sixth']]);

// Display the first three bands of the result and the input imagery.
var vizParams = {
  bands: ['brightness', 'greenness', 'wetness'],
  min: -0.1, max: [0.5, 0.1, 0.1]
};
Map.setCenter(-122.3, 37.562, 10);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], min: 0, max: 0.5}, 'image');
Map.addLayer(componentsImage, vizParams, 'components');

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# Define an Array of Tasseled Cap coefficients.
coefficients = ee.Array([
    [0.3029, 0.2786, 0.4733, 0.5599, 0.508, 0.1872],
    [-0.2941, -0.243, -0.5424, 0.7276, 0.0713, -0.1608],
    [0.1511, 0.1973, 0.3283, 0.3407, -0.7117, -0.4559],
    [-0.8239, 0.0849, 0.4396, -0.058, 0.2013, -0.2773],
    [-0.3294, 0.0557, 0.1056, 0.1855, -0.4349, 0.8085],
    [0.1079, -0.9023, 0.4119, 0.0575, -0.0259, 0.0252],
])

# Load a Landsat 8 image, select the bands of interest.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select(
    ['B2', 'B3', 'B4', 'B5', 'B6', 'B7']
)

# Make an Array Image, with a 1-D Array per pixel.
array_image_1d = image.toArray()

# Make an Array Image with a 2-D Array per pixel, 6x1.
array_image_2d = array_image_1d.toArray(1)

# Do a matrix multiplication: 6x6 times 6x1.
components_image = (
    ee.Image(coefficients)
    .matrixMultiply(array_image_2d)
    # Get rid of the extra dimensions.
    .arrayProject([0])
    .arrayFlatten(
        [['brightness', 'greenness', 'wetness', 'fourth', 'fifth', 'sixth']]
    )
)

# Display the first three bands of the result and the input imagery.
viz_params = {
    'bands': ['brightness', 'greenness', 'wetness'],
    'min': -0.1,
    'max': [0.5, 0.1, 0.1],
}
m = geemap.Map()
m.set_center(-122.3, 37.562, 10)
m.add_layer(image, {'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 0.5}, 'image')
m.add_layer(components_image, viz_params, 'components')
m

লক্ষ্য করুন যে একটি অ্যারে ইমেজ থেকে ব্যান্ডগুলি পাওয়ার সময়, প্রথমে project() দিয়ে অতিরিক্ত মাত্রাগুলি থেকে মুক্তি পান, তারপর arrayFlatten() দিয়ে এটিকে একটি নিয়মিত ছবিতে রূপান্তর করুন। আউটপুট এমন কিছু হওয়া উচিত:

tasseled টুপি ইমেজ
চিত্র 1. ট্যাসেলড ক্যাপ উপাদান "উজ্জ্বলতা" (লাল), "সবুজতা" (সবুজ), এবং "আদ্রতা" (নীল)।