সেভ-বেস্ট জয়েন

একটি সংগ্রহের প্রতিটি উপাদানের জন্য শুধুমাত্র সেরা মিল সংরক্ষণ করতে, একটি ee.Join.saveBest() ব্যবহার করুন। saveBest() join ফাংশনগুলি saveAll() যোগদানের সমতুল্য উপায়ে, primary সংগ্রহের প্রতিটি উপাদান ব্যতীত, এটি সেরা মিলের সাথে secondary সংগ্রহ থেকে উপাদানটিকে সংরক্ষণ করে। প্রাথমিক সংগ্রহে অতুলনীয় উপাদানগুলি বাদ দেওয়া হয়েছে। ধরুন primary সংগ্রহে প্রতিটি ল্যান্ডস্যাট চিত্রের কাছাকাছি সময়ে একটি আবহাওয়া সংক্রান্ত চিত্র খুঁজে বের করার উদ্দেশ্য। এই যোগদানটি সম্পাদন করতে, ee.Filter ফিল্টারকে অবশ্যই একটি একক যোগদানের শর্তের জন্য পুনরায় সংজ্ঞায়িত করতে হবে (একত্রিত ফিল্টার saveBest() এর সাথে কাজ করবে না কারণ এটি অস্পষ্ট যে কিভাবে একাধিক সাব-ফিল্টার থেকে র‌্যাঙ্ক একত্রিত করা যায়):

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

// Load a primary collection: Landsat imagery.
var primary = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filterDate('2014-04-01', '2014-06-01')
    .filterBounds(ee.Geometry.Point(-122.092, 37.42));

// Load a secondary collection: GRIDMET meteorological data
var gridmet = ee.ImageCollection('IDAHO_EPSCOR/GRIDMET');

// Define a max difference filter to compare timestamps.
var maxDiffFilter = ee.Filter.maxDifference({
  difference: 2 * 24 * 60 * 60 * 1000,
  leftField: 'system:time_start',
  rightField: 'system:time_start'
});

// Define the join.
var saveBestJoin = ee.Join.saveBest({
  matchKey: 'bestImage',
  measureKey: 'timeDiff'
});

// Apply the join.
var landsatMet = saveBestJoin.apply(primary, gridmet, maxDiffFilter);

// Print the result.
print(landsatMet);

পাইথন সেটআপ

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

import ee
import geemap.core as geemap

Colab (পাইথন)

# Load a primary collection: Landsat imagery.
primary = (
    ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filterDate('2014-04-01', '2014-06-01')
    .filterBounds(ee.Geometry.Point(-122.092, 37.42))
)

# Load a secondary collection: GRIDMET meteorological data
gridmet = ee.ImageCollection('IDAHO_EPSCOR/GRIDMET')

# Define a max difference filter to compare timestamps.
max_diff_filter = ee.Filter.maxDifference(
    difference=2 * 24 * 60 * 60 * 1000,
    leftField='system:time_start',
    rightField='system:time_start',
)

# Define the join.
save_best_join = ee.Join.saveBest(matchKey='bestImage', measureKey='timeDiff')

# Apply the join.
landsat_met = save_best_join.apply(primary, gridmet, max_diff_filter)

# Print the result.
display(landsat_met)

মনে রাখবেন যে একটি saveBest() join সেই সম্পত্তির নাম সংজ্ঞায়িত করে যার সাথে সেরা মিল ( 'bestImage' ) সংরক্ষণ করতে হবে এবং সেই সম্পত্তির নাম যার সাথে ম্যাচ মেট্রিকের ভালতা সংরক্ষণ করতে হবে ( 'timeDiff' )। ফলাফলের পরিদর্শন ইঙ্গিত করে যে primary সংগ্রহের প্রতিটি ল্যান্ডস্যাট দৃশ্যের জন্য একটি মিলে যাওয়া DAYMET ইমেজ প্রপার্টি bestImage এ যোগ করা হয়েছে। এই DAYMET চিত্রগুলির প্রতিটিতে timeDiff বৈশিষ্ট্য রয়েছে যা DAYMET চিত্র এবং ল্যান্ডস্যাট চিত্রের মধ্যে মিলিসেকেন্ডে সময়ের পার্থক্য নির্দেশ করে, যা ফিল্টারে থাকা DAYMET চিত্রগুলির মধ্যে সর্বনিম্ন হবে৷