Code for Max-Min Temp from 0-50c with 6 color pallets
Wed Oct 16 2024 15:45:51 GMT+0000 (Coordinated Universal Time)
Saved by @Rehbar #javascript
// Define the coordinates for the specific point (e.g., the location of interest)
var point = ee.Geometry.Point(90.2611485521762, 23.44690280909043);
// Create a buffer around the point (e.g., 30 kilometers)
var bufferRadius = 30000; // 30 km in meters
var pointBuffer = point.buffer(bufferRadius);
// Create a Landsat 8 Collection 2 Tier 1 image collection for the desired date range
var startDate = '2020-12-01';
var endDate = '2020-12-31';
var landsatCollection2 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
.filterBounds(point)
.filterDate(startDate, endDate);
// Cloud masking function for Landsat
function maskL8Clouds(image) {
var qa = image.select('QA_PIXEL');
var cloudMask = qa.bitwiseAnd(1 << 3).eq(0); // Cloud bit is 3rd
return image.updateMask(cloudMask);
}
// Apply the cloud mask to the collection
var cloudFreeCollection = landsatCollection2.map(maskL8Clouds);
// Print the number of images in the collection
var imageCount = cloudFreeCollection.size();
print('Number of cloud-free images in the collection:', imageCount);
// Compute the maximum temperature across all cloud-free images (Band 10 - thermal infrared)
var maxTemperature = cloudFreeCollection.select('B10').max();
// Compute the minimum temperature across all cloud-free images (Band 10 - thermal infrared)
var minTemperature = cloudFreeCollection.select('B10').min();
// Convert temperatures from Kelvin to Celsius
var maxTemperatureCelsius = maxTemperature.subtract(273.15);
var minTemperatureCelsius = minTemperature.subtract(273.15);
// Clip the max and min temperature images to the buffer region around the point
var clippedMaxTemperature = maxTemperatureCelsius.clip(pointBuffer);
var clippedMinTemperature = minTemperatureCelsius.clip(pointBuffer);
// Inspect the max and min temperature values (Celsius) within the buffer region
var maxTempStats = clippedMaxTemperature.reduceRegion({
reducer: ee.Reducer.max(),
geometry: pointBuffer,
scale: 30
});
var minTempStats = clippedMinTemperature.reduceRegion({
reducer: ee.Reducer.min(),
geometry: pointBuffer,
scale: 30
});
print('Maximum Temperature (Celsius):', maxTempStats);
print('Minimum Temperature (Celsius):', minTempStats);
// Display the specific point and the max/min temperature layers on the map
Map.centerObject(point, 10);
Map.addLayer(point, {color: 'red'}, 'Specific Point');
// Add the max temperature layer to the map
Map.addLayer(
clippedMaxTemperature,
{
min: 0, // Min temperature range (Celsius)
max: 50, // Max temperature range (Celsius)
palette: ['blue', 'lightblue', 'green', 'yellow', 'orange', 'red']
},
'Max Land Surface Temperature (Celsius)',
false,
0.75
);
// Add the min temperature layer to the map (can toggle display)
Map.addLayer(
clippedMinTemperature,
{
min: 0, // Min temperature range (Celsius)
max: 50, // Max temperature range (Celsius)
palette: ['blue', 'lightblue', 'green', 'yellow', 'orange', 'red']
},
'Min Land Surface Temperature (Celsius)',
false,
0.75
);
// Add a legend for the temperature range (Max and Min)
var legend = ui.Panel({
style: {
position: 'bottom-right',
padding: '8px 15px'
}
});
legend.add(ui.Label({
value: 'Land Surface Temperature (°C)',
style: {
fontWeight: 'bold',
fontSize: '14px',
margin: '0 0 4px 0',
padding: '0'
}
}));
// Define the color palette and corresponding temperature ranges (0-50°C)
var palette = ['blue', 'lightblue', 'green', 'yellow', 'orange', 'red'];
var tempRanges = ['0-8 °C', '9-16 °C', '17-24 °C', '25-32 °C', '33-40 °C', '41-50 °C'];
for (var i = 0; i < palette.length; i++) {
var colorBox = ui.Label({
style: {
backgroundColor: palette[i],
padding: '8px',
margin: '0 0 4px 0'
}
});
var description = ui.Label({
value: tempRanges[i],
style: {margin: '0 0 4px 6px'}
});
legend.add(
ui.Panel({
widgets: [colorBox, description],
layout: ui.Panel.Layout.Flow('horizontal')
})
);
}
Map.add(legend);



Comments