{"id":"v001","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.00044915764205976077}],"standoff":"30 m","top_height":"25 m","sensor_width":"13.2 mm","focal_length":"8.8 mm","image_width":5472,"sensor_height":"8.8 mm","horizontal_overlap":75,"vertical_overlap":60},"expect":{"result.gsd.value":0.8223684210526314,"result.footprint_width.value":44.99999999999999,"result.footprint_height.value":29.999999999999996,"result.passes":1,"result.photos_per_pass":2,"result.photos":2,"result.photo_spacing.value":5.000000000000007,"result.pass_spacing.value":0.0,"result.waypoints.0.lat.value":-0.00027131084311511465,"result.waypoints.0.lon.value":0.0002021209389268923,"result.waypoints.0.height.value":12.5,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":50.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v002","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.0010779783409434259}],"standoff":"15 m","top_height":"40 m","sensor_width":"13.2 mm","focal_length":"8.8 mm","image_width":5472,"sensor_height":"8.8 mm","horizontal_overlap":80,"vertical_overlap":70,"bottom_height":"2 m"},"expect":{"result.gsd.value":0.4111842105263157,"result.footprint_width.value":22.499999999999996,"result.footprint_height.value":14.999999999999998,"result.passes":7,"result.photos_per_pass":23,"result.photos":161,"result.photo_spacing.value":4.431818181818182,"result.pass_spacing.value":3.833333333333333,"result.waypoints.0.lat.value":-0.00013565542155755732,"result.waypoints.0.lon.value":0.00010106046946344616,"result.waypoints.0.height.value":9.5,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":120.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v003","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.00026949458523585647}],"standoff":"20 m","top_height":"10 m","sensor_width":"17.3 mm","focal_length":"12.29 mm","image_width":5280,"sensor_height":"13.0 mm","horizontal_overlap":70,"vertical_overlap":60},"expect":{"result.gsd.value":0.5332001873905861,"result.footprint_width.value":28.15296989422295,"result.footprint_height.value":21.155410903173312,"result.passes":1,"result.photos_per_pass":2,"result.photos":2,"result.photo_spacing.value":1.8470301057770513,"result.pass_spacing.value":0.0,"result.waypoints.0.lat.value":-0.00018087389541007645,"result.waypoints.0.lon.value":0.00012645121574668611,"result.waypoints.0.height.value":5.0,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":30.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v004","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.0007186522272956172}],"standoff":"10 m","top_height":"30 m","sensor_width":"6.17 mm","focal_length":"4.5 mm","image_width":4000,"sensor_height":"4.55 mm","horizontal_overlap":75,"vertical_overlap":65,"bottom_height":"5 m"},"expect":{"result.gsd.value":0.3427777777777778,"result.footprint_width.value":13.711111111111112,"result.footprint_height.value":10.11111111111111,"result.passes":6,"result.photos_per_pass":21,"result.photos":126,"result.photo_spacing.value":3.3144444444444456,"result.pass_spacing.value":2.977777777777778,"result.waypoints.0.lat.value":-9.043694770503822e-05,"result.waypoints.0.lon.value":6.158450336686053e-05,"result.waypoints.0.height.value":10.055555555555555,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":80.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v005","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.001796630568239043}],"standoff":"40 m","top_height":"60 m","sensor_width":"35.9 mm","focal_length":"35.0 mm","image_width":8192,"sensor_height":"24.0 mm","horizontal_overlap":80,"vertical_overlap":80},"expect":{"result.gsd.value":0.5008370535714286,"result.footprint_width.value":41.02857142857143,"result.footprint_height.value":27.428571428571427,"result.passes":7,"result.photos_per_pass":21,"result.photos":147,"result.photo_spacing.value":7.94857142857143,"result.pass_spacing.value":5.428571428571429,"result.waypoints.0.lat.value":-0.0003617477908201529,"result.waypoints.0.lon.value":0.00018428296399937614,"result.waypoints.0.height.value":13.714285714285714,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":200.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v006","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.0005389891704717129}],"standoff":"25 m","top_height":"20 m","sensor_width":"23.5 mm","focal_length":"16.0 mm","image_width":6000,"sensor_height":"15.6 mm","horizontal_overlap":60,"vertical_overlap":50,"bottom_height":"3 m"},"expect":{"result.gsd.value":0.6119791666666666,"result.footprint_width.value":36.71875,"result.footprint_height.value":24.375,"result.passes":1,"result.photos_per_pass":3,"result.photos":3,"result.photo_spacing.value":11.640625,"result.pass_spacing.value":0.0,"result.waypoints.0.lat.value":-0.00022609236926259555,"result.waypoints.0.lon.value":0.00016492507169381837,"result.waypoints.0.height.value":11.5,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":60.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v007","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":8.983152841195215e-05}],"standoff":"30 m","top_height":"8 m","sensor_width":"13.2 mm","focal_length":"8.8 mm","image_width":5472,"sensor_height":"8.8 mm","horizontal_overlap":75,"vertical_overlap":60},"expect":{"result.gsd.value":0.8223684210526314,"result.footprint_width.value":44.99999999999999,"result.footprint_height.value":29.999999999999996,"result.passes":1,"result.photos_per_pass":1,"result.photos":1,"result.photo_spacing.value":0.0,"result.pass_spacing.value":0.0,"result.waypoints.0.lat.value":-0.00027131084311511465,"result.waypoints.0.lon.value":4.4915764205976074e-05,"result.waypoints.0.height.value":4.0,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":10.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v008","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.001347472926179282}],"standoff":"50 m","top_height":"90 m","sensor_width":"17.3 mm","focal_length":"12.29 mm","image_width":5280,"sensor_height":"13.0 mm","horizontal_overlap":85,"vertical_overlap":75,"bottom_height":"10 m"},"expect":{"result.gsd.value":1.3330004684764654,"result.footprint_width.value":70.38242473555736,"result.footprint_height.value":52.88852725793328,"result.passes":4,"result.photos_per_pass":9,"result.photos":36,"result.photo_spacing.value":9.952196908055328,"result.pass_spacing.value":9.037157580688909,"result.waypoints.0.lat.value":-0.0004521847385251911,"result.waypoints.0.lon.value":0.0003161280393667153,"result.waypoints.0.height.value":36.44426362896664,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":150.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v009","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.0003593261136478086}],"standoff":"8 m","top_height":"12 m","sensor_width":"6.17 mm","focal_length":"4.5 mm","image_width":4000,"sensor_height":"4.55 mm","horizontal_overlap":70,"vertical_overlap":70,"bottom_height":"1 m"},"expect":{"result.gsd.value":0.2742222222222222,"result.footprint_width.value":10.96888888888889,"result.footprint_height.value":8.088888888888889,"result.passes":3,"result.photos_per_pass":10,"result.photos":30,"result.photo_spacing.value":3.2256790123456787,"result.pass_spacing.value":1.4555555555555557,"result.waypoints.0.lat.value":-7.234955816403057e-05,"result.waypoints.0.lon.value":4.926760269348842e-05,"result.waypoints.0.height.value":5.044444444444444,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":40.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v010","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.0008084837557075693}],"standoff":"35 m","top_height":"45 m","sensor_width":"23.5 mm","focal_length":"16.0 mm","image_width":6000,"sensor_height":"15.6 mm","horizontal_overlap":75,"vertical_overlap":60},"expect":{"result.gsd.value":0.8567708333333334,"result.footprint_width.value":51.40625,"result.footprint_height.value":34.125,"result.passes":2,"result.photos_per_pass":5,"result.photos":10,"result.photo_spacing.value":9.6484375,"result.pass_spacing.value":10.875,"result.waypoints.0.lat.value":-0.0003165293169676338,"result.waypoints.0.lon.value":0.00023089510037134573,"result.waypoints.0.height.value":17.0625,"result.waypoints.0.heading.value":0.0,"ok":true,"result.facade_length.value":90.0},"source":"Coverage with the standoff as the object distance (Wolf, Dewitt & Wilkinson 2014, ch. 6), on the equator where the geodesic is closed form, evaluated in Python (tools/vectors/gen_drone.py)","sourceVersion":"4th edition (2014)","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09},"result.footprint_width.value":{"rel":1e-09,"abs":1e-09},"result.footprint_height.value":{"rel":1e-09,"abs":1e-09},"result.passes":{"rel":1e-09,"abs":1e-09},"result.photos_per_pass":{"rel":1e-09,"abs":1e-09},"result.photos":{"rel":1e-09,"abs":1e-09},"result.photo_spacing.value":{"rel":1e-09,"abs":1e-09},"result.pass_spacing.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lat.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.lon.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.height.value":{"rel":1e-09,"abs":1e-09},"result.waypoints.0.heading.value":{"rel":1e-09,"abs":1e-09},"result.facade_length.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v011","input":{"facade":[{"lat":40.4406,"lon":-80.002},{"lat":40.4406,"lon":-80.001411}],"standoff":"30 m","top_height":"25 m","sensor_width":"13.2 mm","focal_length":"8.8 mm","image_width":5472,"sensor_height":"8.8 mm"},"expect":{"result.gsd.value":0.8223684210526314,"ok":true},"source":"add-drone-suite scenarios","sourceVersion":"2026","tolerance":{"result.gsd.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v012","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.001}],"standoff":"30 m","top_height":"0 m","sensor_width":"13.2 mm","focal_length":"8.8 mm","image_width":5472,"sensor_height":"8.8 mm"},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"add-drone-suite scenarios","sourceVersion":"2026","tolerance":{}}
{"id":"v013","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.5}],"standoff":"1 m","top_height":"300 m","sensor_width":"13.2 mm","focal_length":"8.8 mm","image_width":5472,"sensor_height":"8.8 mm"},"expect":{"ok":false,"error.code":"LIMIT_EXCEEDED"},"source":"add-drone-suite scenarios","sourceVersion":"2026","tolerance":{}}
{"id":"v014","input":{"facade":[{"lat":0,"lon":0},{"lat":0,"lon":0.001}],"standoff":"30 m","top_height":"25 m","sensor_width":"13.2 mm","focal_length":"8.8 mm","image_width":5472},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"add-drone-suite scenarios","sourceVersion":"2026","tolerance":{}}
