Repository: GeoscienceAustralia/PyRate (language: python)

Issue:
Added list creator
This is a small helper script that makes input lists for PyRate based on the output of Gamma.
It also prints the number of files in each category (interferograms, coherence files etc).

If you have a similar script that offers improvements feel free to modify this PR.


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index eb5cc7745..2b23f3996 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -61,7 +61,7 @@ jobs:
         run: |
           sudo apt update
           sudo apt upgrade
-          python -m pip install -U pip wheel
+          python -m pip install -U pip wheel setuptools==58.0
       - name: Install packages including openmpi
         if: env.PYTHONVERSION != '3.9'
         run: sudo apt install libhdf5-serial-dev libnetcdf13 libatlas-base-dev gfortran openmpi-bin libopenmpi-dev
@@ -101,8 +101,13 @@ jobs:
           pytest tests/ -m "slow"
           mpirun -n 3 pytest tests/test_shared.py -k test_tiles_split -s
           pytest --cov-config=.coveragerc --cov-report term-missing:skip-covered --cov=pyrate tests/ -m "not slow"
+        env:
+             OMP_NUM_THREADS: 1
       - name: Test Pyrate in Python ${{ matrix.python-version }} without MPI
         if: env.PYTHONVERSION == '3.9'
         run: |
           pytest tests/ -m "not mpi and slow"
           pytest --cov-config=.coveragerc --cov-report term-missing:skip-covered --cov=pyrate tests/ -m "not slow and not mpi"
+        env:
+             OMP_NUM_THREADS: 1
+        
diff --git a/docs/_build/html/404.html b/docs/_build/html/404.html
index ba364a99b..137e0ea91 100644
--- a/docs/_build/html/404.html
+++ b/docs/_build/html/404.html
@@ -374,7 +374,7 @@ <h1>
 
               <div role="contentinfo">
                 <p>
-                  &copy; Copyright 2021, Geoscience Australia
+                  &copy; Copyright 2022, Geoscience Australia
                 </p>
               </div>
               Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/history.rst b/docs/history.rst
index 63df1d5bc..1882630f7 100644
--- a/docs/history.rst
+++ b/docs/history.rst
@@ -3,6 +3,20 @@
 Release History
 ===============
 
+0.6.1 (2022-02-18)
+------------------
+Added
++++++
+- List generator in ``utils/listcreator.sh`` for easier input generation from GAMMA output to PyRate.
+
+Fixed
++++++
+- Fix wrong sign in Y-intercept output file.
+- Fix and simplify how user supplied reference pixel is validated and cropping issue.
+- Add metadata for reference pixel latitude and longitude to output files.
+- Fix non-determinism in unit tests that use array comparison by running them single threaded.
+
+
 0.6.0 (2021-10-18)
 ------------------
 Added
diff --git a/docs/usage.rst b/docs/usage.rst
index d43800bab..719ce065d 100644
--- a/docs/usage.rst
+++ b/docs/usage.rst
@@ -20,7 +20,9 @@ To allow flexibility in the file types that can be processed, `PyRate` requires
 file lists to be provided. This allows `PyRate` to identify files of each
 type without relying on file extensions. The file path to these lists are 
 provided under ``ifgfilelist``, ``hdrfilelist``, ``cohfilelist`` and 
-``basefilelist`` keywords in the configuration file.
+``basefilelist`` keywords in the configuration file. These lists can be created manually 
+or generated using the script ``list_creator.sh`` located in the ``utils`` folder.
+This script may need to be slightly modified depending on the output paths of your input data.
 
 .. note::
 
