রিলেশনাল, কন্ডিশনাল এবং বুলিয়ান অপারেশন, রিলেশনাল, কন্ডিশনাল এবং বুলিয়ান অপারেশন

ee.Image অবজেক্টে সিদ্ধান্ত গ্রহণের অভিব্যক্তি নির্মাণের জন্য রিলেশনাল, কন্ডিশনাল এবং বুলিয়ান পদ্ধতির একটি সেট রয়েছে। এই পদ্ধতিগুলির ফলাফলগুলি মাস্কিং, শ্রেণীবদ্ধ মানচিত্র বিকাশ এবং মান পুনঃনির্ধারণের মাধ্যমে নির্দিষ্ট পিক্সেল বা অঞ্চলগুলিতে বিশ্লেষণ সীমিত করার জন্য দরকারী।

রিলেশনাল এবং বুলিয়ান অপারেটর

রিলেশনাল পদ্ধতি অন্তর্ভুক্ত:

eq() , gt() , gte() , lt() , এবং lte()

বুলিয়ান পদ্ধতির মধ্যে রয়েছে:

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

and() , or() , এবং not()

Colab (পাইথন)

And() , Or() , এবং Not()

প্রতি-পিক্সেল ইমেজের মধ্যে তুলনা করতে, রিলেশনাল অপারেটর ব্যবহার করুন। একটি চিত্রে নগরীকৃত এলাকাগুলি বের করতে, এই উদাহরণটি এবং অপারেটরের সাথে থ্রেশহোল্ডগুলিকে একত্রিত করে বর্ণালী সূচকগুলিকে থ্রেশহোল্ড করতে রিলেশনাল অপারেটর ব্যবহার করে:

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

// Load a Landsat 8 image.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318');

// Create NDVI and NDWI spectral indices.
var ndvi = image.normalizedDifference(['B5', 'B4']);
var ndwi = image.normalizedDifference(['B3', 'B5']);

// Create a binary layer using logical operations.
var bare = ndvi.lt(0.2).and(ndwi.lt(0));

// Mask and display the binary layer.
Map.setCenter(-122.3578, 37.7726, 12);
Map.setOptions('satellite');
Map.addLayer(bare.selfMask(), {}, 'bare');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a Landsat 8 image.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')

# Create NDVI and NDWI spectral indices.
ndvi = image.normalizedDifference(['B5', 'B4'])
ndwi = image.normalizedDifference(['B3', 'B5'])

# Create a binary layer using logical operations.
bare = ndvi.lt(0.2).And(ndwi.lt(0))

# Define a map centered on San Francisco Bay.
map_bare = geemap.Map(center=[37.7726, -122.3578], zoom=12)

# Add the masked image layer to the map and display it.
map_bare.add_layer(bare.selfMask(), None, 'bare')
display(map_bare)

এই উদাহরণ দ্বারা চিত্রিত হিসাবে, রিলেশনাল এবং বুলিয়ান অপারেটরগুলির আউটপুট হয় সত্য (1) বা মিথ্যা (0)। 0 এর মাস্ক করার জন্য, আপনি selfMask() ব্যবহার করে ফলস্বরূপ বাইনারি ইমেজটিকে নিজের সাথে মাস্ক করতে পারেন।

রিলেশনাল_এসএফ
ল্যান্ডস্যাট 8, সান ফ্রান্সিসকো, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র থেকে নিম্ন NDVI এবং নিম্ন NDWI (সাদা)।

রিলেশনাল এবং বুলিয়ান অপারেটর দ্বারা ফেরত দেওয়া বাইনারি চিত্রগুলি গাণিতিক অপারেটরগুলির সাথে ব্যবহার করা যেতে পারে। এই উদাহরণটি রিলেশনাল অপারেটর এবং add() ব্যবহার করে একটি রাতের আলোর চিত্রে নগরায়নের অঞ্চল তৈরি করে:

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

// Load a 2012 nightlights image.
var nl2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012');
var lights = nl2012.select('stable_lights');

// Define arbitrary thresholds on the 6-bit stable lights band.
var zones = lights.gt(30).add(lights.gt(55)).add(lights.gt(62));

// Display the thresholded image as three distinct zones near Paris.
var palette = ['000000', '0000FF', '00FF00', 'FF0000'];
Map.setCenter(2.373, 48.8683, 8);
Map.addLayer(zones, {min: 0, max: 3, palette: palette}, 'development zones');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a 2012 nightlights image.
nl_2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012')
lights = nl_2012.select('stable_lights')

