This tool was built to solve a business process inefficiency pertaining to the workflow of remote sensing and GIS specialists relying on the collection of substantial amounts of aerial imagery data. More specifically, imagery data containing different spectral colour bands to produce high quality orthomosaics or other georeferenced datasets. With this tool, images of different colour bands are automatically sorted in corresponding directories.
The automation of this business process has been tailored and tested on dozens of real-world cases and was most utilised when sorting data collected by the DJI Phantom Multispectral device. However, because the tool relies on the XMP metadata standard and its "camera:band" key-value pairs, this workflow has been effective with other multispectral multi-camera systems.
The Multispectral Sorting Tool has been built in two flavours, one with Python and the other with .NET (6.0). This was done in order to offer a reasonable level of flexibility that may be required when using external Geogrophical Information System tools such as QGIS, ArcGIS, GlobalMapper, etc.
The .NET variant relies on the MetaData Extractor Library version 2.7.1, which license can be found here. It was originally developed in Java and later ported to .NET C# using sharpen. This libary is implemented as a Nuget package.
The Python variant relies on the Python XMP Toolkit which also requires the Exempi package to work. This latter dependency does not officially support Windows at this time, the Python tool is therefore strongly discouraged for Windows systems.
The recommended variant to use is .NET. Indeed, it is substantially more performant as a compiled language and is compatible with all major platforms such as Windows and UNIX based operating systems.
Python can still be used for specific use cases such as integration in already existing Python-based worflow/business processes.
It is first required that all images be transferred in the same directory, preferably a new one. Images from subdirectories will be ignored.
Simply download the appropriate compiled executable from the compiled folder or from the following list and place said executable in the same directory where the target images are stored.
- Import the required Python XMP Toolkit module and its dependencies using the requirements.txt file with the PIP command
pip install -r /path/to/requirements.txt
or install it manually withpip install python-xmp-toolkit
- Install the Exempi package for your distribution. More information on how to acquire the package can be found on the Python XMP Toolkit documentation page
- Execute main.py in the same directory where the target images are stored.