Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to export an image collection in GEE? #19

Open
mfai123 opened this issue Apr 4, 2023 · 0 comments
Open

How to export an image collection in GEE? #19

mfai123 opened this issue Apr 4, 2023 · 0 comments

Comments

@mfai123
Copy link

mfai123 commented Apr 4, 2023

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'
}
);
`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant