Orthomosaic of Forested Area Produces Contours Around Coniferous Tree Stands

Anyone have this situation where around coniferous tree stands WebODM likes to build contours? I’m presently flying an area in the Adirondack’s that has been heavily logged and although as a general rule the contours seem to represent the terrain properly occasionally I get these “hills” around stands of coniferous trees. Any suggestions on rectifying this? I am flying at 400’ AGL. Thanks.

1 Like

That’s a very real challenge. Here are the settings you will need to tweak:

--smrf-scalar <positive float>
                      Simple Morphological Filter elevation scalar
                                              Default: 1.25
--smrf-slope <positive float>
                      Simple Morphological Filter slope parameter (rise over
                                              Default: 0.15
--smrf-threshold <positive float>
                      Simple Morphological Filter elevation threshold
                      parameter (meters).
                                              Default: 0.5
--smrf-window <positive float>
                      Simple Morphological Filter window radius parameter

The easiest and the one with the greatest effect is --smrf-window which should be revised upward. The default is probably too low for these data. You can safely set a very large value for this, say 100 meters or more.


Thank you. I will try that and let you know the results. Thanks again @smathermather!



I was able to remove all of those erroneous contours in the coniferous tree stands after tweaking with your suggested settings. That coniferous slope is now properly represented topographically. Here is what the same area as the top photo above looks like with the following smrf settings tweaked: smrf-scalar 1.3 smrf-slope 0.05 smrf-threshold 0.3 and smrf-window 24:

Thanks so much for your help.
On a side note any thoughts on those systematic dots for contours that are separated by 5 meters? These are the complete settings for this process:

[INFO] Initializing ODM - Mon May 04 10:46:57 2020
[INFO] ==============
[INFO] build_overviews: False
[INFO] camera_lens: auto
[INFO] cameras: {}
[INFO] crop: 3
[INFO] debug: False
[INFO] dem_decimation: 1
[INFO] dem_euclidean_map: False
[INFO] dem_gapfill_steps: 3
[INFO] dem_resolution: 5
[INFO] depthmap_resolution: 640
[INFO] dsm: True
[INFO] dtm: True
[INFO] end_with: odm_orthophoto
[INFO] fast_orthophoto: False
[INFO] feature_type: sift
[INFO] force_gps: False
[INFO] gcp: None
[INFO] ignore_gsd: False
[INFO] matcher_distance: 0
[INFO] matcher_neighbors: 8
[INFO] max_concurrency: 10
[INFO] merge: all
[INFO] mesh_octree_depth: 10
[INFO] mesh_point_weight: 4
[INFO] mesh_samples: 1.0
[INFO] mesh_size: 200000
[INFO] min_num_features: 8000
[INFO] mve_confidence: 0.6
[INFO] name: 48f717bc-f43f-49c0-8ca3-510dcddd9bf5
[INFO] opensfm_depthmap_method: PATCH_MATCH
[INFO] opensfm_depthmap_min_consistent_views: 3
[INFO] opensfm_depthmap_min_patch_sd: 1
[INFO] orthophoto_compression: DEFLATE
[INFO] orthophoto_cutline: False
[INFO] orthophoto_no_tiled: False
[INFO] orthophoto_png: False
[INFO] orthophoto_resolution: 5
[INFO] pc_classify: True
[INFO] pc_csv: False
[INFO] pc_ept: False
[INFO] pc_filter: 2.5
[INFO] pc_las: False
[INFO] pc_rectify: True
[INFO] pc_sample: 0
[INFO] project_path: /var/www/data
[INFO] radiometric_calibration: none
[INFO] rerun: None
[INFO] rerun_all: False
[INFO] rerun_from: None
[INFO] resize_to: 2048
[INFO] skip_3dmodel: False
[INFO] sm_cluster: None
[INFO] smrf_scalar: 1.3
[INFO] smrf_slope: 0.05
[INFO] smrf_threshold: 0.3
[INFO] smrf_window: 24.0
[INFO] split: 999999
[INFO] split_overlap: 150
[INFO] texturing_data_term: gmi
[INFO] texturing_keep_unseen_faces: False
[INFO] texturing_nadir_weight: 16
[INFO] texturing_outlier_removal_type: gauss_clamping
[INFO] texturing_skip_global_seam_leveling: False
[INFO] texturing_skip_hole_filling: False
[INFO] texturing_skip_local_seam_leveling: False
[INFO] texturing_skip_visibility_test: False
[INFO] texturing_tone_mapping: none
[INFO] time: False
[INFO] use_3dmesh: False
[INFO] use_exif: False
[INFO] use_fixed_camera_params: False
[INFO] use_hybrid_bundle_adjustment: False
[INFO] use_opensfm_dense: False
[INFO] verbose: False

1 Like

Hey, that looks a lot better! I am not sure what’s happening with those little circles: it looks like it might be a minor bug @pierotofy.

So I have been in the midst of post processing this project and although I have solved the above issue with satisfactory results another huge issue in front of me that I hadn’t realized until a couple of days is a gross errors in the elevations. I have a GCP file that I have not utilized yet. And I will use that in due time. I have been processing segments of this project without the ground control so far so the elevations should be in the autonomous accuracy range…However, I just noticed that I have a GPS elevation near the camp structure in the photo above and that elevation should be in the neighborhood of 417 meters. And the elevation is showing as 531 meters. As I scratched my head at this I realized that the addition of 114 meters is in the vicinity (considering autonomous elevation error) of my AGL flying height of 400 ft (121 meters) . So it looks as though those elevations are related to the flying height of the drone and not the assumed elevations on the ground. I have never noticed this before because I always use GCP’s. Is this normal or is there a bug here?

1 Like

What are the elevations you see in the exif data of the drone?

1 Like

Very strange. I checked the exif data of random images from the 2 flight plans that I flew on the first day of that project and noted that internal altitudes were at 632 meters (with those elevations displaying in the above photographs). I ended up re flying those two flight plans on another day and the exif altitudes are now at 532 meters (and the contours are in the correct realm). That makes no sense to me why there would be precisely 100 meters difference in altitude exif tags from one day to the other…and those launch sites were identical. Anyone every have this occur with their DJI Phantom 4 Pro?