-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy pathloadAllSF
56 lines (53 loc) · 114 KB
/
loadAllSF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
var libs={Export: {
loadIfExistElseExport: eval("(function(){var exports={};var inputs=[{name:'param',description:'minified',type:'object',optional:false}];var reference={name:'loadIfExistElseExport',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(inputDictionary.image){try{var im=ee.Image(data.assetId);ee.data.computeValue(im);return im;}\ncatch(e){Export.image.toAsset(data);return data.image;}}\nif(inputDictionary.collection){try{var ftC=ee.FeatureCollection(data.assetId);ee.data.computeValue(ftC);return ftC;}\ncatch(e){Export.table.toAsset(data);return data.collection;}}\nreturn null;}};return exports})()"), Image: {
toAsset: eval("(function(){var exports={};var inputs=[{name:\"image\",description:\"The image to export.\",type:'ee.Image',optional:false},{name:\"description\",description:'minified',type:'string',defaultValue:\" \",optional:false},{name:\"assetId\",description:\"The destination asset ID.\",type:'string',optional:true},{name:\"pyramidingPolicy\",description:'minified',type:'object',optional:true},{name:\"dimensions\",description:'minified',type:'number|string',optional:true},{name:\"region\",description:\"A LinearRing, Polygon, or coordinates representing region to export. These may be specified as the Geometry objects or coordinates serialized as a string. If not specified, the region defaults to the viewport at the time of invocation.\",type:'ee.Geometry',optional:true},{name:\"scale\",description:\"Resolution in meters per pixel. Defaults to 1000.\",type:'number',optional:true},{name:\"crs\",description:\"CRS to use for the exported image.\",type:'string|ee.String|ee.Projection',optional:true},{name:\"crsTransform\",description:'minified',type:'ee.List|string|ee.String',optional:true},{name:\"maxPixels\",description:\"Restrict the number of pixels in the export. By default, you will see an error if the export exceeds 1e8 pixels. Setting this value explicitly allows one to raise or lower this limit.\",type:'number',optional:true},{name:\"shardSize\",description:\"Size in pixels of the tiles in which this image will be computed. Defaults to 256.\",type:'number',optional:true},{name:\"autoExport\",description:\"Use autoExport\",type:'boolean',optional:true}\n]\nvar reference={name:'toAsset',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(!inputDictionary.autoExport){delete inputDictionary.autoExport;Export.image.toAsset(inputDictionary);return;}\nif(inputDictionary.crs){if(inputDictionary.crsTransform){inputDictionary.image=inputDictionary.image.setDefaultProjection(inputDictionary.crs,inputDictionary.crsTransform);}else{inputDictionary.image=inputDictionary.image.setDefaultProjection(inputDictionary.crs);}}\nif(inputDictionary.region){var scaleParam={geometry:inputDictionary.region};if(inputDictionary.dimensions){if(typeof(inputDictionary.dimensions)==string){var index=inputDictionary.dimensions.indexOf('x');scaleParam.width=parseInt(inputDictionary.dimensions.slice(0,index));scaleParam.height=parseInt(inputDictionary.dimensions.slice(index+1));}else{scaleParam.width=inputDictionary.dimensions[0];scaleParam.height=inputDictionary.dimensions[1];}}\nif(inputDictionary.scale){scaleParam.scale=inputDictionary.scale;}\ninputDictionary.image=inputDictionary.image.clipToBoundsAndScale(scaleParam);}\nvar assetExportOptionsConfig={earthEngineDestination:{name:\"myExportTask\"},pyramidingPolicy:\"MEAN\",pyramidingPolicyOverrides:{B2:\"MODE\"},tileSize:256}\nif(inputDictionary.pyramidingPolicy){if(inputDictionary.pyramidingPolicy[\".default\"]){assetExportOptionsConfig.pyramidingPolicy=inputDictionary.pyramidingPolicy[\".default\"]}\ndelete inputDictionary.pyramidingPolicy[\".default\"];assetExportOptionsConfig.pyramidingPolicyOverrides=inputDictionary.pyramidingPolicy;}\nif(inputDictionary.shardSize)assetExportOptionsConfig.tileSize=inputDictionary.shardSize;if(inputDictionary.assetId){assetExportOptionsConfig.earthEngineDestination.name=inputDictionary.assetId;}\nif(assetExportOptionsConfig.earthEngineDestination.name.match(/(users|projects)(\\/|[a-zA-Z0-9]|\\-|\\_)+/g)==null){assetExportOptionsConfig.earthEngineDestination.name=ee.data.getAssetRoots()[0].id+'/'+assetExportOptionsConfig.earthEngineDestination.name;}\nif(assetExportOptionsConfig.earthEngineDestination.name.match(/^projects\\/(.+)\\/assets\\/(.*$)/)==null){assetExportOptionsConfig.earthEngineDestination.name='projects/earthengine-legacy/assets/'+assetExportOptionsConfig.earthEngineDestination.name;}\nvar config={description:\"myExportImageTask\",expression:JSON.parse(inputDictionary.image.serialize()),assetExportOptions:assetExportOptionsConfig}\nif(inputDictionary.description){config.description=inputDictionary.description;}\nif(inputDictionary.maxPixels){config.maxPixels=inputDictionary.maxPixels;}\nif(inputDictionary.description){config.description=inputDictionary.description;}\ninternal.oeeex.export.image(config);}};return exports})()"),
toDrive: eval("(function(){var exports={};var inputs=[{name:\"image\",description:\"The image to export.\",type:'ee.Image',optional:false},{name:\"description\",description:'minified',type:'string',defaultValue:\" \",optional:false},{name:\"folder\",description:\"The Google Drive Folder that the export will reside in. Note: (a) if the folder name exists at any level, the output is written to it, (b) if duplicate folder names exist, output is written to the most recently modified folder, (c) if the folder name does not exist, a new folder will be created at the root, and (d) folder names with separators (e.g. 'path/to/file') are interpreted as literal strings, not system paths. Defaults to Drive root.\",type:'string',optional:true},{name:\"fileNamePrefix\",description:\"The filename prefix. May contain letters, numbers, -, _ (no spaces). Defaults to the description.\",type:'string',optional:true},{name:\"dimensions\",description:'minified',type:'number|string',optional:true},{name:\"region\",description:\"A LinearRing, Polygon, or coordinates representing region to export. These may be specified as the Geometry objects or coordinates serialized as a string. If not specified, the region defaults to the viewport at the time of invocation.\",type:'ee.Geometry',optional:true},{name:\"scale\",description:\"Resolution in meters per pixel. Defaults to 1000.\",type:'number',optional:true},{name:\"crs\",description:\"CRS to use for the exported image.\",type:'string|ee.String|ee.Projection',optional:true},{name:\"crsTransform\",description:'minified',type:'ee.List|string|ee.String',optional:true},{name:\"maxPixels\",description:\"Restrict the number of pixels in the export. By default, you will see an error if the export exceeds 1e8 pixels. Setting this value explicitly allows one to raise or lower this limit.\",type:'number',optional:true},{name:\"shardSize\",description:\"Size in pixels of the tiles in which this image will be computed. Defaults to 256.\",type:'number',optional:true},{name:\"fileDimensions\",description:\"The dimensions in pixels of each image file, if the image is too large to fit in a single file. May specify a single number to indicate a square shape, or an array of two dimensions to indicate (width,height). Note that the image will still be clipped to the overall image dimensions. Must be a multiple of shardSize.\",type:'number',optional:true},{name:\"skipEmptyTiles\",description:\"If true, skip writing empty (i.e. fully-masked) image tiles. Defaults to false.\",type:'boolean',optional:true},{name:\"fileFormat\",description:\"The string file format to which the image is exported. Currently only 'GeoTIFF' and 'TFRecord' are supported, defaults to 'GeoTIFF'.\",type:'string',optional:true,default:\"GeoTIFF\"},{name:\"formatOptions\",description:\"A dictionary of string keys to format specific options.\",type:'object',optional:true},{name:\"autoExport\",description:\"Use autoExport\",type:'boolean',optional:true}\n]\nvar reference={name:'toDrive',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(!inputDictionary.autoExport){delete inputDictionary.autoExport;Export.image.toDrive(inputDictionary);return;}\nif(inputDictionary.crs){if(inputDictionary.crsTransform){inputDictionary.image=inputDictionary.image.setDefaultProjection(inputDictionary.crs,inputDictionary.crsTransform);}else{inputDictionary.image=inputDictionary.image.setDefaultProjection(inputDictionary.crs);}}\nif(inputDictionary.region){var scaleParam={geometry:inputDictionary.region};if(inputDictionary.dimensions){if(typeof(inputDictionary.dimensions)==string){var index=inputDictionary.dimensions.indexOf('x');scaleParam.width=parseInt(inputDictionary.dimensions.slice(0,index));scaleParam.height=parseInt(inputDictionary.dimensions.slice(index+1));}else{scaleParam.width=inputDictionary.dimensions[0];scaleParam.height=inputDictionary.dimensions[1];}}\nif(inputDictionary.scale){scaleParam.scale=inputDictionary.scale;}\ninputDictionary.image=inputDictionary.image.clipToBoundsAndScale(scaleParam);}\nvar fileExportOptionsConfig={driveDestination:{filenamePrefix:\"computationDrive\",folder:\"\"},fileFormat:\"GEO_TIFF\",geoTiffOptions:{}};if(inputDictionary.formatOptions)fileExportOptionsConfig.geoTiffOptions=inputDictionary.formatOptions;if(inputDictionary.folder)fileExportOptionsConfig.driveDestination.folder=inputDictionary.folder;if(inputDictionary.fileNamePrefix)fileExportOptionsConfig.driveDestination.filenamePrefix=inputDictionary.fileNamePrefix;if(inputDictionary.fileFormat){fileExportOptionsConfig.fileFormat=inputDictionary.fileFormat;if(fileExportOptionsConfig.fileFormat=='GeoTIFF'){fileExportOptionsConfig.fileFormat=\"GEO_TIFF\";fileExportOptionsConfig.geoTiffOptions={cloudOptimized:false,skipEmptyFiles:false,tileSize:256}}}\nif(inputDictionary.cloudOptimized)fileExportOptionsConfig.geoTiffOptions.cloudOptimized=inputDictionary.cloudOptimized;if(inputDictionary.skipEmptyFiles)fileExportOptionsConfig.geoTiffOptions.skipEmptyFiles=inputDictionary.skipEmptyFiles;if(inputDictionary.fileDimensions){fileExportOptionsConfig.geoTiffOptions.tileDimensions={width:inputDictionary.fileDimensions,height:inputDictionary.fileDimensions};}\nif(inputDictionary.shardSize)fileExportOptionsConfig.geoTiffOptions.tileSize=inputDictionary.shardSize;var config={description:\"myExportImageTask\",expression:JSON.parse(inputDictionary.image.serialize()),fileExportOptions:fileExportOptionsConfig}\nif(inputDictionary.description){config.description=inputDictionary.description;}\nif(inputDictionary.maxPixels){config.maxPixels=inputDictionary.maxPixels;}\nif(inputDictionary.description){config.description=inputDictionary.description;}\ninternal.oeeex.export.image(config);}};return exports})()")}, ImageCollection: {
create: eval("(function(){var exports={};var inputs=[{name:\"path\",description:\"Path to teh collection to create\",type:'string',optional:false},{name:\"noError\",description:'minified',type:'boolean',defaultValue:true,optional:false},]\nvar reference={name:'create',license:'MIT',description:'minified'};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var createCollection=function(path){if(path.match(/(users|projects)(\\/|[a-zA-Z0-9]|\\-|\\_)+/g)===null){path=ee.data.getAssetRoots()[0].id+'/'+path;}\ninternal.oeeex.sendMessage('createCollection:'+path);}\nif(inputDictionary.noError){try{createCollection(inputDictionary.path)}\ncatch(e){}}else{createCollection(inputDictionary.path)}}};return exports})()"),
asImageToAsset: eval("(function(){var exports={};var inputs=[{name:\"imageCollection\",description:\"The imageCollection to export as single ee.Image.\",type:'ee.ImageCollection',optional:false},{name:\"assetId\",description:\"The destination asset ID.\",type:'string|ee.String',optional:false},{name:\"description\",description:'minified',type:'string|ee.String',defaultValue:\"myExportImageTask\",optional:true},{name:\"pyramidingPolicy\",description:'minified',type:'Object',optional:true},{name:\"dimensions\",description:'minified',type:'number|string',optional:true},{name:\"region\",description:\"A LinearRing, Polygon, or coordinates representing region to export. These may be specified as the Geometry objects or coordinates serialized as a string. If not specified, the region defaults to the viewport at the time of invocation.\",type:'ee.Geometry',optional:true},{name:\"scale\",description:\"Resolution in meters per pixel. Defaults to 1000.\",type:'number',optional:true},{name:\"crs\",description:\"CRS to use for the exported image.\",type:'string|ee.String',optional:true},{name:\"crsTransform\",description:'minified',type:'ee.List|string|ee.String',optional:true},{name:\"maxPixels\",description:\"Restrict the number of pixels in the export. By default, you will see an error if the export exceeds 1e8 pixels. Setting this value explicitly allows one to raise or lower this limit.\",type:'number',optional:true}]\nvar reference={name:'asImageToAsset',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var col=inputDictionary.imageCollection;var condensate=col.toBands().set('orginalBands',col.first().bandNames());inputDictionary.image=condensate.regexpRename('^(.*)','im_$1');delete inputDictionary.imageCollection;Export.image.toAsset(inputDictionary)}};return exports})()"),
toAsset: eval("(function(){var exports={};var inputs=[{name:\"imageCollection\",description:\"The imageCollection to export.\",type:'ee.ImageCollection',optional:false},{name:\"nameProperty\",description:'minified',type:'string|ee.String',defaultValue:'system:index',optional:false},{name:\"description\",description:'minified',type:'string',defaultValue:\" \",optional:false},{name:\"assetId\",description:\"The destination asset ID of teh collection.\",type:'string',optional:false},{name:\"pyramidingPolicy\",description:'minified',type:'Object',optional:true},{name:\"dimensions\",description:'minified',type:'number|string',optional:true},{name:\"region\",description:\"A LinearRing, Polygon, or coordinates representing region to export. These may be specified as the Geometry objects or coordinates serialized as a string. If not specified, the region defaults to the viewport at the time of invocation.\",type:'ee.Geometry',optional:true},{name:\"scale\",description:\"Resolution in meters per pixel. Defaults to 1000.\",type:'number',optional:true},{name:\"crs\",description:\"CRS to use for the exported image.\",type:'string|ee.String|ee.Projection',optional:true},{name:\"crsTransform\",description:'minified',type:'ee.List|string|ee.String',optional:true},{name:\"maxPixels\",description:\"Restrict the number of pixels in the export. By default, you will see an error if the export exceeds 1e8 pixels. Setting this value explicitly allows one to raise or lower this limit.\",type:'number',optional:true},{name:\"autoExport\",description:\"Use autoExport\",type:'boolean',optional:true},{name:\"usePrefix\",description:\"To NOT use an nameProperty but the following prefixwith the export index\",type:'string',optional:true}\n]\nvar reference={name:'toAsset',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var col=inputDictionary.imageCollection;var nameProperty=inputDictionary.nameProperty;var assetId=inputDictionary.assetId;var prefix=inputDictionary.description;var usePrefix=inputDictionary.usePrefix;delete inputDictionary.nameProperty;delete inputDictionary.imageCollection;delete inputDictionary.assetId;delete inputDictionary.usePrefix;if(assetId.match(/(users|projects)(\\/|[a-zA-Z0-9]|\\-|\\_)+/g)===null){assetId=ee.data.getAssetRoots()[0].id+'/'+assetId;}\nif(inputDictionary.autoExport){oeel.Export.ImageCollection.create(assetId)}\ncol.aggregate_array(nameProperty).evaluate(function(nameList){var listImage=col.toList(nameList.length);for(var i=0;i<nameList.length;i++){var exportDic=inputDictionary;var im=ee.Image(listImage.get(i));var name=nameList[i];if(usePrefix){name=usePrefix+i;}\nexportDic.image=im;exportDic.assetId=assetId+'/'+name;exportDic.description=prefix+'_'+name;oeel.Export.Image.toAsset(exportDic);}});}};return exports})()"),
toDrive: eval("(function(){var exports={};var inputs=[{name:\"imageCollection\",description:\"The imageCollection to export.\",type:'ee.ImageCollection',optional:false},{name:\"nameProperty\",description:'minified',type:'string|ee.String',defaultValue:'system:index',optional:false},{name:\"description\",description:'minified',type:'string',defaultValue:\" \",optional:false},{name:\"folder\",description:\"The Google Drive Folder that the export will reside in. Note: (a) if the folder name exists at any level, the output is written to it, (b) if duplicate folder names exist, output is written to the most recently modified folder, (c) if the folder name does not exist, a new folder will be created at the root, and (d) folder names with separators (e.g. 'path/to/file') are interpreted as literal strings, not system paths. Defaults to Drive root.\",type:'string',optional:true},{name:\"dimensions\",description:'minified',type:'number|string',optional:true},{name:\"region\",description:\"A LinearRing, Polygon, or coordinates representing region to export. These may be specified as the Geometry objects or coordinates serialized as a string. If not specified, the region defaults to the viewport at the time of invocation.\",type:'ee.Geometry',optional:true},{name:\"scale\",description:\"Resolution in meters per pixel. Defaults to 1000.\",type:'number',optional:true},{name:\"crs\",description:\"CRS to use for the exported image.\",type:'string|ee.String|ee.Projection',optional:true},{name:\"crsTransform\",description:'minified',type:'ee.List|string|ee.String',optional:true},{name:\"maxPixels\",description:\"Restrict the number of pixels in the export. By default, you will see an error if the export exceeds 1e8 pixels. Setting this value explicitly allows one to raise or lower this limit.\",type:'number',optional:true},{name:\"shardSize\",description:\"Size in pixels of the tiles in which this image will be computed. Defaults to 256.\",type:'number',optional:true},{name:\"fileDimensions\",description:\"The dimensions in pixels of each image file, if the image is too large to fit in a single file. May specify a single number to indicate a square shape, or an array of two dimensions to indicate (width,height). Note that the image will still be clipped to the overall image dimensions. Must be a multiple of shardSize.\",type:'number',optional:true},{name:\"skipEmptyTiles\",description:\"If true, skip writing empty (i.e. fully-masked) image tiles. Defaults to false.\",type:'boolean',optional:true},{name:\"fileFormat\",description:\"The string file format to which the image is exported. Currently only 'GeoTIFF' and 'TFRecord' are supported, defaults to 'GeoTIFF'.\",type:'string',optional:true,default:\"GeoTIFF\"},{name:\"formatOptions\",description:\"A dictionary of string keys to format specific options.\",type:'object',optional:true},{name:\"autoExport\",description:\"Use autoExport\",type:'boolean',optional:true},{name:\"usePrefix\",description:\"To NOT use an nameProperty but the following prefixwith the export index\",type:'string',optional:true}\n]\nvar reference={name:'toDrive',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var col=inputDictionary.imageCollection;var nameProperty=inputDictionary.nameProperty;var assetId=inputDictionary.assetId;var prefix=inputDictionary.description;var usePrefix=inputDictionary.usePrefix;delete inputDictionary.nameProperty;delete inputDictionary.imageCollection;delete inputDictionary.assetId;delete inputDictionary.usePrefix;col.aggregate_array(nameProperty).evaluate(function(nameList){var listImage=col.toList(nameList.length);for(var i=0;i<nameList.length;i++){var exportDic=inputDictionary;var im=ee.Image(listImage.get(i));var name=nameList[i];if(usePrefix){name=usePrefix+i;}\nexportDic.image=im;exportDic.fileNamePrefix=\"\"+name;exportDic.description=\"\"+name;oeel.Export.Image.toDrive(exportDic);}});}};return exports})()")}}, Map: {
symbol: eval("(function(){var exports={};var inputs=[{name:'symbol',description:'minified',type:'string',optional:false},{name:'mode',description:'minified',type:'string',defaultValue:'widget',optional:false},{name:'scale',description:'minified',type:'number',defaultValue:1,optional:false},{name:'colorFont',description:'minified',type:'string',defaultValue:'black',optional:false},{name:'colorSymbol1',description:'minified',type:'string',defaultValue:'black',optional:false},{name:'colorSymbol2',description:'minified',type:'string',defaultValue:'white',optional:false},{name:'widgetScale',description:'minified',type:'number',defaultValue:1,optional:false},{name:'point',description:'minified',type:'ee.Geometry',optional:true},{name:'Return',description:'minified',type:'ee.Image|object',optional:false}]\nvar reference={name:'symbol',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var geom=inputDictionary.point;if(inputDictionary.mode.toLowerCase()=='widget'){geom=ee.Geometry.Point([0,0]);}\nif(inputDictionary.symbol.toLowerCase()=='compass'){var col=ee.FeatureCollection([ee.Feature(geom,{char:'C',style:{color:'00000000',fillColor:inputDictionary.colorSymbol1}}),ee.Feature(geom,{char:'c',style:{color:'00000000',fillColor:inputDictionary.colorSymbol2}})]);var names=ee.FeatureCollection([ee.Feature(geom,{char:'N',style:{color:'00000000',fillColor:inputDictionary.colorFont},shift:[0,120000*inputDictionary.scale]}),ee.Feature(geom,{char:'E',style:{color:'00000000',fillColor:inputDictionary.colorFont},shift:[120000*inputDictionary.scale,0]}),ee.Feature(geom,{char:'S',style:{color:'00000000',fillColor:inputDictionary.colorFont},shift:[0,-120000*inputDictionary.scale]}),ee.Feature(geom,{char:'W',style:{color:'00000000',fillColor:inputDictionary.colorFont},shift:[-120000*inputDictionary.scale,0]})]);var arrow=col.map(oeel.Feature.asLabel({font:\"users/OEEL/Fonts/Symbol\",textProperty:'char',position:'bottom-left',fontSize:100*inputDictionary.scale}))\nvar names=names.map(oeel.Feature.asLabel({textProperty:'char',position:'center-center',fontSize:30*inputDictionary.scale,shiftBProperty:'shift'}))\nvar widgetSize=(inputDictionary.widgetScale*100)+\"x\"+(inputDictionary.widgetScale*100);var region=ee.Geometry.Rectangle([-1.4*inputDictionary.scale,-1.4*inputDictionary.scale,1.2*inputDictionary.scale,1.2*inputDictionary.scale]);}\nif(inputDictionary.symbol.toLowerCase()=='arrow'){var col=ee.FeatureCollection([ee.Feature(geom,{char:'A',style:{color:'00000000',fillColor:inputDictionary.colorSymbol1}}),ee.Feature(geom,{char:'a',style:{color:'00000000',fillColor:inputDictionary.colorSymbol2}})]);var names=ee.FeatureCollection([ee.Feature(geom,{char:'N',style:{color:'00000000',fillColor:inputDictionary.colorFont},shift:[0,-90000*inputDictionary.scale]})]);var arrow=col.map(oeel.Feature.asLabel({font:\"users/OEEL/Fonts/Symbol\",textProperty:'char',position:'bottom-left',fontSize:150*inputDictionary.scale}))\nvar names=names.map(oeel.Feature.asLabel({textProperty:'char',position:'center-center',fontSize:50*inputDictionary.scale,shiftBProperty:'shift'}))\nvar widgetSize=(inputDictionary.widgetScale*40)+\"x\"+(inputDictionary.widgetScale*100);var region=ee.Geometry.Rectangle([-0.5*inputDictionary.scale,-1.4*inputDictionary.scale,0.5*inputDictionary.scale,1.2*inputDictionary.scale]);}\nvar image=arrow.merge(names).style({styleProperty:'style'});if(inputDictionary.mode.toLowerCase()=='widget'){return ui.Thumbnail({image:image,params:{dimensions:widgetSize,region:region},style:{backgroundColor:'#0000',whiteSpace:\"nowrap\"}})}\nreturn image;}};return exports})()"),
scaleWidget: eval("(function(){var exports={};var inputs=[{name:'Map',description:'minified',type:'object',optional:true},{name:'size',description:'minified',type:'integer',defaultValue:3,optional:false},{name:'color1',description:'minified',type:'string',defaultValue:'black',optional:false},{name:'color2',description:'minified',type:'string',defaultValue:'white',optional:false},{name:'scale',description:'minified',type:'integer',defaultValue:11,optional:false},{name:'position',description:'minified',type:'string',defaultValue:'bottom-right',optional:false},{name:'Return',description:'minified',type:'object',defaultValue:null,optional:true}]\nvar reference={name:'scaleWidget',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var localMap=inputDictionary.Map;if(!localMap){localMap=Map;}\nvar unitLabel=ui.Label('m',{backgroundColor:\"0000\",color:inputDictionary.color1,position:'middle-right',padding:'0px',margin:'0px 5px 0px 5px',textAlign:'right',fontSize:inputDictionary.scale+'px'});var listBox=[];var listLabel=[];for(var i=0;i<inputDictionary.size;i++){var localList=[ui.Label(\"\",{backgroundColor:\"0000\",color:(i%2?inputDictionary.color1:inputDictionary.color2),position:'middle-right',padding:'0px',width:\"100px\",margin:'0px -60px 0px 0px',textAlign:'center',fontSize:inputDictionary.scale+'px'}),ui.Label(\"\",{backgroundColor:\"0000\",color:(i%2?inputDictionary.color1:inputDictionary.color2),position:'middle-left',padding:'0px',width:\"100px\",margin:'0px 0px 0px -60px',textAlign:'center',fontSize:inputDictionary.scale+'px'})]\nif(i==inputDictionary.size-1){localList[0].style().set({textAlign:'right',margin:'0px -8px 0px 0px'})}\nif(i==0){localList[1].style().set({textAlign:'left',margin:'0px 0px 0px -8px'})}\nlistLabel.push(localList);listBox.push(ui.Panel(localList,ui.Panel.Layout.absolute(),{backgroundColor:(i%2?inputDictionary.color2:inputDictionary.color1),width:'100px',height:(inputDictionary.scale+2)+'px',padding:'0px',margin:'0px'}))}\nfunction addjustSclale(){var possibleSize=[.1,.2,.5,1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000,100000,200000,500000,1000000,2000000,5000000]\nvar index=0;var latScale=Math.cos(localMap.getBounds()[(inputDictionary.position.split('-')[0]=='top'?3:1)]*Math.PI/180);for(index=0;index<possibleSize.length;index++){if(possibleSize[index]/latScale/localMap.getScale()>(inputDictionary.scale*4)){break;}}\nvar sizeBox=possibleSize[index];var boxSize=Math.round(sizeBox/latScale/localMap.getScale())+'px';var unit='m';if(sizeBox>1000){sizeBox/=1000;unit='km';}\nunitLabel.setValue(unit)\nfor(var i=0;i<listBox.length;i++){listBox[i].style().set({width:boxSize});listLabel[i][0].setValue((i+1)*sizeBox);listLabel[i][1].setValue((i)*sizeBox);}}\naddjustSclale();localMap.onChangeZoom(addjustSclale)\nlocalMap.onChangeBounds(addjustSclale)\nreturn ui.Panel([unitLabel].concat(listBox),ui.Panel.Layout.flow('horizontal'),{backgroundColor:\"0000\",padding:'0px',margin:'0px',position:inputDictionary.position});}};return exports})()"),
mapshot: eval("(function(){var exports={};var inputs=[{name:'Map',description:'minified',type:'object',optional:true},{name:'scalingFactor',description:'minified',type:'number',optional:true},{name:'mode',description:'minified',type:'string',optional:true},{name:'geometry',description:'minified',type:'ee.Geometry',optional:true},{name:'name',description:'minified',type:'string',optional:true},{name:'northSymbol',description:'minified',type:'string',optional:true},{name:'displayScale',description:'minified',type:'string',optional:true},{name:'Return',description:'minified',type:'object|ee.Image|string',defaultValue:null,optional:true}]\nvar reference={name:'mapshot',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var localMap=inputDictionary.Map;if(!localMap){localMap=Map;}\nvar mode=inputDictionary.mode\nif(!mode){mode='widget';}\nvar scalingFactor=inputDictionary.scalingFactor;if(!scalingFactor){scalingFactor=1;}\nvar exportName=inputDictionary.name\nif(!exportName){exportName=\"Mapshot\"}\nvar geometryJSON=ee.Geometry(localMap.getBounds(true))\nif(inputDictionary.geometry){geometryJSON=inputDictionary.geometry}\nvar geo=geometryJSON.transform('EPSG:3857',10).coordinates().get(0).getInfo();;var geometry=[geo[0][0],geo[0][1],geo[1][0],geo[2][1]];var factor=Map.getScale()/scalingFactor;var dim=Math.round((geometry[2]-geometry[0])/factor)+'x'+Math.round((geometry[3]-geometry[1])/factor);var layers=localMap.layers()\nvar imCol=ee.ImageCollection(layers.map(function(layer){return layer.getEeObject().visualize(layer.getVisParams()).set(\"shown\",layer.getShown(),\"name\",layer.getName(),\"opacity\",layer.getOpacity())})).filter(ee.Filter.equals(\"shown\",true));if(inputDictionary.northSymbol){var symboleKey=inputDictionary.northSymbol.toLowerCase().split('-');var height=geometry[3]-geometry[1];var width=geometry[2]-geometry[0];var symboleWidthScale=(symboleKey[0]=='arrow'?40:100)\nimCol=imCol.merge(ee.ImageCollection([oeel.Map.symbol({symbol:symboleKey[0],mode:'image',scale:Map.getScale()/2000,point:ee.Geometry(ee.Geometry.Point([(symboleKey[2]=='left'?geometry[0]+Map.getScale()*symboleWidthScale:geometry[2]-Map.getScale()*symboleWidthScale),(symboleKey[1]=='bottom'?geometry[1]+Map.getScale()*100:geometry[3]-Map.getScale()*100)],'EPSG:3857').getInfo())}).set('shown',true,'opacity',1)]))}\nif(inputDictionary.displayScale){var symboleKey=inputDictionary.displayScale.toLowerCase().split('-');var height=geometry[3]-geometry[1];var width=geometry[2]-geometry[0];switch(symboleKey[1]){case'left':var x=geometry[0]+Map.getScale()*10;var scaleDir='right';break;case'center':case'centered':var x=(geometry[2]+geometry[0])/2;var scaleDir='center';break;default:var x=geometry[2]-Map.getScale()*10;var scaleDir='left';}\nvar PointScale=ee.Geometry(ee.Geometry.Point([x,(symboleKey[0]=='bottom'?geometry[1]+Map.getScale()*20:geometry[3]-Map.getScale()*20)],'EPSG:3857').transform('EPSG:4326',1).getInfo())\nimCol=imCol.merge(ee.ImageCollection([oeel.Map.scaleLayer({mapScale:Map.getScale(),point:PointScale,size:3,color1:(symboleKey[2]=='reversecolor'?\"white\":\"black\"),color2:(symboleKey[2]=='reversecolor'?\"black\":\"white\"),scale:15,direction:scaleDir}).set('shown',true,'opacity',1)]))}\nimCol=imCol.map(function(layerImage){var im=ee.Image(ee.Algorithms.If({condition:layerImage.bandNames().size().eq(1),trueCase:ee.Image.rgb(layerImage,layerImage,layerImage),falseCase:layerImage,}))\nreturn im.updateMask(im.mask().multiply(layerImage.getNumber(\"opacity\")));})\nvar im=imCol.mosaic();switch(mode.toLowerCase()){case'ee.image':case'image':return im;case'link':case'url':return im.reproject('EPSG:3857',null,localMap.getScale()/scalingFactor).getDownloadURL({region:geometryJSON,format:'png',dimensions:dim});;case'export':case'exportdrive':Export.image.toDrive({image:im,description:exportName,fileNamePrefix:exportName,dimensions:dim,region:geometryJSON});break;case'widget':default:return ui.Thumbnail(im.reproject('EPSG:3857',null,localMap.getScale()/scalingFactor),{region:geometryJSON,format:'png',dimensions:dim});}}};return exports})()"),
scaleLayer: eval("(function(){var exports={};var inputs=[{name:'mapScale',description:'minified',type:'number|ee.Number',optional:false},{name:'point',description:'minified',type:'ee.Geometry',optional:false},{name:'size',description:'minified',type:'integer',defaultValue:3,optional:false},{name:'color1',description:'minified',type:'string',defaultValue:'black',optional:false},{name:'color2',description:'minified',type:'string',defaultValue:'white',optional:false},{name:'scale',description:'minified',type:'integer',defaultValue:15,optional:false},{name:'direction',description:'minified',type:'string',defaultValue:'left',optional:false},{name:'Return',description:'minified',type:'object',defaultValue:null,optional:true}]\nvar reference={name:'scaleLayer',license:'MIT',description:'minified',experimental:true,contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var direction=ee.String(inputDictionary.direction).toLowerCase();var possibleSize=[.1,.2,.5,1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000,100000,200000,500000,1000000,2000000,5000000,0];var index=0;var latScale=inputDictionary.point.coordinates().getNumber(1).multiply(Math.PI/180).cos();possibleSize=ee.List(possibleSize).reverse()\nvar sizeBox=possibleSize.getNumber(possibleSize.map(function(val){val=ee.Number(val);return val.divide(latScale).divide(inputDictionary.mapScale).gt(ee.Number(inputDictionary.scale).multiply(4));}).reduce(ee.Reducer.sum()))\nvar height=sizeBox.divide(latScale).divide(4);var toText=oeel.Feature.asLabel({textProperty:'string',positionProperty:'textPosition',fontSize:height.divide(2500)});var units=ee.Algorithms.If({condition:sizeBox.gt(1000),trueCase:ee.String('km '),falseCase:ee.String('m ')})\nvar sizeBoxText=ee.Number(ee.Algorithms.If({condition:sizeBox.gte(1000),trueCase:sizeBox.divide(1000),falseCase:sizeBox}));sizeBox=sizeBox.divide(latScale);var listBox=[];var listLabel=[];var y=inputDictionary.point.transform('EPSG:3857',1).coordinates().getNumber(1);var x=inputDictionary.point.transform('EPSG:3857',1).coordinates().getNumber(0);var startx=x.add(ee.Number(inputDictionary.size).multiply(sizeBox).add(height.multiply(1.3)).multiply(ee.Algorithms.If(direction.equals('left'),-1,ee.Algorithms.If(direction.equals('center'),-0.5,0))))\nstartx=startx.add(height.multiply(1.3));var unitLabel=ee.FeatureCollection([toText(ee.Feature(ee.Geometry.Point([startx,y],'EPSG:3857'),{string:units,textPosition:'center-right',style:{color:'00000000',fillColor:inputDictionary.color1}}))]).style({styleProperty:'style'});listBox=ee.FeatureCollection(ee.List.sequence({start:0,end:ee.Number(inputDictionary.size).subtract(1),step:1}).map(function(i){i=ee.Number(i);return ee.Feature(ee.Geometry.Rectangle([startx.add(sizeBox.multiply(i)),y.subtract(height.divide(2)),startx.add(sizeBox.multiply(i.add(1))),y.add(height.divide(2))],'EPSG:3857',false),{position:i,style:{color:'00000000',fillColor:ee.Algorithms.If({condition:i.mod(2),trueCase:inputDictionary.color2,falseCase:inputDictionary.color1})}});}))\nvar labels=ee.ImageCollection(ee.List.sequence({start:0,end:ee.Number(inputDictionary.size).subtract(1),step:1}).map(function(i){i=ee.Number(i);return ee.FeatureCollection([toText(ee.Feature(ee.Geometry.Point([startx.add(sizeBox.multiply(i)),y],'EPSG:3857'),{string:sizeBoxText.multiply(i).format(\"%.0f\"),textPosition:ee.Algorithms.If({condition:i.eq(0),trueCase:'center-left',falseCase:'center-center'}),position:i,style:{color:'00000000',fillColor:ee.Algorithms.If({condition:i.mod(2),trueCase:inputDictionary.color1,falseCase:inputDictionary.color2})}})),toText(ee.Feature(ee.Geometry.Point([startx.add(sizeBox.multiply(i.add(1))),y],'EPSG:3857'),{string:sizeBoxText.multiply(i.add(1)).format(\"%.0f\"),textPosition:ee.Algorithms.If({condition:i.eq(ee.Number(inputDictionary.size).subtract(1)),trueCase:'center-right',falseCase:'center-center'}),position:i,style:{color:'00000000',fillColor:ee.Algorithms.If({condition:i.mod(2),trueCase:inputDictionary.color1,falseCase:inputDictionary.color2})}}))]).style({styleProperty:'style'}).set({position:i})}))\nlabels=labels.map(function(im){return im.clip(listBox.filter(ee.Filter.eq('position',im.get('position'))).first())});return ee.ImageCollection([unitLabel,listBox.style({styleProperty:'style'})]).merge(labels).mosaic();}};return exports})()")}, data: {
deleteImageCollection: eval("(function(){var exports={};var inputs=[{name:\"imageCollectionAssetID\",description:\"The imageCollection to delete\",type:'string',optional:false},{name:\"keepEmptyCollection\",description:\"Keep the empty collection\",type:'boolean',defaultValue:false,optional:false},{name:\"pageSize\",description:\"Maximum number of elements\",type:'integer',defaultValue:10,optional:false}]\nvar reference={name:'deleteImageCollection',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var assetId=inputDictionary.imageCollectionAssetID;print('GEE_Addon_confirmManager:removeConfirmOn:ee.data.deleteAsset');if(/^users\\//.test(assetId)||/^projects\\//.test(assetId))\n{}\nelse{assetId=ee.data.getAssetRoots()[0].id+'/'+assetId;}\nee.data.listImages('projects/earthengine-legacy/assets/'+assetId,{pageSize:inputDictionary.pageSize},function(listImages)\n{if(listImages.images){for(var i=0;i<listImages.images.length;i++){ee.data.deleteAsset(listImages.images[i].id);}}\nif(!inputDictionary.keepEmptyCollection){ee.data.deleteAsset(assetId,function(){});}\nprint('GEE_Addon_confirmManager:resetConfirmOn:ee.data.deleteAsset');});}};return exports})()")}, Array: {
dtwDistance: eval("(function(){var exports={};var inputs=[{name:'X',description:'minified',type:'ee.Array|ee.List',defaultValue:null,optional:false},{name:'Y',description:'minified',type:'ee.Array|ee.List',defaultValue:null,optional:false},{name:'Return',description:'minified',type:'number',defaultValue:null,optional:true}]\nvar reference={name:'dtwDistance',license:'LGPL-3.0-or-later',description:'minified',contributors:['Mathieu Gravey','Agathe Archidoit']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var A=ee.Array(inputDictionary.X);var B=ee.Array(inputDictionary.Y);var n=ee.Number(A.length().get([0]));var m=ee.Number(B.length().get([0]));var infinityValue=ee.Number(1e10);var arrayA=A.reshape([1,n]);var arrayB=B.reshape([1,m]);var matrixA=arrayA.repeat(0,m);var matrixB=arrayB.repeat(0,n).transpose();var distance=matrixA.subtract(matrixB).abs();var e=distance.multiply(0).pad([m.add(1),n.add(1)],infinityValue);e=e.subtract(oeel.Array.matrixUnit({n:m.add(1),m:n.add(1),i:m,j:n}).multiply(infinityValue));function one_step(_,e){e=ee.Array(e);return ee.Array.cat([e.slice(0,1,null).slice(1,0,-1),e.slice(0,1,null).slice(1,1,null),e.slice(0,0,-1).slice(1,1,null)],2).reduce(ee.Reducer.min(),[2]).add(distance).pad([m.add(1),n.add(1),0],infinityValue).subtract(oeel.Array.matrixUnit({n:m.add(1),m:n.add(1),i:m,j:n}).reshape([m.add(1),n.add(1),1]).multiply(infinityValue));}\ndistance=distance.reshape([m,n,1]);var dtwMatrix=ee.List.sequence(1,m.add(n)).iterate(one_step,e);return ee.Array(dtwMatrix).get([0,0,0]);}};return exports})()"),
matrixUnit: eval("(function(){var exports={};var inputs=[{name:'n',description:'minified',type:'number|ee.Number',optional:false},{name:'m',description:'minified',type:'number|ee.Number',optional:false},{name:'i',description:'minified',type:'number|ee.Number',optional:false},{name:'j',description:'minified',type:'number|ee.Number',optional:false},{name:'Return',description:'minified',type:'ee.Array',defaultValue:null,optional:false}]\nvar reference={name:'matrixUnit',license:'MIT',description:'minified',contributors:['Agathe Archidoit','Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);inputDictionary.n=ee.Number(inputDictionary.n);inputDictionary.m=ee.Number(inputDictionary.m);inputDictionary.i=ee.Number(inputDictionary.i);inputDictionary.j=ee.Number(inputDictionary.j);var nArray=ee.Array([[0]]).repeat(1,inputDictionary.n);var mArray=ee.Array([[0]]).repeat(1,inputDictionary.m);var M=nArray.multiply(0).add(1).accum(1,ee.Reducer.sum()).eq(inputDictionary.i.add(1)).transpose().matrixMultiply(mArray.multiply(0).add(1).accum(1,ee.Reducer.sum()).eq(inputDictionary.j.add(1)));return M;}};return exports})()")}, Filter: {
asymmetricMaxDifference: eval("(function(){var exports={};var inputs=[{name:'difference',description:'minified',type:'number|ee.Number',optional:false},{name:'leftField',description:'minified',type:'ee.String|string|null',defaultValue:null,optional:false},{name:'rightValue',description:'minified',type:'ee.String|string|null',defaultValue:null,optional:false},{name:'rightField',description:'minified',type:'ee.String|string|null',defaultValue:null,optional:false},{name:'leftValue',description:'minified',type:'ee.String|string|null',defaultValue:null,optional:false},{name:'asymmetry',description:\"The type of asymmetry. ('gt','lt','gte','lte','none')\",type:'string',defaultValue:'gt',optional:false},{name:'Return',description:'minified',type:'ee.Filter',defaultValue:null,optional:true}]\nvar reference={name:'asymmetricMaxDifference',license:'MIT',description:'minified'};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var difference=inputDictionary.difference;var leftField=inputDictionary.leftField;var rightValue=inputDictionary.rightValue;var rightField=inputDictionary.rightField;var leftValue=inputDictionary.leftValue;var mainFilter=ee.Filter.maxDifference(difference,leftField,rightValue,rightField,leftValue);var extraFilter=null\nswitch(inputDictionary.asymmetry){case'gt':extraFilter=ee.Filter.greaterThan(leftField,rightValue,rightField,leftValue);break;case'lt':extraFilter=ee.Filter.lessThan(leftField,rightValue,rightField,leftValue);break;case'gte':extraFilter=ee.Filter.greaterThanOrEquals(leftField,rightValue,rightField,leftValue);break;case'lte':extraFilter=ee.Filter.lessThanOrEquals(leftField,rightValue,rightField,leftValue);break;}\nif(extraFilter)\nreturn ee.Filter.and(mainFilter,extraFilter);else\nreturn mainFilter;}};return exports})()")}, plotly: {
sankeyDiagram: eval("(function(){var exports={};var inputs=[{name:'imageCollection',description:'minified',type:'ee.ImageCollection',optional:false},{name:'classRange',description:'minified',type:'object',optional:false},{name:'region',description:'minified',type:'ee.Geometry|ee.GeometryCollection|ee.Feature',optional:false},{name:'scale',description:'minified',type:'number|ee.Number',defaultValue:1000,optional:false},{name:'xProperty',description:'minified',type:'string|ee.String',defaultValue:\"system:time_start\",optional:false},{name:'band',description:'minified',type:'number|string|ee.String|ee.Number',defaultValue:0,optional:false},{name:'colors',description:'minified',type:'object[ee.List',optional:true},{name:'Return',description:'minified',type:'oeel.Plotly',defaultValue:null,optional:true}]\nvar reference={name:'SankeyDiagrams',license:'LGPL-3.0-or-later',description:'minified',contributors:[\"Mathieu Gravey\"]};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var plotObject=oeel.plotly.plot();var size=inputDictionary.collection.size()\ninputDictionary.classRange.step=inputDictionary.classRange.step||1;var NoC=ee.Number(inputDictionary.classRange.max).add(1).subtract(inputDictionary.classRange.min).divide(inputDictionary.classRange.step);var reducer=ee.Reducer.fixed2DHistogram({xMin:inputDictionary.classRange.min,xMax:ee.Number(inputDictionary.classRange.max).add(1),xSteps:NoC,yMin:inputDictionary.classRange.min,yMax:ee.Number(inputDictionary.classRange.max).add(1),ySteps:NoC,});function hist2DtoList(data,index,numberClass){return ee.Array.cat([ee.Array(data.get('histogram')),ee.Array(data.get('xBuckets')).add(index.multiply(numberClass)).reshape([1,-1]).repeat(0,ee.Array(data.get('yBuckets')).toList().size()),ee.Array(data.get('yBuckets')).add(index.add(1).multiply(numberClass)).repeat(1,ee.Array(data.get('xBuckets')).toList().size()),],2).reshape([-1,3])}\nvar data=ee.List.sequence(0,size.subtract(2),1).map(function(index){index=ee.Number(index);return hist2DtoList(ee.Dictionary(inputDictionary.collection.toBands().select([index,index.add(1)]).reduceRegion({reducer:reducer,geometry:ee.Feature(inputDictionary.region).geometry(),scale:inputDictionary.scale,maxPixels:1e9})),index,NoC)})\nvar color=inputDictionary.color||[\"7f0000\",\"007f7f\",\"bfff7f\",\"7fff00\",\"7f00ff\",\"3f7f00\",\"7f3f3f\",\"3f7f7f\",\"5f3f7f\",\"ff0000\",\"bf7fff\",\"5f7f3f\",\"7fffff\",\"ff7f7f\",\"3f007f\",\"00ffff\"]\ncolor=ee.List.repeat(color,NoC).flatten().slice(0,NoC);data=ee.Array.cat(data,0).transpose().toList();var plot=oeel.plotly.plot();var colors=ee.List.repeat(color,size).flatten();var labels=ee.List.repeat(inputDictionary.collection.aggregate_array(inputDictionary.xProperty),NoC)\nplotObject.addCustom({type:\"sankey\",orientation:\"h\",arrangement:\"snap\",node:{pad:10,thickness:25,line:{color:\"black\",width:0.1},label:ee.List.repeat(ee.List.repeat(\"\",inputDictionary.collection.aggregate_array(inputDictionary.xProperty).size()),NoC.subtract(1)).cat([inputDictionary.collection.aggregate_array(inputDictionary.xProperty)]).unzip().flatten(),color:colors},link:ee.Dictionary.fromLists([\"value\",\"source\",\"target\"],data)})\nprint(plotObject)\nreturn plotObject;}};return exports})()"),
scatter: eval("(function(){var exports={};var inputs=[{name:'features',description:'minified',type:'ee.Collection',defaultValue:null,optional:false},{name:'legendName',description:'minified',type:'string|ee.String',optional:false},{name:'xProperty',description:'minified',type:'string|ee.String',optional:false},{name:'yProperty',description:'minified',type:'string|ee.String',optional:false},{name:'cProperty',description:'minified',type:'string|ee.String',optional:true},{name:'sProperty',description:'minified',type:'string|ee.String|number|ee.Number',optional:true},{name:'tProperty',description:'minified',type:'string|ee.String',optional:true},{name:'textFont',description:'minified',type:'string|ee.String',optional:true},{name:'Return',description:'minified',type:'oeel.Plotly',defaultValue:null,optional:true}]\nvar reference={name:'scatter',license:'LGPL-3.0-or-later',description:'minified',contributors:[\"Mathieu Gravey\"]};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};};exports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var plotObject=oeel.plotly.plot();var data={x:inputDictionary.features.aggregate_array(inputDictionary.xProperty),y:inputDictionary.features.aggregate_array(inputDictionary.yProperty),mode:'markers',type:'scatter',name:inputDictionary.legendName,marker:{}};if(inputDictionary.cProperty){data.marker.color=ee.Algorithms.If(inputDictionary.features.first().get(inputDictionary.cProperty),inputDictionary.features.aggregate_array(inputDictionary.cProperty),inputDictionary.cProperty)}\nif(inputDictionary.sProperty){var type=internal.typeObject(inputDictionary.sProperty);if(type=='string'||type=='ee.String'){data.marker.size=inputDictionary.features.aggregate_array(inputDictionary.sProperty);}\nif(type=='number'||type=='ee.Number'){data.marker.size=inputDictionary.sProperty;}}\nif(inputDictionary.tProperty){data.text=ee.Algorithms.If(inputDictionary.features.first().get(inputDictionary.tProperty),inputDictionary.features.aggregate_array(inputDictionary.tProperty),inputDictionary.tProperty)\ndata.textfont={};if(inputDictionary.textFont){data.textfont=inputDictionary.textFont;for(var key in Object.keys(inputDictionary.textFont)){ee.Algorithms.If(inputDictionary.features.first().get(key),inputDictionary.features.aggregate_array(key),key)}}}\nplotObject.addCustom(data)\nreturn plotObject;};};;return exports})()"),
donutChart: eval("(function(){var exports={};var inputs=[{name:'featCol',description:'minified',type:'ee.FeatureCollection',defaultValue:null,optional:false},{name:'property',description:'minified',type:'string',defaultValue:null,optional:true},{name:'title',description:'minified',type:'string',defaultValue:null,optional:true},{name:'propertyDescription',description:'minified',type:'string',defaultValue:null,optional:true},{name:'Return',description:'minified',type:'oeel.Plotly',defaultValue:null,optional:true}]\nvar reference={name:'donutChart',license:'LGPL-3.0-or-later',description:'minified',contributors:['Agathe Archidoit']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var plotObject=oeel.plotly.plot();var data=[];var values=[inputDictionary.featCol.aggregate_histogram(inputDictionary.property).values()];var labels=[inputDictionary.featCol.aggregate_histogram(inputDictionary.property).keys()];var l=values.length;if(values.length!=labels.length){throw'Not as many properties as legends';}\nvar layout={title:inputDictionary.title,height:400,width:600,showlegend:true,grid:{rows:1,columns:values.length}}\nfor(var i=0;i<l;i++){data[i]={values:values[i],labels:labels[i],domain:{column:0},name:inputDictionary.propertyDescription,hoverinfo:'label+percent+name',hole:.4,type:'pie'}\nlayout.annotations=[{font:{size:20},showarrow:false,text:inputDictionary.propertyDescription,x:0.17,y:0.5}]}\nplotObject.addCustom(data)\nplotObject.setLayout(layout);return plotObject;}};return exports})()"),
histogram: eval("(function(){var exports={};var inputs=[{name:'featCol',description:'minified',type:'ee.FeatureCollection',defaultValue:null,optional:false},{name:'properties',description:'minified',type:'object',defaultValue:null,optional:false},{name:'legendNames',description:'minified',type:'object',defaultValue:null,optional:true},{name:'title',description:'minified',type:'string',defaultValue:null,optional:true},{name:'bargap',description:'minified',type:'bool',defaultValue:true,optional:true},{name:'Return',description:'minified',type:'oeel.Plotly',defaultValue:null,optional:true}]\nvar reference={name:'histogram',license:'LGPL-3.0-or-later',description:'minified',contributors:['Agathe Archidoit']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var plotObject=oeel.plotly.plot();var l=inputDictionary.properties.length;var traces=[];if(inputDictionary.properties.length!=inputDictionary.legendNames.length){throw'Not as many properties as legends';}\nfor(var i=0;i<l;i++){traces[i]={x:inputDictionary.featCol.aggregate_array(inputDictionary.properties[i]),type:'histogram',name:inputDictionary.legendNames[i],marker:{opacity:0.6,line:{width:1}},}\nplotObject.addCustom(traces[i]);}\nvar layout={bargap:0.05,barmode:\"overlay\",title:inputDictionary.title,};if(inputDictionary.bargap===true){layout.bargroupgap=0.2;}\nplotObject.setLayout(layout);return(plotObject);}};return exports})()"),
barChart: eval("(function(){var exports={};var inputs=[{name:'featCol',description:'minified',type:'ee.FeatureCollection',defaultValue:null,optional:false},{name:'properties',description:'minified',type:'object',defaultValue:null,optional:false},{name:'legendNames',description:'minified',type:'object',defaultValue:null,optional:true},{name:'title',description:'minified',type:'string',defaultValue:null,optional:true},{name:'barmode',description:'minified',type:'string',defaultValue:'group',optional:true},{name:'Return',description:'minified',type:'oeel.Plotly',defaultValue:null,optional:true}]\nvar reference={name:'barChart',license:'LGPL-3.0-or-later',description:'minified',contributors:['Agathe Archidoit']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var plotObject=oeel.plotly.plot();var l=inputDictionary.properties.length;var traces=[];if(inputDictionary.properties.length!=inputDictionary.legendNames.length){throw'Not as many properties as legends';}\nfor(var i=0;i<l;i++){traces[i]={x:inputDictionary.featCol[i].aggregate_histogram(inputDictionary.properties[i]).keys(),y:inputDictionary.featCol[i].aggregate_histogram(inputDictionary.properties[i]).values(),type:'bar',name:inputDictionary.legendNames[i],marker:{opacity:0.7,},width:0.5,}\nplotObject.addCustom(traces[i]);}\nvar layout={title:inputDictionary.title,xaxis:{tickangle:-45},bargap:0.5,};if(inputDictionary.barmode==='stack'){layout.barmode='stack';}\nelse{layout.barmode='group';}\nplotObject.setLayout(layout);return(plotObject);}};return exports})()"),
directDraw: eval("(function(){var exports={};var inputs=[{name:'data',description:'minified',type:'object',defaultValue:null,optional:false},{name:'layout',description:'minified',type:'object',defaultValue:{},optional:false},{name:'transparent',description:'minified',type:'boolean',defaultValue:true,optional:true},{name:'exportFormat',description:'minified',type:'string',defaultValue:'png',optional:true},{name:'exportName',description:'minified',type:'string',optional:true},{name:'exportScale',description:'minified',type:'number',defaultValue:4,optional:true},{name:'Return',description:'minified',type:'oeel.PlotlyDisplay',defaultValue:null,optional:true}]\nvar reference={name:'directDraw',license:'LGPL-3.0-or-later',description:'minified',contributors:[\"Mathieu Gravey\"]};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);return ee.Serializer.toJSON(inputDictionary);}};return exports})()"),
hist2D: eval("(function(){var exports={};var inputs=[{name:'histogram2D',description:'minified',type:'ee.ComputedObject|ee.Dictionary',defaultValue:null,optional:false},{name:'legendName',description:'minified',type:'string|ee.String',optional:false},{name:'transpose',description:'minified',type:'boolean',defaultValue:false,optional:false},{name:'Return',description:'minified',type:'oeel.Plotly',defaultValue:null,optional:true}]\nvar reference={name:'hist2D',license:'LGPL-3.0-or-later',description:'minified',contributors:[\"Mathieu Gravey\"]};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};};exports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var plotObject=oeel.plotly.plot();var data={z:inputDictionary.histogram2D.get(\"histogram\"),x:inputDictionary.histogram2D.get(\"xBuckets\"),y:inputDictionary.histogram2D.get(\"yBuckets\"),type:'heatmap',transpose:inputDictionary.transpose,name:inputDictionary.legendName,}\nplotObject.addCustom(data)\nreturn plotObject;};};;return exports})()"),
plot: eval("(function(){var exports={};var inputs=[{name:'Return',description:'minified',type:'oeel.Plotly',defaultValue:null,optional:true}]\nvar reference={name:'plot',license:'LGPL-3.0-or-later',description:'minified',contributors:[\"Mathieu Gravey\"]};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};};exports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var plotObject={toEE:false,data:[],layout:{},annotations:[],type:\"Plotly plot\",widgetsList:[],eventListener:{test:true},draw:function(withoutHeader){withoutHeader=withoutHeader||false;var obj={};var toSend=['data','toEE','layout','transparent','exportFormat','exportName','exportScale','onClick','annotations'];for(var idx=0;idx<toSend.length;idx++){var key=toSend[idx];if(key in this)obj[key]=this[key];}\nreturn(withoutHeader?\"\":\"OEEex_AddonPlotly:\")+oeel.plotly.directDraw(obj);},display:function(){print(this.draw());},print:function(){print(this.draw());},widget:function(style){var widg=ui.Textbox('OEEex_Active_AddonPlotly',this.draw(true),this.receivedEvent,false,style)\nthis.widgetsList.push(widg)\nreturn widg},setLayout:function(l){this.layout=l},addPlot:function(plot){this.data=this.data.concat(plot.data)},addCustom:function(){var arg=arguments;for(var i=0;i<arg.length;i++){if(Array.isArray(arg[i]))\nthis.addCustom.apply(this,arg[i])\nelse\nthis.data.push(arg[i]);}},receivedEvent:function(str){plotObject.onEvent(JSON.parse(str))},onEvent:function(json){if(json.toEE===true){var type=json.type;if(this.eventListener[type]!==undefined){for(var i=0;i<this.eventListener[type].length;i++){this.eventListener[type][i](json.plotlyData,plotObject)}}\nif(type.indexOf('plotly_')===0)\n{json.type=json.type.slice(\"plotly_\".length);this.onEvent(json);}}},on:function(type,f){if(!this.eventListener[type])\nthis.eventListener[type]=[];this.eventListener[type].push(f);},update:function(){var value=this.draw(true);for(var i=0;i<this.widgetsList.length;i++)\n{this.widgetsList[i].setValue(value,true);}},addEventListener:function(type,f){this.on(type,f)},addAnnotations:function(ann){if(!Array.isArray()){ann=[ann];}\nthis.annotations=this.annotations.concat(ann);}};return plotObject;};};;return exports})()")}, Feature: {
asLabel: eval("(function(){var exports={};var inputs=[{name:'textProperty',description:'minified',type:'string|ee.String',optional:false},{name:'font',description:'minified',type:'string|ee.String|ee.FeatureCollection',defaultValue:\"users/OEEL/Fonts/Helvetica\",optional:false},{name:'fontSize',description:'minified',type:'integer|ee.Number',defaultValue:1,optional:false},{name:'position',description:\"Set how to aligne the text. ('top-right', 'top-center', 'top-left', 'bottom-right', ...)\",type:'string|ee.String',defaultValue:'centter-center',optional:false},{name:'rotation',description:'minified',type:'integer|ee.Number',defaultValue:0,optional:false},{name:'shiftB',description:'minified',type:'ee.List|object',defaultValue:[0,0],optional:false},{name:'fontProperty',description:'minified',type:'string|ee.String',optional:true},{name:'fontSizeProperty',description:'minified',type:'string|ee.String',optional:true},{name:'positionProperty',description:\"Property containing the text alignement. ('top-right', 'top-center', 'top-left', 'bottom-right', ...)\",type:'string|ee.String',optional:true},{name:'rotationProperty',description:'minified',type:'string|ee.String',optional:true},{name:'shiftBProperty',description:'minified',type:'string|ee.String',optional:true},{name:'Return',description:'minified',type:'function',defaultValue:null,optional:true}]\nvar reference={name:'asLabel',license:'MIT',description:'minified'};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);return function(ft){ft=ee.Feature(ft);return ee.Feature(oeel.Geometry.fromText({text:ft.getString(inputDictionary.textProperty),font:(inputDictionary.fontProperty?ft.getString(inputDictionary.fontProperty):inputDictionary.font),fontSize:(inputDictionary.fontSizeProperty?ft.getNumber(inputDictionary.fontSizeProperty):inputDictionary.fontSize),position:(inputDictionary.positionProperty?ft.getString(inputDictionary.positionProperty):inputDictionary.position),rotation:(inputDictionary.rotationProperty?ft.getNumber(inputDictionary.rotationProperty):inputDictionary.rotation),shiftB:(inputDictionary.shiftBProperty?ee.List(ft.get(inputDictionary.shiftBProperty)):inputDictionary.shiftB),shiftA:ft.geometry().centroid().transform('EPSG:3857',1).coordinates().flatten()})).copyProperties(ft);};}};return exports})()")}, util: {
addTimePrototype: eval("(function(){var exports={};var inputs=[]\nvar reference={name:'addTimePrototype',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){internal.addRef(reference,relPath);Date.prototype.yyyymmdd=function(){var yyyy=this.getFullYear().toString();var mm=(this.getMonth()+1).toString();var dd=this.getDate().toString();return yyyy+(mm[1]?mm:\"0\"+mm[0])+(dd[1]?dd:\"0\"+dd[0]);}\nDate.prototype.yyyymmdd_hhmm=function(){var yyyy=this.getFullYear().toString();var mm=(this.getMonth()+1).toString();var dd=this.getDate().toString();var hh=this.getHours().toString();var MM=this.getMinutes().toString();return yyyy+(mm[1]?mm:\"0\"+mm[0])+(dd[1]?dd:\"0\"+dd[0])+\"_\"+(hh[1]?hh:\"0\"+hh[0])+(MM[1]?MM:\"0\"+MM[0]);}}};return exports})()")}, Algorithms: {Sentinel1: {
removeS1BlackBorders: eval("(function(){var exports={};var inputs=[{name:'threshold',description:'minified',type:'number|string|ee.Number',defaultValue:-25,optional:false},{name:'image',description:'minified',type:'ee.Image',optional:true},{name:'Return',description:'minified',type:'function|ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'removeS1BlackBorders',license:'MIT',description:'minified',experimental:true,contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(internal.typeObject(inputDictionary.threshold)=='string'){return function(image){return image.updateMask(ee.Image.constant(1).where(ee.FeatureCollection(image.geometry()).distance(10000),image.select(0).gt(ee.Number(im.get(inputDictionary.threshold)))));}}else\n{return function(image){return image.updateMask(ee.Image.constant(1).where(ee.FeatureCollection(image.geometry()).distance(10000),image.select(0).gt(inputDictionary.threshold)));}}}};return exports})()")}, MODIS: {
terrainShadow: eval("(function(){var exports={};var inputs=[{name:'dem',description:'minified',type:'ee.Image',optional:false},{name:'kernelHalfSize',description:'minified',type:'number',defaultValue:10,optional:false},{name:'image',description:'minified',type:'ee.Image',optional:true},{name:'imageCollection',description:'minified',type:'ee.ImageCollection',optional:true},{name:'Return',description:'minified',type:'function',defaultValue:null,optional:true}]\nvar reference={name:'terrainShadow',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);function radiusKernel(halfSize){return ee.List.sequence(-halfSize,halfSize).map(function(x){return ee.List.sequence(-halfSize,halfSize).map(function(y){return ee.Number(y).multiply(y).add(ee.Number(x).multiply(x)).sqrt().add(0.001);})})}\nfunction computeMaxAngle(halfSize){return ee.List.sequence(-halfSize,halfSize).map(function(x){return ee.List.sequence(-halfSize,halfSize).map(function(y){var norm=ee.Number(y).multiply(y).add(ee.Number(x).multiply(x)).sqrt();return ee.Number(x).atan2(y).subtract(ee.Number(1).divide(norm).multiply(0.5)).add(-3.14).multiply(-1);})})}\nfunction computeMinAngle(halfSize){return ee.List.sequence(-halfSize,halfSize).map(function(x){return ee.List.sequence(-halfSize,halfSize).map(function(y){var norm=ee.Number(y).multiply(y).add(ee.Number(x).multiply(x)).sqrt();return ee.Number(x).atan2(y).add(ee.Number(1).divide(norm).multiply(0.5)).add(-3.14).multiply(-1);})})}\nvar halfSize=inputDictionary.kernelHalfSize;var weights=radiusKernel(halfSize);var kernel=ee.Kernel.fixed(2*halfSize+1,2*halfSize+1,weights);var maxAngle=computeMaxAngle(halfSize).flatten();var minAngle=computeMinAngle(halfSize).flatten();var demImage=inputDictionary.dem;var fun=function(originalImage){var image=originalImage.addBands(originalImage.select(['SolarZenith','SolarAzimuth']).toFloat().divide(100),['SolarZenith','SolarAzimuth'],true);var SA=image.select('SolarAzimuth').divide(180/3.14);var angleImageMask=ee.Image.constant(maxAngle).gt(SA).and(ee.Image.constant(minAngle).lt(SA)).not().multiply(100000).add(1);var imageOfBands=demImage.neighborhoodToBands(kernel).subtract(ee.Image.constant(weights.flatten()).multiply(ee.Image.pixelArea().sqrt()).multiply(image.select('SolarZenith').subtract(90).divide(-180/3.14).tan()).multiply(angleImageMask))\nvar maxElevationWithShadow=imageOfBands.reduce(ee.Reducer.max());return image.addBands(demImage.lt(maxElevationWithShadow).rename('shadowMask')).addBands(originalImage.select(['SolarZenith','SolarAzimuth']),['SolarZenith','SolarAzimuth'],true);}\nif(inputDictionary.image)\nreturn fun(inputDictionary.image);if(inputDictionary.imageCollection)\nreturn inputDictionary.imageCollection.map(fun);return fun;}};return exports})()")}, Sentinel2: {
cloudfree: eval("(function(){var exports={};var inputs=[{name:'maxCloud',description:'minified',type:'number',defaultValue:20,optional:false},{name:'S2Collection',description:'minified',type:'ee.ImageCollection',optional:true},{name:'Return',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:true}]\nvar reference={name:'cloudfree',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(!inputDictionary.S2Collection){var S2Coll=ee.ImageCollection('COPERNICUS/S2_SR');inputDictionary.S2Collection=S2Coll.select(S2Coll.first().bandNames().filter(ee.Filter.stringContains('item','MSK').not()));}\nvar s2Clouds=ee.ImageCollection('COPERNICUS/S2_CLOUD_PROBABILITY');var s2Sr=inputDictionary.S2Collection.map(function(s2_img){return s2_img.updateMask(s2_img.select('B8A').mask().updateMask(s2_img.select('B9').mask()));});return ee.ImageCollection(ee.Join.saveFirst('cloud_mask').apply({primary:s2Sr,secondary:s2Clouds,condition:ee.Filter.equals({leftField:'system:index',rightField:'system:index'})}).map(function(img){return ee.Image(img).updateMask(ee.Image(img.get('cloud_mask')).select('probability').lt(inputDictionary.maxCloud));}));}};return exports})()")}}, Element: {
addTimeProperties: eval("(function(){var exports={};var inputs=[{name:'sinceEpoch',description:'minified',type:'boolean',defaultValue:false,optional:false},{name:'timeVariable',description:'minified',type:'string|object',defaultValue:'start',optional:false},{name:'timeZone',description:'minified',type:'string',defaultValue:'UTC',optional:false},{name:'image',description:'minified',type:'ee.Image',optional:true},{name:'feature',description:'minified',type:'ee.Feature',optional:true},{name:'collection',description:'minified',type:'ee.Collection',optional:true},{name:'Return',description:'minified',type:'function|ee.Image|ee.Feature|ee.Collection',defaultValue:null,optional:true}]\nvar reference={name:'addTimeProperties',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var sinceEpoch=inputDictionary.sinceEpoch;var timeZone=inputDictionary.timeZone;if(internal.typeObject(inputDictionary.timeVariable)=='string')\nif(inputDictionary.timeVariable=='both')\nvar timeVar=['start','end'];else\nvar timeVar=[inputDictionary.timeVariable];else\nvar timeVar=inputDictionary.timeVariable;var epoch=ee.Date.fromYMD(1970,1,1,timeZone);var fun=function(ft){var obj={};for(var i=0;i<timeVar.length;i++){var localName=timeVar[i];if(localName=='start'){var time=ee.Date(ft.get('system:time_start'));}else if(localName=='end'){var time=ee.Date(ft.get('system:time_end'));}else{var time=ee.Date(ft.get(localName));}\nif(sinceEpoch){obj[\"oeel:\"+localName+\"_hour_epoch\"]=time.difference(epoch,'hour').floor();obj[\"oeel:\"+localName+\"_minute_epoch\"]=time.difference(epoch,'minute').floor();obj[\"oeel:\"+localName+\"_second_epoch\"]=time.difference(epoch,'second').floor();obj[\"oeel:\"+localName+\"_day_epoch\"]=time.difference(epoch,'day').floor();obj[\"oeel:\"+localName+\"_week_epoch\"]=time.difference(epoch,'week').floor();obj[\"oeel:\"+localName+\"_month_epoch\"]=time.difference(epoch,'month').floor();obj[\"oeel:\"+localName+\"_year_epoch\"]=time.difference(epoch,'year').floor();}\nelse{obj[\"oeel:\"+localName+\"_hour\"]=time.get('hour',timeZone);obj[\"oeel:\"+localName+\"_minute\"]=time.get('minute',timeZone);obj[\"oeel:\"+localName+\"_second\"]=time.get('second',timeZone);obj[\"oeel:\"+localName+\"_day\"]=time.get('day',timeZone);obj[\"oeel:\"+localName+\"_week\"]=time.get('week',timeZone);obj[\"oeel:\"+localName+\"_month\"]=time.get('month',timeZone);obj[\"oeel:\"+localName+\"_year\"]=time.get('year',timeZone);}}\nreturn ft.setMulti(obj);}\nif(inputDictionary.image)\nreturn fun(inputDictionary.image);if(inputDictionary.feature)\nreturn fun(inputDictionary.feature);if(inputDictionary.collection)\nreturn inputDictionary.collection.map(fun);return fun;}};return exports})()")}, FeatureCollection: {
fromList: eval("(function(){var exports={};var inputs=[{name:'list',description:'minified',type:'ee.List',optional:false},{name:'propertyName',description:'minified',type:'ee.String|string',optional:false},{name:'Return',description:'minified',type:'ee.FeatureCollection',defaultValue:null,optional:true}]\nvar reference={name:'fromList',license:'MIT',description:'minified'};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(inputDictionary.propertyName==\"\")\nreturn ee.FeatureCollection(inputDictionary.list.map(function(val){return ee.Feature(null,val)}));else\nreturn ee.FeatureCollection(inputDictionary.list.map(function(val){return ee.Feature(null,ee.Dictionary.fromLists([inputDictionary.propertyName],[val]))}));}};return exports})()")}, Python: {
require: eval("(function(){var exports={};var inputs=[{name:'path',description:'minified',type:'string',optional:false},{name:'pkgs',description:'minified',type:'object',optional:true},{name:'Return',description:'minified',type:'object',defaultValue:null,optional:true}]\nvar reference={name:'require',license:'LGPL-3.0-or-later',description:'minified'};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var path=inputDictionary.path;var pkgs=inputDictionary.pkgs;if(!pkgs)\npkgs=[];var result=internal.usePrompToCallPython({type:\"loadModule\",path:path,extraPkgs:pkgs,context:function(result){switch(result.answerType){case\"functionResult\":throw\"error in executing: \"+name+\"; main result returned as intermediate\"\nbreak;case\"oeelCall\":var f=oeel;for(var v=0;v<result.path.length;v++){f=f[result.path[v]];}\nreturn f.apply(null,result.args);break;case\"printConsole\":print.apply(null,result.value)\nbreak;case\"MapOperation\":Map[result.mapOp].apply(Map,result.args)\nbreak;case\"pyplotFigure\":print(ui.Label({imageUrl:result.value}));break;case\"require\":return require(result.path)\nbreak;default:throw\"error in executing: \"+name+\"; \"+result.answerType+\" is not upported\"}}},null,null)\nif(result.answerType==\"moduleLoaded\"){for(var i=0;i<result.functions.length;i++){var name=result.functions[i];(function(name){result[name]=function(){return result.call(name,Array.prototype.slice.call(arguments))};})(name)}\nresult.call=function(name,arg){var r=internal.usePrompToCallPython({type:\"functionCall\",pyId:result.pyId,functionName:name,arg:arg},name)\nreturn(function(result){switch(result.answerType){case\"functionResult\":return result.value;break;case\"printConsole\":case\"MapOperation\":case\"pyplotFigure\":throw\"error in executing: \"+name+\"; intermediate result returned as main\"\ndefault:throw\"error in executing: \"+name+\"; \"+result.answerType+\" is not upported\"}})(r)}}\nelse{throw\"expected module, but get: \"+result}\nreturn result}};return exports})()"),
run: eval("(function(){var exports={};var inputs=[{name:'code',description:'minified',type:'string',optional:false},{name:'variableDictionary',description:'minified',type:'object',optional:true},{name:'pkgs',description:'minified',type:'object',optional:true}]\nvar reference={name:'run',license:'LGPL-3.0-or-later',description:'minified'};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var code=inputDictionary.code;var dict=inputDictionary.variableDictionary;var pkgs=inputDictionary.pkgs;if(!dict)\ndict={};if(!pkgs)\npkgs=[];internal.usePrompToCallPython({type:\"code\",code:code,dict:dict,extraPkgs:pkgs,context:function(result){switch(result.answerType){case\"functionResult\":throw\"error in executing: \"+name+\"; main result returned as intermediate\"\nbreak;case\"oeelCall\":var f=oeel;for(var v=0;v<result.path.length;v++){f=f[result.path[v]];}\nreturn f.apply(null,result.args);break;case\"printConsole\":print.apply(null,result.value)\nbreak;case\"MapOperation\":Map[result.mapOp].apply(Map,result.args)\nbreak;case\"pyplotFigure\":print(ui.Label({imageUrl:result.value}));break;case\"require\":return require(result.path)\nbreak;default:throw\"error in executing: \"+name+\"; \"+result.answerType+\" is not upported\"}}},null,null)}};return exports})()")}, debug: {
Terminal: eval("(function(){var exports={};var inputs=[]\nvar reference={name:'Terminal',license:'LGPL-3.0-or-later',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return'(function(){ function oee_parseAndPrefix(str){ var lines=str.split(/([;\\\\n{}\\\\(\\\\)])/); var regexVariableName=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/; var localVariable=[[],[]]; localVariable[0]=Object.keys(oee_variable); var level=0; var inFunctionHeader=false; for (var idx in lines){ var line=lines[idx]; var regex = /([(\\\\s\\\\(\\\\)+\\\\-*/=)]+)/; var elements = line.split(regex).filter(Boolean); var startScan=elements.length-1; if(inFunctionHeader|| elements.indexOf(\\\"function\\\")>=0){ inFunctionHeader=true; var posFunction=elements.indexOf(\\\"function\\\"); if((elements.length>posFunction+2)&&(elements[posFunction+1][0]==\\\" \\\")){ elements[posFunction]=elements[posFunction+2]; elements[posFunction+1]=\\\"=\\\"; elements[posFunction+2]=\\\"function\\\"; elements.splice(posFunction, 0, \\\" \\\"); elements.splice(posFunction, 0, \\\"var\\\"); } posFunction=elements.indexOf(\\\"function\\\"); if(posFunction>=0){ var locArray=elements.slice(Math.max(posFunction,0)); var posParenthesis=locArray.indexOf(\\\"(\\\"); locArray=locArray.slice(Math.max(posParenthesis,0)); startScan=posFunction; for (var j=0; j<locArray.length;j++){ if(regexVariableName.test(locArray[j])){ localVariable[level+1].push(locArray[j]); } } } } if(elements[0]==\\\"{\\\"){ level++; localVariable[level+1]=[]; inFunctionHeader=false; } for ( var i=startScan; i>=0;i--){ var word=elements[i].split(\\'.\\')[0]; var l; if(i>1 && elements[i-2]==\\\"var\\\"){ localVariable[level].push(word); if(level===0){ elements[i]=\\\"oee_variable.\\\"+elements[i]; elements[i-2]=\\\"\\\"; } continue; } if(i>1 && elements[i-2]==\\\"function\\\" && (elements[i-1]!=\\\"(\\\" || elements[i]!=\\\"(\\\")){ localVariable[level].push(word); if(level===0){ elements[i]=\\\"oee_variable.\\\"+elements[i]; } continue; } if(regexVariableName.test(word)){ for(l=level; l>=0; l--){ if(localVariable[l].indexOf(word)!=-1){ break; } } if(l===0){ elements[i]=\\\"oee_variable.\\\"+elements[i]; } } } line=elements.join(\\\"\\\"); if(elements[0]==\\\"}\\\"){ localVariable[level]=[]; level--; } lines[idx]=line; } return lines.join(\\\"\\\"); } var oee_variable={}; var oee_input=ui.Textbox(\\\">>\\\",\\\"\\\",function(oeel_string){ oeel_string=oeel_string.split(\\\"\\\\\\\\n\\\").join(\\\"\\\\n \\\"); print(\\\">>\\\"+oeel_string); eval(oee_parseAndPrefix(oeel_string)); oee_input.setValue(\\\"\\\",false); }); print(oee_input); })()';};return exports})()")}, Geometry: {
geometryWorldwide: eval("(function(){var exports={};var inputs=[{name:'Return',description:'minified',type:'Geometry.BBox',defaultValue:null,optional:true}]\nvar reference={name:'geometryWorldwide',license:'MIT',description:'minified',contributors:['Agathe Archidoit']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);return ee.Geometry.BBox(-180,-90,180,90);}};return exports})()"),
fromText: eval("(function(){var exports={};var inputs=[{name:'text',description:'minified',type:'string|ee.String',defaultValue:null,optional:false},{name:'font',description:'minified',type:'string|ee.String|ee.FeatureCollection',defaultValue:\"users/OEEL/Fonts/Helvetica\",optional:false},{name:'fontSize',description:'minified',type:'integer|ee.Number',defaultValue:1,optional:false},{name:'position',description:\"Set how to aligne the text. ('top-right', 'top-center', 'top-left', 'bottom-right', ...)\",type:'string|ee.String',defaultValue:'centter-center',optional:false},{name:'rotation',description:'minified',type:'integer|ee.Number',defaultValue:0,optional:false},{name:'shiftB',description:'minified',type:'ee.List|object',defaultValue:[0,0],optional:false},{name:'shiftA',description:'minified',type:'ee.List|object',defaultValue:[0,0],optional:false},{name:'Return',description:'minified',type:'ee.Geometry.MultiPolygon',defaultValue:null,optional:true}]\nvar reference={name:'fromText',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var font=ee.FeatureCollection(inputDictionary.font);var charCompactness=-100;var betweenCharDist=0;var position=ee.String(inputDictionary.position).split('-');var startY=ee.Number(0.5).add(position.getString(0).compareTo('center').signum().multiply(-0.5))\nvar x=position.getString(1).compareTo('left').signum();var startX=x.add(3).divide(4).multiply(x.abs()).multiply(-1)\nvar shiftB=ee.List(inputDictionary.shiftB);var shiftA=ee.List(inputDictionary.shiftA);var fontSize=ee.Number(inputDictionary.fontSize);var rotation=ee.Number(inputDictionary.rotation);function scaleAndShiftGeom(geom,scale,shiftX,shiftY){scale=ee.Number(scale);shiftX=ee.Number(shiftX);shiftY=ee.Number(shiftY);return ee.List(geom).map(function(l1){l1=ee.Array(l1);return ee.Array(l1).multiply(scale).add(ee.Array([[shiftX,shiftY]]).repeat(0,l1.length().get([0])))});}\nfunction globalScaleRotateAndShiftGeom(geom,scale,shiftX1,shiftY1,rot,shiftX2,shiftY2){scale=ee.Number(scale);shiftX1=ee.Number(shiftX1);shiftY1=ee.Number(shiftY1);var sin=ee.Number(rot).sin();var cos=ee.Number(rot).cos();shiftY2=ee.Number(shiftY2);shiftX2=ee.Number(shiftX2);return ee.List(geom).map(function(l1){l1=ee.Array(l1);return ee.Array(l1).multiply(scale).add(ee.Array([[shiftX1,shiftY1]]).repeat(0,l1.length().get([0]))).matrixMultiply(ee.Array([[cos,sin],[sin.multiply(-1),cos]])).add(ee.Array([[shiftX2,shiftY2]]).repeat(0,l1.length().get([0])))});}\nfunction displayLine(strinAndShift){strinAndShift=ee.List(strinAndShift);var verticalShift=strinAndShift.getNumber(1).multiply(font.first().getNumber('height'));var string=ee.String(strinAndShift.get(0)).split('').filter(ee.Filter.neq('item',\"\"));var shifts=string.iterate(function(char,tab){tab=ee.List(tab);return tab.add(ee.Number(tab.get(-1)).add(font.filter(ee.Filter.equals('char',char)).first().getNumber('width').add(betweenCharDist)));},[0]);var alignShift=ee.List(shifts).getNumber(-1).multiply(startX);return string.zip(shifts).map(function(charInfo){charInfo=ee.List(charInfo);var char=charInfo.getString(0);var absolutShift=charInfo.getNumber(1);var charFt=font.filter(ee.Filter.equals('char',char)).first();return ee.Algorithms.If(charFt.get(\"toDisplay\"),scaleAndShiftGeom(ee.List(ee.Algorithms.If({condition:charFt.geometry().type().equals('Polygon'),trueCase:ee.List([charFt.geometry().transform('EPSG:3857',1).coordinates()]),falseCase:charFt.geometry().transform('EPSG:3857',1).coordinates(),})).map(function(l1){return ee.List(l1).map(function(l2){return ee.Array(l2)})}).flatten(),1,absolutShift.add(alignShift),verticalShift),null);},true).flatten();}\nfunction displayText(string,config){var strings=ee.String(string).split('\\n');var coordenates=strings.zip(ee.List.sequence(startY.multiply(strings.size()).add(-1),null,-1,strings.size())).map(displayLine).flatten();coordenates=globalScaleRotateAndShiftGeom(coordenates,fontSize,ee.Number(shiftB.get(0)),ee.Number(shiftB.get(1)),rotation,ee.Number(shiftA.get(0)),ee.Number(shiftA.get(1)))\nreturn ee.Geometry.Polygon({coords:ee.List(coordenates).map(function(l1){return ee.Array(l1).toList()}),proj:'EPSG:3857',geodesic:false,evenOdd:true,});}\nreturn displayText(inputDictionary.text);}};return exports})()")}, Image: {
propertyAsBand: eval("(function(){var exports={};var inputs=[{name:'image',description:'minified',type:'ee.Image',optional:false},{name:'properties',description:'minified',type:'object',optional:false},{name:'Return',description:'minified',type:'ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'propertyAsBand',license:'LGPL-3.0-or-later',description:'minified',contributors:['Agathe Archidoit','Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var properties=ee.List(inputDictionary.properties);var newBands=properties.map(function(prop){return ee.Image.constant(inputDictionary.image.get(ee.String(prop))).toFloat();})\nvar total_image=inputDictionary.image.addBands(ee.ImageCollection(newBands).toBands().rename(properties));var mask=inputDictionary.image.mask().reduce(ee.Reducer.allNonZero());var im_result=total_image.updateMask(mask);return im_result;}};return exports})()"),
arrayMatrixUnit: eval("(function(){var exports={};var inputs=[{name:'N',description:'minified',type:'ee.Image',optional:false},{name:'M',description:'minified',type:'ee.Image',optional:false},{name:'I',description:'minified',type:'ee.Image',optional:false},{name:'J',description:'minified',type:'ee.Image',optional:false},{name:'Return',description:'minified',type:'ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'arrayMatrixUnit',license:'MIT',description:'minified',contributors:['Agathe Archidoit','Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var arrayN=ee.Image.constant(ee.Array([[0]])).arrayRepeat(1,inputDictionary.N);var arrayM=ee.Image.constant(ee.Array([[0]])).arrayRepeat(1,inputDictionary.M);var M=arrayN.multiply(0).add(1).arrayAccum(1,ee.Reducer.sum()).eq(inputDictionary.I.add(1)).matrixTranspose().matrixMultiply(arrayM.multiply(0).add(1).arrayAccum(1,ee.Reducer.sum()).eq(inputDictionary.J.add(1)));return M;}};return exports})()"),
semivariogram: eval("(function(){var exports={};var inputs=[{name:'input',description:'minified',type:'ee.Image|ee.ImageCollection',optional:false},{name:'region',description:'minified',type:'ee.Geometry',optional:false},{name:'radius',description:'minified',type:'integer',defaultValue:10,optional:false},{name:'Return',description:'minified',type:'ee.FeatureCollection',defaultValue:null,optional:true}]\nvar reference={name:'semivariogram',license:'LGPL-3.0-or-later',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var halfSize=inputDictionary.radius;var numberOfElement=(halfSize*2+1)*(halfSize*2+1);var kernel=ee.Kernel.square(halfSize)\nprint(inputDictionary.input)\nvar imCol=ee.ImageCollection(inputDictionary.input)\nvar region=inputDictionary.region;var ftC=imCol.map(function(im){var mask=im.mask().neighborhoodToArray({kernel:kernel,defaultValue:0});var r=im.unmask(0).neighborhoodToArray({kernel:kernel,defaultValue:0}).subtract(im).pow(2);var val=ee.Dictionary(r.reduceRegion({reducer:ee.Reducer.toList(),geometry:region,crs:r.projection()}));var sumVal=ee.Array.cat(ee.List(val.get(val.keys().get(0))),2).reduce(ee.Reducer.sum(),[2]);val=ee.Dictionary(mask.reduceRegion({reducer:ee.Reducer.toList(),geometry:region,crs:mask.projection()}));var sumMask=ee.Array.cat(ee.List(val.get(val.keys().get(0))),2).reduce(ee.Reducer.sum(),[2]);var X=ee.Array(ee.List.sequence(-halfSize,halfSize,1)).repeat(1,halfSize*2+1)\nvar Y=ee.Array(ee.List.sequence(-halfSize,halfSize,1)).repeat(1,halfSize*2+1).transpose()\nvar dist=ee.Array.cat([X,Y],2).pow(2).reduce(ee.Reducer.sum(),[2]).sqrt();return ee.FeatureCollection(ee.Array.cat([sumVal,sumMask,dist],3).reshape([-1,3]).sort(dist.reshape([-1,1])).toList().map(function(val){return ee.Feature(null,ee.Dictionary.fromLists(['var','amount','distance'],ee.List(val)));}));});ftC=ftC.flatten();return ee.Join.saveAll('sameDistance').apply(ftC.distinct('distance'),ftC,ee.Filter.equals({leftField:'distance',rightField:'distance'})).map(function(ft){var col=ee.FeatureCollection(ee.List(ft.get('sameDistance')))\nreturn ee.Feature(null,ee.Dictionary.fromLists(['ditance','var'],[ft.get('distance'),col.aggregate_sum('var').divide(col.aggregate_sum('amount')).divide(2)]));})};};return exports})()"),
inverseDistanceInterpolation: eval("(function(){var exports={};var inputs=[{name:'radius',description:'minified',type:'integer',defaultValue:10,optional:false},{name:'power',description:'minified',type:'number',defaultValue:2,optional:false},{name:'useConvolution',description:'minified',type:'boolean',defaultValue:true,optional:false},{name:'image',description:'minified',type:'ee.Image',optional:true},{name:'imageCollection',description:'minified',type:'ee.ImageCollection',optional:true},{name:'Return',description:'minified',type:'function|ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'InverseDistanceInterpolation',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var p=inputDictionary.power;var val=[]\nvar xSize=inputDictionary.radius\nvar ySize=inputDictionary.radius;for(var x=0;x<2*xSize+1;x++){val[x]=[];for(var y=0;y<2*ySize+1;y++)\nval[x][y]=Math.pow((x-xSize)*(x-xSize)+(y-ySize)*(y-ySize),p/2);}\nvar kernel=ee.Kernel.fixed(2*xSize+1,2*ySize+1,val,xSize,ySize,false).inverse();var fun=function(im){if(inputDictionary.useConvolution){var x=im.mask().convolve({kernel:kernel});var result=im.unmask(0).convolve({kernel:kernel,}).divide(im.mask().convolve({kernel:kernel})).updateMask(x.gt(0.0001));}\nelse{var result=im.reduceNeighborhood({reducer:'sum',kernel:kernel,skipMasked:false}).divide(im.mask().reduceNeighborhood({reducer:'sum',kernel:kernel,skipMasked:false}))}\nreturn result.where(im,im).reproject(im.projection());}\nif(inputDictionary.image)\nreturn fun(inputDictionary.image);if(inputDictionary.imageCollection)\nreturn inputDictionary.imageCollection.map(fun);return fun;}};return exports})()"),
kriging: eval("(function(){var exports={};var inputs=[{name:'covFun',description:'minified',type:'function',optional:false},{name:'radius',description:'minified',type:'integer',defaultValue:10,optional:false},{name:'skipInfomed',description:'minified',type:'boolean',defaultValue:true,optional:false},{name:'kernel',description:'minified',type:'ee.Kernel|ee.Array',optional:true},{name:'image',description:'minified',type:'ee.Image',optional:true},{name:'imageCollection',description:'minified',type:'ee.ImageCollection',optional:true},{name:'Return',description:'minified',type:'function|ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'kriging',license:'LGPL-3.0-or-later',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var halfSize=inputDictionary.radius;var dataKernel=inputDictionary.kernel;var X=ee.Array(ee.List.sequence(-halfSize,halfSize,1)).repeat(1,halfSize*2+1)\nvar Y=ee.Array(ee.List.sequence(-halfSize,halfSize,1)).repeat(1,halfSize*2+1).transpose()\nvar covFun=inputDictionary.covFun;var numberOfElement=(halfSize*2+1)*(halfSize*2+1);var dist=ee.Array.cat([X,Y],2);var distK=dist.reshape([-1,1,2]).repeat(1,numberOfElement).subtract(dist.reshape([1,-1,2]).repeat(0,numberOfElement));distK=distK.pow(2).reduce(ee.Reducer.sum(),[2]).sqrt().reshape([(halfSize*2+1)*(halfSize*2+1),(halfSize*2+1)*(halfSize*2+1)]);var K=covFun(distK);K=K.add(ee.Array.identity(numberOfElement)).pad([(numberOfElement+1),(numberOfElement+1)],1).subtract(ee.Array.identity((numberOfElement+1)));var K0=covFun(dist.pow(2).reduce(ee.Reducer.sum(),[2]).sqrt().reshape([-1,1])).pad([numberOfElement+1,0],1);var ImageKc=ee.Image.constant(K);var ImageK0c=ee.Image.constant(K0);var kernel=ee.Kernel.square(halfSize);var ker=ee.Kernel.circle(5).getInfo();if(dataKernel&&internal.typeObject(dataKernel)=='ee.Kernel'){var ker=dataKernel.getInfo().weights.replace(/\\n/g,\",\")\nvar val='['+ker.slice(1,ker.length)+']';dataKernel=ee.Array(JSON.parse(val));}\nvar fun=function(im){var mask=im.mask().neighborhoodToArray({kernel:kernel,defaultValue:0})\nif(dataKernel)\n{mask=mask.multiply(dataKernel);}\nmask=mask.arrayReshape(ee.Array([-1]),1).arrayPad([numberOfElement+1],1);var r=im.unmask(0).neighborhoodToArray({kernel:kernel,defaultValue:0}).arrayReshape(ee.Array([-1]),1).arrayPad([numberOfElement+1],0).arrayMask(mask);mask=mask.arrayReshape(ee.Array([-1,1]),2);var ImageK0=ImageK0c.arrayMask(mask);var dataSize=ImageK0.gt(0).arrayReduce(ee.Reducer.sum(),[0]).arrayGet([0,0]).gt(3);var coef=ImageKc.arrayMask(mask).arrayTranspose().arrayMask(mask).matrixSolve(ImageK0).arrayReshape(ee.Array([-1]),1);var estimate=coef.multiply(r).arrayReduce(ee.Reducer.sum(),[0]).arrayGet([0]).updateMask(dataSize);var variance=coef.multiply(ImageK0.arrayReshape(ee.Array([-1]),1)).arrayReduce(ee.Reducer.sum(),[0]).subtract(covFun(ee.Array([0]))).arrayGet([0]).subtract(coef.arrayGet([-1]).multiply(2)).multiply(-1).updateMask(dataSize);if(inputDictionary.skipInfomed){estimate=estimate.where(im,im);variance=variance.where(im,0);}\nvar reuslt=im.addBands([estimate.rename('estimate'),variance.rename('variance')]);reuslt=reuslt.reproject(im.projection())\nreturn reuslt;}\nif(inputDictionary.image)\nreturn fun(inputDictionary.image);if(inputDictionary.imageCollection)\nreturn inputDictionary.imageCollection.map(fun);return fun;}};return exports})()"),
arrayDTW: eval("(function(){var exports={};var inputs=[{name:'A',description:'minified',type:'ee.Image',defaultValue:null,optional:false},{name:'B',description:'minified',type:'ee.Image',defaultValue:null,optional:false},{name:'iteration',description:'minified',type:'ee.Number|number',defaultValue:100,optional:true},{name:'Return',description:'minified',type:'ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'arrayDTW',license:'LGPL-3.0-or-later',description:'minified',contributors:['Agathe Archidoit','Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var N=inputDictionary.A.arrayLengths();var M=inputDictionary.B.arrayLengths();var Ni=N.arrayGet([0]);var Mi=M.arrayGet([0]);var iteration=ee.Number(inputDictionary.iteration);var infinityValue=ee.Number(1e10);iteration.multiply(iteration).gt(ee.Number(231)).evaluate(function(x){if(x)\nprint(\"Warning : result maybe insconstitant, length(A)*length(B) above 231 can have wrong result\");})\nvar safeResult=Ni.multiply(Mi).lt(iteration.multiply(iteration).min(231)).rename(\"safe\");var arrayA=inputDictionary.A.arrayReshape(N,1);var arrayB=inputDictionary.B.arrayReshape(M,1);var matrixA=arrayA.arrayRepeat(1,Mi).arrayTranspose();var matrixB=arrayB.arrayRepeat(1,Ni);var distance=matrixA.subtract(matrixB).abs();function padPerPixel(im,listDim,value,maxval){var dim=listDim.length;var padded=im.arrayPad(listDim.map(function(){return maxval}),value);for(var i=0;i<dim;i++){padded=padded.arraySlice(i,0,listDim[i]);}\nreturn padded;}\nvar e=padPerPixel(distance.multiply(0),[Mi.add(1),Ni.add(1)],infinityValue,iteration);e=e.subtract(oeel.Image.arrayMatrixUnit(Mi.add(1),Ni.add(1),Mi,Ni).multiply(infinityValue));distance=distance.arrayReshape(ee.Image.cat(M,N,ee.Image.constant(ee.Array([1]))).toArray(0),3)\nfunction one_step(_,e){e=ee.Image(e);return padPerPixel(ee.Image.cat([e.arraySlice(0,1,null).arraySlice(1,0,-1),e.arraySlice(0,1,null).arraySlice(1,1,null),e.arraySlice(0,0,-1).arraySlice(1,1,null)]).toArray(2).arrayReduce(ee.Reducer.min(),[2]).add(distance),[Mi.add(1),Ni.add(1),ee.Image.constant(1)],infinityValue,iteration).subtract(oeel.Image.arrayMatrixUnit({N:Mi.add(1),M:Ni.add(1),I:Mi,J:Ni}).arrayReshape(ee.Image.cat(M.add(1),N.add(1),ee.Image.constant(ee.Array([1]))).toArray(0),3).multiply(infinityValue))}\nvar dtwMatrix=ee.List.sequence(1,iteration.multiply(iteration).min(231)).iterate(one_step,e);return ee.Image(dtwMatrix).arrayGet([0,0,0]).addBands(safeResult);}};return exports})()")}, ImageCollection: {
SavatskyGolayFilter: eval("(function(){var exports={};var inputs=[{name:'collection',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:false},{name:'filter',description:'minified',type:'ee.Filter',defaultValue:null,optional:false},{name:'distanceFunction',description:'minified',type:'function',defaultValue:null,optional:false},{name:'degree',description:'minified',type:'integer',defaultValue:3,optional:false},{name:'bandOfInterest',description:'minified',type:'ee.List|object',defaultValue:['.*'],optional:false},{name:'EstimationCollection',description:'minified',type:'ee.Collection',defaultValue:null,optional:true},{name:'Return',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:true}]\nvar reference={name:'SavatskyGolayTimeFilter',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(!inputDictionary.EstimationCollection){inputDictionary.EstimationCollection=inputDictionary.collection;}\nvar isFeatureCollection=internal.typeObject(inputDictionary.EstimationCollection)=='ee.FeatureCollection';var saveAllJoin=ee.Join.saveAll({matchesKey:'neighbours',measureKey:'distanceError'});var expendSelect=inputDictionary.collection.first().select(inputDictionary.bandOfInterest).bandNames();return ee.ImageCollection(saveAllJoin.apply(inputDictionary.EstimationCollection,inputDictionary.collection.select(expendSelect),inputDictionary.filter)).map(function(im){var imCol=ee.ImageCollection(ee.List(im.get('neighbours')));imCol=imCol.map(function(Nim){var delta=inputDictionary.distanceFunction(Nim,im);var sequenceDegree=Array.apply(0,Array(inputDictionary.degree)).map(function(_,i){return i;}).map(String);var deltaList=[];for(var i=0;i<inputDictionary.degree;i++){deltaList.push(delta.pow(i))}\ndelta=ee.ImageCollection(deltaList).toBands().updateMask(Nim.select([0]).mask());return Nim.addBands(delta);})\nvar matrix=imCol.toArray();var numberOfNeihbours=matrix.arrayLength(0).rename('NoN');matrix=matrix.updateMask(numberOfNeihbours.gte(inputDictionary.degree+2));var dT=matrix.arraySlice(1,-inputDictionary.degree);var boI=matrix.arraySlice(1,0,-inputDictionary.degree);var coef=dT.matrixSolve(boI);var extrapolate=dT.arraySlice(1,1,2).arrayReduce(ee.Reducer.minMax(),[0],1).multiply(ee.Array([[-1,1]])).lt(0).arrayReduce(ee.Reducer.max(),[1],0).arrayGet([0,0]).rename('extrapolate_flag');var generated=coef.arrayFlatten([Array.apply(0,Array(inputDictionary.degree)).map(function(_,i){return i;}).map(function(i){return'd_'+i}),expendSelect]).addBands([extrapolate,numberOfNeihbours]);if(isFeatureCollection)\nreturn generated.copyProperties(im,im.propertyNames());else\nreturn im.addBands(generated);});}};return exports})()"),
fromSingleImage: eval("(function(){var exports={};var inputs=[{name:'args',description:'minified',type:'ee.Image|string|ee.String',optional:false},{name:'Return',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:true}];var reference={name:'example',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(internal.typeObject(inputDictionary.args)!='ee.Image'){inputDictionary.args=ee.Image(inputDictionary.args);}\nvar originalBandNames=ee.String(inputDictionary.args.get('orginalBands')).split(';');var firstBandsName=ee.String(originalBandNames.get(0));var listImagesNames=inputDictionary.args.select(ee.String('im_.*').cat(firstBandsName)).bandNames();listImagesNames=listImagesNames.map(function(name){return ee.String(name).slice(0,firstBandsName.length().add(1).multiply(-1))})\nprint(listImagesNames)\nreturn ee.ImageCollection(listImagesNames.map(function(name){return inputDictionary.args.select(ee.String(name).cat('.*')).rename(originalBandNames).set('system:index',ee.String(name));}));}};return exports})()"),
toArrayPerBandWithMask: eval("(function(){var exports={};var inputs=[{name:'imCol',description:'minified',type:'ee.ImageCollection',optional:false},{name:'Return',description:'minified',type:'ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'toArrayPerBandWithMask',license:'LGPL-3.0-or-later',description:'minified',contributors:['Agathe Archidoit','Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath,oeel){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var unmaskedImCol=inputDictionary.imCol.map(function(im){return im.addBands(im.mask().reduce(ee.Reducer.allNonZero()).rename('mask')).unmask(0,false);})\nvar im=unmaskedImCol.toArrayPerBand();im=im.arrayMask(im.select(\"mask\"));return im.updateMask(im.arrayLength(0).gt(0)).select(im.bandNames().remove('mask'));}};return exports})()"),
medoid: eval("(function(){var exports={};var inputs=[{name:'imageCollection',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:false},{name:'bandSelector',description:'minified',type:'string|ee.String|ee.List|object',defaultValue:'.*',optional:false},{name:'method',description:'minified',type:'string',defaultValue:'euclidean',optional:false},{name:'Return',description:'minified',type:'ee.Image',defaultValue:null,optional:true}]\nvar reference={name:'medoid',license:'LGPL-3.0-or-later',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var imCol=ee.ImageCollection(inputDictionary.imageCollection);var meanCol=imCol.mean();var medCol=imCol.mean();var medoid=imCol.map(function(im){var dist=false;if(inputDictionary.method=='euclidean')\ndist=inputDictionary.imageCollection.map(function(im2){return im2.subtract(im).abs()}).sum().multiply(-1);if(inputDictionary.method=='euclidean')\ndist=meanCol.multiply(2).subtract(im).multiply(im)\nif(inputDictionary.method=='median')\n{var dif=medCol.subtract(im);dist=dif.multiply(dif).multiply(-1);}\nif(!dist)\n{throw'\\''+inputDictionary.method+'\\' is not a valide methode for medoid!'}\nreturn im.addBands(ee.Image(dist).select(inputDictionary.bandSelector).reduce(ee.Reducer.sum()).rename('oeel_medoid'));})\nreturn medoid.qualityMosaic('oeel_medoid').select(imCol.first().bandNames());}};return exports})()"),
OtsuThreshold: eval("(function(){var exports={};var inputs=[{name:'imageCollection',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:false},{name:'selectBand',description:'minified',type:'string|integer',defaultValue:0,optional:false},{name:'mode',description:'minified',type:'string',defaultValue:'sequence',optional:false},{name:'nbThreshold',description:'minified',type:'integer',defaultValue:100,optional:false},{name:'thresholdsCollection',description:'minified',type:'ee.ImageCollection',optional:true},{name:'getCoefCollection',description:'minified',type:'boolean',optional:true},{name:'Return',description:'minified',type:'ee.Image|ee.ImageCollection',defaultValue:null,optional:true}]\nvar reference={name:'OtsuThreshold',license:'MIT',description:\"Compute the Otsu's threshold along a collection\",contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);var colIm=inputDictionary.imageCollection.select([inputDictionary.selectBand]);if(inputDictionary.mode=='sequence'){var minImage=colIm.min();var maxImage=colIm.max();var diff=maxImage.subtract(minImage);var thresholdsCollection=ee.ImageCollection(ee.List.sequence(0,1,null,inputDictionary.nbThreshold).map(function(perc){return diff.multiply(ee.Number(perc)).add(minImage).toFloat();}));}\nelse if(inputDictionary.mode=='percentile'){var thresholdsCollection=ee.ImageCollection(ee.List.sequence(0,100,null,inputDictionary.nbThreshold).map(function(perc){return colIm.reduce(ee.Reducer.percentile([perc]))}));print(thresholdsCollection)}\nelse if(inputDictionary.mode=='explicite'){var thresholdsCollection=imageCollection.collection;}else{throw'select a valide mode';}\nvar scoreCol=thresholdsCollection.map(function(thImage){var prop=colIm.map(function(im){return im.lte(thImage);}).mean();var stdLow=colIm.map(function(im){return im.updateMask(im.lte(thImage));}).reduce(ee.Reducer.stdDev());var stdHig=colIm.map(function(im){return im.updateMask(im.gt(thImage));}).reduce(ee.Reducer.stdDev());var ossuScore=prop.multiply(stdLow).add(ee.Image.constant(1).subtract(prop).multiply(stdHig));return ossuScore.multiply(-1).toFloat().rename('score').addBands(thImage.rename('threshold').toFloat());});if(inputDictionary.getCoefCollection){return scoreCol;}else{return scoreCol.qualityMosaic('score').select('threshold');}}};return exports})()"),
movingWindow: eval("(function(){var exports={};var inputs=[{name:'collection',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:false},{name:'filter',description:'minified',type:'ee.Filter',defaultValue:null,optional:false},{name:'reducer',description:'minified',type:'ee.Reducer|function',defaultValue:ee.Reducer.mean(),optional:false},{name:'copyProperties',description:'minified',type:'boolean',defaultValue:true,optional:false},{name:'estimationCollection',description:'minified',type:'ee.Collection',defaultValue:null,optional:true},{name:'Return',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:true}]\nvar reference={name:'movingWindows',license:'MIT',description:'minified',contributors:['Mathieu Gravey']};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(!inputDictionary.estimationCollection){inputDictionary.estimationCollection=inputDictionary.collection;}\nvar isFeatureCollection=internal.typeObject(inputDictionary.estimationCollection)=='ee.FeatureCollection';var useCustomReducer=internal.typeObject(inputDictionary.reducer)=='function';var saveAllJoin=ee.Join.saveAll({matchesKey:'neighbours',measureKey:'distanceError'});return ee.ImageCollection(saveAllJoin.apply(inputDictionary.estimationCollection,inputDictionary.collection,inputDictionary.filter)).map(function(im){var imCol=ee.ImageCollection(ee.List(im.get('neighbours')));if(useCustomReducer)\nvar finalim=inputDictionary.reducer(imCol);else\nvar finalim=imCol.reduce(inputDictionary.reducer);if(inputDictionary.copyProperties)\nreturn finalim.copyProperties(im,im.propertyNames().remove('neighbours').remove(\"system:footprint\"))\nelse\nreturn finalim;});}};return exports})()"),
enhancingCollection: eval("(function(){var exports={};var inputs=[{name:'collection',description:'minified',type:'ee.ImageCollection',optional:false},{name:'enhancingCollection',description:'minified',type:'ee.ImageCollection',optional:false},{name:'matchingProperty',description:'minified',type:'string',defaultValue:'system:index',optional:false},{name:'customFunction',description:'minified',type:'function',optional:true},{name:'Return',description:'minified',type:'ee.ImageCollection',defaultValue:null,optional:true}]\nvar reference={name:'enhancingCollection',license:'MIT',description:'minified'};exports.createDocumentation=function(){return{inputs:inputs,reference:reference};}\nexports.createFunction=function(internal,relPath){return function(){var inputDictionary=internal.readInputs(Array.prototype.slice.call(arguments,0),inputs,reference,relPath);internal.addRef(reference,relPath);if(inputDictionary.customFunction){var mapFunction=function(img){return inputDictionary.customFunction(ee.Image(img),ee.Image(img.get('matched')));};}else{var mapFunction=function(img){return ee.Image(img).addBands(ee.Image(img.get('matched')),null,true).setMulti({'matched':null});}}\nreturn ee.ImageCollection(ee.Join.saveFirst('matched').apply({primary:inputDictionary.collection,secondary:inputDictionary.enhancingCollection,condition:ee.Filter.equals({leftField:inputDictionary.matchingProperty,rightField:inputDictionary.matchingProperty})}).map(mapFunction));}};return exports})()")},
internal: eval("(function(){var exports={};function convert2Terminals(dict,internal,relativePath,mainlib){var temp={};if(!mainlib){mainlib=temp;}\nfor(var key in dict){if(key=='internal')\ncontinue;var path=relativePath+\".\"+key;if(typeof(dict[key]['createFunction'])=='function'){temp[key]=dict[key].createFunction(internal,path,mainlib);}else{temp[key]=convert2Terminals(dict[key],internal,path,mainlib);}}\nreturn temp;}\nfunction expandTypes(a){var accpetedType=a.split('|');if(accpetedType.indexOf('ee.Collection')>=0){accpetedType.push('ee.FeatureCollection','ee.ImageCollection');}\nif(accpetedType.indexOf('ee.Element')>=0){accpetedType.push('ee.Feature','ee.Image');}\nif(accpetedType.indexOf('integer')>=0){accpetedType.push('number');}\nreturn accpetedType;}\nexports.readInputs=function(args,inputs,algoInfo,relPath){var output={};var arrayInput=true;if(args.length==1&&typeof(args[0])==typeof({})&&(inputs.map(function(x){return x.name}).filter(function(value){return Object.keys(args[0]).indexOf(value)==-1}).length>0||(Object.keys(args[0]).length===0))){output=args[0];arrayInput=false;}\nvar listKeys=Object.keys(output);for(var i=0;i<inputs.length;i++){if(listKeys.indexOf(inputs[i].name)>=0){var localType=exports.typeObject(output[inputs[i].name]);if(expandTypes(inputs[i].type).indexOf(localType)==-1)\n{throw'type for '+inputs[i].name+' should be '+inputs[i].type+', but was '+localType;}}\nelse{if((args.length<=i)||!arrayInput){if(!inputs[i].optional)\nif(inputs[i].defaultValue!='undefined')\noutput[inputs[i].name]=inputs[i].defaultValue;else\nthrow relPath+' require '+inputs[i].name+', but no value or default value provided'}\nelse{if(args[i]!==undefined)\n{output[inputs[i].name]=args[i];var localType=exports.typeObject(output[inputs[i].name]);if(expandTypes(inputs[i].type).indexOf(localType)==-1&&!inputs[i].optional)\n{throw(i+1)+'-th input should be of type for '+inputs[i].type+', but was '+localType;}}}}}\nreturn output;}\nexports.setupLibrary=function(libs,exp){var teminals=convert2Terminals(libs,libs.internal,\"OpenEEL\");teminals.internal=libs;libs.ref=[];libs.internal.addRef=function(ref,path){ref.fullpath=path;libs.ref.push(ref);}\nteminals.refs=function(){return libs.ref;}\nreturn teminals;};function getDoc(dict,relativePath){var temp={};for(var key in dict){if(key=='internal')\ncontinue;var path=relativePath+\".\"+key;if(typeof(dict[key]['createFunction'])=='function'){temp[key]=dict[key].createDocumentation();temp[key].fullPath=path;}else{temp[key]=getDoc(dict[key],path);}}\nreturn temp;}\nexports.getDoc=function(obj){return getDoc(obj,'')}\nexports.getDocumentation=function(libs,exp){return convert2Terminals(libs,\"OpenEEL\");};exports.typeObject=function(a){if(typeof(a)=='object'&&a==null)\nreturn'null';if(typeof(a)=='object'&&String(a).slice(0,3)=='ee.')\n{return String(a).match('ee.*\\\\(')[0].slice(0,-1);}\nelse\nreturn typeof(a);}\nexports.oeeex={sendMessage:function(val){print('OEEex_AddonManager:'+val,'if you can see this message, you should download OEEex the Open Earth Engine extension to unravel its full potential!')}}\nexports.oeeex.confirm={retain:function(theKeyText){exports.oeeex.sendMessage('emoveConfirmRetain:'+theKeyText);},release:function(theKeyText){exports.oeeex.sendMessage('removeConfirmRelease:'+theKeyText);}}\nexports.oeeex.export={image:function(config){exports.oeeex.sendMessage('exportImage:'+JSON.stringify(config));},video:function(config){exports.oeeex.sendMessage('exportVideo:'+JSON.stringify(config));},table:function(config){exports.oeeex.sendMessage('exportTable:'+JSON.stringify(config));}}\nexports.usePrompToCallPython=function(instruction,name){var val=prompt(\"OEEex_Active_AddonPythonCE\",instruction);if(val.answerType==\"error\")\nthrow val.message\nreturn val;};return exports})()")}
//generated automatically the 2024-10-17 20:01:42.431109UTC
exports=libs.internal.setupLibrary(libs);
exports.type="Open Earth Engine Library\nRelease date: 2024-10-17 20:01:42\nPlease refer to the online documentation:\nhttps://www.open-geocomputing.org/OEEL"