# Define arbitrary thresholds on the 6-bit stable lights band.
zones = lights.gt(30).add(lights.gt(55)).add(lights.gt(62))

# Define a map centered on Paris, France.
map_zones = geemap.Map(center=[48.8683, 2.373], zoom=8)

# Display the thresholded image as three distinct zones near Paris.
palette = ['000000', '0000FF', '00FF00', 'FF0000']
map_zones.add_layer(
    zones, {'min': 0, 'max': 3, 'palette': palette}, 'development zones'
)
display(map_zones)

শর্তসাপেক্ষ অপারেটর

উল্লেখ্য যে পূর্ববর্তী উদাহরণের কোডটি expression() দ্বারা বাস্তবায়িত একটি টারনারি অপারেটর ব্যবহার করার সমতুল্য:

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

// Create zones using an expression, display.
var zonesExp = nl2012.expression(
    "(b('stable_lights') > 62) ? 3" +
      ": (b('stable_lights') > 55) ? 2" +
        ": (b('stable_lights') > 30) ? 1" +
          ": 0"
);
Map.addLayer(zonesExp,
             {min: 0, max: 3, palette: palette},
             'development zones (ternary)');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Create zones using an expression, display.
zones_exp = nl_2012.expression(
    "(b('stable_lights') > 62) ? 3 "
    ": (b('stable_lights') > 55) ? 2 "
    ": (b('stable_lights') > 30) ? 1 "
    ': 0'
)

# Define a map centered on Paris, France.
map_zones_exp = geemap.Map(center=[48.8683, 2.373], zoom=8)

# Add the image layer to the map and display it.
map_zones_exp.add_layer(
    zones_exp, {'min': 0, 'max': 3, 'palette': palette}, 'zones exp'
)
display(map_zones_exp)

লক্ষ্য করুন যে পূর্ববর্তী এক্সপ্রেশন উদাহরণে, পরিবর্তনশীল নামের অভিধানের পরিবর্তে, b() ফাংশন ব্যবহার করে আগ্রহের ব্যান্ডটি উল্লেখ করা হয়েছে। এই পৃষ্ঠায় ইমেজ এক্সপ্রেশন সম্পর্কে আরও জানুন। গাণিতিক অপারেটর বা একটি অভিব্যক্তি ব্যবহার করে একই ফলাফল তৈরি করবে।

শর্তসাপেক্ষ_প্যারিস
প্যারিস, ফ্রান্সের জন্য 2012 রাতের আলোর ইমেজরির স্বেচ্ছাচারী অঞ্চল।

চিত্রে শর্তসাপেক্ষ অপারেশন বাস্তবায়নের আরেকটি উপায় হল where() অপারেটর। কিছু অন্যান্য ডেটা দিয়ে মুখোশযুক্ত পিক্সেল প্রতিস্থাপন করার প্রয়োজনীয়তা বিবেচনা করুন। নিম্নলিখিত উদাহরণে, মেঘমুক্ত পিক্সেলগুলিকে where() ব্যবহার করে একটি ক্লাউড-মুক্ত চিত্র থেকে পিক্সেল দ্বারা প্রতিস্থাপিত হয়:

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

// Load a cloudy Sentinel-2 image.
var image = ee.Image(
  'COPERNICUS/S2_SR/20210114T185729_20210114T185730_T10SEG');
Map.addLayer(image,
             {bands: ['B4', 'B3', 'B2'], min: 0, max: 2000},
             'original image');

// Load another image to replace the cloudy pixels.
var replacement = ee.Image(
  'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');

// Set cloudy pixels (greater than 5% probability) to the other image.
var replaced = image.where(image.select('MSK_CLDPRB').gt(5), replacement);

// Display the result.
Map.setCenter(-122.3769, 37.7349, 11);
Map.addLayer(replaced,
             {bands: ['B4', 'B3', 'B2'], min: 0, max: 2000},
             'clouds replaced');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a cloudy Sentinel-2 image.
image = ee.Image('COPERNICUS/S2_SR/20210114T185729_20210114T185730_T10SEG')

# Load another image to replace the cloudy pixels.
replacement = ee.Image(
    'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG'
)

# Set cloudy pixels (greater than 5% probability) to the other image.
replaced = image.where(image.select('MSK_CLDPRB').gt(5), replacement)

# Define a map centered on San Francisco Bay.
map_replaced = geemap.Map(center=[37.7349, -122.3769], zoom=11)

# Display the images on a map.
vis_params = {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 2000}
map_replaced.add_layer(image, vis_params, 'original image')
map_replaced.add_layer(replaced, vis_params, 'clouds replaced')
display(map_replaced)
,

