Skip to content

Instantly share code, notes, and snippets.

@maximlamare
Created September 14, 2020 13:15
Show Gist options
  • Save maximlamare/cdb4feb07d912485f57e81ab60587537 to your computer and use it in GitHub Desktop.
Save maximlamare/cdb4feb07d912485f57e81ab60587537 to your computer and use it in GitHub Desktop.
Fetch and resample bands for eo-learn
// Evaluate pixels in the bands
function evaluatePixel(samples, scenes) {
// Initialise arrays
var valid_samples = {'B02':[], 'B03':[], 'B04':[], 'B08':[], 'B11':[], 'B12':[]};
var valid_dates = []
// Loop over samples.
for (var i = samples.length-1; i >= 0; i--){
if (is_valid(samples[i])) {
valid_dates.push(withoutTime(new Date(scenes[i].date)));
valid_samples['B02'].push(samples[i].B02);
valid_samples['B03'].push(samples[i].B03);
valid_samples['B04'].push(samples[i].B04);
valid_samples['B08'].push(samples[i].B08);
valid_samples['B11'].push(samples[i].B11);
valid_samples['B12'].push(samples[i].B12);
}
}
var [b02_interpolated, b02_dm] = lininterp(sampled_dates, valid_dates, valid_samples['B02'], 0);
var [b03_interpolated, b03_dm] = lininterp(sampled_dates, valid_dates, valid_samples['B03'], 0);
var [b04_interpolated, b04_dm] = lininterp(sampled_dates, valid_dates, valid_samples['B04'], 0);
var [b08_interpolated, b08_dm] = lininterp(sampled_dates, valid_dates, valid_samples['B08'], 0);
var [b11_interpolated, b11_dm] = lininterp(sampled_dates, valid_dates, valid_samples['B11'], 0);
var [b12_interpolated, b12_dm] = lininterp(sampled_dates, valid_dates, valid_samples['B12'], 0);
// Calculate indices and return optimised for UINT16 format (will need unpacking)
var ndvi = interpolated_index(b08_interpolated, b04_interpolated);
var ndwi = interpolated_index(b03_interpolated, b08_interpolated);
var ndbi = interpolated_index(b11_interpolated, b08_interpolated);
// Return all arrays
return {
B02: b02_interpolated,
B03: b03_interpolated,
B04: b04_interpolated,
B08: b08_interpolated,
B11: b11_interpolated,
B12: b12_interpolated,
NDVI: ndvi,
NDWI: ndwi,
NDBI: ndbi,
data_mask: b02_dm
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment