publicdoubleterr_alpha_lpf=2.5;// pull to average of 4 neighbors
publicdoubleterr_alpha_lpf=2.5;// pull to average of 4 neighbors
...
@@ -775,6 +777,7 @@ min_str_neib_fpn 0.35
...
@@ -775,6 +777,7 @@ min_str_neib_fpn 0.35
publicdoubleterr_veget_lpf=0.2;// pull vegetation to average of 4 neighbors (very small - maybe not needed)
publicdoubleterr_veget_lpf=0.2;// pull vegetation to average of 4 neighbors (very small - maybe not needed)
publicdoubleterr_terr_pull0=0.05;// pull terrain to zero (makes sense with UM
publicdoubleterr_terr_pull0=0.05;// pull terrain to zero (makes sense with UM
publicdoubleterr_veget_pull0=0.05;// pull vegetation to zero (makes sense with UM
publicdoubleterr_veget_pull0=0.05;// pull vegetation to zero (makes sense with UM
publicdoubleterr_scenes_pull0=1.0;// pull average scene offset to zero
// LMA parameters
// LMA parameters
publicdoubleterr_boost_parallax=3.0;//
publicdoubleterr_boost_parallax=3.0;//
...
@@ -2013,15 +2016,19 @@ min_str_neib_fpn 0.35
...
@@ -2013,15 +2016,19 @@ min_str_neib_fpn 0.35
gd.addNumericField("Min influenced scenes",terr_min_scenes,0,3,"","Minimal number of scenes (inside woi) vegetation pixel must influence.");
gd.addNumericField("Min influenced scenes",terr_min_scenes,0,3,"","Minimal number of scenes (inside woi) vegetation pixel must influence.");
gd.addNumericField("Minimal samples/scene",terr_min_samples_scene,0,3,"","Minimal samples per scene used for fitting (skip scene if less).");
gd.addNumericField("Minimal samples/scene",terr_min_samples_scene,0,3,"","Minimal samples per scene used for fitting (skip scene if less).");
gd.addNumericField("Minimum scenes used",terr_min_total_scenes,0,3,"","Minimal total number of scenes used (skip segment if less).");
gd.addNumericField("Minimum scenes used",terr_min_total_scenes,0,3,"","Minimal total number of scenes used (skip segment if less).");
gd.addNumericField("Minimal pixels fitted",terr_min_pixels,0,3,"","Minimal number of terrain and vegetation pixels used for fitting in this segment(skip segment if less).");
gd.addNumericField("Minimal pixels fitted",terr_min_pixels,0,3,"","Minimal number of terrain and vegetation pixels used for fitting in this segment(skip segment if less).");
gd.addCheckbox("Start by temperature",terr_warm_veget,"Start with vegetation warmer than terrain.");
gd.addCheckbox("Start by temperature",terr_warm_veget,"Start with vegetation warmer than terrain.");
gd.addNumericField("Min. split fraction",terr_min_split_frac,5,7,"","minimal modality fraction to use split by temperature (otherwise use default alpha).");
gd.addNumericField("Min. split fraction",terr_min_split_frac,5,7,"","minimal modality fraction to use split by temperature (otherwise use default alpha).");
gd.addNumericField("Vegetation warmer",terr_difference,5,7,"","Pull vegetation to be this warmer.");
gd.addNumericField("Vegetation warmer",terr_difference,5,7,"","Pull vegetation to be this warmer.");
gd.addNumericField("Pull terrain cold",terr_pull_cold,5,7,"","Pull vegetations to warm, terrain to cold.");
gd.addNumericField("Pull terrain cold",terr_pull_cold,5,7,"","Pull vegetations to warm, terrain to cold.");
alpha_scale_avg,// final double alpha_scale_avg, // = 1.2; // scale average alpha (around 0.5) when pulling to it
alpha_push,// final double alpha_push, // 5.0; // push from alpha==0.5
alpha_push_neutral,// double alpha_push_neutral = 0.8; // alpha point from which push (closer to opaque)
alpha_push_center,// final double alpha_push_center,// 1.5; // weight of center alpha pixel relative to each of the 4 ortho ones
alpha_en_holes,// final boolean alpha_en_holes, // Search for small semi-transparent holes, disable diffusion of local alpha minimums
alpha_mm_hole,// double alpha_mm_hole = 0.1; // NaN to disable. Local "almost minimum" (lower than this fraction between min and max neighbor) is not subject to alpha_lpf
terr_lpf,// final double terr_lpf, // pull terrain to average of 4 neighbors (very small)
veget_lpf,// final double veget_lpf, // pull vegetation to average of 4 neighbors (very small - maybe not needed)
terr_pull0,// final double terr_pull0, // pull terrain to zero (makes sense with UM
veget_pull0,// final double veget_pull0, // pull vegetation to zero (makes sense with UM
boost_parallax,// final double boost_parallax, // increase weight of scene with maximal parallax relative to the reference scene
max_parallax,//final double max_parallax, // do not consider maximal parallax above this (consider it a glitch)
um_sigma,// final double um_sigma, // just use in debug image names
(um_en?um_weight:0.0),// final double um_weight,
par_path,// final String parameters_read_path,
debugLevel);// final int debugLevel);
if(num_samples<=0){
System.out.println("Insufficient data in this segment, skipping it.");
continue;
}
if(save_par_files&&skip_existing_woi){// check that segment already exists
doublealpha_loss=clt_parameters.imp.terr_alpha_loss;//100.0; // 10.0; /// 100.0; // 10.0; // 10000.0; // 1000.0; // 100.; // 10.0; // quadratic loss when alpha reaches -1.0 or 2.0
doublealpha_loss=clt_parameters.imp.terr_alpha_loss;//100.0; // 10.0; /// 100.0; // 10.0; // 10000.0; // 1000.0; // 100.; // 10.0; // quadratic loss when alpha reaches -1.0 or 2.0
doublealpha_offset=clt_parameters.imp.terr_alpha_offset;// 0.0; // 0.02; // 0.03; // if >0, start losses above 0.0 and below 1.0;
doublealpha_offset=clt_parameters.imp.terr_alpha_offset;// 0.0; // 0.02; // 0.03; // if >0, start losses above 0.0 and below 1.0;
...
@@ -1680,6 +1409,7 @@ public class VegetationModel {
...
@@ -1680,6 +1409,7 @@ public class VegetationModel {
doubleveget_lpf=clt_parameters.imp.terr_veget_lpf;// 0.2; //0.15; /// 0.2; //// 0.01; /// 0.1; // pull vegetation to average of 4 neighbors (very small - maybe not needed)
doubleveget_lpf=clt_parameters.imp.terr_veget_lpf;// 0.2; //0.15; /// 0.2; //// 0.01; /// 0.1; // pull vegetation to average of 4 neighbors (very small - maybe not needed)
doubleterr_pull0=clt_parameters.imp.terr_terr_pull0;// 0.05; //0.03; ////// 0.05; ///// 0.1; //// 0.01; /// 0.2; /// 0.1; //pull terrain to zero (makes sense with UM
doubleterr_pull0=clt_parameters.imp.terr_terr_pull0;// 0.05; //0.03; ////// 0.05; ///// 0.1; //// 0.01; /// 0.2; /// 0.1; //pull terrain to zero (makes sense with UM
doubleveget_pull0=clt_parameters.imp.terr_veget_pull0;// 0.05; //0.1; // 0.03; ////// 0.05; ///// 0.1; //// 0.01; /// 0.1; // pull vegetation to zero (makes sense with UM
doubleveget_pull0=clt_parameters.imp.terr_veget_pull0;// 0.05; //0.1; // 0.03; ////// 0.05; ///// 0.1; //// 0.01; /// 0.1; // pull vegetation to zero (makes sense with UM