publicintterr_max_elevation=22;// maximal offset to consider when looking for vegetation influence
publicintterr_max_elev_terr=2;// maximal offset to consider when looking for terrain of variable elevation
publicdoubleterr_max_elev_chng=0.5;// maximal terrain elevation change from last successfully used
@Deprecated
...
...
@@ -2130,6 +2131,7 @@ min_str_neib_fpn 0.35
gd.addNumericField("Maximal warp",terr_max_warp,5,7,"pix","(1.8) Do not use scenes where distance between vegetation projection exceeds this.");
gd.addNumericField("Max elevation/offset",terr_max_elevation,0,3,"pix","Maximal offset to consider when looking for vegetation influence.");
gd.addNumericField("Max terrain elevation",terr_max_elev_terr,0,3,"pix","Maximal terrain offset to consider when looking for variable-elevation terrain.");
gd.addNumericField("Max elevation cjange",terr_max_elev_chng,5,7,"pix","Maximal terrain elevation change from the previous success.");
gd.addNumericField("(Min influenced scenes)",terr_min_scenes,0,3,"","Deprecated: 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).");
...
...
@@ -2919,6 +2921,7 @@ min_str_neib_fpn 0.35
terr_max_warp=gd.getNextNumber();// double
terr_max_elevation=(int)gd.getNextNumber();// int
terr_max_elev_terr=(int)gd.getNextNumber();// int
terr_max_elev_chng=gd.getNextNumber();// double
terr_min_scenes=(int)gd.getNextNumber();// int
terr_min_samples_scene=(int)gd.getNextNumber();// int
System.out.println("lmaStep(): tried to set terrain elevation to "+new_te+"(current is "+old_te+"), exceeding maximal allowed "+max_elev_terr+" pix.");
System.out.println("lmaStep(): limiting delta["+par_indx_terr_elev+"] to "+delta[par_indx_terr_elev]);
}
}
}
double[]new_vector=parameters_vector.clone();
for(inti=0;i<parameters_vector.length;i++){
new_vector[i]+=scale*delta[i];
...
...
@@ -1395,6 +1746,7 @@ public class VegetationLMA {
@@ -2900,6 +3252,9 @@ public class VegetationLMA {
terrain=terrain_woi[windx]/stw;// /terr_elev_sum_weights[nScene][windx]; // it already combines parameters and constants, divided by terr_elev_sum_weights[nScene][windx]
// Fill in fX for this scene
inty_indx=y_wsrc[nScene][windx];// y_indx is different for threads, no conflict
@@ -5027,6 +5385,7 @@ public class VegetationLMA {
getProperty(imp_pars,"MAX_WARP",max_warp),// final double max_warp, // 1.8 - do not use scenes where distance between vegetation projection exceeds this
getProperty(imp_pars,"MAX_ELEVATION",max_elevation),// final int max_offset, // maximal "elevation" to consider
getProperty(imp_pars,"MAX_ELEV_TERR",max_elev_terr),// final int max_elev_terr, // maximal terrain "elevation" to consider
getProperty(imp_pars,"MAX_ELEV_TERR_CHG",max_elev_terr_chg),// final double max_elev_terr_chg, // 0.5 maximal terrain elevation change from last successfully used
getProperty(imp_pars,"ELEVATION_RADIUS",elevation_radius),// final double elevation_radius, // Radius of elevation/vegetation influence.
valid_scene_pix,// final boolean [] valid_scene_pix, valid_scene_pix_in, // may have nulls or be shorter (do not update "overlaid")
getProperty(imp_pars,"HIGHFREQ_WEIGHT",hifreq_weight),// final double hifreq_weight, // 22.5 0 - do not use high-freq. Relative weight of laplacian components
...
...
@@ -5083,12 +5442,15 @@ public class VegetationLMA {
getProperty(imp_pars,"TTOP_REM_RAD",ttop_rem_rad),// final double ttop_rem_rad,
getProperty(imp_pars,"BOOST_PARALLAX",boost_parallax),// final double boost_parallax, // increase weight of scene with maximal parallax relative to the reference scene
getProperty(imp_pars,"MAX_PARALLAX",max_parallax),// final double max_parallax, // do not consider maximal parallax above this (consider it a glitch)
getProperty(imp_pars,"MAX_PARALLAX",max_parallax),// final double max_parallax, // do not consider maximal parallax above this (consider it a glitch)
debugLevel,// final int debugLevel);
debug_path,// final String debug_path,
debug_save_improved,// final boolean debug_save_improved, // Save debug image after successful LMA step.");
debug_save_worsened);// final boolean debug_save_worsened) // Save debug image after unsuccessful LMA step.");