diff --git a/scripts/arguments.arg.template.rst b/scripts/arguments.arg.template.rst index edbfe8399..2ed014a6e 100644 --- a/scripts/arguments.arg.template.rst +++ b/scripts/arguments.arg.template.rst @@ -1,10 +1,5 @@ -.. - AUTO-GENERATED by extract_odm_strings.py! DO NOT EDIT! - If you want to add more details to a command, create a - .rst file in arguments_edit/.rst - -.. _$opt: +$ticks $opt $ticks @@ -12,6 +7,12 @@ $parameter $descr -$include +$edit -`Learn to edit `_ and help improve `this page `_! + +.. raw:: html + +
+
+
+
diff --git a/scripts/arguments.template.rst b/scripts/arguments.template.rst index c52ba5f37..292475250 100644 --- a/scripts/arguments.template.rst +++ b/scripts/arguments.template.rst @@ -1,13 +1,18 @@ +.. + AUTO-GENERATED by extract_odm_strings.py! DO NOT EDIT! + If you want to add more details to a command, edit a + .rst file in arguments_edit/.rst + + +################# Options and Flags ------------------ +################# -$arguments +If you want to add more details to a command, `learn to edit `_ and help improve the matching file in the ``arguments_edit`` `project folder `_! +.. raw:: html -`Learn to edit `_ and help improve `this page `_! - -.. toctree:: - :maxdepth: 1 - :glob: - - arguments/* \ No newline at end of file +
+
+
+
diff --git a/scripts/extract_odm_strings.py b/scripts/extract_odm_strings.py index 22a8e3933..df3765f3f 100644 --- a/scripts/extract_odm_strings.py +++ b/scripts/extract_odm_strings.py @@ -3,6 +3,7 @@ import argparse, os, urllib.request, ast, sys from io import StringIO from string import Template +from pathlib import Path parser = argparse.ArgumentParser(description='Extract ODM strings.') parser.add_argument('input', type=str, @@ -31,13 +32,13 @@ class ArgumentParserStub(argparse.ArgumentParser): for name, value in kwargs.items(): options[args[0]][str(name)] = str(value) - + def add_mutually_exclusive_group(self): return ArgumentParserStub() # Voodoo! :) # ( parse AST, extract "def config()" function, set module to only -# contain that function, execute module in current scope, +# contain that function, execute module in current scope, # run config function) root = ast.parse(config_file) new_body = [] @@ -56,7 +57,7 @@ exec(compile(root, filename="", mode="exec")) # Misc variables needed to get config to run __version__ = '?' -class context: +class context: root_path = '' num_cores = 4 class io: @@ -88,7 +89,7 @@ if len(options) > 0: keys = list(options.keys()) keys.sort(key=lambda a: a.replace("-", "")) - + with open(argstmplfile) as f: argstmpl = Template(f.read()) @@ -99,14 +100,14 @@ if len(options) > 0: # Use longest name opt_name = max(arg_map + (opt_name, ), key=len) return opt_name.replace("--", "") - + def get_opt_descr(opt): return options[opt].get('help', '').replace("*", "\*") - + def get_opt_choices(opt): return options[opt].get('choices', options[opt].get('metavar', '')).replace('[', '').replace(']', '').replace(',', ' | ').replace('\'', '') - for opt in keys: + for idx,opt in enumerate(keys): opt_name = get_opt_name(opt) include_file = os.path.join(argsoutdir + "_edit", "%s.rst" % opt_name) @@ -115,37 +116,27 @@ if len(options) > 0: f.write("\n") print("Wrote %s" % include_file) + argument_edit = Path(include_file).read_text() + kwargs = { 'opt': opt_name, - 'ticks': '`' * len(opt_name), + 'ticks': '*' * len(opt_name), 'descr': get_opt_descr(opt), 'parameter': "**Options:** *%s*" % get_opt_choices(opt) if get_opt_choices(opt) else "", - 'include': ".. include:: ../arguments_edit/%s" % os.path.basename(include_file), + # 'include': ".. include:: ../arguments_edit/%s" % os.path.basename(include_file), 'editfile': os.path.join("arguments_edit", os.path.basename(include_file)), + 'edit': argument_edit, } - argsoutfile = os.path.join(argsoutdir, opt_name + ".rst") - with open(argsoutfile, "w") as f: - f.write(argstmpl.substitute(**kwargs)) - print("Wrote %s" % argsoutfile) + arg = argstmpl.substitute(**kwargs) - for opt in keys: - subst += ":ref:`%s<%s>` %s\n %s\n\n" % ( - get_opt_name(opt), - get_opt_name(opt), - get_opt_choices(opt), - get_opt_descr(opt) - ) - - with open(tmplfile) as f: - tmpl = Template(f.read()) - - - with open(outfile, "w") as f: - f.write(tmpl.substitute(arguments=subst)) - - print("Wrote %s" % outfile) + if idx == 0: + header = Path(tmplfile).read_text() + with open(outfile, "w") as f: + f.write(header) + with open(outfile, "a") as f: + f.write(arg) else: - print("No strings found") \ No newline at end of file + print("No strings found") diff --git a/source/arguments.rst b/source/arguments.rst index a755d32d4..16c631a9b 100644 --- a/source/arguments.rst +++ b/source/arguments.rst @@ -1,265 +1,1823 @@ +.. + AUTO-GENERATED by extract_odm_strings.py! DO NOT EDIT! + If you want to add more details to a command, edit a + .rst file in arguments_edit/.rst + + +################# Options and Flags ------------------ +################# -:ref:`auto-boundary` - Automatically set a boundary using camera shot locations to limit the area of the reconstruction. This can help remove far away background artifacts (sky, background landscapes, etc.). See also --boundary. Default: ``False`` +If you want to add more details to a command, `learn to edit `_ and help improve the matching file in the ``arguments_edit`` `project folder `_! -:ref:`boundary` - GeoJSON polygon limiting the area of the reconstruction. Can be specified either as path to a GeoJSON file or as a JSON string representing the contents of a GeoJSON file. Default: `` +.. raw:: html -:ref:`build-overviews` - Build orthophoto overviews for faster display in programs such as QGIS. Default: ``False`` +
+
+
+
-:ref:`camera-lens` auto | perspective | brown | fisheye | spherical - Set a camera projection type. Manually setting a value can help improve geometric undistortion. By default the application tries to determine a lens type from the images metadata. . Default: ``auto`` +************* +auto-boundary +************* -:ref:`cameras` - Use the camera parameters computed from another dataset instead of calculating them. Can be specified either as path to a cameras.json file or as a JSON string representing the contents of a cameras.json file. Default: `` -:ref:`cog` - Create Cloud-Optimized GeoTIFFs instead of normal GeoTIFFs. Default: ``False`` -:ref:`copy-to` - Copy output results to this folder after processing. +Automatically set a boundary using camera shot locations to limit the area of the reconstruction. This can help remove far away background artifacts (sky, background landscapes, etc.). See also --boundary. Default: ``False`` -:ref:`crop` - Automatically crop image outputs by creating a smooth buffer around the dataset boundaries, shrinked by N meters. Use 0 to disable cropping. Default: ``3`` -:ref:`debug` - Print debug messages. Default: ``False`` -:ref:`dem-decimation` - Decimate the points before generating the DEM. 1 is no decimation (full quality). 100 decimates ~99%% of the points. Useful for speeding up generation of DEM results in very large datasets. Default: ``1`` -:ref:`dem-euclidean-map` - Computes an euclidean raster map for each DEM. The map reports the distance from each cell to the nearest NODATA value (before any hole filling takes place). This can be useful to isolate the areas that have been filled. Default: ``False`` -:ref:`dem-gapfill-steps` - Number of steps used to fill areas with gaps. Set to 0 to disable gap filling. Starting with a radius equal to the output resolution, N different DEMs are generated with progressively bigger radius using the inverse distance weighted (IDW) algorithm and merged together. Remaining gaps are then merged using nearest neighbor interpolation. Default: ``3`` +.. raw:: html -:ref:`dem-resolution` - DSM/DTM resolution in cm / pixel. Note that this value is capped by a ground sampling distance (GSD) estimate. To remove the cap, check --ignore-gsd also. Default: ``5`` +
+
+
+
-:ref:`depthmap-resolution` - Legacy option (use --pc-quality instead). Controls the density of the point cloud by setting the resolution of the depthmap images. Higher values take longer to compute but produce denser point clouds. Default: ``640`` +******** +boundary +******** -:ref:`dsm` - Use this tag to build a DSM (Digital Surface Model, ground + objects) using a progressive morphological filter. Check the --dem\* parameters for finer tuning. Default: ``False`` +**Options:** ** -:ref:`dtm` - Use this tag to build a DTM (Digital Terrain Model, ground only) using a simple morphological filter. Check the --dem\* and --smrf\* parameters for finer tuning. Default: ``False`` +GeoJSON polygon limiting the area of the reconstruction. Can be specified either as path to a GeoJSON file or as a JSON string representing the contents of a GeoJSON file. Default: `` -:ref:`end-with` dataset | split | merge | opensfm | openmvs | odm_filterpoints | odm_meshing | mvs_texturing | odm_georeferencing | odm_dem | odm_orthophoto | odm_report | odm_postprocess - End processing at this stage. . Default: ``odm_postprocess`` -:ref:`fast-orthophoto` - Skips dense reconstruction and 3D model generation. It generates an orthophoto directly from the sparse reconstruction. If you just need an orthophoto and do not need a full 3D model, turn on this option. Default: ``False`` -:ref:`feature-quality` ultra | high | medium | low | lowest - Set feature extraction quality. Higher quality generates better features, but requires more memory and takes longer. . Default: ``high`` -:ref:`feature-type` sift | orb | hahog - Choose the algorithm for extracting keypoints and computing descriptors. . Default: ``sift`` -:ref:`force-gps` - Use images' GPS exif data for reconstruction, even if there are GCPs present.This flag is useful if you have high precision GPS measurements. If there are no GCPs, this flag does nothing. Default: ``False`` +.. raw:: html -:ref:`gcp` - Path to the file containing the ground control points used for georeferencing. The file needs to use the following format: EPSG: or <+proj definition>geo_x geo_y geo_z im_x im_y image_name [gcp_name] [extra1] [extra2]Default: ``None`` +
+
+
+
-:ref:`geo` - Path to the image geolocation file containing the camera center coordinates used for georeferencing. Note that omega/phi/kappa are currently not supported (you can set them to 0). The file needs to use the following format: EPSG: or <+proj definition>image_name geo_x geo_y geo_z [omega (degrees)] [phi (degrees)] [kappa (degrees)] [horz accuracy (meters)] [vert accuracy (meters)]Default: ``None`` +*************** +build-overviews +*************** -:ref:`gps-accuracy` - Set a value in meters for the GPS Dilution of Precision (DOP) information for all images. If your images are tagged with high precision GPS information (RTK), this value will be automatically set accordingly. You can use this option to manually set it in case the reconstruction fails. Lowering this option can sometimes help control bowling-effects over large areas. Default: ``10`` -:ref:`help` - show this help message and exit -:ref:`ignore-gsd` - Ignore Ground Sampling Distance (GSD). GSD caps the maximum resolution of image outputs and resizes images when necessary, resulting in faster processing and lower memory usage. Since GSD is an estimate, sometimes ignoring it can result in slightly better image output quality. Default: ``False`` +Build orthophoto overviews for faster display in programs such as QGIS. Default: ``False`` -:ref:`matcher-distance` - Distance threshold in meters to find pre-matching images based on GPS exif data. Set both matcher-neighbors and this to 0 to skip pre-matching. Default: ``0`` +| Parameter Type: +| **Boolean** +| Parameter Domain: +| True: ``--build-overviews`` +| False: ``null`` +| Parameter Default: +| False: ``null`` -:ref:`matcher-neighbors` - Number of nearest images to pre-match based on GPS exif data. Set to 0 to skip pre-matching. Neighbors works together with Distance parameter, set both to 0 to not use pre-matching. Default: ``8`` +---- -:ref:`matcher-type` flann | bow - Matcher algorithm, Fast Library for Approximate Nearest Neighbors or Bag of Words. FLANN is slower, but more stable. BOW is faster, but can sometimes miss valid matches. . Default: ``flann`` +======== ======== +Resource Impact +======== ======== +CPU ●●○ | Medium +GPU ○○○ | None +HDD ●●○ | Medium +RAM ●●○ | Medium +Time ●●○ | Medium +======== ======== -:ref:`max-concurrency` - The maximum number of processes to use in various processes. Peak memory requirement is ~1GB per thread and 2 megapixel image resolution. Default: ``4`` +---- -:ref:`merge` all | pointcloud | orthophoto | dem - Choose what to merge in the merge step in a split dataset. By default all available outputs are merged. Options: ['all', 'pointcloud', 'orthophoto', 'dem']. Default: ``all`` +What Are Overviews? +------------------- +Overviews (sometimes referred to as pyramids) are an optimization that reduce the time it takes to render GeoTIFF files; Larger file-size is the tradeoff for this increased rendering performance. -:ref:`mesh-octree-depth` - Octree depth used in the mesh reconstruction, increase to get more vertices, recommended values are 8-12. Default: ``11`` +Overviews are lower-resolution copies of the raster data (Power of two factor [128x128, 256x256, etc]) that are stored either internally or externally in a sidecar. -:ref:`mesh-size` - The maximum vertex count of the output mesh. Default: ``200000`` +In the case of OpenDroneMap, the Overviews will always be internal. -:ref:`min-num-features` - Minimum number of features to extract per image. More features can be useful for finding more matches between images, potentially allowing the reconstruction of areas with little overlap or insufficient features. More features also slow down processing. Default: ``8000`` +When are Overviews appropriate? +------------------------------- +One would likely want to use Overviews for nearly every instance, with some few (relatively rare) exceptions. -:ref:`name` - Name of dataset (i.e subfolder name within project folder). Default: ``code`` + * Small File Size is paramount + * Reading software does not support internal Overviews -:ref:`optimize-disk-space` - Delete heavy intermediate files to optimize disk space usage. This affects the ability to restart the pipeline from an intermediate stage, but allows datasets to be processed on machines that don't have sufficient disk space available. Default: ``False`` +Why would one use Overviews? +---------------------------- +Overviews speed preview of the raster data by allowing the program rendering the raster to choose the closest size pyramid to match the resolution of the display extent that it is being rendered into, potentially saving a significant amount of time retrieving the full-size raster, buffering it, and then downscaling it for display. -:ref:`orthophoto-compression` JPEG | LZW | PACKBITS | DEFLATE | LZMA | NONE - Set the compression to use for orthophotos. . Default: ``DEFLATE`` +In the case of WebODM, Overviews are used to create dynamic tiles for rapid display and navigation of the 2D web map. -:ref:`orthophoto-cutline` - Generates a polygon around the cropping area that cuts the orthophoto around the edges of features. This polygon can be useful for stitching seamless mosaics with multiple overlapping orthophotos. Default: ``False`` +Example Images +-------------- -:ref:`orthophoto-kmz` - Set this parameter if you want to generate a Google Earth (KMZ) rendering of the orthophoto. Default: ``False`` +True: ``--build-overviews`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. figure:: https://user-images.githubusercontent.com/19295950/127073339-6b2a0a4f-6ede-4dc1-8da4-5bc9646de304.png + :alt: QGIS displaying the generated Overviews -:ref:`orthophoto-no-tiled` - Set this parameter if you want a striped GeoTIFF. Default: ``False`` + The Layer Properties panel demonstrates that this OpenDroneMap-generated GeoTIFF has internal Overviews. -:ref:`orthophoto-png` - Set this parameter if you want to generate a PNG rendering of the orthophoto. Default: ``False`` +False: ``null`` +^^^^^^^^^^^^^^^ +.. figure:: https://user-images.githubusercontent.com/19295950/127074349-a3f84c4c-d05c-4bf1-bd7c-790781ad0fe3.png + :alt: QGIS displaying the file is lacking Overviews -:ref:`orthophoto-resolution` 0.0> - Orthophoto resolution in cm / pixel. Note that this value is capped by a ground sampling distance (GSD) estimate. To remove the cap, check --ignore-gsd also. Default: ``5`` + The Layer Properties panel demonstrates that this OpenDroneMap-generated GeoTIFF lacks internal Overviews. -:ref:`pc-classify` - Classify the point cloud outputs using a Simple Morphological Filter. You can control the behavior of this option by tweaking the --dem-\* parameters. Default: ``False`` -:ref:`pc-csv` - Export the georeferenced point cloud in CSV format. Default: ``False`` -:ref:`pc-ept` - Export the georeferenced point cloud in Entwine Point Tile (EPT) format. Default: ``False`` +.. raw:: html -:ref:`pc-filter` - Filters the point cloud by removing points that deviate more than N standard deviations from the local mean. Set to 0 to disable filtering. Default: ``2.5`` +
+
+
+
-:ref:`pc-geometric` - Improve the accuracy of the point cloud by computing geometrically consistent depthmaps. This increases processing time, but can improve results in urban scenes. Default: ``False`` +*********** +camera-lens +*********** -:ref:`pc-las` - Export the georeferenced point cloud in LAS format. Default: ``False`` +**Options:** *auto | perspective | brown | fisheye | spherical* -:ref:`pc-quality` ultra | high | medium | low | lowest - Set point cloud quality. Higher quality generates better, denser point clouds, but requires more memory and takes longer. Each step up in quality increases processing time roughly by a factor of 4x.. Default: ``medium`` +Set a camera projection type. Manually setting a value can help improve geometric undistortion. By default the application tries to determine a lens type from the images metadata. . Default: ``auto`` -:ref:`pc-rectify` - Perform ground rectification on the point cloud. This means that wrongly classified ground points will be re-classified and gaps will be filled. Useful for generating DTMs. Default: ``False`` +| Parameter Type: +| **String** +| Parameter Domain: +| ``auto`` : Automatic selection of best camera projection model. +| ``brown`` : Robust rectilinear projection model. Preferred by ``auto``. +| ``fisheye`` : Wide-angle / non-rectilinear projection model. +| ``perspective`` : Legacy rectilinear projection model. +| ``spherical`` : 360° camera projection model. +| Parameter Default: +| ``auto`` -:ref:`pc-sample` - Filters the point cloud by keeping only a single point around a radius N (in meters). This can be useful to limit the output resolution of the point cloud and remove duplicate points. Set to 0 to disable sampling. Default: ``0`` +---- -:ref:`pc-tile` - Reduce the memory usage needed for depthmap fusion by splitting large scenes into tiles. Turn this on if your machine doesn't have much RAM and/or you've set --pc-quality to high or ultra. Experimental. Default: ``False`` +======== ======== +Resource Impact +======== ======== +CPU ●○○ | Low +GPU ○○○ | None +HDD ●○○ | Low +RAM ●○○ | Low +Time ●○○ | Low +======== ======== -:ref:`primary-band` - When processing multispectral datasets, you can specify the name of the primary band that will be used for reconstruction. It's recommended to choose a band which has sharp details and is in focus. Default: ``auto`` +---- -:ref:`project-path` - Path to the project folder. Your project folder should contain subfolders for each dataset. Each dataset should have an "images" folder. +What Are Camera Lens Models? +---------------------------- +Camera Lens Models are projection/distortion models that OpenSFM uses to correct for the optics of the camera platforms that record our images. These corrections are essential for proper camera/scene modeling, and therefore, proper reconstruction of the data. -:ref:`radiometric-calibration` none | camera | camera+sun - Set the radiometric calibration to perform on images. When processing multispectral and thermal images you should set this option to obtain reflectance/temperature values (otherwise you will get digital number values). [camera] applies black level, vignetting, row gradient gain/exposure compensation (if appropriate EXIF tags are found) and computes absolute temperature values. [camera+sun] is experimental, applies all the corrections of [camera], plus compensates for spectral radiance registered via a downwelling light sensor (DLS) taking in consideration the angle of the sun. . Default: ``none`` +When are manual selections appropriate? +--------------------------------------- +Manually choosing a Camera Lens Model is currently only recommended in the case of Spherical Cameras (GoPro Fusion, GoPro Max, Insta360, Kodak PixPro, etc.) as these are currently not detected automatically by OpenSFM. -:ref:`rerun` dataset | split | merge | opensfm | openmvs | odm_filterpoints | odm_meshing | mvs_texturing | odm_georeferencing | odm_dem | odm_orthophoto | odm_report | odm_postprocess - Rerun this stage only and stop. . Default: `` +Why would one use a particular Camera Lens Model? +------------------------------------------------- +In rare cases, OpenSFM may not be able to detect (or retrieve from its Camera database) the correct Camera Lens Model for your particular sensor, in which case you should select the closest appropriate model. When in doubt, try specifying ``brown`` first. -:ref:`rerun-all` - Permanently delete all previous results and rerun the processing pipeline. +Example Images +-------------- -:ref:`rerun-from` dataset | split | merge | opensfm | openmvs | odm_filterpoints | odm_meshing | mvs_texturing | odm_georeferencing | odm_dem | odm_orthophoto | odm_report | odm_postprocess - Rerun processing from this stage. . Default: `` +The following examples are all data taken with a standard Rectilinear Lens. Manual selection of the various Camera Lens Models is demonstrated to show some differences in how this will affect reconstruction. -:ref:`resize-to` - Legacy option (use --feature-quality instead). Resizes images by the largest side for feature extraction purposes only. Set to -1 to disable. This does not affect the final orthophoto resolution quality and will not resize the original images. Default: ``2048`` +``auto`` : Rectilinear Data +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. figure:: https://user-images.githubusercontent.com/19295950/127077336-ae79a958-a953-4376-86fd-430d0e5457f2.png + :alt: Rectilinear data rendered by ``auto`` Camera Lens Model -:ref:`skip-3dmodel` - Skip generation of a full 3D model. This can save time if you only need 2D results such as orthophotos and DEMs. Default: ``False`` + This Point Cloud shows a proper reconstruction via the ``auto`` (``brown``) Camera Lens Model, which is appropriate for this sensor. -:ref:`skip-band-alignment` - When processing multispectral datasets, ODM will automatically align the images for each band. If the images have been postprocessed and are already aligned, use this option. Default: ``False`` +``brown`` : Rectilinear Data +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. figure:: https://user-images.githubusercontent.com/19295950/127077753-580a174e-7572-4315-8801-224ce097d9fc.png + :alt: Rectilinear data rendered by ``brown`` Camera Lens Model -:ref:`skip-report` - Skip generation of PDF report. This can save time if you don't need a report. Default: ``False`` + As in the prior example, this Point Cloud is reconstructed via the ``brown`` Camera Lens Model. -:ref:`sm-cluster` - URL to a ClusterODM instance for distributing a split-merge workflow on multiple nodes in parallel. Default: ``None`` +``fisheye`` : Rectilinear Data +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. figure:: https://user-images.githubusercontent.com/19295950/127077826-53d459fe-5e4e-4b10-8e70-fbddf775c4f7.png + :alt: Rectilinear data rendered by ``fisheye`` Camera Lens Model -:ref:`smrf-scalar` - Simple Morphological Filter elevation scalar parameter. Default: ``1.25`` + In this Point Cloud reconstruction, severe bowling and other artifacts have been introduced via the use of the wrong Camera Lens Model. -:ref:`smrf-slope` - Simple Morphological Filter slope parameter (rise over run). Default: ``0.15`` +``perspective`` : Rectilinear Data +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:ref:`smrf-threshold` - Simple Morphological Filter elevation threshold parameter (meters). Default: ``0.5`` +.. figure:: https://user-images.githubusercontent.com/19295950/127077485-699f9e61-72a6-45f2-990f-f5748b6ee99f.png + :alt: Rectilinear data rendered by ``perspective`` Camera Lens Model -:ref:`smrf-window` - Simple Morphological Filter window radius parameter (meters). Default: ``18.0`` + This Point Cloud rendered well, very similar to the ``auto`` and ``brown`` examples. One may see artifacts in the ``perspective`` Camera Lens Model in very large collections, or over very flat/homogenus terrain (agricultural fields). In such cases, forcing ``brown`` may help. -:ref:`split` - Average number of images per submodel. When splitting a large dataset into smaller submodels, images are grouped into clusters. This value regulates the number of images that each cluster should have on average. Default: ``999999`` +``spherical`` : Rectilinear Data +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:ref:`split-image-groups` - Path to the image groups file that controls how images should be split into groups. The file needs to use the following format: image_name group_nameDefault: ``None`` +.. figure:: https://user-images.githubusercontent.com/19295950/127078960-27e35cbb-a378-4d0d-92e2-42dbfd1edd7c.png + :alt: Rectilinear data rendered by ``spherical`` Camera Lens Model -:ref:`split-overlap` - Radius of the overlap between submodels. After grouping images into clusters, images that are closer than this radius to a cluster are added to the cluster. This is done to ensure that neighboring submodels overlap. Default: ``150`` + This Point Cloud failed to reconstruct properly due to the manual selection of the ``fisheye`` Camera Lens Model. Similar failures to reconstruct can often indicate the wrong manual selection, or in edge cases, wrong ``auto`` selection of the Camera Lens Model, and you are advised to try another Model that is more appropriate. -:ref:`texturing-data-term` gmi | area - When texturing the 3D mesh, for each triangle, choose to prioritize images with sharp features (gmi) or those that cover the largest area (area). Default: ``gmi`` -:ref:`texturing-keep-unseen-faces` - Keep faces in the mesh that are not seen in any camera. Default: ``False`` -:ref:`texturing-outlier-removal-type` none | gauss_clamping | gauss_damping - Type of photometric outlier removal method. . Default: ``gauss_clamping`` +.. raw:: html -:ref:`texturing-skip-global-seam-leveling` - Skip normalization of colors across all images. Useful when processing radiometric data. Default: ``False`` +
+
+
+
-:ref:`texturing-skip-local-seam-leveling` - Skip the blending of colors near seams. Default: ``False`` +******* +cameras +******* -:ref:`texturing-tone-mapping` none | gamma - Turn on gamma tone mapping or none for no tone mapping. Can be one of ['none', 'gamma']. Default: ``none`` +**Options:** ** -:ref:`tiles` - Generate static tiles for orthophotos and DEMs that are suitable for viewers like Leaflet or OpenLayers. Default: ``False`` +Use the camera parameters computed from another dataset instead of calculating them. Can be specified either as path to a cameras.json file or as a JSON string representing the contents of a cameras.json file. Default: `` -:ref:`time