Commit 91124a2f authored by Andrey Filippov's avatar Andrey Filippov
Browse files

started major changes for elevation

parent 9ba553bb
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -775,6 +775,7 @@ min_str_neib_fpn 0.35
	public double    terr_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
	public double    terr_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
	public double    terr_terr_lpf =           0.1;  // pull terrain to average of 4 neighbors (very small)
	public double    terr_terr_lpf =           0.1;  // pull terrain to average of 4 neighbors (very small)
	public double    terr_veget_lpf =          0.2;  // pull vegetation to average of 4 neighbors (very small - maybe not needed)
	public double    terr_veget_lpf =          0.2;  // pull vegetation to average of 4 neighbors (very small - maybe not needed)
	public double    terr_elev_lpf =           0.1;  // pull elevation to average of 4 neighbors (very small - maybe not needed)
	public double    terr_terr_pull0 =         0.05; // pull terrain to zero (makes sense with UM
	public double    terr_terr_pull0 =         0.05; // pull terrain to zero (makes sense with UM
	public double    terr_veget_pull0 =        0.05; // pull vegetation to zero (makes sense with UM
	public double    terr_veget_pull0 =        0.05; // pull vegetation to zero (makes sense with UM
	public double    terr_scenes_pull0 =       1.0;  // pull average scene offset to zero
	public double    terr_scenes_pull0 =       1.0;  // pull average scene offset to zero
@@ -2040,6 +2041,7 @@ min_str_neib_fpn 0.35
		gd.addNumericField("Alpha MM fraction",    terr_alpha_mm_hole, 5,7,"",	"Disable diffusion for local \"almost minimum\" (lower than this fraction between min and max neighbors).");
		gd.addNumericField("Alpha MM fraction",    terr_alpha_mm_hole, 5,7,"",	"Disable diffusion for local \"almost minimum\" (lower than this fraction between min and max neighbors).");
		gd.addNumericField("Terrain diffusion",    terr_terr_lpf, 5,7,"",       "LPF for terrain pixels (diffusion to 4 neighbors).");
		gd.addNumericField("Terrain diffusion",    terr_terr_lpf, 5,7,"",       "LPF for terrain pixels (diffusion to 4 neighbors).");
		gd.addNumericField("Vegetation diffusion", terr_veget_lpf, 5,7,"", 		"LPF for vegetation pixels (diffusion to 4 neighbors).");
		gd.addNumericField("Vegetation diffusion", terr_veget_lpf, 5,7,"", 		"LPF for vegetation pixels (diffusion to 4 neighbors).");
		gd.addNumericField("Elevation diffusion",  terr_elev_lpf, 5,7,"", 		"LPF for elevation pixels (diffusion to 4 neighbors).");
		gd.addNumericField("Terrain pull zero",    terr_terr_pull0, 5,7,"",		"Terrain pixels pull to 0 (makes sense with UM).");
		gd.addNumericField("Terrain pull zero",    terr_terr_pull0, 5,7,"",		"Terrain pixels pull to 0 (makes sense with UM).");
		gd.addNumericField("Vegetation pull zero", terr_veget_pull0, 5,7,"",	"Vegetation pixels pull to 0 (makes sense with UM).");
		gd.addNumericField("Vegetation pull zero", terr_veget_pull0, 5,7,"",	"Vegetation pixels pull to 0 (makes sense with UM).");
		gd.addNumericField("Pull scene offset",    terr_scenes_pull0, 5,7,"",	"Pull average scene offset to zero.");
		gd.addNumericField("Pull scene offset",    terr_scenes_pull0, 5,7,"",	"Pull average scene offset to zero.");
@@ -2744,6 +2746,7 @@ min_str_neib_fpn 0.35
		terr_alpha_mm_hole =       gd.getNextNumber();// double 
		terr_alpha_mm_hole =       gd.getNextNumber();// double 
		terr_terr_lpf =            gd.getNextNumber();// double 
		terr_terr_lpf =            gd.getNextNumber();// double 
		terr_veget_lpf =           gd.getNextNumber();// double
		terr_veget_lpf =           gd.getNextNumber();// double
		terr_elev_lpf =            gd.getNextNumber();// double
		terr_terr_pull0 =          gd.getNextNumber();// double 
		terr_terr_pull0 =          gd.getNextNumber();// double 
		terr_veget_pull0 =         gd.getNextNumber();// double 
		terr_veget_pull0 =         gd.getNextNumber();// double 
		terr_scenes_pull0 =        gd.getNextNumber();// double
		terr_scenes_pull0 =        gd.getNextNumber();// double