diff --git a/pyrate/configuration.py b/pyrate/configuration.py
index 385313965..47cde352d 100644
--- a/pyrate/configuration.py
+++ b/pyrate/configuration.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/conv2tif.py b/pyrate/conv2tif.py
index bb6458f46..1cf72ec2f 100644
--- a/pyrate/conv2tif.py
+++ b/pyrate/conv2tif.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/algorithm.py b/pyrate/core/algorithm.py
index 5df9d065b..94276a71a 100644
--- a/pyrate/core/algorithm.py
+++ b/pyrate/core/algorithm.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/aps.py b/pyrate/core/aps.py
index 527ad0934..9308fab03 100644
--- a/pyrate/core/aps.py
+++ b/pyrate/core/aps.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/covariance.py b/pyrate/core/covariance.py
index 1aa45d7f3..95ca52a2a 100644
--- a/pyrate/core/covariance.py
+++ b/pyrate/core/covariance.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/dem_error.py b/pyrate/core/dem_error.py
index 1304e7916..660f33f62 100644
--- a/pyrate/core/dem_error.py
+++ b/pyrate/core/dem_error.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/gamma.py b/pyrate/core/gamma.py
index 28a302aa3..cc0c92360 100644
--- a/pyrate/core/gamma.py
+++ b/pyrate/core/gamma.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/gdal_python.py b/pyrate/core/gdal_python.py
index dbcc98cbc..3b1c673d6 100644
--- a/pyrate/core/gdal_python.py
+++ b/pyrate/core/gdal_python.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/geometry.py b/pyrate/core/geometry.py
index 36b922f91..c0d11b877 100644
--- a/pyrate/core/geometry.py
+++ b/pyrate/core/geometry.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/ifgconstants.py b/pyrate/core/ifgconstants.py
index e3765f9e2..b0ded092a 100644
--- a/pyrate/core/ifgconstants.py
+++ b/pyrate/core/ifgconstants.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/logger.py b/pyrate/core/logger.py
index a50fcf616..7b3752b6a 100644
--- a/pyrate/core/logger.py
+++ b/pyrate/core/logger.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/mpiops.py b/pyrate/core/mpiops.py
index 5afb543b5..4584b13be 100644
--- a/pyrate/core/mpiops.py
+++ b/pyrate/core/mpiops.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/mst.py b/pyrate/core/mst.py
index c1ebe6148..0e44fef82 100644
--- a/pyrate/core/mst.py
+++ b/pyrate/core/mst.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/orbital.py b/pyrate/core/orbital.py
index 0257965cb..98d49eddb 100644
--- a/pyrate/core/orbital.py
+++ b/pyrate/core/orbital.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/phase_closure/closure_check.py b/pyrate/core/phase_closure/closure_check.py
index 4dd9c774d..857571b44 100644
--- a/pyrate/core/phase_closure/closure_check.py
+++ b/pyrate/core/phase_closure/closure_check.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/phase_closure/collect_loops.py b/pyrate/core/phase_closure/collect_loops.py
index 85b3a76cf..0ab015383 100644
--- a/pyrate/core/phase_closure/collect_loops.py
+++ b/pyrate/core/phase_closure/collect_loops.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/phase_closure/mst_closure.py b/pyrate/core/phase_closure/mst_closure.py
index c83c47fbd..cc59a8210 100644
--- a/pyrate/core/phase_closure/mst_closure.py
+++ b/pyrate/core/phase_closure/mst_closure.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/phase_closure/plot_closure.py b/pyrate/core/phase_closure/plot_closure.py
index cc878e673..8815a5be6 100644
--- a/pyrate/core/phase_closure/plot_closure.py
+++ b/pyrate/core/phase_closure/plot_closure.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/phase_closure/sum_closure.py b/pyrate/core/phase_closure/sum_closure.py
index 100f950d5..819adbd39 100644
--- a/pyrate/core/phase_closure/sum_closure.py
+++ b/pyrate/core/phase_closure/sum_closure.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/prepifg_helper.py b/pyrate/core/prepifg_helper.py
index b9bba2913..34cbe9a37 100644
--- a/pyrate/core/prepifg_helper.py
+++ b/pyrate/core/prepifg_helper.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/ref_phs_est.py b/pyrate/core/ref_phs_est.py
index 4bf585aad..50ddcf134 100644
--- a/pyrate/core/ref_phs_est.py
+++ b/pyrate/core/ref_phs_est.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/refpixel.py b/pyrate/core/refpixel.py
index dbad72830..3ad6fe23b 100644
--- a/pyrate/core/refpixel.py
+++ b/pyrate/core/refpixel.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/roipac.py b/pyrate/core/roipac.py
index dc751ca9a..d669656e8 100644
--- a/pyrate/core/roipac.py
+++ b/pyrate/core/roipac.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/shared.py b/pyrate/core/shared.py
index ed7e745c3..7dd48c59f 100644
--- a/pyrate/core/shared.py
+++ b/pyrate/core/shared.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
@@ -40,11 +40,8 @@
 
 import pyrate.constants as C
 
-try:
-    from osgeo import osr, gdal
-    from osgeo.gdalconst import GA_Update, GA_ReadOnly
-except ImportError:
-    import gdal
+from osgeo import osr, gdal
+from osgeo.gdalconst import GA_Update, GA_ReadOnly
 
 from pyrate.core import ifgconstants as ifc, mpiops
 from pyrate.core.logger import pyratelogger as log
diff --git a/pyrate/core/stack.py b/pyrate/core/stack.py
index 0e90f6b55..c2443b785 100644
--- a/pyrate/core/stack.py
+++ b/pyrate/core/stack.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/core/timeseries.py b/pyrate/core/timeseries.py
index 366b59c14..ad50edd0a 100644
--- a/pyrate/core/timeseries.py
+++ b/pyrate/core/timeseries.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/correct.py b/pyrate/correct.py
index 45efb6c25..069c416df 100644
--- a/pyrate/correct.py
+++ b/pyrate/correct.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/default_parameters.py b/pyrate/default_parameters.py
index 2e3c07deb..0a41c3161 100644
--- a/pyrate/default_parameters.py
+++ b/pyrate/default_parameters.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License,
 #   Version 2.0 (the "License");
diff --git a/pyrate/main.py b/pyrate/main.py
index afe5a539c..e19bf0970 100644
--- a/pyrate/main.py
+++ b/pyrate/main.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/merge.py b/pyrate/merge.py
index 4b06d5e6f..cba6be3da 100644
--- a/pyrate/merge.py
+++ b/pyrate/merge.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/pyrate/prepifg.py b/pyrate/prepifg.py
index c03474cd7..71dc1c5a9 100644
--- a/pyrate/prepifg.py
+++ b/pyrate/prepifg.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/scripts/plot_ifgs.py b/scripts/plot_ifgs.py
index 7b596dfc1..ce19f7218 100644
--- a/scripts/plot_ifgs.py
+++ b/scripts/plot_ifgs.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/setup.py b/setup.py
index 2169f4ebb..7c8cdcd6b 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
@@ -20,7 +20,7 @@
 from subprocess import check_output, run
 import platform
 import setuptools
-__version__ = "0.6.0"
+__version__ = "0.6.1"
 
 # Get requirements (and dev requirements for testing) from requirements
 #  txt files. Also ensure we are using correct GDAL version.
diff --git a/utils/create_lv_theta.py b/utils/create_lv_theta.py
index 2ae7f0469..146f654f9 100644
--- a/utils/create_lv_theta.py
+++ b/utils/create_lv_theta.py
@@ -1,6 +1,6 @@
 # This Python module is part of the PyRate software package
 #
-# Copyright 2021 Geoscience Australia
+# Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/crop_ifgs.py b/utils/crop_ifgs.py
index d9be45ec1..601ce9a14 100644
--- a/utils/crop_ifgs.py
+++ b/utils/crop_ifgs.py
@@ -1,6 +1,6 @@
 # This Python module is part of the PyRate software package
 #
-# Copyright 2021 Geoscience Australia
+# Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/gdaldem.py b/utils/gdaldem.py
index 6419dd899..6ee9cf061 100644
--- a/utils/gdaldem.py
+++ b/utils/gdaldem.py
@@ -1,6 +1,6 @@
 # This Python module is part of the PyRate software package
 #
