একটি Image
(রাস্টার) থেকে FeatureCollection
(ভেক্টর) ডেটা টাইপে রূপান্তর করতে, image.reduceToVectors()
ব্যবহার করুন। এটি আর্থ ইঞ্জিনে ভেক্টরাইজেশনের প্রাথমিক প্রক্রিয়া, এবং অন্যান্য ধরনের রিডুসারে ইনপুট দেওয়ার জন্য অঞ্চল তৈরি করার জন্য এটি কার্যকর হতে পারে। reduceToVectors()
পদ্ধতি সংযুক্ত পিক্সেলের সমজাতীয় গোষ্ঠীর সীমানায় বহুভুজ প্রান্ত (ঐচ্ছিকভাবে সেন্ট্রোয়েড বা বাউন্ডিং বক্স) তৈরি করে।
উদাহরণস্বরূপ, জাপানের 2012 সালের রাতের আলোর ছবি বিবেচনা করুন। নাইটলাইট ডিজিটাল নম্বর উন্নয়ন তীব্রতা জন্য একটি প্রক্সি হিসাবে পরিবেশন করা যাক. রাতের আলোতে নির্বিচারে থ্রেশহোল্ড ব্যবহার করে অঞ্চলগুলিকে সংজ্ঞায়িত করুন, জোনগুলিকে একটি একক-ব্যান্ড ছবিতে একত্রিত করুন, reduceToVectors()
ব্যবহার করে জোনগুলিকে ভেক্টরাইজ করুন :
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load a Japan boundary from the Large Scale International Boundary dataset. var japan = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017') .filter(ee.Filter.eq('country_na', 'Japan')); // Load a 2012 nightlights image, clipped to the Japan border. var nl2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012') .select('stable_lights') .clipToCollection(japan); // Define arbitrary thresholds on the 6-bit nightlights image. var zones = nl2012.gt(30).add(nl2012.gt(55)).add(nl2012.gt(62)); zones = zones.updateMask(zones.neq(0)); // Convert the zones of the thresholded nightlights to vectors. var vectors = zones.addBands(nl2012).reduceToVectors({ geometry: japan, crs: nl2012.projection(), scale: 1000, geometryType: 'polygon', eightConnected: false, labelProperty: 'zone', reducer: ee.Reducer.mean() }); // Display the thresholds. Map.setCenter(139.6225, 35.712, 9); Map.addLayer(zones, {min: 1, max: 3, palette: ['0000FF', '00FF00', 'FF0000']}, 'raster'); // Make a display image for the vectors, add it to the map. var display = ee.Image(0).updateMask(0).paint(vectors, '000000', 3); Map.addLayer(display, {palette: '000000'}, 'vectors');
import ee import geemap.core as geemap
Colab (পাইথন)
# Load a Japan boundary from the Large Scale International Boundary dataset. japan = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017').filter( ee.Filter.eq('country_na', 'Japan') ) # Load a 2012 nightlights image, clipped to the Japan border. nl_2012 = ( ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012') .select('stable_lights') .clipToCollection(japan) ) # Define arbitrary thresholds on the 6-bit nightlights image. zones = nl_2012.gt(30).add(nl_2012.gt(55)).add(nl_2012.gt(62)) zones = zones.updateMask(zones.neq(0)) # Convert the zones of the thresholded nightlights to vectors. vectors = zones.addBands(nl_2012).reduceToVectors( geometry=japan, crs=nl_2012.projection(), scale=1000, geometryType='polygon', eightConnected=False, labelProperty='zone', reducer=ee.Reducer.mean(), ) # Display the thresholds. m = geemap.Map() m.set_center(139.6225, 35.712, 9) m.add_layer( zones, {'min': 1, 'max': 3, 'palette': ['0000FF', '00FF00', 'FF0000']}, 'raster', ) # Make a display image for the vectors, add it to the map. display_image = ee.Image(0).updateMask(0).paint(vectors, '000000', 3) m.add_layer(display_image, {'palette': '000000'}, 'vectors') m
উল্লেখ্য যে ইনপুটের প্রথম ব্যান্ডটি সমজাতীয় অঞ্চলগুলি সনাক্ত করতে ব্যবহৃত হয় এবং অবশিষ্ট ব্যান্ডগুলি প্রদত্ত রিডুসার অনুসারে হ্রাস করা হয়, যার আউটপুট ফলাফল ভেক্টরগুলিতে একটি সম্পত্তি হিসাবে যোগ করা হয়। geometry
পরামিতি নির্দিষ্ট করে যে পরিমাণ ভেক্টর তৈরি করা উচিত। সাধারণভাবে, ভেক্টর তৈরি করার জন্য একটি ন্যূনতম অঞ্চল নির্দিষ্ট করা ভাল অভ্যাস। অস্পষ্টতা এড়াতে scale
এবং crs
নির্দিষ্ট করাও ভাল অভ্যাস। আউটপুট প্রকার হল 'polygon'
যেখানে বহুভুজগুলি চার-সংযুক্ত প্রতিবেশীর সমজাতীয় অঞ্চল থেকে গঠিত হয় (অর্থাৎ eightConnected
মিথ্যা)। শেষ দুটি পরামিতি, labelProperty
এবং reducer
, নির্দিষ্ট করে যে আউটপুট বহুভুজগুলি যথাক্রমে জোন লেবেল এবং নাইটলাইট ব্যান্ডের গড় সহ একটি সম্পত্তি গ্রহণ করবে।
ম্যাপ করা ফলাফলটি চিত্র 1-এ দেখানো টোকিও এলাকার মতো দেখতে হবে। আউটপুট বহুভুজগুলির পরিদর্শন নির্দেশ করে যে প্রতিটি বহুভুজের একটি বৈশিষ্ট্য রয়েছে যা জোনের লেবেল ({1, 2, 3}) এবং নাইটলাইট ব্যান্ডের গড় সংরক্ষণ করে, যেহেতু গড় হ্রাসকারী নির্দিষ্ট করা হয়েছে।