@@ -3415,6 +3418,7 @@ min_str_neib_fpn 0.35
		properties.setProperty(prefix+"terr_en_holes",               terr_en_holes+"");           // boolean
		properties.setProperty(prefix+"terr_en_holes",               terr_en_holes+"");           // boolean
		properties.setProperty(prefix+"terr_terr_lpf",               terr_terr_lpf+"");           // double 
		properties.setProperty(prefix+"terr_terr_lpf",               terr_terr_lpf+"");           // double 
		properties.setProperty(prefix+"terr_veget_lpf",              terr_veget_lpf+"");          // double 
		properties.setProperty(prefix+"terr_veget_lpf",              terr_veget_lpf+"");          // double 
		properties.setProperty(prefix+"terr_elev_lpf",               terr_elev_lpf+"");           // double 
		properties.setProperty(prefix+"terr_terr_pull0",             terr_terr_pull0+"");         // double 
		properties.setProperty(prefix+"terr_terr_pull0",             terr_terr_pull0+"");         // double 
		properties.setProperty(prefix+"terr_veget_pull0",            terr_veget_pull0+"");        // double
		properties.setProperty(prefix+"terr_veget_pull0",            terr_veget_pull0+"");        // double
		properties.setProperty(prefix+"terr_scenes_pull0",           terr_scenes_pull0+"");       // double
		properties.setProperty(prefix+"terr_scenes_pull0",           terr_scenes_pull0+"");       // double
@@ -4109,6 +4113,7 @@ min_str_neib_fpn 0.35
		if (properties.getProperty(prefix+"terr_alpha_mm_hole")!=      null) terr_alpha_mm_hole=Double.parseDouble(properties.getProperty(prefix+"terr_alpha_mm_hole"));
		if (properties.getProperty(prefix+"terr_alpha_mm_hole")!=      null) terr_alpha_mm_hole=Double.parseDouble(properties.getProperty(prefix+"terr_alpha_mm_hole"));
		if (properties.getProperty(prefix+"terr_terr_lpf")!=           null) terr_terr_lpf=Double.parseDouble(properties.getProperty(prefix+"terr_terr_lpf"));
		if (properties.getProperty(prefix+"terr_terr_lpf")!=           null) terr_terr_lpf=Double.parseDouble(properties.getProperty(prefix+"terr_terr_lpf"));
		if (properties.getProperty(prefix+"terr_veget_lpf")!=          null) terr_veget_lpf=Double.parseDouble(properties.getProperty(prefix+"terr_veget_lpf"));
		if (properties.getProperty(prefix+"terr_veget_lpf")!=          null) terr_veget_lpf=Double.parseDouble(properties.getProperty(prefix+"terr_veget_lpf"));
		if (properties.getProperty(prefix+"terr_elev_lpf")!=           null) terr_elev_lpf=Double.parseDouble(properties.getProperty(prefix+"terr_elev_lpf"));
		if (properties.getProperty(prefix+"terr_terr_pull0")!=         null) terr_terr_pull0=Double.parseDouble(properties.getProperty(prefix+"terr_terr_pull0"));
		if (properties.getProperty(prefix+"terr_terr_pull0")!=         null) terr_terr_pull0=Double.parseDouble(properties.getProperty(prefix+"terr_terr_pull0"));
		if (properties.getProperty(prefix+"terr_veget_pull0")!=        null) terr_veget_pull0=Double.parseDouble(properties.getProperty(prefix+"terr_veget_pull0"));
		if (properties.getProperty(prefix+"terr_veget_pull0")!=        null) terr_veget_pull0=Double.parseDouble(properties.getProperty(prefix+"terr_veget_pull0"));
		if (properties.getProperty(prefix+"terr_scenes_pull0")!=       null) terr_scenes_pull0=Double.parseDouble(properties.getProperty(prefix+"terr_scenes_pull0"));
		if (properties.getProperty(prefix+"terr_scenes_pull0")!=       null) terr_scenes_pull0=Double.parseDouble(properties.getProperty(prefix+"terr_scenes_pull0"));