-# Copyright 2021 Geoscience Australia
+# Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/list_creator.sh b/utils/list_creator.sh
new file mode 100644
index 000000000..d00a2bd75
--- /dev/null
+++ b/utils/list_creator.sh
@@ -0,0 +1,16 @@
+"""
+This script generates input lists for PyRate baseed on the PyGAMMA workflow for descending frame S1 data in Australia.
+Small modifications are necessary if using ascending frame data
+Usage: . list_creator.sh
+"""
+
+# Provide path to the Gamma folder titled with the frame name
+DIR="/path/to/frame/T045D"
+ls -d "$DIR"/*/*/*unw.tif > ifgs.list
+# "coh" is "cc" in asending frame data
+ls -d "$DIR"/*/*/*flat*coh.tif > cohfiles.list
+ls -d "$DIR"/*/*/*base.par > baseline.list
+# Change "VV" depending on polarisation of data.
+ls -d "$DIR"/*/*/*VV*mli.par > headers.list
+
+wc -l *.list
diff --git a/utils/make_tscuml_animation.py b/utils/make_tscuml_animation.py
index a10a077c4..827a41f9e 100755
--- a/utils/make_tscuml_animation.py
+++ b/utils/make_tscuml_animation.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/plot_correction_files.py b/utils/plot_correction_files.py
index 12274ad5b..ffd2e32ec 100755
--- a/utils/plot_correction_files.py
+++ b/utils/plot_correction_files.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/plot_linear_rate_profile.py b/utils/plot_linear_rate_profile.py
index 25042287c..e06a7bdcb 100755
--- a/utils/plot_linear_rate_profile.py
+++ b/utils/plot_linear_rate_profile.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/plot_sbas_network.py b/utils/plot_sbas_network.py
index cb95ed53e..c8b79e764 100755
--- a/utils/plot_sbas_network.py
+++ b/utils/plot_sbas_network.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/plot_time_series.py b/utils/plot_time_series.py
index 410af4edf..55b6439c3 100755
--- a/utils/plot_time_series.py
+++ b/utils/plot_time_series.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/utils/pyrate_pycallgraph.py b/utils/pyrate_pycallgraph.py
index 1b7712956..359d64f9f 100644
--- a/utils/pyrate_pycallgraph.py
+++ b/utils/pyrate_pycallgraph.py
@@ -1,6 +1,6 @@
 # This Python module is part of the PyRate software package
 #
-# Copyright 2021 Geoscience Australia
+# Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.


Test patch:
diff --git a/tests/common.py b/tests/common.py
index fc3b15c7b..732213c51 100644
--- a/tests/common.py
+++ b/tests/common.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/conftest.py b/tests/conftest.py
index c444056d3..ca5844e77 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/phase_closure/test_closure_check.py b/tests/phase_closure/test_closure_check.py
index 168af0f69..6fc31fd0e 100644
--- a/tests/phase_closure/test_closure_check.py
+++ b/tests/phase_closure/test_closure_check.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/phase_closure/test_mst_closure.py b/tests/phase_closure/test_mst_closure.py
index cf691dc7c..ac19fa7da 100644
--- a/tests/phase_closure/test_mst_closure.py
+++ b/tests/phase_closure/test_mst_closure.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/phase_closure/test_plot_closure.py b/tests/phase_closure/test_plot_closure.py
index 7986ac840..e087befe6 100644
--- a/tests/phase_closure/test_plot_closure.py
+++ b/tests/phase_closure/test_plot_closure.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/phase_closure/test_sum_closure.py b/tests/phase_closure/test_sum_closure.py
index 19111cad8..568a33042 100644
--- a/tests/phase_closure/test_sum_closure.py
+++ b/tests/phase_closure/test_sum_closure.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_algorithm.py b/tests/test_algorithm.py
index 2c16eac2e..895f74374 100644
--- a/tests/test_algorithm.py
+++ b/tests/test_algorithm.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_aps.py b/tests/test_aps.py
index ba98b7801..5fba24bb7 100644
--- a/tests/test_aps.py
+++ b/tests/test_aps.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_conv2tif.py b/tests/test_conv2tif.py
index 5161c33ad..17b884288 100644
--- a/tests/test_conv2tif.py
+++ b/tests/test_conv2tif.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_correct.py b/tests/test_correct.py
index 5b468fecc..6d49303bb 100644
--- a/tests/test_correct.py
+++ b/tests/test_correct.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_covariance.py b/tests/test_covariance.py
index 4d2189c6d..ae4f0b54c 100644
--- a/tests/test_covariance.py
+++ b/tests/test_covariance.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_gamma.py b/tests/test_gamma.py
index 25aebbe7f..81d60f281 100644
--- a/tests/test_gamma.py
+++ b/tests/test_gamma.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_gamma_vs_roipac.py b/tests/test_gamma_vs_roipac.py
index 44a4791bd..0f1671113 100644
--- a/tests/test_gamma_vs_roipac.py
+++ b/tests/test_gamma_vs_roipac.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_gdal_python.py b/tests/test_gdal_python.py
index 5bd6fe5be..a4137da64 100644
--- a/tests/test_gdal_python.py
+++ b/tests/test_gdal_python.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_merge.py b/tests/test_merge.py
index 814e1879f..739128662 100644
--- a/tests/test_merge.py
+++ b/tests/test_merge.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_mpi.py b/tests/test_mpi.py
index 15515559c..15e7fe0c1 100644
--- a/tests/test_mpi.py
+++ b/tests/test_mpi.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_mpi_vs_multiprocess_vs_single_process.py b/tests/test_mpi_vs_multiprocess_vs_single_process.py
index 4d953117d..3245c7aec 100644
--- a/tests/test_mpi_vs_multiprocess_vs_single_process.py
+++ b/tests/test_mpi_vs_multiprocess_vs_single_process.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_mst.py b/tests/test_mst.py
index 1b9a4672f..387c1a1c1 100644
--- a/tests/test_mst.py
+++ b/tests/test_mst.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_orbital.py b/tests/test_orbital.py
index 4b64f2df0..a8ada75e0 100644
--- a/tests/test_orbital.py
+++ b/tests/test_orbital.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
@@ -1286,7 +1286,7 @@ def __init__(self, orbfit_deg, epochs, network, model_params):
         self.ifgs = ifgs
         self.epochs = epochs
 
