অনেকগুলি ee.Image পদ্ধতি আছে যেগুলি ইমেজ ডেটার RGB ভিজ্যুয়াল
প্রতিনিধিত্ব তৈরি করে, যেমন:
visualize(),
getThumbURL(),
getMap(),
getMapId() (Colab Folium ম্যাপ ডিসপ্লেতে ব্যবহার করা হয়) এবং,
Map.addLayer()
(Code Editor ম্যাপ ডিসপ্লেতে ব্যবহার করা হয়, Python-এর জন্য উপলভ্য নয়)। ডিফল্ট হিসেবে এই পদ্ধতিগুলি
প্রথম তিনটি ব্যান্ডকে যথাক্রমে লাল, সবুজ ও নীল রঙে অ্যাসাইন করে। ডিফল্ট স্ট্রেচ
ব্যান্ডে থাকা ডেটার ধরনের উপর নির্ভর করে (যেমন, [০, ১]-এ ফ্লোট স্ট্রেচ করা হয়, ১৬-বিট ডেটা
সম্ভাব্য মানের সম্পূর্ণ রেঞ্জে স্ট্রেচ করা হয়), যা উপযুক্ত হতেও পারে আবার নাও হতে পারে। পছন্দসই
ভিজ্যুয়ালাইজেশন এফেক্ট পেতে, আপনি ভিজ্যুয়ালাইজেশন প্যারামিটার প্রদান করতে পারেন:
| প্যারামিটার | বিবরণ | ধরন |
|---|---|---|
| ব্যান্ড | RGB-তে ম্যাপ করার জন্য কমা দিয়ে আলাদা করা তিনটি ব্যান্ডের নামের তালিকা | তালিকা |
| মিনিট | 0-তে ম্যাপ করার জন্য ভ্যালু | সংখ্যা বা তিনটি সংখ্যার তালিকা, প্রতিটি ব্যান্ডের জন্য একটি করে |
| সর্বাধিক | ২৫৫-এ ম্যাপ করার জন্য ভ্যালু | সংখ্যা বা তিনটি সংখ্যার তালিকা, প্রতিটি ব্যান্ডের জন্য একটি করে |
| লাভ | যে ভ্যালু দিয়ে প্রতিটি পিক্সেল ভ্যালু গুণ করতে হবে | সংখ্যা বা তিনটি সংখ্যার তালিকা, প্রতিটি ব্যান্ডের জন্য একটি করে |
| পক্ষপাত | প্রতিটি DN-এ যোগ করার জন্য ভ্যালু | সংখ্যা বা তিনটি সংখ্যার তালিকা, প্রতিটি ব্যান্ডের জন্য একটি করে |
| গামা | গামা কারেকশন ফ্যাক্টর | সংখ্যা বা তিনটি সংখ্যার তালিকা, প্রতিটি ব্যান্ডের জন্য একটি করে |
| প্যালেট | CSS-স্টাইল কালার স্ট্রিংয়ের তালিকা (শুধুমাত্র সিঙ্গেল-ব্যান্ড ছবি) | কমা দিয়ে আলাদা করা হেক্স স্ট্রিংয়ের তালিকা |
| অস্বচ্ছতা | লেয়ারের অপাসিটি (০.০ হল সম্পূর্ণ স্বচ্ছ এবং ১.০ হল সম্পূর্ণ অস্বচ্ছ) | নম্বর |
| ফর্ম্যাট | "jpg" অথবা "png" | স্ট্রিং |
RGB কম্পোজিট
নিম্নলিখিত উদাহরণে Landsat 8 ছবিকে ফলস-কালার কম্পোজিট হিসেবে স্টাইল করার জন্য প্যারামিটারের ব্যবহার দেখানো হয়েছে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load an image. var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318'); // Define the visualization parameters. var vizParams = { bands: ['B5', 'B4', 'B3'], min: 0, max: 0.5, gamma: [0.95, 1.1, 1] }; // Center the map and display the image. Map.setCenter(-122.1899, 37.5010, 10); // San Francisco Bay Map.addLayer(image, vizParams, 'false color composite');
import ee import geemap.core as geemap
Colab (Python)
# Load an image. image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318') # Define the visualization parameters. image_viz_params = { 'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 0.5, 'gamma': [0.95, 1.1, 1], } # Define a map centered on San Francisco Bay. map_l8 = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_l8.add_layer(image, image_viz_params, 'false color composite') display(map_l8)
এই উদাহরণে, ব্যান্ড 'B5'-কে লাল, 'B4'-কে
সবুজ এবং 'B3'-কে নীল রঙে অ্যাসাইন করা হয়েছে।
রঙ প্যালেট
রঙিন ছবির একটি ব্যান্ড দেখাতে, CSS-স্টাইল কালার স্ট্রিংয়ের তালিকা দ্বারা উপস্থাপিত কালার র্যাম্পের সাথে
palette প্যারামিটার সেট করুন। (আরও তথ্যের জন্য
এই রেফারেন্স
দেখুন)। নিম্নলিখিত উদাহরণে দেখানো হয়েছে যে কীভাবে সায়ান ('00FFFF') থেকে নীল ('0000FF') রঙ ব্যবহার করে
নরমালাইজড ডিফারেন্স ওয়াটার ইন্ডেক্স (NDWI) ছবি রেন্ডার করা যায়:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load an image. var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318'); // Create an NDWI image, define visualization parameters and display. var ndwi = image.normalizedDifference(['B3', 'B5']); var ndwiViz = {min: 0.5, max: 1, palette: ['00FFFF', '0000FF']}; Map.addLayer(ndwi, ndwiViz, 'NDWI', false);
import ee import geemap.core as geemap
Colab (Python)
# Load an image. image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318') # Create an NDWI image, define visualization parameters and display. ndwi = image.normalizedDifference(['B3', 'B5']) ndwi_viz = {'min': 0.5, 'max': 1, 'palette': ['00FFFF', '0000FF']} # Define a map centered on San Francisco Bay. map_ndwi = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_ndwi.add_layer(ndwi, ndwi_viz, 'NDWI') display(map_ndwi)
এই উদাহরণে, লক্ষ্য করুন যে min এবং max প্যারামিটারগুলি
পিক্সেল মানের রেঞ্জ নির্দেশ করে যেখানে প্যালেট প্রয়োগ করা উচিত। ইন্টারমিডিয়েট ভ্যালু
রৈখিকভাবে স্ট্রেচ করা হয়।
এছাড়াও মনে রাখবেন যে কোড এডিটরের উদাহরণে show প্যারামিটারটি
false হিসেবে সেট করা আছে। এর ফলে ম্যাপে যোগ করার সময় লেয়ারের দৃশ্যমানতা
বন্ধ হয়ে যায়। কোড এডিটর ম্যাপের উপরের ডানদিকের কোণে
লেয়ার ম্যানেজার ব্যবহার করে
এটি সবসময় আবার চালু করা যাবে।
ডিফল্ট রঙের প্যালেট সেভ করা হচ্ছে
শ্রেণীবিভাগ ছবিতে কালার প্যালেট সেভ করতে, যাতে সেগুলি প্রয়োগ করার কথা মনে রাখতে না হয়, আপনি প্রতিটি শ্রেণীবিভাগ ব্যান্ডের জন্য দুটি বিশেষ-নামের স্ট্রিং ইমেজ প্রপার্টি সেট করতে পারেন।
যেমন, আপনার ছবিতে যদি 'landcover' নামের একটি ব্যান্ড থাকে
যার তিনটি ভ্যালু 0, 1 এবং 2 যথাক্রমে 'জল', 'জঙ্গল' এবং 'অন্যান্য' ক্লাসকে নির্দেশ করে,
তাহলে আপনি নিম্নলিখিত প্রপার্টি সেট করে ডিফল্ট ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন
যা প্রতিটি ক্লাসের জন্য একটি নির্দিষ্ট রঙ দেখাবে (বিশ্লেষণে ব্যবহৃত ভ্যালুগুলি প্রভাবিত হবে না):
landcover_class_values="0,1,2"landcover_class_palette="0000FF,00FF00,AABBCD"
অ্যাসেট মেটাডেটা কীভাবে সেট করতে হয় তা জানতে অ্যাসেট ম্যানেজ করার পৃষ্ঠা দেখুন।
মাস্কিং
আপনি image.updateMask() ব্যবহার করে আলাদা আলাদা পিক্সেলের অস্বচ্ছতা সেট করতে পারবেন
যা মাস্ক ইমেজের পিক্সেল কোথায় নন-জিরো তার উপর নির্ভর করে। মাস্কে শূন্যের সমান পিক্সেলগুলি
গণনা থেকে বাদ দেওয়া হয় এবং ডিসপ্লের জন্য অস্বচ্ছতা ০-তে সেট করা হয়। নিম্নলিখিত উদাহরণে
NDWI থ্রেশহোল্ড (থ্রেশহোল্ড সম্পর্কে তথ্যের জন্য
রিলেশনাল অপারেশন বিভাগ দেখুন) ব্যবহার করে আগে তৈরি করা NDWI লেয়ারে
মাস্ক আপডেট করা হয়েছে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Mask the non-watery parts of the image, where NDWI < 0.4. var ndwiMasked = ndwi.updateMask(ndwi.gte(0.4)); Map.addLayer(ndwiMasked, ndwiViz, 'NDWI masked');
import ee import geemap.core as geemap
Colab (Python)
# Mask the non-watery parts of the image, where NDWI < 0.4. ndwi_masked = ndwi.updateMask(ndwi.gte(0.4)) # Define a map centered on San Francisco Bay. map_ndwi_masked = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_ndwi_masked.add_layer(ndwi_masked, ndwi_viz, 'NDWI masked') display(map_ndwi_masked)
ভিজ্যুয়ালাইজেশন ছবি
ডিসপ্লে বা এক্সপোর্ট করার জন্য কোনও ছবিকে ৮-বিট RGB ছবিতে কনভার্ট করতে image.visualize() পদ্ধতি
ব্যবহার করুন। যেমন, ফলস-কালার কম্পোজিট এবং NDWI-কে ৩-ব্যান্ড ডিসপ্লে ইমেজে কনভার্ট করতে, এটি ব্যবহার করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Create visualization layers. var imageRGB = image.visualize({bands: ['B5', 'B4', 'B3'], max: 0.5}); var ndwiRGB = ndwiMasked.visualize({ min: 0.5, max: 1, palette: ['00FFFF', '0000FF'] });
import ee import geemap.core as geemap
Colab (Python)
image_rgb = image.visualize(bands=['B5', 'B4', 'B3'], max=0.5) ndwi_rgb = ndwi_masked.visualize(min=0.5, max=1, palette=['00FFFF', '0000FF'])
মোজাইকিং
বিভিন্ন কার্টোগ্রাফিক এফেক্ট পেতে আপনি মাস্কিং ও imageCollection.mosaic() (মোজাইকিং সম্পর্কে তথ্যের জন্য
মোজাইকিং বিভাগ দেখুন)
ব্যবহার করতে পারেন। mosaic() পদ্ধতি ইনপুট সংগ্রহে তাদের ক্রম অনুসারে
আউটপুট ছবিতে লেয়ার রেন্ডার করে। নিম্নলিখিত
উদাহরণে মাস্ক করা NDWI এবং ফলস কালার কম্পোজিটকে একত্রিত করতে এবং একটি নতুন ভিজ্যুয়ালাইজেশন পেতে
mosaic() ব্যবহার করা হয়েছে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Mosaic the visualization layers and display (or export). var mosaic = ee.ImageCollection([imageRGB, ndwiRGB]).mosaic(); Map.addLayer(mosaic, {}, 'mosaic');
import ee import geemap.core as geemap
Colab (Python)
# Mosaic the visualization layers and display (or export). mosaic = ee.ImageCollection([image_rgb, ndwi_rgb]).mosaic() # Define a map centered on San Francisco Bay. map_mosaic = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layer to the map and display it. map_mosaic.add_layer(mosaic, None, 'mosaic') display(map_mosaic)
এই উদাহরণে, লক্ষ্য করুন যে দুটি ভিজ্যুয়ালাইজেশন ছবির একটি তালিকা ImageCollection কনস্ট্রাক্টরে
প্রদান করা হয়েছে। তালিকার ক্রম নির্ধারণ করে
ম্যাপে কোন ক্রমে ছবি রেন্ডার করা হবে।
ক্লিপিং
image.clip() পদ্ধতিটি কার্টোগ্রাফিক এফেক্ট অর্জনের জন্য উপযোগী৷ নিম্নলিখিত
উদাহরণটি সান ফ্রান্সিসকো শহরের চারপাশে একটি ইচ্ছাকৃত বাফার জোনে আগে তৈরি করা মোজাইক
ক্লিপ করে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Create a circle by drawing a 20000 meter buffer around a point. var roi = ee.Geometry.Point([-122.4481, 37.7599]).buffer(20000); // Display a clipped version of the mosaic. Map.addLayer(mosaic.clip(roi), null, 'mosaic clipped');
import ee import geemap.core as geemap
Colab (Python)
# Create a circle by drawing a 20000 meter buffer around a point. roi = ee.Geometry.Point([-122.4481, 37.7599]).buffer(20000) mosaic_clipped = mosaic.clip(roi) # Define a map centered on San Francisco. map_mosaic_clipped = geemap.Map(center=[37.7599, -122.4481], zoom=10) # Add the image layer to the map and display it. map_mosaic_clipped.add_layer(mosaic_clipped, None, 'mosaic clipped') display(map_mosaic_clipped)
আগের উদাহরণে, লক্ষ্য করুন যে কোঅর্ডিনেটগুলি Geometry
কনস্ট্রাক্টরে প্রদান করা হয়েছে এবং বাফার দৈর্ঘ্য ২০,০০০ মিটার হিসাবে নির্দিষ্ট করা হয়েছে। জিওমেট্রি পৃষ্ঠা থেকে
জিওমেট্রি সম্পর্কে আরও জানুন।
ক্যাটাগরি অনুযায়ী ম্যাপ রেন্ডার করা হচ্ছে
এছাড়াও, প্যালেট ডিসক্রিট ভ্যালু ম্যাপ রেন্ডার করার জন্য উপযোগী, যেমন ল্যান্ড কভার ম্যাপ।
একাধিক ক্লাসের ক্ষেত্রে, প্রতিটি ক্লাসের জন্য আলাদা রঙ দিতে প্যালেট ব্যবহার করুন।
(এই প্রসঙ্গে image.remap() পদ্ধতিটি উপযোগী হতে পারে, যা ইচ্ছামতো লেবেলকে
পরপর পূর্ণসংখ্যায় পরিবর্তন করে)। নিম্নলিখিত উদাহরণে ল্যান্ড কভার ক্যাটেগরি রেন্ডার করার জন্য প্যালেট ব্যবহার করা হয়েছে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load 2012 MODIS land cover and select the IGBP classification. var cover = ee.Image('MODIS/061/MCD12Q1/2012_01_01') .select('LC_Type1'); // Define a palette for the 17 distinct land cover classes. var igbpPalette = [ '152106', '225129', '369b47', '30eb5b', '387242', // forest '6a2325', 'c3aa69', 'b76031', 'd9903d', '91af40', // shrub, grass '111149', // wetlands 'cdb33b', // croplands 'cc0013', // urban '33280d', // crop mosaic 'd7cdcc', // snow and ice 'f7e084', // barren 'aec3d4' // water ]; // Specify the min and max labels and the color palette matching the labels. Map.setCenter(-99.229, 40.413, 5); Map.addLayer(cover, {min: 1, max: 17, palette: igbpPalette}, 'IGBP classification');
import ee import geemap.core as geemap
Colab (Python)
# Load 2012 MODIS land cover and select the IGBP classification. cover = ee.Image('MODIS/061/MCD12Q1/2012_01_01').select('LC_Type1') # Define a palette for the 17 distinct land cover classes. igbp_palette = [ '152106', '225129', '369b47', '30eb5b', '387242', # forest '6a2325', 'c3aa69', 'b76031', 'd9903d', '91af40', # shrub, grass '111149', # wetlands 'cdb33b', # croplands 'cc0013', # urban '33280d', # crop mosaic 'd7cdcc', # snow and ice 'f7e084', # barren 'aec3d4', # water ] # Define a map centered on the United States. map_palette = geemap.Map(center=[40.413, -99.229], zoom=5) # Add the image layer to the map and display it. Specify the min and max labels # and the color palette matching the labels. map_palette.add_layer( cover, {'min': 1, 'max': 17, 'palette': igbp_palette}, 'IGBP classes' ) display(map_palette)
স্টাইল করা লেয়ার ডেসক্রিপ্টর
আপনি স্টাইল করা লেয়ার ডেসক্রিপ্টর
(SLD) ব্যবহার করে ডিসপ্লেতে
ইমেজারি রেন্ডার করতে পারেন। image.sldStyle()-কে ছবির সিম্বোলাইজেশন ও কালারিংয়ের XML বিবরণ প্রদান করুন, বিশেষ করে RasterSymbolizer
এলিমেন্ট। RasterSymbolizer এলিমেন্ট সম্পর্কে
এখান থেকে আরও জানুন।
যেমন, SLD-এর মাধ্যমে ক্যাটাগরি অনুযায়ী ম্যাপ রেন্ডার করা বিভাগে বর্ণিত ল্যান্ড কভার ম্যাপ রেন্ডার করতে, এটি ব্যবহার করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
var cover = ee.Image('MODIS/061/MCD12Q1/2012_01_01').select('LC_Type1'); // Define an SLD style of discrete intervals to apply to the image. var sld_intervals = '<RasterSymbolizer>' + '<ColorMap type="intervals" extended="false">' + '<ColorMapEntry color="#152106" quantity="1" label="Evergreen Needleleaf Forest"/>' + '<ColorMapEntry color="#225129" quantity="2" label="Evergreen Broadleaf Forest"/>' + '<ColorMapEntry color="#369b47" quantity="3" label="Deciduous Needleleaf Forest"/>' + '<ColorMapEntry color="#30eb5b" quantity="4" label="Deciduous Broadleaf Forest"/>' + '<ColorMapEntry color="#387242" quantity="5" label="Mixed Deciduous Forest"/>' + '<ColorMapEntry color="#6a2325" quantity="6" label="Closed Shrubland"/>' + '<ColorMapEntry color="#c3aa69" quantity="7" label="Open Shrubland"/>' + '<ColorMapEntry color="#b76031" quantity="8" label="Woody Savanna"/>' + '<ColorMapEntry color="#d9903d" quantity="9" label="Savanna"/>' + '<ColorMapEntry color="#91af40" quantity="10" label="Grassland"/>' + '<ColorMapEntry color="#111149" quantity="11" label="Permanent Wetland"/>' + '<ColorMapEntry color="#cdb33b" quantity="12" label="Cropland"/>' + '<ColorMapEntry color="#cc0013" quantity="13" label="Urban"/>' + '<ColorMapEntry color="#33280d" quantity="14" label="Crop, Natural Veg. Mosaic"/>' + '<ColorMapEntry color="#d7cdcc" quantity="15" label="Permanent Snow, Ice"/>' + '<ColorMapEntry color="#f7e084" quantity="16" label="Barren, Desert"/>' + '<ColorMapEntry color="#aec3d4" quantity="17" label="Water"/>' + '</ColorMap>' + '</RasterSymbolizer>'; Map.addLayer(cover.sldStyle(sld_intervals), {}, 'IGBP classification styled');
import ee import geemap.core as geemap
Colab (Python)
cover = ee.Image('MODIS/061/MCD12Q1/2012_01_01').select('LC_Type1') # Define an SLD style of discrete intervals to apply to the image. sld_intervals = """ <RasterSymbolizer> <ColorMap type="intervals" extended="false" > <ColorMapEntry color="#152106" quantity="1" label="Evergreen Needleleaf Forest"/> <ColorMapEntry color="#225129" quantity="2" label="Evergreen Broadleaf Forest"/> <ColorMapEntry color="#369b47" quantity="3" label="Deciduous Needleleaf Forest"/> <ColorMapEntry color="#30eb5b" quantity="4" label="Deciduous Broadleaf Forest"/> <ColorMapEntry color="#387242" quantity="5" label="Mixed Deciduous Forest"/> <ColorMapEntry color="#6a2325" quantity="6" label="Closed Shrubland"/> <ColorMapEntry color="#c3aa69" quantity="7" label="Open Shrubland"/> <ColorMapEntry color="#b76031" quantity="8" label="Woody Savanna"/> <ColorMapEntry color="#d9903d" quantity="9" label="Savanna"/> <ColorMapEntry color="#91af40" quantity="10" label="Grassland"/> <ColorMapEntry color="#111149" quantity="11" label="Permanent Wetland"/> <ColorMapEntry color="#cdb33b" quantity="12" label="Cropland"/> <ColorMapEntry color="#cc0013" quantity="13" label="Urban"/> <ColorMapEntry color="#33280d" quantity="14" label="Crop, Natural Veg. Mosaic"/> <ColorMapEntry color="#d7cdcc" quantity="15" label="Permanent Snow, Ice"/> <ColorMapEntry color="#f7e084" quantity="16" label="Barren, Desert"/> <ColorMapEntry color="#aec3d4" quantity="17" label="Water"/> </ColorMap> </RasterSymbolizer>""" # Apply the SLD style to the image. cover_sld = cover.sldStyle(sld_intervals) # Define a map centered on the United States. map_sld_categorical = geemap.Map(center=[40.413, -99.229], zoom=5) # Add the image layer to the map and display it. map_sld_categorical.add_layer(cover_sld, None, 'IGBP classes styled') display(map_sld_categorical)
কালার র্যাম্প সহ ভিজ্যুয়ালাইজেশন ছবি তৈরি করতে, ColorMap-এর ধরন 'র্যাম্প' হিসেবে সেট করুন। নিম্নলিখিত উদাহরণটি DEM রেন্ডার করার জন্য 'ব্যবধান' এবং 'র্যাম্প'
প্রকারগুলির তুলনা করে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load SRTM Digital Elevation Model data. var image = ee.Image('CGIAR/SRTM90_V4'); // Define an SLD style of discrete intervals to apply to the image. Use the // opacity keyword to set pixels less than 0 as completely transparent. Pixels // with values greater than or equal to the final entry quantity are set to // fully transparent by default. var sld_intervals = '<RasterSymbolizer>' + '<ColorMap type="intervals" extended="false" >' + '<ColorMapEntry color="#0000ff" quantity="0" label="0 ﹤ x" opacity="0" />' + '<ColorMapEntry color="#00ff00" quantity="100" label="0 ≤ x ﹤ 100" />' + '<ColorMapEntry color="#007f30" quantity="200" label="100 ≤ x ﹤ 200" />' + '<ColorMapEntry color="#30b855" quantity="300" label="200 ≤ x ﹤ 300" />' + '<ColorMapEntry color="#ff0000" quantity="400" label="300 ≤ x ﹤ 400" />' + '<ColorMapEntry color="#ffff00" quantity="900" label="400 ≤ x ﹤ 900" />' + '</ColorMap>' + '</RasterSymbolizer>'; // Define an sld style color ramp to apply to the image. var sld_ramp = '<RasterSymbolizer>' + '<ColorMap type="ramp" extended="false" >' + '<ColorMapEntry color="#0000ff" quantity="0" label="0"/>' + '<ColorMapEntry color="#00ff00" quantity="100" label="100" />' + '<ColorMapEntry color="#007f30" quantity="200" label="200" />' + '<ColorMapEntry color="#30b855" quantity="300" label="300" />' + '<ColorMapEntry color="#ff0000" quantity="400" label="400" />' + '<ColorMapEntry color="#ffff00" quantity="500" label="500" />' + '</ColorMap>' + '</RasterSymbolizer>'; // Add the image to the map using both the color ramp and interval schemes. Map.setCenter(-76.8054, 42.0289, 8); Map.addLayer(image.sldStyle(sld_intervals), {}, 'SLD intervals'); Map.addLayer(image.sldStyle(sld_ramp), {}, 'SLD ramp');
import ee import geemap.core as geemap
Colab (Python)
# Load SRTM Digital Elevation Model data. image = ee.Image('CGIAR/SRTM90_V4') # Define an SLD style of discrete intervals to apply to the image. sld_intervals = """ <RasterSymbolizer> <ColorMap type="intervals" extended="false" > <ColorMapEntry color="#0000ff" quantity="0" label="0"/> <ColorMapEntry color="#00ff00" quantity="100" label="1-100" /> <ColorMapEntry color="#007f30" quantity="200" label="110-200" /> <ColorMapEntry color="#30b855" quantity="300" label="210-300" /> <ColorMapEntry color="#ff0000" quantity="400" label="310-400" /> <ColorMapEntry color="#ffff00" quantity="1000" label="410-1000" /> </ColorMap> </RasterSymbolizer>""" # Define an sld style color ramp to apply to the image. sld_ramp = """ <RasterSymbolizer> <ColorMap type="ramp" extended="false" > <ColorMapEntry color="#0000ff" quantity="0" label="0"/> <ColorMapEntry color="#00ff00" quantity="100" label="100" /> <ColorMapEntry color="#007f30" quantity="200" label="200" /> <ColorMapEntry color="#30b855" quantity="300" label="300" /> <ColorMapEntry color="#ff0000" quantity="400" label="400" /> <ColorMapEntry color="#ffff00" quantity="500" label="500" /> </ColorMap> </RasterSymbolizer>""" # Define a map centered on the United States. map_sld_interval = geemap.Map(center=[40.413, -99.229], zoom=5) # Add the image layers to the map and display it. map_sld_interval.add_layer( image.sldStyle(sld_intervals), None, 'SLD intervals' ) map_sld_interval.add_layer(image.sldStyle(sld_ramp), None, 'SLD ramp') display(map_sld_interval)
এছাড়াও, SLD-এর মাধ্যমে পিক্সেল ভ্যালু স্ট্রেচ করে কন্টিনিউয়াস ডেটার ভিজ্যুয়ালাইজেশন উন্নত করা যায়। যেমন, নিম্নলিখিত কোডটি একটি নির্বিচারে লিনিয়ার স্ট্রেচের ফলাফলকে সর্বনিম্ন-সর্বোচ্চ 'নরমালাইজেশন' এবং 'হিস্টোগ্রাম' ইকুয়ালাইজেশনের সাথে তুলনা করে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load a Landsat 8 raw image. var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318'); // Define a RasterSymbolizer element with '_enhance_' for a placeholder. var template_sld = '<RasterSymbolizer>' + '<ContrastEnhancement><_enhance_/></ContrastEnhancement>' + '<ChannelSelection>' + '<RedChannel>' + '<SourceChannelName>B5</SourceChannelName>' + '</RedChannel>' + '<GreenChannel>' + '<SourceChannelName>B4</SourceChannelName>' + '</GreenChannel>' + '<BlueChannel>' + '<SourceChannelName>B3</SourceChannelName>' + '</BlueChannel>' + '</ChannelSelection>' + '</RasterSymbolizer>'; // Get SLDs with different enhancements. var equalize_sld = template_sld.replace('_enhance_', 'Histogram'); var normalize_sld = template_sld.replace('_enhance_', 'Normalize'); // Display the results. Map.centerObject(image, 10); Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], min: 0, max: 15000}, 'Linear'); Map.addLayer(image.sldStyle(equalize_sld), {}, 'Equalized'); Map.addLayer(image.sldStyle(normalize_sld), {}, 'Normalized');
import ee import geemap.core as geemap
Colab (Python)
# Load a Landsat 8 raw image. image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318') # Define a RasterSymbolizer element with '_enhance_' for a placeholder. template_sld = """ <RasterSymbolizer> <ContrastEnhancement><_enhance_/></ContrastEnhancement> <ChannelSelection> <RedChannel> <SourceChannelName>B5</SourceChannelName> </RedChannel> <GreenChannel> <SourceChannelName>B4</SourceChannelName> </GreenChannel> <BlueChannel> <SourceChannelName>B3</SourceChannelName> </BlueChannel> </ChannelSelection> </RasterSymbolizer>""" # Get SLDs with different enhancements. equalize_sld = template_sld.replace('_enhance_', 'Histogram') normalize_sld = template_sld.replace('_enhance_', 'Normalize') # Define a map centered on San Francisco Bay. map_sld_continuous = geemap.Map(center=[37.5010, -122.1899], zoom=10) # Add the image layers to the map and display it. map_sld_continuous.add_layer( image, {'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 15000}, 'Linear' ) map_sld_continuous.add_layer(image.sldStyle(equalize_sld), None, 'Equalized') map_sld_continuous.add_layer( image.sldStyle(normalize_sld), None, 'Normalized' ) display(map_sld_continuous)
Earth Engine-এ SLD ব্যবহার করার ব্যাপারে কিছু গুরুত্বপূর্ণ বিষয়:
- OGC SLD 1.0 এবং OGC SE 1.1 কাজ করে।
- পাস করা XML ডকুমেন্ট সম্পূর্ণ হতে পারে অথবা শুধু RasterSymbolizer এলিমেন্ট এবং ডাউন হতে পারে।
- ব্যান্ডগুলি তাদের Earth Engine নাম বা সূচক ('১', '২', ...) দ্বারা বেছে নেওয়া যেতে পারে।
- ফ্লোটিং পয়েন্ট ইমেজারির জন্য হিস্টোগ্রাম ও নরম্যালাইজ কনট্রাস্ট স্ট্রেচ মেকানিজম কাজ করে না।
- অস্বচ্ছতা শুধুমাত্র তখনই বিবেচনা করা হয় যখন এটি ০.০ (স্বচ্ছ) হয়। শূন্য নয় এমন অস্বচ্ছতা ভ্যালুকে সম্পূর্ণ অস্বচ্ছ হিসেবে বিবেচনা করা হয়।
- OverlapBehavior-এর সংজ্ঞা বর্তমানে উপেক্ষা করা হয়েছে।
- ShadedRelief মেকানিজম বর্তমানে কাজ করে না।
- ImageOutline মেকানিজম বর্তমানে কাজ করে না।
- জ্যামিতি এলিমেন্ট এড়িয়ে যাওয়া হয়েছে।
- হিস্টোগ্রাম ইকুয়ালাইজেশন বা নরমালাইজেশনের অনুরোধ করা হলে, আউটপুট ছবিতে histogram_bandname মেটাডেটা থাকবে।
থাম্বনেল ছবি
ee.Image অবজেক্টের জন্য PNG বা JPEG থাম্বনেল ছবি জেনারেট করতে
ee.Image.getThumbURL() পদ্ধতি ব্যবহার করুন। getThumbURL()-এ কল করার মাধ্যমে শেষ হওয়া এক্সপ্রেশনের
ফলাফল প্রিন্ট করলে,
URL প্রিন্ট হয়। URL-এ গেলে Earth Engine সার্ভার অনুরোধ করা থাম্বনেল
তৈরি করার জন্য কাজ শুরু করে দেয়। প্রসেসিং সম্পূর্ণ হলে ছবিটি ব্রাউজারে
দেখানো হয়। ছবির উপর ডানদিকের বোতামে ক্লিক করে সংশ্লিষ্ট মেনু থেকে উপযুক্ত বিকল্প বেছে নিয়ে
এটি ডাউনলোড করা যাবে।
getThumbURL() পদ্ধতিতে প্যারামিটার অন্তর্ভুক্ত থাকে, যা উপরে
ভিজ্যুয়ালাইজেশন প্যারামিটার টেবিলে
বর্ণনা করা হয়েছে।
এছাড়াও, এটি ঐচ্ছিক dimensions, region এবং
crs আর্গুমেন্ট নেয় যা থাম্বনেলের স্থানিক ব্যাপ্তি, সাইজ এবং ডিসপ্লে প্রজেকশন
কন্ট্রোল করে।
| প্যারামিটার | বিবরণ | ধরন |
|---|---|---|
| আকৃতি | পিক্সেল ইউনিটে থাম্বনেলের ডাইমেনশন। একটি পূর্ণসংখ্যা প্রদান করা হলে, এটি ছবির বড় অ্যাসপেক্ট ডাইমেনশনের সাইজ নির্ধারণ করে এবং ছোট ডাইমেনশনকে আনুপাতিকভাবে স্কেল করে। বড় ছবির অ্যাস্পেক্ট ডাইমেনশনের জন্য ডিফল্ট হিসেবে ৫১২ পিক্সেল সেট করা থাকে। | এই ফর্ম্যাটে একটি পূর্ণসংখ্যা বা স্ট্রিং: 'WIDTHxHEIGHT' |
| অঞ্চল | রেন্ডার করার জন্য ছবির জিওস্পেশিয়াল অঞ্চল। ডিফল্ট হিসেবে সম্পূর্ণ ছবি বা প্রদত্ত জ্যামিতির সীমা। | GeoJSON বা অন্তত তিনটি পয়েন্ট কোঅর্ডিনেটের 2-D তালিকা যা একটি লিনিয়ার রিংকে সংজ্ঞায়িত করে |
| crs | টার্গেট প্রোজেকশন যেমন, 'EPSG:3857'। ডিফল্ট হিসেবে WGS84 ('EPSG:4326') সেট করা থাকে। | স্ট্রিং |
| ফর্ম্যাট | থাম্বনেল ফর্ম্যাট PNG বা JPEG হিসেবে নির্ধারণ করে। ডিফল্ট PNG ফর্ম্যাট RGBA হিসেবে প্রয়োগ করা হয়, যেখানে আলফা চ্যানেল সঠিক ও ভুল পিক্সেল দেখায়, যা
ছবির mask() দ্বারা নির্ধারিত হয়। ভুল পিক্সেলগুলি ট্রান্সপারেন্ট। ঐচ্ছিক JPEG ফর্ম্যাট
RGB হিসেবে প্রয়োগ করা হয়, যেখানে ভুল ইমেজ পিক্সেল RGB চ্যানেল জুড়ে শূন্য দিয়ে পূরণ করা হয়।
|
স্ট্রিং; 'png' অথবা 'jpg' |
palette আর্গুমেন্ট প্রদান করা না হলে,
সিঙ্গেল-ব্যান্ড ছবি ডিফল্ট হিসেবে গ্রেস্কেলে দেখানো হবে। bands
আর্গুমেন্ট প্রদান করা না হলে, মাল্টি-ব্যান্ড
ছবি ডিফল্ট হিসেবে প্রথম তিনটি ব্যান্ডের RGB ভিজ্যুয়ালাইজেশন দেখাবে। শুধুমাত্র দুটি ব্যান্ড প্রদান করা হলে, প্রথম ব্যান্ডটি লাল, দ্বিতীয়টি নীল এবং সবুজ চ্যানেলটি শূন্য দিয়ে পূরণ করা হবে।
নিচে getThumbURL() প্যারামিটার আর্গুমেন্টের বিভিন্ন কম্বিনেশন
দেখানোর জন্য একাধিক উদাহরণ দেওয়া হল। থাম্বনেল দেখতে এই স্ক্রিপ্ট রান করার সময়
প্রিন্ট করা URL-এ ক্লিক করুন।
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Fetch a digital elevation model. var image = ee.Image('CGIAR/SRTM90_V4'); // Request a default thumbnail of the DEM with defined linear stretch. // Set masked pixels (ocean) to 1000 so they map as gray. var thumbnail1 = image.unmask(1000).getThumbURL({ 'min': 0, 'max': 3000, 'dimensions': 500, }); print('Default extent:', thumbnail1); // Specify region by rectangle, define palette, set larger aspect dimension size. var thumbnail2 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': ['00A600','63C600','E6E600','E9BD3A','ECB176','EFC2B3','F2F2F2'], 'dimensions': 500, 'region': ee.Geometry.Rectangle([-84.6, -55.9, -32.9, 15.7]), }); print('Rectangle region and palette:', thumbnail2); // Specify region by a linear ring and set display CRS as Web Mercator. var thumbnail3 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': ['00A600','63C600','E6E600','E9BD3A','ECB176','EFC2B3','F2F2F2'], 'region': ee.Geometry.LinearRing([[-84.6, 15.7], [-84.6, -55.9], [-32.9, -55.9]]), 'dimensions': 500, 'crs': 'EPSG:3857' }); print('Linear ring region and specified crs', thumbnail3);
import ee import geemap.core as geemap
Colab (Python)
# Fetch a digital elevation model. image = ee.Image('CGIAR/SRTM90_V4') # Request a default thumbnail of the DEM with defined linear stretch. # Set masked pixels (ocean) to 1000 so they map as gray. thumbnail_1 = image.unmask(1000).getThumbURL({ 'min': 0, 'max': 3000, 'dimensions': 500, }) print('Default extent:', thumbnail_1) # Specify region by rectangle, define palette, set larger aspect dimension size. thumbnail_2 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': [ '00A600', '63C600', 'E6E600', 'E9BD3A', 'ECB176', 'EFC2B3', 'F2F2F2', ], 'dimensions': 500, 'region': ee.Geometry.Rectangle([-84.6, -55.9, -32.9, 15.7]), }) print('Rectangle region and palette:', thumbnail_2) # Specify region by a linear ring and set display CRS as Web Mercator. thumbnail_3 = image.getThumbURL({ 'min': 0, 'max': 3000, 'palette': [ '00A600', '63C600', 'E6E600', 'E9BD3A', 'ECB176', 'EFC2B3', 'F2F2F2', ], 'region': ee.Geometry.LinearRing( [[-84.6, 15.7], [-84.6, -55.9], [-32.9, -55.9]] ), 'dimensions': 500, 'crs': 'EPSG:3857', }) print('Linear ring region and specified crs:', thumbnail_3)
Google Colab-এ রান করুন
GitHub-এ সোর্স দেখুন