Awesome-GEE icon indicating copy to clipboard operation
Awesome-GEE copied to clipboard

How to export an image collection in GEE?

Open mfai123 opened this issue 1 year ago • 0 comments

I am a new student and have been trying to export images from GEE. The following code generates Mean Surface Soil Moisture for each month over the course of 6 years, and I can export the data as a table. How can I generate the images and export the images?

`// SMAP(Soil Moisture Active Passive)soil moisture data

// Extract & Visualize Monthly Time Series Analysis of SMAP soil moisture and export to your Google Drive as a CSV file

// 1. Define countries boundary var Countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); var roi = Countries.filter(ee.Filter.eq('country_na', 'Afghanistan')); Map.addLayer(roi, {}, "roi"); Map.centerObject(roi);

// 2. List of years var years = ee.List.sequence(2016, 2021); var months = ee.List.sequence(1, 12);

// 3. Load SMAP Data var coll = ee.ImageCollection('NASA_USDA/HSL/SMAP10KM_soil_moisture').select('ssm'); print(coll.first());

// 4. Set visualization parameter var soilVis = { min: 0.0, max: 28.0, palette: ['0300ff', '418504', 'efff07', 'efff07', 'ff0303'], }; // 5. Center and add SMAP layer Map.centerObject(roi); // Zoom level ranges from 1 to 16 Map.addLayer(coll.mean().clip(roi), soilVis, 'Soil Moisture');

// 6. Summaries our SMAP (Soil Moisture Active Passive) soil moisture data by month and year var smap = coll.select('ssm') .map(function(img){ var d = ee.Date(ee.Number(img.get('system:time_start'))); var m = ee.Number(d.get('month')); var y = ee.Number(d.get('year')); return img.set({'month':m, 'year':y}); }); print(smap.first());

// 7. Function generate monthly soil moisture data for each year var byYearMonth = ee.ImageCollection.fromImages( years.map(function(y){ return months.map(function(m) { return smap.filterMetadata('year', 'equals', y) .filterMetadata('month', 'equals', m) .select('ssm').mean() .set('year', y) .set('month', m) .set('date', ee.Date.fromYMD(y,m,1)); }); }).flatten() ); print("monthlyCol", byYearMonth.first());

// 8. Zonal statistics to sumarries SMAP soil moisture to specific study area (eg Afghanistan) var smapAfghanistan = byYearMonth.map(function(img) { var features = roi.map(function(f) {return f.set('date', img.get('date'), 'month', img.get('month'), 'year', img.get('year'))}) var proj = ee.Image(byYearMonth.first()).projection(); return img.reduceRegions(features, ee.Reducer.mean(), 1000, proj); }).flatten(); print("SMAP Summary Mean", smapAfghanistan.limit(10));

// 9. Export the resulting mean soil moisture as a table to Google Drive var selectors = "year, month, country_na, mean"; Export.table.toDrive({ collection: smapAfghanistan, description: 'SMAP_Timeseries', folder: 'earth_engine_data', fileNamePrefix: 'SMAP_Timeseries', fileFormat: 'CSV', selectors: selectors });`

From this point, I am unsure how to export the images (are images even generated? Is it correct to call 'smapAfghanistan'?). I tried the following, but it did not work:

` var batch = require('users/fitoprincipe/geetools:batch');

// Set export folder (relative to Google Drive root folder) var output_folder = 'gee-export';

// Export collection image to Drive batch.Download.ImageCollection.toDrive( smapAfghanistan, output_folder, { name: 'name' scale: 30, maxPixels: 1e13, region: roi, type: 'int16' } ); `

mfai123 avatar Apr 04 '23 20:04 mfai123