-
+@pytest.mark.skip(reason="test is non-deterministic due to float calculation errors in array comparison")
 def test_synthetic_network_correction(orbfit_degrees, orb_lks):
     epochs = [
         date(2000, 1, 1),
diff --git a/tests/test_prepifg.py b/tests/test_prepifg.py
index 76e406260..63d0e54ec 100644
--- a/tests/test_prepifg.py
+++ b/tests/test_prepifg.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_prepifg_system_vs_python.py b/tests/test_prepifg_system_vs_python.py
index 9972ba3ea..c9461ed96 100644
--- a/tests/test_prepifg_system_vs_python.py
+++ b/tests/test_prepifg_system_vs_python.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_pyrate.py b/tests/test_pyrate.py
index bb10ac476..bdc047d5b 100644
--- a/tests/test_pyrate.py
+++ b/tests/test_pyrate.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_ref_phs_est.py b/tests/test_ref_phs_est.py
index 3c1176404..ff37d62d4 100644
--- a/tests/test_ref_phs_est.py
+++ b/tests/test_ref_phs_est.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_refpixel.py b/tests/test_refpixel.py
index 6b9a408ec..432be278f 100644
--- a/tests/test_refpixel.py
+++ b/tests/test_refpixel.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_roipac.py b/tests/test_roipac.py
index 429c5c3ba..1a8c6eb27 100644
--- a/tests/test_roipac.py
+++ b/tests/test_roipac.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_shared.py b/tests/test_shared.py
index 85f994c86..a44fdd1ba 100644
--- a/tests/test_shared.py
+++ b/tests/test_shared.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_stackrate.py b/tests/test_stackrate.py
index 97c228796..471ba1ea2 100644
--- a/tests/test_stackrate.py
+++ b/tests/test_stackrate.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_system.py b/tests/test_system.py
index 0ecb7a8b3..e7facb30a 100644
--- a/tests/test_system.py
+++ b/tests/test_system.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
diff --git a/tests/test_timeseries.py b/tests/test_timeseries.py
index 6e1bdaed3..8d0c37582 100644
--- a/tests/test_timeseries.py
+++ b/tests/test_timeseries.py
@@ -1,6 +1,6 @@
 #   This Python module is part of the PyRate software package.
 #
-#   Copyright 2021 Geoscience Australia
+#   Copyright 2022 Geoscience Australia
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.