ee.Image অবজেক্টে সিদ্ধান্ত গ্রহণের অভিব্যক্তি নির্মাণের জন্য রিলেশনাল, কন্ডিশনাল এবং বুলিয়ান পদ্ধতির একটি সেট রয়েছে। এই পদ্ধতিগুলির ফলাফলগুলি মাস্কিং, শ্রেণীবদ্ধ মানচিত্র বিকাশ এবং মান পুনঃনির্ধারণের মাধ্যমে নির্দিষ্ট পিক্সেল বা অঞ্চলগুলিতে বিশ্লেষণ সীমিত করার জন্য দরকারী।

রিলেশনাল এবং বুলিয়ান অপারেটর

রিলেশনাল পদ্ধতি অন্তর্ভুক্ত:

eq() , gt() , gte() , lt() , এবং lte()

বুলিয়ান পদ্ধতির মধ্যে রয়েছে:

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

and() , or() , এবং not()

Colab (পাইথন)

And() , Or() , এবং Not()

প্রতি-পিক্সেল ইমেজের মধ্যে তুলনা করতে, রিলেশনাল অপারেটর ব্যবহার করুন। একটি চিত্রে নগরীকৃত এলাকাগুলি বের করতে, এই উদাহরণটি এবং অপারেটরের সাথে থ্রেশহোল্ডগুলিকে একত্রিত করে বর্ণালী সূচকগুলিকে থ্রেশহোল্ড করতে রিলেশনাল অপারেটর ব্যবহার করে:

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

// Load a Landsat 8 image.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318');

// Create NDVI and NDWI spectral indices.
var ndvi = image.normalizedDifference(['B5', 'B4']);
var ndwi = image.normalizedDifference(['B3', 'B5']);

// Create a binary layer using logical operations.
var bare = ndvi.lt(0.2).and(ndwi.lt(0));

// Mask and display the binary layer.
Map.setCenter(-122.3578, 37.7726, 12);
Map.setOptions('satellite');
Map.addLayer(bare.selfMask(), {}, 'bare');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a Landsat 8 image.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')

# Create NDVI and NDWI spectral indices.
ndvi = image.normalizedDifference(['B5', 'B4'])
ndwi = image.normalizedDifference(['B3', 'B5'])

# Create a binary layer using logical operations.
bare = ndvi.lt(0.2).And(ndwi.lt(0))

# Define a map centered on San Francisco Bay.
map_bare = geemap.Map(center=[37.7726, -122.3578], zoom=12)

# Add the masked image layer to the map and display it.
map_bare.add_layer(bare.selfMask(), None, 'bare')
display(map_bare)

এই উদাহরণ দ্বারা চিত্রিত হিসাবে, রিলেশনাল এবং বুলিয়ান অপারেটরগুলির আউটপুট হয় সত্য (1) বা মিথ্যা (0)। 0 এর মাস্ক করার জন্য, আপনি selfMask() ব্যবহার করে ফলস্বরূপ বাইনারি ইমেজটিকে নিজের সাথে মাস্ক করতে পারেন।

রিলেশনাল_এসএফ
ল্যান্ডস্যাট 8, সান ফ্রান্সিসকো, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র থেকে নিম্ন NDVI এবং নিম্ন NDWI (সাদা)।

রিলেশনাল এবং বুলিয়ান অপারেটর দ্বারা ফেরত দেওয়া বাইনারি চিত্রগুলি গাণিতিক অপারেটরগুলির সাথে ব্যবহার করা যেতে পারে। এই উদাহরণটি রিলেশনাল অপারেটর এবং add() ব্যবহার করে একটি রাতের আলোর চিত্রে নগরায়নের অঞ্চল তৈরি করে:

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

// Load a 2012 nightlights image.
var nl2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012');
var lights = nl2012.select('stable_lights');

// Define arbitrary thresholds on the 6-bit stable lights band.
var zones = lights.gt(30).add(lights.gt(55)).add(lights.gt(62));

// Display the thresholded image as three distinct zones near Paris.
var palette = ['000000', '0000FF', '00FF00', 'FF0000'];
Map.setCenter(2.373, 48.8683, 8);
Map.addLayer(zones, {min: 0, max: 3, palette: palette}, 'development zones');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a 2012 nightlights image.
nl_2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012')
lights = nl_2012.select('stable_lights')

# Define arbitrary thresholds on the 6-bit stable lights band.
zones = lights.gt(30).add(lights.gt(55)).add(lights.gt(62))

