Timelapse movie from landsat 4, 5, 7 and 8
Step 1: Create a list containing all years
// define the period var years = ee.List.sequence(1988,2016,1);
Step 2: Create a list containing all years
// import collections var l4 = ee.ImageCollection("LANDSAT/LT04/C01/T1_SR"); var l5 = ee.ImageCollection("LANDSAT/LT05/C01/T1_SR"); var l7 = ee.ImageCollection("LANDSAT/LE07/C01/T1_SR"); var l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR");
Step 2: Create a list containing all years
// import collections var l4 = ee.ImageCollection("LANDSAT/LT04/C01/T1_SR"); var l5 = ee.ImageCollection("LANDSAT/LT05/C01/T1_SR"); var l7 = ee.ImageCollection("LANDSAT/LE07/C01/T1_SR"); var l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR");
Step 3: Set bandnames
// set bandnames for rgb var l4names = ee.List(["B1","B2","B3"]); var l5names = ee.List(["B1","B2","B3"]); var l7names = ee.List(["B1","B2","B3"]); var l8names = ee.List(["B2","B3","B4"]); // bands var bands = ee.List(['blue','green','red']);
Step 4: Set bandnames
// set bandnames for rgb var l4names = ee.List(["B1","B2","B3"]); var l5names = ee.List(["B1","B2","B3"]); var l7names = ee.List(["B1","B2","B3"]); var l8names = ee.List(["B2","B3","B4"]); // bands var bands = ee.List(['blue','green','red']);
Step 5: create a geometry
Step 6: Filter for cloudcover and geometry:
// Filter based on location var l4images = l4.filterBounds(geometry).filter(ee.Filter.lt("CLOUD_COVER",5)); var l5images = l5.filterBounds(geometry).filter(ee.Filter.lt("CLOUD_COVER",5)); var l7images = l7.filterBounds(geometry).filter(ee.Filter.lt("CLOUD_COVER",5)); var l8images = l8.filterBounds(geometry).filter(ee.Filter.lt("CLOUD_COVER",5));
Step 7: Scale bands and select rgb
function scale(image){ return image.multiply(0.0001).set("system:time_start",image.get("system:time_start")); } // Change the bandnames l4images = l4images.map(scale).select(l4names,bands); l5images = l5images.map(scale).select(l5names,bands); l7images = l7images.map(scale).select(l7names,bands); l8images = l8images.map(scale).select(l8names,bands);
Step 8: merge the collections into 1 collection
var collection = l4images.merge(l5images).merge(l7images).merge(l8images).sort("system:time_start"); print(collection);
Step 9: merge the collections into 1 collection
var collection = l4images.merge(l5images).merge(l7images).merge(l8images).sort("system:time_start"); print(collection);
Step 10: Create a 8-bit format and export the collections to video
// we need an 8-bit format var coll4Video = collection .map(function(image) { return image.multiply(512).uint8(); // need to make it 8-bit }); // export the video to the drive Export.video.toDrive({ collection: coll4Video.select(['red','green','blue']), description: "Colombo" , scale: 30, framesPerSecond: 4, region: geometry.bounds() });
https://code.earthengine.google.com/002bd80b4832fc12236fb1b71ed8048c
Hi, I recently came across this code. I modified it to make a time lapse animation for a different region by making a new geometry, then linking your code to this new geometry. However when I output the video it only looks black. Is there anything else I need to change to make this work?
LikeLike
edit: I figured it out. Oversight on my part renaming a variable. Thanks for this code, it works great!
LikeLike