DSM Filling
Name: “dsm_filling”
Description
Fill classified values or missing values with one the three avalable methods.
Note
Filling can be configured directly in the input configuration. Each method combines several available filling applications.
Configuration
Name |
Description |
Type |
Available value |
Default value |
Required |
|---|---|---|---|---|---|
method |
Method for hole detection |
string |
“exogenous_filling”, “bulldozer”, “border_interpolation” |
Yes |
|
save_intermediate_data |
Save disparity map |
boolean |
False |
No |
Method exogenous_filling:
Method “exogenous_filling” fills with altitude of exogenous data (DEM/geoid).
Name |
Description |
Type |
Available value |
Default value |
Required |
|---|---|---|---|---|---|
classification |
Values of classes to fill |
List[str] |
“nodata” |
No |
|
fill_with_geoid |
Classes to fill with geoid |
List[str] |
None |
No |
|
interpolation_method |
Interpolation method for DEM and geoid resampling |
List[str] |
“bilinear”, “cubic” |
“bilinear” |
No |
Method bulldozer:
Method “bulldozer” converts the DSM to a DTM and fills the pixels with the output DTM.
Name |
Description |
Type |
Available value |
Default value |
Required |
|---|---|---|---|---|---|
classification |
Values of classes to fill |
List[str] |
“nodata” |
No |
Method border_interpolation:
Method “border_interpolation” use the border of every component to compute the altitude to fill.
Name |
Description |
Type |
Available value |
Default value |
Required |
|---|---|---|---|---|---|
classification |
Values of classes to fill |
List[str] |
“nodata” |
No |
|
component_min_size |
Minimal size (pixels) of feature to fill |
int |
5 |
No |
|
border_size |
Size of border used to estimate altitude |
int |
10 |
No |
|
percentile |
Percentile of border taken for altitude |
float |
10 |
No |
Note
If the keyword “nodata” is added to the classification parameter, nodata pixels of the classification will be filled. If no classification is given, nodata pixels of DSM will be filled.
Warning
There is a particular case with the dsm_filling application because it can be called any number of times. Because it is not possible to define three times the dsm_filling in your yaml/json configuration file, you can add an identifier after dsm_filling to differentiate each application :
dsm_filling.border_interp
dsm_filling.two
dsm_filling.with_bulldozer
It is recommended to run bulldozer before border_interpolation in order for border_interpolation to get a DTM. If no DTM is found, border_interpolation will use the DSM. The execution order is determined by the order of the applications in the configuration file.
Example
--- applications: dsm_filling.1: method: exogenous_filling classification: - "8" fill_with_geoid: - "8" save_intermediate_data: true dsm_filling.2: method: bulldozer classification: - "6" save_intermediate_data: true dsm_filling.3: method: border_interpolation classification: - "7" save_intermediate_data: true
{ "applications": { "dsm_filling.1": { "method": "exogenous_filling", "classification": [ "8" ], "fill_with_geoid": [ "8" ], "save_intermediate_data": true }, "dsm_filling.2": { "method": "bulldozer", "classification": [ "6" ], "save_intermediate_data": true }, "dsm_filling.3": { "method": "border_interpolation", "classification": [ "7" ], "save_intermediate_data": true } } }
--- applications: dsm_filling: # run single filling application method: exogenous_filling classification: - "8" fill_with_geoid: - "8"
{ "applications": { "dsm_filling": { "method": "exogenous_filling", "classification": [ "8" ], "fill_with_geoid": [ "8" ] } } }
--- applications: dsm_filling.create_dtm: # the first application uses bulldozer, creating a DTM method: bulldozer classification: - "6" dsm_filling.use_dtm: # the second application uses the DTM created earlier method: border_interpolation classification: - "10"
{ "applications": { "dsm_filling.create_dtm": { "method": "bulldozer", "classification": [ "6" ] }, "dsm_filling.use_dtm": { "method": "border_interpolation", "classification": [ "10" ] } } }