একটি সংগ্রহের প্রতিটি উপাদানের জন্য শুধুমাত্র সেরা মিল সংরক্ষণ করতে, একটি 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);
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 চিত্রগুলির মধ্যে সর্বনিম্ন হবে৷