//VERSION=3 (auto-converted from 2)
var degToRad = Math . PI / 180 ;
function evaluatePixelOrig ( samples ) {
var sample = samples [ 0 ];
var b03_norm = normalize ( sample . B03 , 0 , 0.253061520471542 );
var b04_norm = normalize ( sample . B04 , 0 , 0.290393577911328 );
var b05_norm = normalize ( sample . B05 , 0 , 0.305398915248555 );
var b06_norm = normalize ( sample . B06 , 0.006637972542253 , 0.608900395797889 );
var b07_norm = normalize ( sample . B07 , 0.013972727018939 , 0.753827384322927 );
var b8a_norm = normalize ( sample . B8A , 0.026690138082061 , 0.782011770669178 );
var b11_norm = normalize ( sample . B11 , 0.016388074192258 , 0.493761397883092 );
var b12_norm = normalize ( sample . B12 , 0 , 0.493025984460231 );
var viewZen_norm = normalize ( Math . cos ( sample . viewZenithMean * degToRad ), 0.918595400582046 , 1 );
var sunZen_norm = normalize ( Math . cos ( sample . sunZenithAngles * degToRad ), 0.342022871159208 , 0.936206429175402 );
var relAzim_norm = Math . cos (( sample . sunAzimuthAngles - sample . viewAzimuthMean ) * degToRad )
var n1L = neuron1LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n2L = neuron2LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n3L = neuron3LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n4L = neuron4LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n5L = neuron5LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var l2L = layer2LAI ( n1L , n2L , n3L , n4L , n5L );
var lai = denormalize ( l2L , 0.000319182538301 , 14.4675094548151 );
var n1C = neuron1Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n2C = neuron2Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n3C = neuron3Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n4C = neuron4Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var n5C = neuron5Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm );
var l2C = layer2Cab ( n1C , n2C , n3C , n4C , n5C );
var cab = denormalize ( l2C , 0.007426692959872 , 873.908222110306 );
var ccc = lai * cab ;
return {
default : [ ccc / 900 ]
}
}
function neuron1LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 4.96238030555279
- 0.023406878966470 * b03_norm
+ 0.921655164636366 * b04_norm
+ 0.135576544080099 * b05_norm
- 1.938331472397950 * b06_norm
- 3.342495816122680 * b07_norm
+ 0.902277648009576 * b8a_norm
+ 0.205363538258614 * b11_norm
- 0.040607844721716 * b12_norm
- 0.083196409727092 * viewZen_norm
+ 0.260029270773809 * sunZen_norm
+ 0.284761567218845 * relAzim_norm ;
return tansig ( sum );
}
function neuron2LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 1.416008443981500
- 0.132555480856684 * b03_norm
- 0.139574837333540 * b04_norm
- 1.014606016898920 * b05_norm
- 1.330890038649270 * b06_norm
+ 0.031730624503341 * b07_norm
- 1.433583541317050 * b8a_norm
- 0.959637898574699 * b11_norm
+ 1.133115706551000 * b12_norm
+ 0.216603876541632 * viewZen_norm
+ 0.410652303762839 * sunZen_norm
+ 0.064760155543506 * relAzim_norm ;
return tansig ( sum );
}
function neuron3LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 1.075897047213310
+ 0.086015977724868 * b03_norm
+ 0.616648776881434 * b04_norm
+ 0.678003876446556 * b05_norm
+ 0.141102398644968 * b06_norm
- 0.096682206883546 * b07_norm
- 1.128832638862200 * b8a_norm
+ 0.302189102741375 * b11_norm
+ 0.434494937299725 * b12_norm
- 0.021903699490589 * viewZen_norm
- 0.228492476802263 * sunZen_norm
- 0.039460537589826 * relAzim_norm ;
return tansig ( sum );
}
function neuron4LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 1.533988264655420
- 0.109366593670404 * b03_norm
- 0.071046262972729 * b04_norm
+ 0.064582411478320 * b05_norm
+ 2.906325236823160 * b06_norm
- 0.673873108979163 * b07_norm
- 3.838051868280840 * b8a_norm
+ 1.695979344531530 * b11_norm
+ 0.046950296081713 * b12_norm
- 0.049709652688365 * viewZen_norm
+ 0.021829545430994 * sunZen_norm
+ 0.057483827104091 * relAzim_norm ;
return tansig ( sum );
}
function neuron5LAI ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 3.024115930757230
- 0.089939416159969 * b03_norm
+ 0.175395483106147 * b04_norm
- 0.081847329172620 * b05_norm
+ 2.219895367487790 * b06_norm
+ 1.713873975136850 * b07_norm
+ 0.713069186099534 * b8a_norm
+ 0.138970813499201 * b11_norm
- 0.060771761518025 * b12_norm
+ 0.124263341255473 * viewZen_norm
+ 0.210086140404351 * sunZen_norm
- 0.183878138700341 * relAzim_norm ;
return tansig ( sum );
}
function layer2LAI ( neuron1 , neuron2 , neuron3 , neuron4 , neuron5 ) {
var sum =
+ 1.096963107077220
- 1.500135489728730 * neuron1
- 0.096283269121503 * neuron2
- 0.194935930577094 * neuron3
- 0.352305895755591 * neuron4
+ 0.075107415847473 * neuron5 ;
return sum ;
}
function neuron1Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
4.242299670155190
+ 0.400396555256580 * b03_norm
+ 0.607936279259404 * b04_norm
+ 0.137468650780226 * b05_norm
- 2.955866573461640 * b06_norm
- 3.186746687729570 * b07_norm
+ 2.206800751246430 * b8a_norm
- 0.313784336139636 * b11_norm
+ 0.256063547510639 * b12_norm
- 0.071613219805105 * viewZen_norm
+ 0.510113504210111 * sunZen_norm
+ 0.142813982138661 * relAzim_norm ;
return tansig ( sum );
}
function neuron2Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
- 0.259569088225796
- 0.250781102414872 * b03_norm
+ 0.439086302920381 * b04_norm
- 1.160590937522300 * b05_norm
- 1.861935250269610 * b06_norm
+ 0.981359868451638 * b07_norm
+ 1.634230834254840 * b8a_norm
- 0.872527934645577 * b11_norm
+ 0.448240475035072 * b12_norm
+ 0.037078083501217 * viewZen_norm
+ 0.030044189670404 * sunZen_norm
+ 0.005956686619403 * relAzim_norm ;
return tansig ( sum );
}
function neuron3Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 3.130392627338360
+ 0.552080132568747 * b03_norm
- 0.502919673166901 * b04_norm
+ 6.105041924966230 * b05_norm
- 1.294386119140800 * b06_norm
- 1.059956388352800 * b07_norm
- 1.394092902418820 * b8a_norm
+ 0.324752732710706 * b11_norm
- 1.758871822827680 * b12_norm
- 0.036663679860328 * viewZen_norm
- 0.183105291400739 * sunZen_norm
- 0.038145312117381 * relAzim_norm ;
return tansig ( sum );
}
function neuron4Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 0.774423577181620
+ 0.211591184882422 * b03_norm
- 0.248788896074327 * b04_norm
+ 0.887151598039092 * b05_norm
+ 1.143675895571410 * b06_norm
- 0.753968830338323 * b07_norm
- 1.185456953076760 * b8a_norm
+ 0.541897860471577 * b11_norm
- 0.252685834607768 * b12_norm
- 0.023414901078143 * viewZen_norm
- 0.046022503549557 * sunZen_norm
- 0.006570284080657 * relAzim_norm ;
return tansig ( sum );
}
function neuron5Cab ( b03_norm , b04_norm , b05_norm , b06_norm , b07_norm , b8a_norm , b11_norm , b12_norm , viewZen_norm , sunZen_norm , relAzim_norm ) {
var sum =
+ 2.584276648534610
+ 0.254790234231378 * b03_norm
- 0.724968611431065 * b04_norm
+ 0.731872806026834 * b05_norm
+ 2.303453821021270 * b06_norm
- 0.849907966921912 * b07_norm
- 6.425315500537270 * b8a_norm
+ 2.238844558459030 * b11_norm
- 0.199937574297990 * b12_norm
+ 0.097303331714567 * viewZen_norm
+ 0.334528254938326 * sunZen_norm
+ 0.113075306591838 * relAzim_norm ;
return tansig ( sum );
}
function layer2Cab ( neuron1 , neuron2 , neuron3 , neuron4 , neuron5 ) {
var sum =
+ 0.463426463933822
- 0.352760040599190 * neuron1
- 0.603407399151276 * neuron2
+ 0.135099379384275 * neuron3
- 1.735673123851930 * neuron4
- 0.147546813318256 * neuron5 ;
return sum ;
}
function normalize ( unnormalized , min , max ) {
return 2 * ( unnormalized - min ) / ( max - min ) - 1 ;
}
function denormalize ( normalized , min , max ) {
return 0.5 * ( normalized + 1 ) * ( max - min ) + min ;
}
function tansig ( input ) {
return 2 / ( 1 + Math . exp ( - 2 * input )) - 1 ;
}
function setup () {
return {
input : [{
bands : [
" B03 " ,
" B04 " ,
" B05 " ,
" B06 " ,
" B07 " ,
" B8A " ,
" B11 " ,
" B12 " ,
" viewZenithMean " ,
" viewAzimuthMean " ,
" sunZenithAngles " ,
" sunAzimuthAngles "
]
}],
output : [
{
id : " default " ,
sampleType : " AUTO " ,
bands : 1
}
]
}
}
function evaluatePixel ( sample , scene , metadata , customData , outputMetadata ) {
const result = evaluatePixelOrig ([ sample ], [ scene ], metadata , customData , outputMetadata );
return result [ Object . keys ( result )[ 0 ]];
}