# Define a map centered on Paris, France.
map_zones = geemap.Map(center=[48.8683, 2.373], zoom=8)

# Display the thresholded image as three distinct zones near Paris.
palette = ['000000', '0000FF', '00FF00', 'FF0000']
map_zones.add_layer(
    zones, {'min': 0, 'max': 3, 'palette': palette}, 'development zones'
)
display(map_zones)

শর্তসাপেক্ষ অপারেটর

উল্লেখ্য যে পূর্ববর্তী উদাহরণের কোডটি expression() দ্বারা বাস্তবায়িত একটি টারনারি অপারেটর ব্যবহার করার সমতুল্য:

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

// Create zones using an expression, display.
var zonesExp = nl2012.expression(
    "(b('stable_lights') > 62) ? 3" +
      ": (b('stable_lights') > 55) ? 2" +
        ": (b('stable_lights') > 30) ? 1" +
          ": 0"
);
Map.addLayer(zonesExp,
             {min: 0, max: 3, palette: palette},
             'development zones (ternary)');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Create zones using an expression, display.
zones_exp = nl_2012.expression(
    "(b('stable_lights') > 62) ? 3 "
    ": (b('stable_lights') > 55) ? 2 "
    ": (b('stable_lights') > 30) ? 1 "
    ': 0'
)

# Define a map centered on Paris, France.
map_zones_exp = geemap.Map(center=[48.8683, 2.373], zoom=8)

# Add the image layer to the map and display it.
map_zones_exp.add_layer(
    zones_exp, {'min': 0, 'max': 3, 'palette': palette}, 'zones exp'
)
display(map_zones_exp)

লক্ষ্য করুন যে পূর্ববর্তী এক্সপ্রেশন উদাহরণে, পরিবর্তনশীল নামের অভিধানের পরিবর্তে, b() ফাংশন ব্যবহার করে আগ্রহের ব্যান্ডটি উল্লেখ করা হয়েছে। এই পৃষ্ঠায় ইমেজ এক্সপ্রেশন সম্পর্কে আরও জানুন। গাণিতিক অপারেটর বা একটি অভিব্যক্তি ব্যবহার করে একই ফলাফল তৈরি করবে।

শর্তসাপেক্ষ_প্যারিস
প্যারিস, ফ্রান্সের জন্য 2012 রাতের আলোর ইমেজরির স্বেচ্ছাচারী অঞ্চল।

চিত্রে শর্তসাপেক্ষ অপারেশন বাস্তবায়নের আরেকটি উপায় হল where() অপারেটর। কিছু অন্যান্য ডেটা দিয়ে মুখোশযুক্ত পিক্সেল প্রতিস্থাপন করার প্রয়োজনীয়তা বিবেচনা করুন। নিম্নলিখিত উদাহরণে, মেঘমুক্ত পিক্সেলগুলিকে where() ব্যবহার করে একটি ক্লাউড-মুক্ত চিত্র থেকে পিক্সেল দ্বারা প্রতিস্থাপিত হয়:

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

// Load a cloudy Sentinel-2 image.
var image = ee.Image(
  'COPERNICUS/S2_SR/20210114T185729_20210114T185730_T10SEG');
Map.addLayer(image,
             {bands: ['B4', 'B3', 'B2'], min: 0, max: 2000},
             'original image');

// Load another image to replace the cloudy pixels.
var replacement = ee.Image(
  'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');

// Set cloudy pixels (greater than 5% probability) to the other image.
var replaced = image.where(image.select('MSK_CLDPRB').gt(5), replacement);

// Display the result.
Map.setCenter(-122.3769, 37.7349, 11);
Map.addLayer(replaced,
             {bands: ['B4', 'B3', 'B2'], min: 0, max: 2000},
             'clouds replaced');

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a cloudy Sentinel-2 image.
image = ee.Image('COPERNICUS/S2_SR/20210114T185729_20210114T185730_T10SEG')

# Load another image to replace the cloudy pixels.
replacement = ee.Image(
    'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG'
)

# Set cloudy pixels (greater than 5% probability) to the other image.
replaced = image.where(image.select('MSK_CLDPRB').gt(5), replacement)

# Define a map centered on San Francisco Bay.
map_replaced = geemap.Map(center=[37.7349, -122.3769], zoom=11)

# Display the images on a map.
vis_params = {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 2000}
map_replaced.add_layer(image, vis_params, 'original image')
map_replaced.add_layer(replaced, vis_params, 'clouds replaced')
display(map_replaced)