Utility Functions¶
Utility functions for running CODED and dealing with outputs.
To load all the necessary functions for the running CODED, the changeDetection and dataUtils files must be laoded:
var dataUtils = require('users/bullocke/coded:coded/dataUtils')
var codedUtils = require('users/bullocke/coded:coded/changeDetection')
submitCODED¶
- Usage:
- submitCODED(saveRegion, params, trainingData)
- Description:
- Main function for running CODED.
- Arguments:
saveRegion (Feature Collection): Geographic region to run the analysis.
params (Dictionary): Dictionary defining CODED parameters.
trainingData (Feature Collection): Feature points containing training data with unique land cover labels identified in the ‘label’ attribute.
Example:
var results = codedUtils.submitCODED(saveRegion, params, trainingData)
makeImage¶
- Usage:
- makeImage(arrayImage, column, prefix, startYear, endYear)
- Description:
- Make a saveable image from the data array output that is retured by CODED.
- Arguments:
arrayImage (array): Output array image from CODED
column (int): column of multi-dimensional array image to turn into image.
prefix (string): Prefix to give to all bands in output image
startYear (int): First year in study period.
endYear (int): Last year in study period.
Example:
var disturbances = dataUtils.makeImage(results, 0, 'dist_', params.get('start'), params.get('end'))
reduceBands¶
- Usage:
- reduceBands(changeBands, params)
- Description:
- Reduce the number of output bands to just save information about the number of disturbances specified in the parameter file.
- Arguments:
changeBands (image): Images representing CODED output disturbances, magnitude, post-disturbance land cover, and change difference.
parameters (dictionary): CODED parameter dictionary.
Example:
var results = codedUtils.submitCODED(saveRegion, params, trainingData)
var disturbances = dataUtils.makeImage(results, 0, 'dist_', params.get('start'), params.get('end'))
var magnitude = dataUtils.makeImage(results, 1, 'mag_', params.get('start'), params.get('end'))
var postChange = dataUtils.makeImage(results, 2, 'post_', params.get('start'), params.get('end'))
var difference = dataUtils.makeImage(results, 3, 'dif_', params.get('start'), params.get('end'))
var changeBands = disturbances.addBands([magnitude, postChange, difference])
var save_output = ee.Image(dataUtils.reduceBands(changeBands, params))