Working with temperature data in GEE

Is it getting hot in here? let’s check with the GEE!

The MODIS product mod11 contains a band with information on data surface temperature. Use the script below to check whether it really is getting hotter.

// Specify name of country.
var country_names = ['Vietnam'];
// get fusion table with countries
var countries = ee.FeatureCollection('ft:1tdSwUL7MVpOauSgRzqVTOwdfy17KDbw-1d9omPw');
// select the country from the fusion table
var vietnamCountry = countries.filter(ee.Filter.inList('Country', country_names)).geometry();

// set start date
var startdate = ee.Date.fromYMD(2000,1,1);
// set end date
var enddate = ee.Date.fromYMD(2016,12,31);

// filter the data collection
var temp =  mod11.filterDate(startdate, enddate)
.sort('system:time_start', false)
.filterBounds(vietnamCountry)
.select("LST_Day_1km")

// convert LST to celcius
var toCelsius = function(image){
var time = image.get('system:time_start')
var celsius = image.multiply(0.02) // scale factor
.subtract(273.15) // from kelvin to C
.rename("Celcius")
.set('system:time_start',time)
return celsius;
};

var CollectioninCelsius = temp.map(toCelsius)

var viz = {min:20.0, max:34, palette:"000b5e,96048f,4286f4,e2f442,960424"};
Map.addLayer(CollectioninCelsius.median().clip(vietnamCountry),viz,"temperature map")
Map.centerObject(vietnamCountry,5)

// Predefine the chart titles.
var title = {
title: 'Temperature over time',
hAxis: {title: 'Time'},
vAxis: {title: 'Temperature (C)'},
};

// create the chart
var tempchart = ui.Chart.image.seriesByRegion(CollectioninCelsius,
vietnamCountry,
ee.Reducer.mean(),
'Celcius',
1000,
'system:time_start',
'PROJECT').setOptions(title);

// print the chart
print(tempchart);

See the full example here.

11 comments

  1. I would like to know how to filter by specific date and time, in this case 10 am (Chile) and for modis LST 1KM images daily. I do not know how to put the time in a script.

    regards

    Like

Leave a reply to Nhut Huynh Cancel reply