@@ -4770,6 +4775,7 @@ min_str_neib_fpn 0.35
		imp.terr_alpha_mm_hole =                 this.terr_alpha_mm_hole;                           
		imp.terr_alpha_mm_hole =                 this.terr_alpha_mm_hole;                           
		imp.terr_terr_lpf =                      this.terr_terr_lpf;                           
		imp.terr_terr_lpf =                      this.terr_terr_lpf;                           
		imp.terr_veget_lpf =                     this.terr_veget_lpf;
		imp.terr_veget_lpf =                     this.terr_veget_lpf;
		imp.terr_elev_lpf =                      this.terr_elev_lpf;
		imp.terr_terr_pull0 =                    this.terr_terr_pull0;                           
		imp.terr_terr_pull0 =                    this.terr_terr_pull0;                           
		imp.terr_veget_pull0 =                   this.terr_veget_pull0; 
		imp.terr_veget_pull0 =                   this.terr_veget_pull0; 
		imp.terr_scenes_pull0 =                  this.terr_scenes_pull0;
		imp.terr_scenes_pull0 =                  this.terr_scenes_pull0;
+519 −67

File changed.

Preview size limit exceeded, changes collapsed.

+7 −3
Original line number Original line Diff line number Diff line
@@ -1407,6 +1407,7 @@ public class VegetationModel {
		double    alpha_mm_hole =     clt_parameters.imp.terr_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
		double    alpha_mm_hole =     clt_parameters.imp.terr_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
		double    terr_lpf =          clt_parameters.imp.terr_terr_lpf;            // 0.1; // 0.15; /// 0.2;  /// 0.1;    // pull terrain to average of 4 neighbors (very small)
		double    terr_lpf =          clt_parameters.imp.terr_terr_lpf;            // 0.1; // 0.15; /// 0.2;  /// 0.1;    // pull terrain to average of 4 neighbors (very small)
		double    veget_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)
		double    veget_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)
		double    elevation_lpf = 0;		
		double    terr_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
		double    terr_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
		double    veget_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
		double    veget_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
		double    scenes_pull0 =      clt_parameters.imp.terr_scenes_pull0;        // 1.0
		double    scenes_pull0 =      clt_parameters.imp.terr_scenes_pull0;        // 1.0
@@ -1914,10 +1915,12 @@ public class VegetationModel {
			} else {
			} else {
				System.out.println("===== Will process a single WOI ("+woi.x+", "+woi.y+", "+woi.width+", "+woi.height+").");
				System.out.println("===== Will process a single WOI ("+woi.x+", "+woi.y+", "+woi.width+", "+woi.height+").");
			}
			}
			final int max_offset = 22;               // maximal "elevation" to consider 
			int num_samples = vegetationLMA.prepareLMA(
			int num_samples = vegetationLMA.prepareLMA(
					false,             // final boolean            keep_parameters,
					false,             // final boolean            keep_parameters,
					woi,               // final Rectangle   woi,
					woi,               // final Rectangle   woi,
					min_scenes,    // final int         min_scenes, // minimal number of scenes (inside woi) vegetation pixel must influence
					min_scenes,        // final int         min_dependent_scenes, // minimal number of scenes (inside woi) vegetation pixel must influence
					max_offset,        // final int                max_offset,               // maximal "elevation" to consider 					
					min_total_scenes,  // final int                min_total_scenes,
					min_total_scenes,  // final int                min_total_scenes,
					min_samples_scene, //final int                min_samples_scene, // 10
					min_samples_scene, //final int                min_samples_scene, // 10
					min_pixels,        // final int                min_pixels,
					min_pixels,        // final int                min_pixels,
@@ -1947,6 +1950,7 @@ public class VegetationModel {
					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
					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)
					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)
					veget_lpf,      // final double             veget_lpf,          // pull vegetation to average of 4 neighbors (very small - maybe not needed)
					elevation_lpf,  // final double             elevation_lpf,
					terr_pull0,     // final double             terr_pull0,        // pull terrain to zero (makes sense with UM
					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
					veget_pull0,    // final double             veget_pull0,       // pull vegetation to zero (makes sense with UM
					scenes_pull0,   // final double             scenes_pull0,
					scenes_pull0,   // final double             scenes_pull0,