Can Not Process Dataset - TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'

Hello Guys;

I have been using webodm for a while and it’s the first time I encounter an error with my datasets being unable to obtain results. I am clueless on what is wrong, so if you guys can give me a hand and point into some direction to fix the issue I would appreciate it.

My data set are 302 pictures.
The settings for processing: auto-boundary: true, dsm: true, dtm: true, rerun-from: odm_postprocess

I paste below the console output where the error is displayed. I had tried reprocessing several times to no avail.

[INFO] DTM is turned on, automatically turning on point cloud classification
[INFO] Initializing ODM 2.8.0 - Thu May 05 15:24:06 2022
[INFO] ==============
[INFO] auto_boundary: True
[INFO] boundary: {}
[INFO] build_overviews: False
[INFO] camera_lens: auto
[INFO] cameras: {}
[INFO] cog: True
[INFO] copy_to: None
[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_postprocess
[INFO] fast_orthophoto: False
[INFO] feature_quality: high
[INFO] feature_type: sift
[INFO] force_gps: False
[INFO] gcp: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\gcp\gcp_file_1651758777851.txt
[INFO] geo: None
[INFO] gps_accuracy: 10
[INFO] ignore_gsd: False
[INFO] matcher_neighbors: 8
[INFO] matcher_type: flann
[INFO] max_concurrency: 12
[INFO] merge: all
[INFO] mesh_octree_depth: 11
[INFO] mesh_size: 200000
[INFO] min_num_features: 10000
[INFO] name: 0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0
[INFO] optimize_disk_space: False
[INFO] orthophoto_compression: DEFLATE
[INFO] orthophoto_cutline: False
[INFO] orthophoto_kmz: 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: True
[INFO] pc_filter: 2.5
[INFO] pc_geometric: False
[INFO] pc_las: False
[INFO] pc_quality: medium
[INFO] pc_rectify: False
[INFO] pc_sample: 0
[INFO] pc_tile: False
[INFO] primary_band: auto
[INFO] project_path: C:\WebODM\resources\app\apps\NodeODM\data
[INFO] radiometric_calibration: none
[INFO] rerun: None
[INFO] rerun_all: False
[INFO] rerun_from: [‘odm_postprocess’]
[INFO] resize_to: 2048
[INFO] sfm_algorithm: incremental
[INFO] skip_3dmodel: False
[INFO] skip_band_alignment: False
[INFO] skip_orthophoto: False
[INFO] skip_report: False
[INFO] sm_cluster: None
[INFO] smrf_scalar: 1.25
[INFO] smrf_slope: 0.15
[INFO] smrf_threshold: 0.5
[INFO] smrf_window: 18.0
[INFO] split: 999999
[INFO] split_image_groups: None
[INFO] split_overlap: 150
[INFO] texturing_data_term: gmi
[INFO] texturing_keep_unseen_faces: False
[INFO] texturing_outlier_removal_type: gauss_clamping
[INFO] texturing_skip_global_seam_leveling: False
[INFO] texturing_skip_local_seam_leveling: False
[INFO] texturing_tone_mapping: none
[INFO] tiles: False
[INFO] time: False
[INFO] use_3dmesh: False
[INFO] use_exif: False
[INFO] use_fixed_camera_params: False
[INFO] use_hybrid_bundle_adjustment: False
[INFO] verbose: False
[INFO] ==============
[INFO] Running dataset stage
[INFO] Loading dataset from: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\images
[INFO] Loading images database: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\images.json
[INFO] Found 301 usable images
[INFO] Coordinates file already exist: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\odm_georeferencing\coords.txt
[INFO] GCP file already exist: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\odm_georeferencing\gcp_list_utm.txt
[INFO] Parsing SRS header: WGS84 UTM 19S
[INFO] Parsing SRS header: WGS84 UTM 19S
[INFO] Finished dataset stage
[INFO] Running split stage
[INFO] Normal dataset, will process all at once.
[INFO] Finished split stage
[INFO] Running merge stage
[INFO] Normal dataset, nothing to merge.
[INFO] Finished merge stage
[INFO] Running opensfm stage
[WARNING] C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\image_list.txt already exists, not rerunning OpenSfM setup
[WARNING] C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\exif already exists, not rerunning photo to metadata
[WARNING] Detect features already done: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\features exists
[WARNING] Match features already done: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\matches exists
[WARNING] Found a valid OpenSfM tracks file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\tracks.csv
[WARNING] Found a valid OpenSfM reconstruction file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\reconstruction.json
[INFO] Already extracted cameras
[INFO] Export reconstruction stats
[WARNING] Found existing reconstruction stats C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\stats\stats.json
[WARNING] Will skip exporting C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\reconstruction.geocoords.json
[INFO] Undistorting C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm …
[WARNING] Already undistorted (nominal)
[WARNING] Found a valid OpenSfM NVM reconstruction file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\undistorted/reconstruction.nvm
[INFO] Finished opensfm stage
[INFO] Running openmvs stage
[WARNING] Found a valid OpenMVS reconstruction file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\undistorted\openmvs\scene_dense_dense_filtered.ply
[INFO] Finished openmvs stage
[INFO] Running odm_filterpoints stage
File “C:\WebODM\resources\app\apps\ODM\run.py”, line 59, in
retcode = app.execute()
File “C:\WebODM\resources\app\apps\ODM\stages\odm_app.py”, line 130, in execute
raise e
File “C:\WebODM\resources\app\apps\ODM\stages\odm_app.py”, line 94, in execute
self.first_stage.run()
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 346, in run
self.next_stage.run(outputs)
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 346, in run
self.next_stage.run(outputs)
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 346, in run
self.next_stage.run(outputs)
[Previous line repeated 2 more times]
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 327, in run
self.process(self.args, outputs)
File “C:\WebODM\resources\app\apps\ODM\stages\odm_filterpoints.py”, line 31, in process
outputs[‘boundary’] = compute_boundary_from_shots(tree.opensfm_reconstruction, avg_gsd * 20, reconstruction.get_proj_offset()) # 20 is arbitrary
TypeError: unsupported operand type(s) for *: ‘NoneType’ and ‘int’

1 Like

How does your GCP file look like?

Triple check it’s formatted properly (Ground Control Points — OpenDroneMap 2.8.4 documentation)

2 Likes

Hello @pierotofy, this is how part of the GCP file looks like. I created it with the GCP Interface inside WebODM;

+proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs
298614.97 6430334.47 458.18879 3941.25 1437.25 DJI_0001.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3945.75 2165.00 DJI_0002.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3892.00 2605.75 DJI_0003.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3866.00 2649.25 DJI_0004.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3720.00 3236.25 DJI_0005.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2427.75 297.50 DJI_0146.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2370.25 739.50 DJI_0147.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2320.25 956.75 DJI_0148.jpg E377-GCP-18

1 Like

For good results your file should have a minimum of 15 lines after the header (5 points with 3 images to each point).

It’s important that you find high-contrast objects that are found in at least 3 photos, and that you find a minimum of 5 objects.

1 Like

Strange, as I have processed a dataset of the same place with the same GCPs (earlier versions of WebODM) in a previous stage of construction with success, which is why I am surprised about this error now.

In total my GCP file has 117 lines after the header, I am using 5 GCPs, and the GCPs are found in definetely more than only 3 photos. By the way I am using some UAV Ground Control Points made of fabric that you find over amazon to identify my GCP on the ground.

I think I comply with that the documentation states. This is the whole GCP file:

+proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs
298614.97 6430334.47 458.18879 3941.25 1437.25 DJI_0001.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3945.75 2165.00 DJI_0002.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3892.00 2605.75 DJI_0003.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3866.00 2649.25 DJI_0004.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3720.00 3236.25 DJI_0005.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2427.75 297.50 DJI_0146.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2370.25 739.50 DJI_0147.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2320.25 956.75 DJI_0148.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2185.75 1472.25 DJI_0149.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2135.25 1919.25 DJI_0150.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2127.00 1985.25 DJI_0151.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2519.25 1568.75 DJI_0152.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2556.50 1991.25 DJI_0153.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2510.00 2443.50 DJI_0154.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2474.25 2543.75 DJI_0155.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2354.25 2992.75 DJI_0156.jpg E377-GCP-18
298614.97 6430334.47 458.18879 2305.50 3441.75 DJI_0157.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3803.25 193.25 DJI_0295.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3734.75 641.50 DJI_0296.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3688.25 1091.00 DJI_0297.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3668.25 1109.75 DJI_0298.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3545.00 1497.50 DJI_0299.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3496.00 1945.50 DJI_0300.jpg E377-GCP-18
298614.97 6430334.47 458.18879 3468.00 2088.00 DJI_0301.jpg E377-GCP-18
298594.79 6430608.45 483.24857 4985.25 73.75 DJI_0016.jpg E377-GCP-16
298594.79 6430608.45 483.24857 4921.50 627.25 DJI_0017.jpg E377-GCP-16
298594.79 6430608.45 483.24857 4875.00 907.75 DJI_0018.jpg E377-GCP-16
298594.79 6430608.45 483.24857 4877.50 1613.50 DJI_0019.jpg E377-GCP-16
298594.79 6430608.45 483.24857 4811.00 2194.75 DJI_0020.jpg E377-GCP-16
298594.79 6430608.45 483.24857 4740.25 2741.00 DJI_0021.jpg E377-GCP-16
298594.79 6430608.45 483.24857 4653.00 3320.25 DJI_0022.jpg E377-GCP-16
298594.79 6430608.45 483.24857 1509.75 199.00 DJI_0127.jpg E377-GCP-16
298594.79 6430608.45 483.24857 1456.75 744.75 DJI_0128.jpg E377-GCP-16
298594.79 6430608.45 483.24857 1403.25 1296.50 DJI_0129.jpg E377-GCP-16
298594.79 6430608.45 483.24857 1345.25 1847.50 DJI_0130.jpg E377-GCP-16
298594.79 6430608.45 483.24857 1290.75 2413.75 DJI_0131.jpg E377-GCP-16
298594.79 6430608.45 483.24857 1252.75 2675.75 DJI_0132.jpg E377-GCP-16
298594.79 6430608.45 483.24857 1240.50 3354.25 DJI_0133.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3335.50 324.25 DJI_0170.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3269.50 760.25 DJI_0171.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3267.75 1376.50 DJI_0172.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3203.50 1925.00 DJI_0173.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3137.00 2475.25 DJI_0174.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3078.25 3006.00 DJI_0175.jpg E377-GCP-16
298594.79 6430608.45 483.24857 2996.50 3546.25 DJI_0176.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3214.00 304.00 DJI_0274.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3176.75 875.50 DJI_0275.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3118.50 1436.75 DJI_0276.jpg E377-GCP-16
298594.79 6430608.45 483.24857 3050.25 1992.25 DJI_0277.jpg E377-GCP-16
298594.79 6430608.45 483.24857 2981.50 2552.75 DJI_0278.jpg E377-GCP-16
298594.79 6430608.45 483.24857 2927.25 2859.25 DJI_0279.jpg E377-GCP-16
298594.79 6430608.45 483.24857 2922.25 3441.50 DJI_0280.jpg E377-GCP-16
298490.04 6430708.48 484.28456 3731.25 187.00 DJI_0026.jpg E377-GCP-15
298490.04 6430708.48 484.28456 3637.50 747.50 DJI_0027.jpg E377-GCP-15
298490.04 6430708.48 484.28456 3555.25 1160.25 DJI_0028.jpg E377-GCP-15
298490.04 6430708.48 484.28456 3515.50 1779.25 DJI_0029.jpg E377-GCP-15
298490.04 6430708.48 484.28456 3435.50 2330.00 DJI_0030.jpg E377-GCP-15
298490.04 6430708.48 484.28456 3355.50 2888.50 DJI_0031.jpg E377-GCP-15
298490.04 6430708.48 484.28456 3273.00 3440.25 DJI_0032.jpg E377-GCP-15
298490.04 6430708.48 484.28456 2838.75 372.50 DJI_0118.jpg E377-GCP-15
298490.04 6430708.48 484.28456 2796.25 928.50 DJI_0119.jpg E377-GCP-15
298490.04 6430708.48 484.28456 2742.00 1487.50 DJI_0120.jpg E377-GCP-15
298490.04 6430708.48 484.28456 2677.50 2037.00 DJI_0121.jpg E377-GCP-15
298490.04 6430708.48 484.28456 2605.75 2522.00 DJI_0122.jpg E377-GCP-15
298490.04 6430708.48 484.28456 2567.00 3127.25 DJI_0123.jpg E377-GCP-15
298490.04 6430708.48 484.28456 1993.25 515.25 DJI_0180.jpg E377-GCP-15
298490.04 6430708.48 484.28456 1922.75 935.00 DJI_0181.jpg E377-GCP-15
298490.04 6430708.48 484.28456 1876.50 1506.50 DJI_0182.jpg E377-GCP-15
298490.04 6430708.48 484.28456 1806.75 2055.50 DJI_0183.jpg E377-GCP-15
298490.04 6430708.48 484.28456 1739.50 2611.25 DJI_0184.jpg E377-GCP-15
298490.04 6430708.48 484.28456 1678.00 3154.50 DJI_0185.jpg E377-GCP-15
298490.04 6430708.48 484.28456 1629.25 3611.00 DJI_0186.jpg E377-GCP-15
298490.04 6430708.48 484.28456 4620.50 496.50 DJI_0265.jpg E377-GCP-15
298490.04 6430708.48 484.28456 4576.00 1103.50 DJI_0266.jpg E377-GCP-15
298490.04 6430708.48 484.28456 4515.25 1657.50 DJI_0267.jpg E377-GCP-15
298490.04 6430708.48 484.28456 4460.25 2236.50 DJI_0268.jpg E377-GCP-15
298490.04 6430708.48 484.28456 4394.00 2665.50 DJI_0269.jpg E377-GCP-15
298490.04 6430708.48 484.28456 4342.50 3248.75 DJI_0270.jpg E377-GCP-15
298427.75 6430907.06 504.13467 4164.25 488.00 DJI_0044.jpg E377-GCP-14
298427.75 6430907.06 504.13467 3991.50 988.50 DJI_0045.jpg E377-GCP-14
298427.75 6430907.06 504.13467 3754.75 1489.00 DJI_0046.jpg E377-GCP-14
298427.75 6430907.06 504.13467 3671.00 2175.75 DJI_0047.jpg E377-GCP-14
298427.75 6430907.06 504.13467 3586.00 2875.00 DJI_0048.jpg E377-GCP-14
298427.75 6430907.06 504.13467 3488.50 3567.25 DJI_0049.jpg E377-GCP-14
298427.75 6430907.06 504.13467 2884.25 582.75 DJI_0104.jpg E377-GCP-14
298427.75 6430907.06 504.13467 2822.00 1272.00 DJI_0105.jpg E377-GCP-14
298427.75 6430907.06 504.13467 2740.75 1966.00 DJI_0106.jpg E377-GCP-14
298427.75 6430907.06 504.13467 2659.50 2645.75 DJI_0107.jpg E377-GCP-14
298427.75 6430907.06 504.13467 2527.00 2826.75 DJI_0108.jpg E377-GCP-14
298427.75 6430907.06 504.13467 2278.50 3521.25 DJI_0109.jpg E377-GCP-14
298427.75 6430907.06 504.13467 2069.75 525.25 DJI_0194.jpg E377-GCP-14
298427.75 6430907.06 504.13467 1931.50 590.25 DJI_0195.jpg E377-GCP-14
298427.75 6430907.06 504.13467 1670.75 1450.50 DJI_0196.jpg E377-GCP-14
298427.75 6430907.06 504.13467 1583.00 2135.75 DJI_0197.jpg E377-GCP-14
298427.75 6430907.06 504.13467 1504.50 2816.50 DJI_0198.jpg E377-GCP-14
298427.75 6430907.06 504.13467 1725.50 3556.25 DJI_0199.jpg E377-GCP-14
298427.75 6430907.06 504.13467 4844.50 1175.75 DJI_0253.jpg E377-GCP-14
298427.75 6430907.06 504.13467 4839.50 2083.25 DJI_0254.jpg E377-GCP-14
298427.75 6430907.06 504.13467 4799.00 2504.25 DJI_0255.jpg E377-GCP-14
298427.75 6430907.06 504.13467 4711.00 2893.75 DJI_0256.jpg E377-GCP-14
298593.40 6431103.59 517.58261 5379.00 373.75 DJI_0063.jpg E377-GCP-13
298593.40 6431103.59 517.58261 5312.75 1234.75 DJI_0064.jpg E377-GCP-13
298593.40 6431103.59 517.58261 5237.50 2054.75 DJI_0065.jpg E377-GCP-13
298593.40 6431103.59 517.58261 5127.75 2862.50 DJI_0066.jpg E377-GCP-13
298593.40 6431103.59 517.58261 1571.25 450.75 DJI_0087.jpg E377-GCP-13
298593.40 6431103.59 517.58261 1444.75 1276.25 DJI_0088.jpg E377-GCP-13
298593.40 6431103.59 517.58261 1358.50 2081.00 DJI_0089.jpg E377-GCP-13
298593.40 6431103.59 517.58261 1318.00 2888.25 DJI_0090.jpg E377-GCP-13
298593.40 6431103.59 517.58261 3003.50 149.00 DJI_0211.jpg E377-GCP-13
298593.40 6431103.59 517.58261 2894.50 949.50 DJI_0212.jpg E377-GCP-13
298593.40 6431103.59 517.58261 2787.75 1741.50 DJI_0213.jpg E377-GCP-13
298593.40 6431103.59 517.58261 2679.75 2536.50 DJI_0214.jpg E377-GCP-13
298593.40 6431103.59 517.58261 2569.75 3334.00 DJI_0215.jpg E377-GCP-13
298593.40 6431103.59 517.58261 3975.25 736.00 DJI_0236.jpg E377-GCP-13
298593.40 6431103.59 517.58261 3878.25 1526.75 DJI_0237.jpg E377-GCP-13
298593.40 6431103.59 517.58261 3791.75 2321.50 DJI_0238.jpg E377-GCP-13
298593.40 6431103.59 517.58261 3704.75 3102.00 DJI_0239.jpg E377-GCP-13

1 Like

I guess a simple test would be to process the dataset without GCPs. If it works, then the problem is the GCP file (perhaps too many entries).

2 Likes

Most of the time is user error right… in this case, it was not the GCP file the problem but the pictures, the only difference from my previous analysis until this point was the post processing of pictures, because of shadows and time of the day, this time I post processed the pictures in lightroom, corrected exposure and shadows and exported them, I used these pictures for the analysis, for some reason, lightroom deleted part of the metadata of the pictures and this was causing the problem. I used the original pictures with the same GCP file, analysis worked with no issues at all and I have my results now… Thanks @pierotofy for your ideas and time…

3 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.