README.rst 4.83 KB
Newer Older
1
.. figure:: http://danschef.gitext.gfz-potsdam.de/arosics/images/arosics_logo.png
Daniel Scheffler's avatar
Daniel Scheffler committed
2
        :target: https://gitext.gfz-potsdam.de/danschef/arosics
3

4
5
6
An Automated and Robust Open-Source Image Co-Registration Software for Multi-Sensor Satellite Data


Daniel Scheffler's avatar
Daniel Scheffler committed
7
* Free software: GNU General Public License v3
8
9
* Documentation: http://danschef.gitext.gfz-potsdam.de/arosics/doc/

10

11
12
13
14
Status
------

.. .. image:: https://img.shields.io/travis/danschef/arosics.svg
15
16
        :target: https://travis-ci.org/danschef/arosics

17
.. .. image:: https://readthedocs.org/projects/arosics/badge/?version=latest
18
19
20
        :target: https://arosics.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

21
.. .. image:: https://pyup.io/repos/github/danschef/arosics/shield.svg
22
23
24
25
     :target: https://pyup.io/repos/github/danschef/arosics/
     :alt: Updates


26
.. image:: https://gitext.gfz-potsdam.de/danschef/arosics/badges/master/build.svg
Daniel Scheffler's avatar
Daniel Scheffler committed
27
        :target: https://gitext.gfz-potsdam.de/danschef/arosics/commits/master
28
.. image:: https://gitext.gfz-potsdam.de/danschef/arosics/badges/master/coverage.svg
Daniel Scheffler's avatar
Daniel Scheffler committed
29
        :target: http://danschef.gitext.gfz-potsdam.de/arosics/coverage/
Daniel Scheffler's avatar
Daniel Scheffler committed
30
31
.. image:: https://img.shields.io/pypi/v/arosics.svg
        :target: https://pypi.python.org/pypi/arosics
32
33
34
.. image:: https://img.shields.io/pypi/l/arosics.svg
        :target: https://gitext.gfz-potsdam.de/danschef/arosics/blob/master/LICENSE
.. image:: https://img.shields.io/pypi/pyversions/arosics.svg
Daniel Scheffler's avatar
Daniel Scheffler committed
35
        :target: https://img.shields.io/pypi/pyversions/arosics.svg
36

37
See also the latest coverage_ report and the nosetests_ HTML report.
Daniel Scheffler's avatar
Daniel Scheffler committed
38
Detection and correction of local or global geometric displacements between two input images:
39

40
41
Feature overview
----------------
42

Daniel Scheffler's avatar
Daniel Scheffler committed
43
44
45
46
47
48
49
50
51
52
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. It 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.


Daniel Scheffler's avatar
Fix.    
Daniel Scheffler committed
53
54
Global co-registration - fast but only for static X/Y-shifts
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Daniel Scheffler's avatar
Daniel Scheffler committed
55
56
57
58
59
60
61
62
63

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:

Daniel Scheffler's avatar
Daniel Scheffler committed
64
.. image:: docs/images/animation_testcase1_zoom_L8_S2_global_coreg_before_after_900x456.gif
Daniel Scheffler's avatar
Daniel Scheffler committed
65

66

Daniel Scheffler's avatar
Fix.    
Daniel Scheffler committed
67
68
Local co-registration - for spatially variable shifts but a bit slower
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69

Daniel Scheffler's avatar
Daniel Scheffler committed
70
71
72
73
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).
74

Daniel Scheffler's avatar
Daniel Scheffler committed
75
76
Here is an example of the computed shift vectors after filtering false-positives
(mainly due to clouds in the target image):
77

Daniel Scheffler's avatar
Fix.    
Daniel Scheffler committed
78
.. image:: docs/images/shift_vectors_testcase1.png
Daniel Scheffler's avatar
Daniel Scheffler committed
79
   :scale: 80
80

81

Daniel Scheffler's avatar
Fix.    
Daniel Scheffler committed
82
For further details check out the `documentation <http://danschef.gitext.gfz-potsdam.de/arosics/doc/>`__!
83

84
85
86
Credits
-------

Daniel Scheffler's avatar
Daniel Scheffler committed
87
AROSICS was developed by Daniel Scheffler (German Research Centre of Geosciences) within the context of the
Daniel Scheffler's avatar
Fix.    
Daniel Scheffler committed
88
`GeoMultiSens <http://www.geomultisens.de/>`__ project funded by the German Federal Ministry of Education and Research
Daniel Scheffler's avatar
Daniel Scheffler committed
89
(project grant code: 01 IS 14 010 A-C).
90

91
This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
Daniel Scheffler's avatar
Daniel Scheffler committed
92
93
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).
94
95
96

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
97
.. _coverage: http://danschef.gitext.gfz-potsdam.de/arosics/coverage/
98
99
.. _nosetests: http://danschef.gitext.gfz-potsdam.de/arosics/nosetests_reports/nosetests.html
.. _conda: https://conda.io/docs/
100