Part of Processing failed

Fresh install of WebODM on Ubuntu 18.04. I installed Docker in a bit of haste to see how quickly I could get up and running. Worried that I haven’t given Docker enough processing power (I seem to remember tweaking this on a previous Windows install of WebODM, I’m far from a Docker expert).

Processing seems to go along smoothly until I get a processing failure error. The error output suggests tweaking the ‘min-num-features’ option. I increased from the default to 12000 (arbitrary) with the same results.

Images are here: https://drive.google.com/open?id=1Hd6Xr7XFJBknEouOSqKu8PdITQ4ICyC1

Task output is in the same folder as the images… an excerpt:

Whole texturing procedure took: 75.914s
[INFO] Running ODM Texturing Cell - Finished
[INFO] Running ODM Georeferencing Cell
[INFO] Running georeferencing with OpenSfM transformation matrix
[DEBUG] running /code/build/bin/odm_georef -bundleFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/opensfm/bundle_r000.out -inputTransformFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/opensfm/geocoords_transformation.txt -inputCoordFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/coords.txt -inputFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_texturing/odm_textured_model.obj -outputFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_texturing/odm_textured_model_geo.obj -inputPointCloudFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/smvs/smvs_dense_point_cloud.ply -outputPointCloudFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.ply -logFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferencing_log.txt -outputTransformFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferencing_transform.txt -georefFileOutputPath /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferencing_model_geo.txt
[DEBUG] running /code/SuperBuild/build/pdal/bin/pdal pipeline -i /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/las.json --readers.ply.filename=/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.ply
[INFO] Calculating cropping area and generating bounds shapefile from point cloud
[DEBUG] running pdal translate -i “/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.laz” -o “/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.filtered.las” decimation outlier range --filters.decimation.step=90 --filters.outlier.method=radius --filters.outlier.radius=2 --filters.outlier.min_k=2 --filters.range.limits=‘Classification![7:7]’
[DEBUG] running pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.filtered.las > /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.boundary.json
[DEBUG] running pdal info --summary /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.laz > /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.summary.json
[DEBUG] running ogr2ogr -overwrite -a_srs “+proj=utm +zone=18 +datum=WGS84 +units=m +no_defs” /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.bounds.shp /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.bounds.geojson
[INFO] Running georeferencing with OpenSfM transformation matrix
[DEBUG] running /code/build/bin/odm_georef -bundleFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/opensfm/bundle_r000.out -inputTransformFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/opensfm/geocoords_transformation.txt -inputCoordFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/coords.txt -inputFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_texturing_25d/odm_textured_model.obj -outputFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_texturing_25d/odm_textured_model_geo.obj -logFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_25dgeoreferencing/odm_georeferencing_log.txt -outputTransformFile /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_25dgeoreferencing/odm_georeferencing_transform.txt -georefFileOutputPath /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_25dgeoreferencing/odm_georeferencing_model_geo.txt
[INFO] Running ODM Georeferencing Cell - Finished
[INFO] Running ODM DEM Cell
[INFO] Classify: False
[INFO] Create DSM: True
[INFO] Create DTM: False
[INFO] DEM input file /var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_georeferencing/odm_georeferenced_model.laz found: True
[INFO] Creating …/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_dem/dsm_r0.025 [idw] from 1 files
[DEBUG] running pdal pipeline -i /tmp/tmp8tipYB.json > /dev/null 2>&1
[INFO] Creating …/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_dem/dsm_r0.05 [idw] from 1 files
[DEBUG] running pdal pipeline -i /tmp/tmpqKD5yx.json > /dev/null 2>&1
[INFO] Creating …/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_dem/dsm_r0.1 [idw] from 1 files
[DEBUG] running pdal pipeline -i /tmp/tmps7hXyF.json > /dev/null 2>&1
[INFO] Completed …/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_dem/dsm_r0.05 [idw] in 0:04:56.918036
[INFO] Completed …/var/www/data/70d360af-08bb-480d-a9e2-6fbc8cc8f00b/odm_dem/dsm_r0.025 [idw] in 0:04:59.464837
Traceback (most recent call last):
File “/code/run.py”, line 47, in
plasm.execute(niter=1)
File “/code/scripts/odm_dem.py”, line 112, in process
max_workers=args.max_concurrency
File “/code/opendm/dem/commands.py”, line 38, in create_dems
fouts = list(e.map(create_dem_for_radius, radius))
File “/usr/local/lib/python2.7/dist-packages/loky/process_executor.py”, line 788, in _chain_from_iterable_of_lists
for element in iterable:
File “/usr/local/lib/python2.7/dist-packages/loky/_base.py”, line 589, in result_iterator
yield future.result()
File “/usr/local/lib/python2.7/dist-packages/loky/_base.py”, line 426, in result
return self.__get_result()
File “/usr/local/lib/python2.7/dist-packages/loky/_base.py”, line 381, in __get_result
raise self._exception
Exception: Child returned 1

Try to lower “–max-concurrency” to a value equal to half the number of available cores. It will be slower, but will finish processing.