simple changes to make it work with python 3.8 and above --- NOTE: This is a personal fork of the AROSICS package, the original package can be found at https://git.gfz-potsdam.de/danschef/arosics Installation note: I've install using pip package manager, I found a issue if try to install packages dependencies in a other order than listed in documentation file. In particular It is necessary install GDAL before NumPy; in case to use in a customized environment it is necessary re-install GDAL using no-build-isolation and no-cache-dir options.
pip uninstall gdal
# ensure numpy is installed prior to installing gdal
pip install numpy
# ensure setuptools and wheel are installed to do the build in your current environment
pip install -U setuptools wheel
# install gdal
pip install --no-build-isolation --no-cache-dir --force-reinstall gdal
I found this solution here: https://gis.stackexchange.com/a/465888/140483
I send a pull request for this.
Also I done a test with Sentinel-2 images
- Free software: Apache 2.0
- Documentation: https://danschef.git-pages.gfz-potsdam.de/arosics/doc/
- The (open-access) paper corresponding to this software repository can be found here: Scheffler et al. 2017 (cite as: Scheffler D, Hollstein A, Diedrich H, Segl K, Hostert P. AROSICS: An Automated and Robust Open-Source Image Co-Registration Software for Multi-Sensor Satellite Data. Remote Sensing. 2017; 9(7):676).
- Information on how to cite the AROSICS Python package can be found in the CITATION file.
- Submit feedback by filing an issue here or join our chat here:
See also the latest coverage report and the pytest HTML report.
AROSICS is a python package to perform automatic subpixel co-registration of two satellite image datasets based on an image matching approach working in the frequency domain, combined with a multistage workflow for effective detection of false-positives.
It detects and corrects local as well as global misregistrations between two input images in the subpixel scale, that are often present in satellite imagery. The algorithm is robust against the typical difficulties of multi-sensoral/multi-temporal images. Clouds are automatically handled by the implemented outlier detection algorithms. The user may provide user-defined masks to exclude certain image areas from tie point creation. The image overlap area is automatically detected. AROSICS supports a wide range of input data formats and can be used from the command line (without any Python experience) or as a normal Python package.
Only a global X/Y translation is computed within a small subset of the input images (window position is adjustable). This allows very fast co-registration but only corrects for translational (global) X/Y shifts. The calculated subpixel-shifts are (by default) applied to the geocoding information of the output image. No spatial resampling is done automatically as long as both input images have the same projection. However, AROSICS also allows to align the output image to the reference image coordinate grid if needed.
Here is an example of a Landsat-8 / Sentinel-2 image pair before and after co-registration using AROSICS:
A dense grid of tie points is automatically computed, whereas tie points are subsequently validated using a multistage workflow. Only those tie points not marked as false-positives are used to compute the parameters of an affine transformation. Warping of the target image is done using an appropriate resampling technique (cubic by default).
Here is an example of the computed shift vectors after filtering false-positives (mainly due to clouds in the target image):
For further details check out the documentation!
You can find the protocol of recent changes in the AROSICS package here.
AROSICS was developed by Daniel Scheffler (German Research Centre of Geosciences) within the context of the GeoMultiSens project funded by the German Federal Ministry of Education and Research (project grant code: 01 IS 14 010 A-C).
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template. The test data represent modified Copernicus Sentinel-2 data (ESA 2016). The input data for the figures in the documentation have been provided by NASA (Landsat-8) and ESA (Sentinel-2).