You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/multispectral.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ While we aim to support as many cameras as possible, multispectral support has b
21
21
Other cameras might also work. You can help us expand this list by `sharing datasets <https://community.opendronemap.org/c/datasets/10>`_ captured with other cameras.
22
22
23
23
Creating Orthophotos from Multispectral Data
24
-
-------------------------------------------
24
+
--------------------------------------------
25
25
26
26
For supported sensors listed above (and likley other sensors), users can process multipsectral data in the same manner as visible light images. Images from all sensor bands should be processed at once (do not separate the bands into multiple folders). Users have the option to pass the ``--radiometric-calibration`` parameter with options ``camera`` or ``camera+sun`` to enable radiometric normalization. If the images are part of a multi-camera setup, the resulting orthophoto will have N bands, one for each camera (+ alpha).
Docker has a lamentable use of space and by default does not clean up excess data and machines when processes are complete. This can be advantageous if we need to access a process that has since terminated, but carries the burden of using increasing amounts of storage over time. Maciej Łebkowski has an `excellent overview of how to manage excess disk usage in docker <https://lebkowski.name/docker-volumes/>`_.
521
521
522
-
************
523
-
Using Podman
524
-
************
525
-
As an alternative to Docker, one may choose to run WebODM using `Podman <https://podman.io>`. To do so, simply install your distribution's podman package as well as its compatibility layer for docker. For example, on Alpine Linux:
526
-
::
522
+
..************
523
+
Using Podman
524
+
************
525
+
As an alternative to Docker, one may choose to run WebODM using `Podman <https://podman.io>`. To do so, simply install your distribution's podman package as well as its compatibility layer for docker. For example, on Alpine Linux:
526
+
::
527
527
528
-
apk add podman podman-docker
528
+
apk add podman podman-docker
529
529
530
-
The Podman command line bears strong resemblance to the Docker one, so referring to the past section and replacing every ``docker`` command invocation with ``podman`` is likely sufficient to teach its basic use.
530
+
The Podman command line bears strong resemblance to the Docker one, so referring to the past section and replacing every ``docker`` command invocation with ``podman`` is likely sufficient to teach its basic use.
531
531
532
-
Migrating from Docker to Podman
533
-
===============================
534
-
Unfortunately, given the number of options ``webodm.sh`` provides for deployment, migrating between the two may require some manual work before switching platforms. If WebODM's information was stored in directories using the ``--media-dir`` and ``--db-dir`` flags, then the data within those needs to be owned by the user running the Podman containers. If running rootlessly, be sure to set this to your current user. You should be safe to recursively chown the whole git repository as such if your ``media-dir`` and ``db-dir`` lives within it:
535
-
::
532
+
Migrating from Docker to Podman
533
+
===============================
534
+
Unfortunately, given the number of options ``webodm.sh`` provides for deployment, migrating between the two may require some manual work before switching platforms. If WebODM's information was stored in directories using the ``--media-dir`` and ``--db-dir`` flags, then the data within those needs to be owned by the user running the Podman containers. If running rootlessly, be sure to set this to your current user. You should be safe to recursively chown the whole git repository as such if your ``media-dir`` and ``db-dir`` lives within it:
535
+
::
536
536
537
-
sudo chown -R $(whoami) WebODM
537
+
sudo chown -R $(whoami) WebODM
538
538
539
-
If ``webodm.sh`` was used without flags, then a different intervention is necessary to migrate their data.
540
-
::
539
+
If ``webodm.sh`` was used without flags, then a different intervention is necessary to migrate their data.
Regardless of data location, you'll now need to uninstall Docker completely from your system according to your operating system's documentation. Note that, by default, the ``webodm.sh`` script may have taken the liberty of installing docker-compose for you. To clean that up, run the following:
546
-
::
545
+
Regardless of data location, you'll now need to uninstall Docker completely from your system according to your operating system's documentation. Note that, by default, the ``webodm.sh`` script may have taken the liberty of installing docker-compose for you. To clean that up, run the following:
546
+
::
547
547
548
-
rm ~/.docker/cni-plugins-docker-compose
548
+
rm ~/.docker/cni-plugins-docker-compose
549
549
550
-
Now, install Podman according to your operating system's documentation. If you needed to export the media and db dirs from Docker before, you may now use it to import the volumes.
551
-
::
550
+
Now, install Podman according to your operating system's documentation. If you needed to export the media and db dirs from Docker before, you may now use it to import the volumes.
It is recommended that you log out and log back in to your system at this point to ensure all environment variables are properly sourced.
556
+
It is recommended that you log out and log back in to your system at this point to ensure all environment variables are properly sourced.
557
557
558
-
Running ``webodm.sh`` now should result in user data persisting between the switch.
558
+
Running ``webodm.sh`` now should result in user data persisting between the switch.
559
559
560
-
For versions of podman-compose < 1.5.0
561
-
======================================
560
+
For versions of podman-compose < 1.5.0
561
+
======================================
562
562
563
-
podman-compose versions lower than 1.5.0 lack support for environment variables in docker-compose files. If your distribution does not provide an up to date version in its repositories, you can choose to either provide your own up-to-date binary or use the `Docker Compose <https://docs.docker.com/compose/install/linux/#install-the-plugin-manually>`_ with podman itself. In either case, you'll need to update the compose_providers line of the ``/etc/containers/containers.conf`` file.
563
+
podman-compose versions lower than 1.5.0 lack support for environment variables in docker-compose files. If your distribution does not provide an up to date version in its repositories, you can choose to either provide your own up-to-date binary or use the `Docker Compose <https://docs.docker.com/compose/install/linux/#install-the-plugin-manually>`_ with podman itself. In either case, you'll need to update the compose_providers line of the ``/etc/containers/containers.conf`` file.
564
564
565
-
If you choose to use Docker Compose instead of podman-compose, you might need to configure a few extra environment variables to tell WebODM where to send its Docker API requests to. The following environment configuration resulted in WebODM successfully spawning in Alpine Linux 3.22, though it should be fairly agnostic across distros.
566
-
::
565
+
If you choose to use Docker Compose instead of podman-compose, you might need to configure a few extra environment variables to tell WebODM where to send its Docker API requests to. The following environment configuration resulted in WebODM successfully spawning in Alpine Linux 3.22, though it should be fairly agnostic across distros.
566
+
::
567
567
568
-
export WEBODM_PODMAN_SOCKET=$(podman info --format '{{.Host.RemoteSocket.Path}}')
569
-
mkdir -p $(dirname WEBODM_PODMAN_SOCKET)
570
-
export DOCKER_HOST=unix://$WEBODM_PODMAN_SOCKET
568
+
export WEBODM_PODMAN_SOCKET=$(podman info --format '{{.Host.RemoteSocket.Path}}')
569
+
mkdir -p $(dirname WEBODM_PODMAN_SOCKET)
570
+
export DOCKER_HOST=unix://$WEBODM_PODMAN_SOCKET
571
571
572
-
Finally, start WebODM as such:
573
-
::
572
+
Finally, start WebODM as such:
573
+
::
574
574
575
-
podman system service --time=0 unix://$WEBODM_PODMAN_SOCKET & ./webodm.sh start
575
+
podman system service --time=0 unix://$WEBODM_PODMAN_SOCKET & ./webodm.sh start
576
576
577
-
Configuring Podman to run Rootlessly
578
-
====================================
579
-
A major benefit of using Podman instead of Docker is due to its ability to run rootlessly. Your specific operating system may or may not configure this for you manually, but generic instructions on doing so can be found `in Podman's official documentation <https://docs.podman.io/en/latest/markdown/podman.1.html#rootless-mode>`_. To surmise, executing the following commands is likely what you'll need to do:
580
-
::
577
+
Configuring Podman to run Rootlessly
578
+
====================================
579
+
A major benefit of using Podman instead of Docker is due to its ability to run rootlessly. Your specific operating system may or may not configure this for you manually, but generic instructions on doing so can be found `in Podman's official documentation <https://docs.podman.io/en/latest/markdown/podman.1.html#rootless-mode>`_. To surmise, executing the following commands is likely what you'll need to do:
580
+
::
581
581
582
-
sudo usermod --add-subuids 10000-75535 $(whoami)
583
-
sudo usermod --add-subgids 10000-75535 $(whoami)
582
+
sudo usermod --add-subuids 10000-75535 $(whoami)
583
+
sudo usermod --add-subgids 10000-75535 $(whoami)
584
584
585
585
586
-
MacOS
587
-
=====
588
-
In theory, `installing <https://podman-desktop.io/docs/installation/macos-install>`_ and running Podman Desktop from the official website should be all you need to use the ``webodm.sh`` script. Install and configure it for both `Docker compatibility <https://podman-desktop.io/docs/migrating-from-docker/customizing-docker-compatibility#enable-docker-compatibility>`_ and `Compose functionality <https://podman-desktop.io/docs/compose/setting-up-compose>`_.
586
+
MacOS
587
+
=====
588
+
In theory, `installing <https://podman-desktop.io/docs/installation/macos-install>`_ and running Podman Desktop from the official website should be all you need to use the ``webodm.sh`` script. Install and configure it for both `Docker compatibility <https://podman-desktop.io/docs/migrating-from-docker/customizing-docker-compatibility#enable-docker-compatibility>`_ and `Compose functionality <https://podman-desktop.io/docs/compose/setting-up-compose>`_.
0 commit comments