Step 1: import sentinel 2 data using modules

It is generally a good practice to use a modular code structure.

To make a function or object available to other scripts, you add it to a special object called exports. To use the code in another script, use the require function to load the exports from another script:

1. Create a new repository:


2. Create a new script and save it asĀ importS2_module in your new repository with the script below.

var inBands = ee.List(['QA60','B1','B2','B3','B4','B5','B6','B7','B8','B8A','B9','B10','B11','B12']);
var outBands = ee.List(['QA60','cb','blue','green','red','re1','re2','re3','nir','re4','waterVapor','cirrus','swir1','swir2']);

var CloudCoverMax = 30;

exports.importData = function(studyArea,startDate,endDate,startJulian,endJulian) {

// Get Sentinel-2 data
var s2s = ee.ImageCollection('COPERNICUS/S2')

function scaleBands(img){
var prop = img.toDictionary()
var t =['B1','B2','B3','B4','B5','B6','B7','B8','B8A','B9','B10','B11','B12']).divide(10000);
t = t.addBands(['QA60'])).set(prop).copyProperties(img,['system:time_start','system:footprint'])
return ee.Image(t);

s2s =;
s2s =,outBands) ;

return s2s;


3. Create a new script called main and modify the code below to import your sentinel-2 data

// import required modules
var importS2 = require("users/username/landcoverS2:importS2_module");

// set variables
var vietnam = ee.FeatureCollection("users/servirmekong/countries/VNM_adm1");
var NgheAn = vietnam.filter(ee.Filter.eq("ID_1",41));
var region = NgheAn.geometry();

var startDate = "2017-01-01";
var endDate = "2018-01-01";

print("getting images");
var s2 = importS2.importData(region,startDate,endDate);
print("found ",s2.size(),"images");
Map.addLayer(ee.Image(s2.first()),{min:0,max:0.3,bands:"swir2,nir,red"},"first image");