Commit f2072077 authored by Andrey Filippov's avatar Andrey Filippov

semi-working terrain elevation

parent 03ff002c
...@@ -762,13 +762,12 @@ min_str_neib_fpn 0.35 ...@@ -762,13 +762,12 @@ min_str_neib_fpn 0.35
public boolean terr_fit_alpha = true; // adjust vegetation alpha pixels public boolean terr_fit_alpha = true; // adjust vegetation alpha pixels
public boolean terr_fit_scenes = true; // adjust scene offsets (start from 0 always?) public boolean terr_fit_scenes = true; // adjust scene offsets (start from 0 always?)
public boolean terr_fit_elevations = false; // adjust elevation pixels (not yet implemented) public boolean terr_fit_elevations = false; // adjust elevation pixels (not yet implemented)
// public boolean [][] terr_fits = {{true},{true},{true},{false},{true}}; public boolean terr_fit_terr_elev = false; // adjust terrain elevation (common, maybe add per-pixel later)
// public boolean [] terr_fit_disable = new boolean [VegetationLMA.TVAO_TYPES]; public boolean [][] terr_fits_disable = {{false},{false},{false},{true,false,true},{false},{false}};
// public boolean [][] terr_fits_disable = new boolean [VegetationLMA.TVAO_TYPES][1];
public boolean [][] terr_fits_disable = {{false},{false},{false},{true,false,true},{false}};
public double terr_max_warp = 1.8; public double terr_max_warp = 1.8;
public int terr_max_elevation = 22; // maximal offset to consider when looking for vegetation influence public int terr_max_elevation = 22; // maximal offset to consider when looking for vegetation influence
public int terr_max_elev_terr = 2; // maximal offset to consider when looking for terrain of variable elevation
@Deprecated @Deprecated
...@@ -2119,15 +2118,18 @@ min_str_neib_fpn 0.35 ...@@ -2119,15 +2118,18 @@ min_str_neib_fpn 0.35
gd.addCheckbox ("Adjust terrain", terr_fit_terr, "Adjust terrain pixels."); gd.addCheckbox ("Adjust terrain", terr_fit_terr, "Adjust terrain pixels.");
gd.addCheckbox ("Adjust vegetation", terr_fit_veget, "Adjust vegetation pixels."); gd.addCheckbox ("Adjust vegetation", terr_fit_veget, "Adjust vegetation pixels.");
gd.addCheckbox ("Adjust alpha", terr_fit_alpha, "Adjust vegetation alpha pixels."); gd.addCheckbox ("Adjust alpha", terr_fit_alpha, "Adjust vegetation alpha pixels.");
gd.addCheckbox ("Adjust scene offsets", terr_fit_scenes, "Adjust scene offsets (start from 0 always?).");
gd.addCheckbox ("Adjust elevation", terr_fit_elevations,"Adjust elevation pixels."); gd.addCheckbox ("Adjust elevation", terr_fit_elevations,"Adjust elevation pixels.");
gd.addCheckbox ("Adjust terrain elevation",terr_fit_terr_elev,"Adjust terrain elevation common.");
gd.addCheckbox ("Adjust scene offsets", terr_fit_scenes, "Adjust scene offsets (start from 0 always?).");
for (int i = 0; i < terr_fits_disable.length; i++) { for (int i = 0; i < terr_fits_disable.length; i++) {
gd.addStringField ("Skip "+VegetationLMA.TVAO_NAMES[i], booleansToString(terr_fits_disable[i],2), 40, gd.addStringField ("Skip "+VegetationLMA.TVAO_NAMES[i], booleansToString(terr_fits_disable[i],2), 40,
"Skip adjustment of "+VegetationLMA.TVAO_NAMES[i]+". Use comma/space separated list of true/false, 1/0 or +/-." ); "Skip adjustment of "+VegetationLMA.TVAO_NAMES[i]+". Use comma/space separated list of true/false, 1/0 or +/-." );
} }
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("Maximal warp", terr_max_warp, 5,7,"pix", "(1.8) Do not use scenes where distance between vegetation projection exceeds this.");
gd.addNumericField("Min elevation/offset", terr_max_elevation, 0,3,"pix","Maximal offset to consider when looking for vegetation influence."); 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("(Min influenced scenes)",terr_min_scenes, 0,3, "", "Deprecated: Minimal number of scenes (inside woi) vegetation pixel must influence."); 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)."); gd.addNumericField("Minimal samples/scene",terr_min_samples_scene, 0,3,"","Minimal samples per scene used for fitting (skip scene if less).");
...@@ -2908,13 +2910,15 @@ min_str_neib_fpn 0.35 ...@@ -2908,13 +2910,15 @@ min_str_neib_fpn 0.35
terr_fit_terr = gd.getNextBoolean();// boolean terr_fit_terr = gd.getNextBoolean();// boolean
terr_fit_veget = gd.getNextBoolean();// boolean terr_fit_veget = gd.getNextBoolean();// boolean
terr_fit_alpha = gd.getNextBoolean();// boolean terr_fit_alpha = gd.getNextBoolean();// boolean
terr_fit_scenes = gd.getNextBoolean();// boolean
terr_fit_elevations = gd.getNextBoolean();// boolean terr_fit_elevations = gd.getNextBoolean();// boolean
terr_fit_terr_elev = gd.getNextBoolean();// boolean
terr_fit_scenes = gd.getNextBoolean();// boolean
for (int i = 0; i < terr_fits_disable.length; i++) { for (int i = 0; i < terr_fits_disable.length; i++) {
terr_fits_disable[i] = StringToBooleans(gd.getNextString());// booleans terr_fits_disable[i] = StringToBooleans(gd.getNextString());// booleans
} }
terr_max_warp = gd.getNextNumber();// double terr_max_warp = gd.getNextNumber();// double
terr_max_elevation = (int) gd.getNextNumber();// int terr_max_elevation = (int) gd.getNextNumber();// int
terr_max_elev_terr = (int) gd.getNextNumber();// int
terr_min_scenes = (int) gd.getNextNumber();// int terr_min_scenes = (int) gd.getNextNumber();// int
terr_min_samples_scene=(int) gd.getNextNumber();// int terr_min_samples_scene=(int) gd.getNextNumber();// int
...@@ -3653,14 +3657,17 @@ min_str_neib_fpn 0.35 ...@@ -3653,14 +3657,17 @@ min_str_neib_fpn 0.35
properties.setProperty(prefix+"terr_fit_terr", terr_fit_terr+""); // boolean properties.setProperty(prefix+"terr_fit_terr", terr_fit_terr+""); // boolean
properties.setProperty(prefix+"terr_fit_veget", terr_fit_veget+""); // boolean properties.setProperty(prefix+"terr_fit_veget", terr_fit_veget+""); // boolean
properties.setProperty(prefix+"terr_fit_alpha", terr_fit_alpha+""); // boolean properties.setProperty(prefix+"terr_fit_alpha", terr_fit_alpha+""); // boolean
properties.setProperty(prefix+"terr_fit_scenes", terr_fit_scenes+""); // boolean
properties.setProperty(prefix+"terr_fit_elevations", terr_fit_elevations+""); // boolean properties.setProperty(prefix+"terr_fit_elevations", terr_fit_elevations+""); // boolean
properties.setProperty(prefix+"terr_fit_terr_elev", terr_fit_terr_elev+""); // boolean
properties.setProperty(prefix+"terr_fit_scenes", terr_fit_scenes+""); // boolean
for (int i = 0; i < terr_fits_disable.length; i++) { for (int i = 0; i < terr_fits_disable.length; i++) {
String prop_name = prefix+"terr_fits_disable_"+VegetationLMA.TVAO_NAMES[i]; String prop_name = prefix+"terr_fits_disable_"+VegetationLMA.TVAO_NAMES[i];
properties.setProperty(prop_name, booleansToString(terr_fits_disable[i],2)); // boolean properties.setProperty(prop_name, booleansToString(terr_fits_disable[i],2)); // boolean
} }
properties.setProperty(prefix+"terr_max_warp", terr_max_warp+""); // double properties.setProperty(prefix+"terr_max_warp", terr_max_warp+""); // double
properties.setProperty(prefix+"terr_max_elevation", terr_max_elevation+""); // int properties.setProperty(prefix+"terr_max_elevation", terr_max_elevation+""); // int
properties.setProperty(prefix+"terr_max_elev_terr", terr_max_elev_terr+""); // int
properties.setProperty(prefix+"terr_min_scenes", terr_min_scenes+""); // int properties.setProperty(prefix+"terr_min_scenes", terr_min_scenes+""); // int
properties.setProperty(prefix+"terr_min_samples_scene", terr_min_samples_scene+""); // int properties.setProperty(prefix+"terr_min_samples_scene", terr_min_samples_scene+""); // int
properties.setProperty(prefix+"terr_min_total_scenes", terr_min_total_scenes+""); // int properties.setProperty(prefix+"terr_min_total_scenes", terr_min_total_scenes+""); // int
...@@ -4416,8 +4423,9 @@ min_str_neib_fpn 0.35 ...@@ -4416,8 +4423,9 @@ min_str_neib_fpn 0.35
if (properties.getProperty(prefix+"terr_fit_terr")!= null) terr_fit_terr=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_terr")); if (properties.getProperty(prefix+"terr_fit_terr")!= null) terr_fit_terr=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_terr"));
if (properties.getProperty(prefix+"terr_fit_veget")!= null) terr_fit_veget=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_veget")); if (properties.getProperty(prefix+"terr_fit_veget")!= null) terr_fit_veget=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_veget"));
if (properties.getProperty(prefix+"terr_fit_alpha")!= null) terr_fit_alpha=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_alpha")); if (properties.getProperty(prefix+"terr_fit_alpha")!= null) terr_fit_alpha=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_alpha"));
if (properties.getProperty(prefix+"terr_fit_scenes")!= null) terr_fit_scenes=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_scenes"));
if (properties.getProperty(prefix+"terr_fit_elevations")!= null) terr_fit_elevations=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_elevations")); if (properties.getProperty(prefix+"terr_fit_elevations")!= null) terr_fit_elevations=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_elevations"));
if (properties.getProperty(prefix+"terr_fit_terr_elev")!= null) terr_fit_terr_elev=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_terr_elev"));
if (properties.getProperty(prefix+"terr_fit_scenes")!= null) terr_fit_scenes=Boolean.parseBoolean(properties.getProperty(prefix+"terr_fit_scenes"));
for (int i = 0; i < terr_fits_disable.length; i++) { for (int i = 0; i < terr_fits_disable.length; i++) {
String prop_name_old = prefix+"terr_fit_disable_"+VegetationLMA.TVAO_NAMES[i]; String prop_name_old = prefix+"terr_fit_disable_"+VegetationLMA.TVAO_NAMES[i];
if (properties.getProperty(prop_name_old)!=null) terr_fits_disable[i]= StringToBooleans(properties.getProperty(prop_name_old));// booleans if (properties.getProperty(prop_name_old)!=null) terr_fits_disable[i]= StringToBooleans(properties.getProperty(prop_name_old));// booleans
...@@ -4426,6 +4434,7 @@ min_str_neib_fpn 0.35 ...@@ -4426,6 +4434,7 @@ min_str_neib_fpn 0.35
} }
if (properties.getProperty(prefix+"terr_max_warp")!= null) terr_max_warp=Double.parseDouble(properties.getProperty(prefix+"terr_max_warp")); if (properties.getProperty(prefix+"terr_max_warp")!= null) terr_max_warp=Double.parseDouble(properties.getProperty(prefix+"terr_max_warp"));
if (properties.getProperty(prefix+"terr_max_elevation")!= null) terr_max_elevation=Integer.parseInt(properties.getProperty(prefix+"terr_max_elevation")); if (properties.getProperty(prefix+"terr_max_elevation")!= null) terr_max_elevation=Integer.parseInt(properties.getProperty(prefix+"terr_max_elevation"));
if (properties.getProperty(prefix+"terr_max_elev_terr")!= null) terr_max_elev_terr=Integer.parseInt(properties.getProperty(prefix+"terr_max_elev_terr"));
if (properties.getProperty(prefix+"terr_min_scenes")!= null) terr_min_scenes=Integer.parseInt(properties.getProperty(prefix+"terr_min_scenes")); if (properties.getProperty(prefix+"terr_min_scenes")!= null) terr_min_scenes=Integer.parseInt(properties.getProperty(prefix+"terr_min_scenes"));
if (properties.getProperty(prefix+"terr_min_samples_scene")!= null) terr_min_samples_scene=Integer.parseInt(properties.getProperty(prefix+"terr_min_samples_scene")); if (properties.getProperty(prefix+"terr_min_samples_scene")!= null) terr_min_samples_scene=Integer.parseInt(properties.getProperty(prefix+"terr_min_samples_scene"));
if (properties.getProperty(prefix+"terr_min_total_scenes")!= null) terr_min_total_scenes=Integer.parseInt(properties.getProperty(prefix+"terr_min_total_scenes")); if (properties.getProperty(prefix+"terr_min_total_scenes")!= null) terr_min_total_scenes=Integer.parseInt(properties.getProperty(prefix+"terr_min_total_scenes"));
...@@ -5153,13 +5162,15 @@ min_str_neib_fpn 0.35 ...@@ -5153,13 +5162,15 @@ min_str_neib_fpn 0.35
imp.terr_fit_terr = this.terr_fit_terr; imp.terr_fit_terr = this.terr_fit_terr;
imp.terr_fit_veget = this.terr_fit_veget; imp.terr_fit_veget = this.terr_fit_veget;
imp.terr_fit_alpha = this.terr_fit_alpha; imp.terr_fit_alpha = this.terr_fit_alpha;
imp.terr_fit_scenes = this.terr_fit_scenes;
imp.terr_fit_elevations = this.terr_fit_elevations; imp.terr_fit_elevations = this.terr_fit_elevations;
imp.terr_fit_terr_elev = this.terr_fit_terr_elev;
imp.terr_fit_scenes = this.terr_fit_scenes;
for (int i = 0; i < terr_fits_disable.length; i++) { for (int i = 0; i < terr_fits_disable.length; i++) {
imp.terr_fits_disable[i] = this.terr_fits_disable[i].clone(); imp.terr_fits_disable[i] = this.terr_fits_disable[i].clone();
} }
imp.terr_max_warp = this.terr_max_warp; imp.terr_max_warp = this.terr_max_warp;
imp.terr_max_elevation = this.terr_max_elevation; imp.terr_max_elevation = this.terr_max_elevation;
imp.terr_max_elev_terr = this.terr_max_elev_terr;
imp.terr_min_scenes = this.terr_min_scenes; imp.terr_min_scenes = this.terr_min_scenes;
imp.terr_min_samples_scene = this.terr_min_samples_scene; imp.terr_min_samples_scene = this.terr_min_samples_scene;
imp.terr_min_total_scenes = this.terr_min_total_scenes; imp.terr_min_total_scenes = this.terr_min_total_scenes;
...@@ -5363,7 +5374,9 @@ min_str_neib_fpn 0.35 ...@@ -5363,7 +5374,9 @@ min_str_neib_fpn 0.35
} }
} }
public static String booleansToString (boolean [] data, int mode) { // 0 : true/false, 1: 0/1, 2: +/- public static String booleansToString (boolean [] data, int mode) { // 0 : true/false, 1: 0/1, 2: +/-, negative - skip separators (", ")
boolean use_sep = mode >= 0;
mode = Math.abs(mode);
String s = ""; String s = "";
for (int i = 0; i < data.length; i++) { for (int i = 0; i < data.length; i++) {
switch (mode) { switch (mode) {
...@@ -5372,7 +5385,7 @@ min_str_neib_fpn 0.35 ...@@ -5372,7 +5385,7 @@ min_str_neib_fpn 0.35
case 2: s += data[i] ? "+":"-"; break; case 2: s += data[i] ? "+":"-"; break;
default: s += data[i];// true/false default: s += data[i];// true/false
} }
if (i < (data.length - 1)) { if (use_sep && (i < (data.length - 1))) {
s+= ", "; s+= ", ";
} }
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1488,7 +1488,8 @@ public class VegetationModel { ...@@ -1488,7 +1488,8 @@ public class VegetationModel {
boolean skip_existing_woi = clt_parameters.imp.terr_skip_exist; // skip existing woi/parameters, already saved. boolean skip_existing_woi = clt_parameters.imp.terr_skip_exist; // skip existing woi/parameters, already saved.
boolean continue_woi = clt_parameters.imp.terr_continue; // false; boolean continue_woi = clt_parameters.imp.terr_continue; // false;
double max_warp = clt_parameters.imp.terr_max_warp; // 1.8 - do not use scenes where distance between vegetation projection exceeds this double max_warp = clt_parameters.imp.terr_max_warp; // 1.8 - do not use scenes where distance between vegetation projection exceeds this
int max_offset = clt_parameters.imp.terr_max_elevation; // maximal "elevation" to consider int max_elevation = clt_parameters.imp.terr_max_elevation; // maximal "elevation" to consider
int max_elev_terr = clt_parameters.imp.terr_max_elev_terr; // maximal "elevation" to consider
// int min_scenes = clt_parameters.imp.terr_min_scenes; // 1; // int min_scenes = clt_parameters.imp.terr_min_scenes; // 1;
// int min_samples_scene = clt_parameters.imp.terr_min_samples_scene; //10; // int min_samples_scene = clt_parameters.imp.terr_min_samples_scene; //10;
...@@ -1570,6 +1571,7 @@ public class VegetationModel { ...@@ -1570,6 +1571,7 @@ public class VegetationModel {
boolean fit_alpha = clt_parameters.imp.terr_fit_alpha; // true; // adjust vegetation alpha pixels boolean fit_alpha = clt_parameters.imp.terr_fit_alpha; // true; // adjust vegetation alpha pixels
boolean fit_scenes = clt_parameters.imp.terr_fit_scenes; // true; // adjust scene offsets (start from 0 always?) boolean fit_scenes = clt_parameters.imp.terr_fit_scenes; // true; // adjust scene offsets (start from 0 always?)
boolean fit_elevations = clt_parameters.imp.terr_fit_elevations; // false; // adjust elevation pixels (not yet implemented) boolean fit_elevations = clt_parameters.imp.terr_fit_elevations; // false; // adjust elevation pixels (not yet implemented)
boolean fit_terr_elev = clt_parameters.imp.terr_fit_terr_elev; // false; // adjust terrain elevation (common, maybe add per-pixel later)
// boolean [] fit_disable = clt_parameters.imp.terr_fit_disable.clone(); // boolean [] fit_disable = clt_parameters.imp.terr_fit_disable.clone();
boolean [][] fits_disable = new boolean[clt_parameters.imp.terr_fits_disable.length][]; boolean [][] fits_disable = new boolean[clt_parameters.imp.terr_fits_disable.length][];
...@@ -2084,8 +2086,10 @@ public class VegetationModel { ...@@ -2084,8 +2086,10 @@ public class VegetationModel {
false, // final boolean keep_parameters, false, // final boolean keep_parameters,
woi, // final Rectangle woi, woi, // final Rectangle woi,
null, // final Rectangle woi_veg_in, // used when loading from file (may be different) null, // final Rectangle woi_veg_in, // used when loading from file (may be different)
null, // final Rectangle woi_terr_in, // used when loading from file (may be different)
max_warp, // final double max_warp, // 1.8 - do not use scenes where distance between vegetation projection exceeds this max_warp, // final double max_warp, // 1.8 - do not use scenes where distance between vegetation projection exceeds this
max_offset, // final int max_offset, // maximal "elevation" to consider max_elevation, // final int max_offset, // maximal "elevation" to consider
max_elev_terr, // final int max_elev_terr, // maximal terrain "elevation" to consider
elevation_radius, // final double elevation_radius, // Radius of elevation/vegetation influence. elevation_radius, // final double elevation_radius, // Radius of elevation/vegetation influence.
null, // final boolean [] valid_scene_pix, null, // final boolean [] valid_scene_pix,
hifreq_weight, //final double hifreq_weight, // 22.5 0 - do not use high-freq. Relative weight of laplacian components hifreq_weight, //final double hifreq_weight, // 22.5 0 - do not use high-freq. Relative weight of laplacian components
...@@ -2095,6 +2099,7 @@ public class VegetationModel { ...@@ -2095,6 +2099,7 @@ public class VegetationModel {
fit_alpha, // final boolean adjust_alpha, fit_alpha, // final boolean adjust_alpha,
fit_scenes, // final boolean adjust_scenes, fit_scenes, // final boolean adjust_scenes,
fit_elevations, // final boolean adjust_elevations, fit_elevations, // final boolean adjust_elevations,
fit_terr_elev, // final boolean fit_terr_elev,
thisOrLast(step_restore, fits_disable), // fits_disables[0], // final boolean [] fit_disable, thisOrLast(step_restore, fits_disable), // fits_disables[0], // final boolean [] fit_disable,
reg_weights, // final double reg_weights, // fraction of the total weight used for regularization reg_weights, // final double reg_weights, // fraction of the total weight used for regularization
alpha_loss, // final double alpha_loss, // alpha quadratic growing loss for when out of [0,1] range alpha_loss, // final double alpha_loss, // alpha quadratic growing loss for when out of [0,1] range
...@@ -2189,7 +2194,7 @@ public class VegetationModel { ...@@ -2189,7 +2194,7 @@ public class VegetationModel {
vegetationLMA.restoreParametersFile( //FIXME: Not finished for real import ! vegetationLMA.restoreParametersFile( //FIXME: Not finished for real import !
par_path, // String path, par_path, // String path,
true, // boolean keep_settings, true, // boolean keep_settings,
null, // Rectangle [] file_wois); // if not null, should be Rectangle[2] {woi_veg,woi} - will return woi data and not input parameters to this instance /// null, // Rectangle [] file_wois); // if not null, should be Rectangle[2] {woi_veg,woi} - will return woi data and not input parameters to this instance
null); // double [] other_pars) null); // double [] other_pars)
if (thisOrLast(step_restore,recalc_weights)) { if (thisOrLast(step_restore,recalc_weights)) {
System.out.println ("---- Recalculating weights from transparency after loading parameters"); System.out.println ("---- Recalculating weights from transparency after loading parameters");
...@@ -2230,13 +2235,16 @@ public class VegetationModel { ...@@ -2230,13 +2235,16 @@ public class VegetationModel {
vegetationLMA.showYfX( vegetationLMA.showYfX(
null, // double [] vector, null, // double [] vector,
"reconstructed_model-x"+woi.x+"-y"+woi.y+"-w"+woi.width+"-h"+woi.height); // String title) "reconstructed_model-x"+woi.x+"-y"+woi.y+"-w"+woi.width+"-h"+woi.height); // String title)
/*
vegetationLMA.showResults( vegetationLMA.showResults(
"terr_split-x"+woi.x+"-y"+woi.y+"-w"+woi.width+"-h"+woi.height, // String title, "terr_split-x"+woi.x+"-y"+woi.y+"-w"+woi.width+"-h"+woi.height, // String title,
vegetationLMA.getParametersVector(), // double [] vector, vegetationLMA.getParametersVector(), // double [] vector,
threshold_terrain, // double threshold_terrain, threshold_terrain, // double threshold_terrain,
min_max_terrain, // double min_max_terrain, //0.1 min_max_terrain, // double min_max_terrain, //0.1
min_terrain, //double min_terrain, //0.001 min_terrain, //double min_terrain, //0.001
min_vegetation); // double min_vegetation) { // 0.5 min_vegetation); // double min_vegetation) { // 0.5
*/
} }
/// next_run = true; /// next_run = true;
vegetationLMA.debug_index = 0; vegetationLMA.debug_index = 0;
...@@ -2270,6 +2278,7 @@ public class VegetationModel { ...@@ -2270,6 +2278,7 @@ public class VegetationModel {
for (; step_restore <= last_series; step_restore++) { for (; step_restore <= last_series; step_restore++) {
// vegetationLMA.fits_disable[VegetationLMA.TVAO_ELEVATION] = fits_disable[step_restore][VegetationLMA.TVAO_ELEVATION]; // vegetationLMA.fits_disable[VegetationLMA.TVAO_ELEVATION] = fits_disable[step_restore][VegetationLMA.TVAO_ELEVATION];
vegetationLMA.fits_disable[VegetationLMA.TVAO_ELEVATION] =thisOrLast(step_restore,fits_disable)[VegetationLMA.TVAO_ELEVATION]; vegetationLMA.fits_disable[VegetationLMA.TVAO_ELEVATION] =thisOrLast(step_restore,fits_disable)[VegetationLMA.TVAO_ELEVATION];
vegetationLMA.fits_disable[VegetationLMA.TVAO_TERR_ELEV] =thisOrLast(step_restore,fits_disable)[VegetationLMA.TVAO_TERR_ELEV];
if (thisOrLast(step_restore,recalc_weights)) { if (thisOrLast(step_restore,recalc_weights)) {
System.out.println ("---- Recalculating weights from transparency"); System.out.println ("---- Recalculating weights from transparency");
String dbg_title= (!tile_woi && (debugLevel > -2)) ? ("transparency_"+step_restore) : null; String dbg_title= (!tile_woi && (debugLevel > -2)) ? ("transparency_"+step_restore) : null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment