From cf9b4369f371b32ae2759cbeb980564d83c3c906 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sun, 25 Aug 2024 20:50:04 +0000 Subject: [PATCH] Update documentation --- _sources/tutorials.rst.txt | 49 ++++++----------------------- cs/.doctrees/environment.pickle | Bin 186513 -> 186513 bytes cs/.doctrees/flowchart.doctree | Bin 13492 -> 13492 bytes cs/.doctrees/tutorials.doctree | Bin 194863 -> 194181 bytes cs/_sources/tutorials.rst.txt | 49 ++++++----------------------- cs/flowchart/index.html | 4 +-- cs/searchindex.js | 2 +- cs/tutorials/index.html | 52 ++++++------------------------- es/.doctrees/environment.pickle | Bin 186988 -> 186988 bytes es/.doctrees/flowchart.doctree | Bin 13492 -> 13492 bytes es/.doctrees/tutorials.doctree | Bin 197634 -> 196948 bytes es/_sources/tutorials.rst.txt | 49 ++++++----------------------- es/flowchart/index.html | 4 +-- es/searchindex.js | 2 +- es/tutorials/index.html | 52 ++++++------------------------- fil/.doctrees/environment.pickle | Bin 186319 -> 186319 bytes fil/.doctrees/flowchart.doctree | Bin 13483 -> 13483 bytes fil/.doctrees/tutorials.doctree | Bin 172291 -> 171562 bytes fil/_sources/tutorials.rst.txt | 49 ++++++----------------------- fil/flowchart/index.html | 4 +-- fil/searchindex.js | 2 +- fil/tutorials/index.html | 52 ++++++------------------------- flowchart/index.html | 4 +-- fr/.doctrees/environment.pickle | Bin 186365 -> 186365 bytes fr/.doctrees/flowchart.doctree | Bin 13492 -> 13492 bytes fr/.doctrees/tutorials.doctree | Bin 169016 -> 168354 bytes fr/_sources/tutorials.rst.txt | 49 ++++++----------------------- fr/flowchart/index.html | 4 +-- fr/searchindex.js | 2 +- fr/tutorials/index.html | 52 ++++++------------------------- id/.doctrees/environment.pickle | Bin 185875 -> 185875 bytes id/.doctrees/flowchart.doctree | Bin 13482 -> 13482 bytes id/.doctrees/tutorials.doctree | Bin 168087 -> 167358 bytes id/_sources/tutorials.rst.txt | 49 ++++++----------------------- id/flowchart/index.html | 4 +-- id/searchindex.js | 2 +- id/tutorials/index.html | 52 ++++++------------------------- searchindex.js | 2 +- sw/.doctrees/environment.pickle | Bin 185757 -> 185757 bytes sw/.doctrees/flowchart.doctree | Bin 13482 -> 13482 bytes sw/.doctrees/tutorials.doctree | Bin 169539 -> 168810 bytes sw/_sources/tutorials.rst.txt | 49 ++++++----------------------- sw/flowchart/index.html | 4 +-- sw/searchindex.js | 2 +- sw/tutorials/index.html | 52 ++++++------------------------- te/.doctrees/environment.pickle | Bin 188684 -> 188684 bytes te/.doctrees/flowchart.doctree | Bin 13482 -> 13482 bytes te/.doctrees/tutorials.doctree | Bin 164655 -> 163926 bytes te/_sources/tutorials.rst.txt | 49 ++++++----------------------- te/flowchart/index.html | 4 +-- te/searchindex.js | 2 +- te/tutorials/index.html | 52 ++++++------------------------- tutorials/index.html | 52 ++++++------------------------- 53 files changed, 184 insertions(+), 672 deletions(-) diff --git a/_sources/tutorials.rst.txt b/_sources/tutorials.rst.txt index 84bb692436..3ff1ff3600 100644 --- a/_sources/tutorials.rst.txt +++ b/_sources/tutorials.rst.txt @@ -299,63 +299,34 @@ Docker has a lamentable use of space and by default does not clean up excess dat Using Singularity ***************** -'Singularity '_ is another container platform able to run Docker images. Singularity could be used from laptop to large HPC clusters, local university or company clusters, a single server, in the cloud... -A container is a single file without anything else to install +[Singularity](https://sylabs.io/) is another container platform able to run Docker images. Singularity can be run both on local machins and in instances where the user does not have root access. Instances where a user may not have root privlidges include HPC clusters and cloud cluster resources. +A container is a single file without anything else to install. Downloading image ================= Singularity can use ODM Docker container after their download. It creates .sif images -For latest ODM Docker image +For latest ODM Docker image (Recommended) .. code:: bash - - > singularity pull --disable-cache docker://opendronemap/odm:latest + singularity pull --disable-cache docker://opendronemap/odm:latest For latest ODM GPU Docker image .. code:: bash - - > singularity pull --disable-cache docker://opendronemap/odm:gpu + singularity pull --disable-cache docker://opendronemap/odm:gpu Using Singularity SIF image =========================== -As Singularity has a different way to map directories than Docker, a bash script file is a good solution to map ODM directories. -Here is a linux example for ODM :: +Once you have used one of the above commands to download and create the `odm_latest.sif` image, it can be ran using singularity. +Place your images in a directory named “images” (for example /my/project/images) , then simply run - images_dir=/path_to_image_dir/ - name=`basename $images_dir` - output_dir=/path_to_output_directories/$name - mkdir -p $output_dir - - singularity run - --bind $images_dir:/$output_dir/code/images,\ - --writable-tmpfs odm_latest.sif \ - --orthophoto-png --mesh-octree-depth 12 --ignore-gsd --dtm \ - --smrf-threshold 0.4 --smrf-window 24 --dsm --pc-csv --pc-las --orthophoto-kmz \ - --ignore-gsd --matcher-type flann --feature-quality ultra --max-concurrency 16 \ - --use-hybrid-bundle-adjustment --build-overviews --time --min-num-features 10000 \ - --project-path $output_dir - - -Here is a linux example for the ODM with GPU :: - - images_dir=/path_to_image_dir/ - name=`basename $images_dir` - output_dir=/path_to_output_directories/$name - mkdir -p $output_dir - - singularity run - --bind $images_dir:/$output_dir/code/images,\ - --writable-tmpfs odm_latest.sif \ - --orthophoto-png --mesh-octree-depth 12 --ignore-gsd --dtm \ - --smrf-threshold 0.4 --smrf-window 24 --dsm --pc-csv --pc-las --orthophoto-kmz \ - --ignore-gsd --matcher-type flann --feature-quality ultra --max-concurrency 16 \ - --use-hybrid-bundle-adjustment --build-overviews --time --min-num-features 10000 \ - --project-path $output_dir +..code:: bash + singularity run --bind /my/project:datasets/code odm_latest.sif --project-path /datasets +Like with docker, additional Options and Flags can be added to the command. ************************************* Using ODM from low-bandwidth location diff --git a/cs/.doctrees/environment.pickle b/cs/.doctrees/environment.pickle index da9d5e84860097bc1fbd2e706c248299ff1bcb52..13ebef3ee358935f16e0cfccda8193dac489cdd2 100644 GIT binary patch delta 21233 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 M%*_$q@>7xYUuOQU3IG5A delta 21146 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 delta 13551 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'_ is another container platform able to run Docker images. Singularity could be used from laptop to large HPC clusters, local university or company clusters, a single server, in the cloud... -A container is a single file without anything else to install +[Singularity](https://sylabs.io/) is another container platform able to run Docker images. Singularity can be run both on local machins and in instances where the user does not have root access. Instances where a user may not have root privlidges include HPC clusters and cloud cluster resources. +A container is a single file without anything else to install. Downloading image ================= Singularity can use ODM Docker container after their download. It creates .sif images -For latest ODM Docker image +For latest ODM Docker image (Recommended) .. code:: bash - - > singularity pull --disable-cache docker://opendronemap/odm:latest + singularity pull --disable-cache docker://opendronemap/odm:latest For latest ODM GPU Docker image .. code:: bash - - > singularity pull --disable-cache docker://opendronemap/odm:gpu + singularity pull --disable-cache docker://opendronemap/odm:gpu Using Singularity SIF image =========================== -As Singularity has a different way to map directories than Docker, a bash script file is a good solution to map ODM directories. -Here is a linux example for ODM :: +Once you have used one of the above commands to download and create the `odm_latest.sif` image, it can be ran using singularity. +Place your images in a directory named “images” (for example /my/project/images) , then simply run - images_dir=/path_to_image_dir/ - name=`basename $images_dir` - output_dir=/path_to_output_directories/$name - mkdir -p $output_dir - - singularity run - --bind $images_dir:/$output_dir/code/images,\ - --writable-tmpfs odm_latest.sif \ - --orthophoto-png --mesh-octree-depth 12 --ignore-gsd --dtm \ - --smrf-threshold 0.4 --smrf-window 24 --dsm --pc-csv --pc-las --orthophoto-kmz \ - --ignore-gsd --matcher-type flann --feature-quality ultra --max-concurrency 16 \ - --use-hybrid-bundle-adjustment --build-overviews --time --min-num-features 10000 \ - --project-path $output_dir - - -Here is a linux example for the ODM with GPU :: - - images_dir=/path_to_image_dir/ - name=`basename $images_dir` - output_dir=/path_to_output_directories/$name - mkdir -p $output_dir - - singularity run - --bind $images_dir:/$output_dir/code/images,\ - --writable-tmpfs odm_latest.sif \ - --orthophoto-png --mesh-octree-depth 12 --ignore-gsd --dtm \ - --smrf-threshold 0.4 --smrf-window 24 --dsm --pc-csv --pc-las --orthophoto-kmz \ - --ignore-gsd --matcher-type flann --feature-quality ultra --max-concurrency 16 \ - --use-hybrid-bundle-adjustment --build-overviews --time --min-num-features 10000 \ - --project-path $output_dir +..code:: bash + singularity run --bind /my/project:datasets/code odm_latest.sif --project-path /datasets +Like with docker, additional Options and Flags can be added to the command. ************************************* Using ODM from low-bandwidth location diff --git a/cs/flowchart/index.html b/cs/flowchart/index.html index dfeed7f71b..e091634fb7 100644 --- a/cs/flowchart/index.html +++ b/cs/flowchart/index.html @@ -24,7 +24,7 @@