Hello community,

here is the log from the commit of package otb for openSUSE:Factory checked in 
at 2019-11-29 15:59:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/otb (Old)
 and      /work/SRC/openSUSE:Factory/.otb.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "otb"

Fri Nov 29 15:59:42 2019 rev:3 rq:751848 version:7.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/otb/otb.changes  2019-11-08 15:28:45.171193952 
+0100
+++ /work/SRC/openSUSE:Factory/.otb.new.26869/otb.changes       2019-11-29 
16:03:24.856793188 +0100
@@ -1,0 +2,29 @@
+Tue Nov 19 15:17:32 UTC 2019 - Dirk Stoecker <[email protected]>
+
+- update to OTB version 7.0.0
+
+  * Documentation:
+    * The Cookbook has been refactored !
+    * The Software guide has been removed, most of its content has been 
migrated
+      to the Cookbook.
+  * New applications:
+    * ZonalStatistics : Object based statistics computation
+    * TrainVectorRegression , TrainImagesRegression , VectorRegression and
+      ImageRegression : Refactoring of the regression framework, based on
+      the classification framework.
+    * LocalRxDetection and EndmemberNumberEstimation: Hyperspectral image 
processing.
+  * Other changes includes:
+    * The minimum CMake version required to compile OTB is now 3.10.2 .
+    * The Mosaic Remote Module has been moved inside the OTB.
+    * The Python wrapper support logging.
+    * Python 2 is not supported by the wrapper anymore
+    * The Java wrapper has been removed.
+    * Support for GDAL 3.X has been added, support for GDAL 1.X has been 
removed.
+    * Support for OpenCV 4 has been added.
+    * OTB has a new continuous integration system.
+    * New SAR sensor Model : CosmoSkymed
+    * A generic functorImageFilter has been added.
+ * Drop obsolete patch: otb-fix_VERSION_file_install.patch
+ * Cleanup spec file a lot
+
+-------------------------------------------------------------------

Old:
----
  OTB-6.6.1.tar.xz
  otb-fix_VERSION_file_install.patch
  temporalgapfilling-4fc4a71.tar.xz

New:
----
  OTB-7.0.0.tar.xz
  temporalgapfilling-0010532.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ otb.spec ++++++
--- /var/tmp/diff_new_pack.R21bCa/_old  2019-11-29 16:03:26.408792551 +0100
+++ /var/tmp/diff_new_pack.R21bCa/_new  2019-11-29 16:03:26.412792549 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package otb
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC.
 # Copyright (c) 2017 Angelos Tzotsos <[email protected]>.
 #
 # All modifications and additions to the file contributed by third parties
@@ -18,52 +18,45 @@
 
 
 %define tarname OTB
-%define filerelease 6.6
-%define libversion 6
+%define fullversion 7.0.0
+%define filerelease 7.0
+%define libversion 7
+# OTBTemporalGapFilling 
https://gitlab.orfeo-toolbox.org/jinglada/temporalgapfilling/ - latest git rev. 
(cmake follows master head)
+%define tgfrev 0010532
 
 # Enable remote module by default
 %bcond_without enable_remote_module
 
 Name:           otb
-Version:        6.6.1
+Version:        %{fullversion}
 Release:        0
 Summary:        A C++ library for remote sensing image processing
 License:        Apache-2.0
 Group:          Productivity/Scientific/Other
-Url:            http://www.orfeo-toolbox.org
+URL:            http://www.orfeo-toolbox.org
 Source0:        
https://www.orfeo-toolbox.org/packages/archives/OTB/%{tarname}-%{version}.tar.xz
-# OTBTemporalGapFilling - 
http://tully.ups-tlse.fr/jordi/temporalgapfilling.git - git rev. selected by 
cmake file
-Source10:       temporalgapfilling-4fc4a71.tar.xz
+Source10:       temporalgapfilling-%{tgfrev}.tar.xz
 # PATCH-FIX-UPSTREAM - otb-fix_lib64_handling.patch: fix lib64 path handling
 Patch0:         otb-fix_lib64_handling.patch
-# PATCH-FIX-UPSTREAM - otb-fix_VERSION_file_install.patch: fix install path of 
VERSION
-Patch1:         otb-fix_VERSION_file_install.patch
 # PATCH-FIX-UPSTREAM 
https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/merge_requests/625
 Patch2:         otb-6.6.1-reproducible.patch
 # PATCH-FIX-OPENSUSE cmake file wants to clone the GIT repo. We are offline, 
so patch cmake file to be able to use our tarball instead of git clone
 Patch10:        fix_non_git_usage.patch
 BuildRequires:  boost-devel
-BuildRequires:  cmake >= 3.1.0
+BuildRequires:  cmake >= 3.10.2
 BuildRequires:  fdupes
-BuildRequires:  xz
-%if 0%{?suse_version} < 1500
-# With the default gcc 4.8, the compilation fails on Leap 42.x
-BuildRequires:  gcc7
-BuildRequires:  gcc7-c++
-%else
 BuildRequires:  gcc
 BuildRequires:  gcc-c++
-%endif
+BuildRequires:  gdal-devel
 BuildRequires:  geotiff-devel
 BuildRequires:  insighttoolkit-devel
 BuildRequires:  libOpenThreads-devel
 BuildRequires:  libcurl-devel
-# does not work with GDAL3 yet (on next major update replace this and the 
requires for devel with gdal-devel again)
-BuildRequires:  libgdal20-devel
 BuildRequires:  libproj-devel
 BuildRequires:  libqt5-linguist-devel
 BuildRequires:  libqt5-qtbase-devel
 BuildRequires:  libsvm-devel
+BuildRequires:  xz
 %if %{with enable_remote_module}
 BuildRequires:  git
 # GSL is needed by OTBTemporalGapFilling module
@@ -75,24 +68,18 @@
 BuildRequires:  libtool
 BuildRequires:  muparser-devel
 BuildRequires:  muparserx-devel
-BuildRequires:  ossim-devel
-BuildRequires:  python2-devel
-BuildRequires:  qwt6-devel
-%if 0%{?suse_version} >= 1500
-BuildRequires:  python2-numpy-devel
-%else
-BuildRequires:  python-numpy-devel
-%endif
+# Actually opencv 4 should be supported, but not 4.1
 %if 0%{?suse_version} >= 1550
 BuildRequires:  opencv3-devel
 %else
-BuildRequires:  opencv-devel < 4.0
+BuildRequires:  opencv-devel < 4.1
 %endif
+BuildRequires:  ossim-devel
 BuildRequires:  python3-devel
 BuildRequires:  python3-numpy-devel
+BuildRequires:  qwt6-devel
 BuildRequires:  swig
 BuildRequires:  tinyxml-devel
-Obsoletes:      OrfeoToolbox
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -105,7 +92,7 @@
 
 %package devel
 Summary:        ORFEO Toolbox development files
-Group:          Productivity/Scientific/Other
+Group:          Development/Libraries/C and C++
 Requires:       boost-devel
 Requires:       cmake
 Requires:       gcc
@@ -115,7 +102,7 @@
 Requires:       lib%{name}%{libversion} = %{version}
 Requires:       libOpenThreads-devel
 Requires:       libcurl-devel
-Requires:       libgdal20-devel
+Requires:       gdal-devel
 Requires:       libgeotiff-devel
 Requires:       libglfw-devel
 Requires:       libqt5-linguist-devel
@@ -125,10 +112,11 @@
 Requires:       libtool
 Requires:       muparser-devel
 Requires:       muparserx-devel
+# Actually opencv 4 should be supported, but not 4.1
 %if 0%{?suse_version} >= 1550
 Requires:       opencv3-devel
 %else
-Requires:       opencv-devel < 4.0
+Requires:       opencv-devel < 4.1
 %endif
 Requires:       ossim-devel
 Requires:       qwt6-devel
@@ -163,11 +151,9 @@
 
 %package -n monteverdi
 Summary:        Application based on OrfeoToolbox (OTB) for remote sensing 
image processing
-Group:          Development/Libraries
+Group:          System/Libraries
 Requires:       lib%{name}%{libversion} = %{version}
 Requires:       otb-qt
-Obsoletes:      monteverdi < %{version}
-Provides:       monteverdi = %{version}
 
 %description -n monteverdi
 Monteverdi is an image processing workshop based on the OTB library. It takes
@@ -178,7 +164,6 @@
 %package -n lib%{name}%{libversion}
 Summary:        ORFEO Toolbox shared library of image processing algorithms
 Group:          System/Libraries
-Obsoletes:      OrfeoToolbox
 
 %description -n lib%{name}%{libversion}
 ORFEO Toolbox (OTB) is a library of image processing algorithms. OTB
@@ -193,7 +178,6 @@
 Summary:        ORFEO Toolbox graphical user interface applications
 Group:          System/Libraries
 Requires:       lib%{name}%{libversion} = %{version}
-Obsoletes:      OrfeoToolbox
 
 %description -n %{name}-qt
 ORFEO Toolbox (OTB) is a library of image processing algorithms. OTB
@@ -204,31 +188,26 @@
 This package contains the GUI tools illustrating OTB features (using plugins
 provided by otb package).
 
-%package -n python2-%{name}
-Summary:        ORFEO Toolbox Python2 API for applications
-Group:          Development/Languages/Python
-Requires:       lib%{name}%{libversion} = %{version}
-Obsoletes:      OrfeoToolbox
-
-%description -n python2-%{name}
-ORFEO Toolbox Python 2 API for applications.
-
 %package -n python3-%{name}
-Summary:        ORFEO Toolbox Python2 API for applications
+Summary:        ORFEO Toolbox Python3 API for applications
 Group:          Development/Languages/Python
 Requires:       lib%{name}%{libversion} = %{version}
-Obsoletes:      OrfeoToolbox
+Obsoletes:      python2-%{name}
 
 %description -n python3-%{name}
-ORFEO Toolbox Python 3 API for applications.
+ORFEO Toolbox (OTB) is a library of image processing algorithms. OTB
+is based on the medical image processing library ITK and offers
+particular functionalities for remote sensing image processing in
+general and for high spatial resolution images in particular.
+
+This package contains the ORFEO Toolbox Python 3 API for applications.
 
 %prep
 %if %{with enable_remote_module}
 %setup -q -n temporalgapfilling -b 10
 %endif
-%setup -q -n %{tarname}-release-%{filerelease}
+%setup -q -c
 %patch0 -p1
-%patch1 -p1
 %patch2 -p1
 %patch10 -p0
 %if %{with enable_remote_module}
@@ -236,17 +215,7 @@
 %endif
 
 %build
-# Disable MPI for now since OTB apps do not start easily (we must add MPI libs 
to LD_LIBRARY_PATH to start apps)
-# # Find MPI
-# if [ -f %{_libdir}/mpi/gcc/openmpi/bin/mpivars.sh ]; then
-#   source %{_libdir}/mpi/gcc/openmpi/bin/mpivars.sh
-# fi
-
 %cmake  \
-%if 0%{?suse_version} < 1500
-  -DCMAKE_C_COMPILER=gcc-7 \
-  -DCMAKE_CXX_COMPILER=g++-7 \
-%endif
   -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \
   -DBUILD_SHARED_LIBS:BOOL=ON \
   -DBUILD_EXAMPLES:BOOL=OFF \
@@ -255,7 +224,6 @@
   -DOTB_USE_CURL:BOOL=ON \
   -DOTB_USE_LIBKML:BOOL=OFF \
   -DOTB_USE_LIBSVM:BOOL=ON \
-  -DOTB_USE_MAPNIK:BOOL=OFF \
   -DOTB_USE_MPI:BOOL=OFF \
   -DOTB_USE_SPTW:BOOL=ON \
   -DOTB_USE_MUPARSER:BOOL=ON \
@@ -269,13 +237,10 @@
   -DOTB_USE_QWT:BOOL=ON \
   -DQWT_INCLUDE_DIR=%{_includedir}/qt5/qwt6 \
   -DOTB_USE_SIFTFAST:BOOL=ON \
-  -DOTB_WRAP_JAVA:BOOL=OFF \
   -DOTB_WRAP_PYTHON:BOOL=ON \
-  -DOTB_WRAP_PYTHON3:BOOL=ON \
   -DOTB_INSTALL_LIBRARY_DIR:STRING=%{_lib} \
-  -DOTB_INSTALL_PYTHON_DIR:STRING=%{_lib}/otb/python \
-  -DOTB_INSTALL_PYTHON3_DIR:STRING=%{_lib}/otb/python3 \
-  -DOTB_INSTALL_APP_DIR:STRING=%{_lib}/otb/applications \
+  -DOTB_INSTALL_PYTHON_DIR:STRING=%{_lib}/otb/python3 \
+  -DOTB_INSTALL_APP_DIR:STRING=%{_lib}/otb%{libversion}/applications \
 %if %{with enable_remote_module}
   -DModule_OTBTemporalGapFilling:BOOL=ON \
 %endif
@@ -284,33 +249,9 @@
 make VERBOSE=1 %{?_smp_mflags}
 
 %install
-%cmake_install 
 
-# install -d %%{buildroot}%{_sysconfdir}/ld.so.conf.d
-# LDCONFIG_FILE=%%{buildroot}%{_sysconfdir}/ld.so.conf.d/otb.conf
-# %%if "%%{_lib}" == "lib64"
-# cat > "$LDCONFIG_FILE" <<EOF
-# # Orfeo Toolbox related search paths
-# /usr/lib64/otb
-# EOF
-# %%else
-# cat > "$LDCONFIG_FILE" <<EOF
-# # Orfeo Toolbox related search paths
-# /usr/lib/otb
-# EOF
-# %%endif
-
-# %%if "%%{_lib}" == "lib64"
-# mkdir -p %%{buildroot}/usr/lib64
-# mv %%{buildroot}/usr/lib/* %%{buildroot}/usr/lib64/
-# %%endif
-
-rm -rf %{buildroot}%{_datadir}/doc
-rm -rf %{buildroot}%{_libexecdir}/debug
-rm -rf %{buildroot}/usr/lib/*.a
-# Remove spurious executable bits
-chmod 0644 %{buildroot}/usr/share/applications/monteverdi.desktop
-chmod 0644 %{buildroot}/usr/share/pixmaps/monteverdi.xpm
+%cmake_install
+rm -rf %{buildroot}%{_datadir}/%{name}/swig
 
 %fdupes %{buildroot}/%{_prefix}
 
@@ -319,9 +260,15 @@
 %postun -n lib%{name}%{libversion} -p /sbin/ldconfig
 
 %files -n %{name}-bin
+%license LICENSE
+%doc NOTICE PSC.md README.md RELEASE_NOTES.txt
 %defattr(755,root,root,755)
 %{_bindir}/otbcli_*
 %{_bindir}/otbcli
+%{_bindir}/otbTestDriver
+%{_bindir}/otbApplicationLauncherCommandLine
+%{_bindir}/otbApplicationLauncherQt
+%{_bindir}/otbQgisDescriptor
 
 %files -n %{name}-qt
 %defattr(755,root,root,755)
@@ -336,34 +283,21 @@
 %defattr(755,root,root,755)
 %{_bindir}/monteverdi
 %{_bindir}/mapla
+%defattr(644,root,root,755)
 %{_datadir}/applications/monteverdi.desktop
 %{_datadir}/icons/*
 %{_datadir}/pixmaps/monteverdi*
 
 %files -n lib%{name}%{libversion}
 %defattr(644,root,root,755)
-# %config %{_sysconfdir}/ld.so.conf.d/otb.conf
-%dir %{_libdir}/otb/
+%dir %{_libdir}/otb%{libversion}/
 %{_libdir}/*.so.*
-%dir %{_libdir}/otb/applications/
-%{_libdir}/otb/applications/otbapp_*.so
-%defattr(755,root,root,755)
-%{_bindir}/otbTestDriver
-%{_bindir}/otbApplicationLauncherCommandLine
-%{_bindir}/otbApplicationLauncherQt
-%{_bindir}/otbQgisDescriptor
-%dir %{_datadir}/otb
-%dir %{_datadir}/otb/description
-%{_datadir}/otb/description/*.txt
-%{_datadir}/otb/VERSION
-
-%files -n python2-%{name}
-%defattr(644,root,root,755)
-%dir %{_libdir}/otb/python/
-%{_libdir}/otb/python/*
+%dir %{_libdir}/otb%{libversion}/applications/
+%{_libdir}/otb%{libversion}/applications/otbapp_*.so
 
 %files -n python3-%{name}
 %defattr(644,root,root,755)
+%dir %{_libdir}/otb/
 %dir %{_libdir}/otb/python3/
 %{_libdir}/otb/python3/*
 
@@ -372,5 +306,10 @@
 %{_includedir}/OTB-%{filerelease}/
 %{_libdir}/lib*.so
 %{_libdir}/cmake/
+%dir %{_datadir}/otb
+%dir %{_datadir}/otb/description
+%{_datadir}/otb/description/*.txt
+%exclude %{_datadir}/doc
+%doc CONTRIBUTING.md 
 
 %changelog

++++++ OTB-6.6.1.tar.xz -> OTB-7.0.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/otb/OTB-6.6.1.tar.xz 
/work/SRC/openSUSE:Factory/.otb.new.26869/OTB-7.0.0.tar.xz differ: char 26, 
line 1

++++++ temporalgapfilling-4fc4a71.tar.xz -> temporalgapfilling-0010532.tar.xz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/.git/ORIG_HEAD 
new/temporalgapfilling/.git/ORIG_HEAD
--- old/temporalgapfilling/.git/ORIG_HEAD       2018-02-11 15:51:22.899015015 
+0100
+++ new/temporalgapfilling/.git/ORIG_HEAD       1970-01-01 01:00:00.000000000 
+0100
@@ -1 +0,0 @@
-ced8d2120eaaf48c1c3813433d3c5568a929541c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/.git/config 
new/temporalgapfilling/.git/config
--- old/temporalgapfilling/.git/config  2018-02-11 15:51:10.598969187 +0100
+++ new/temporalgapfilling/.git/config  2019-11-09 17:09:20.000000000 +0100
@@ -4,7 +4,7 @@
        bare = false
        logallrefupdates = true
 [remote "origin"]
-       url = http://tully.ups-tlse.fr/jordi/temporalgapfilling.git
+       url = https://gitlab.orfeo-toolbox.org/jinglada/temporalgapfilling
        fetch = +refs/heads/*:refs/remotes/origin/*
 [branch "master"]
        remote = origin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/.git/hooks/pre-commit.sample 
new/temporalgapfilling/.git/hooks/pre-commit.sample
--- old/temporalgapfilling/.git/hooks/pre-commit.sample 2018-02-11 
15:51:09.310964389 +0100
+++ new/temporalgapfilling/.git/hooks/pre-commit.sample 2019-11-09 
17:09:19.000000000 +0100
@@ -12,7 +12,7 @@
        against=HEAD
 else
        # Initial commit: diff against an empty tree object
-       against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+       against=$(git hash-object -t tree /dev/null)
 fi
 
 # If you want to allow non-ASCII filenames set this variable to true.
Binary files old/temporalgapfilling/.git/index and 
new/temporalgapfilling/.git/index differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/.git/logs/HEAD 
new/temporalgapfilling/.git/logs/HEAD
--- old/temporalgapfilling/.git/logs/HEAD       2018-02-11 15:51:22.899015015 
+0100
+++ new/temporalgapfilling/.git/logs/HEAD       2019-11-09 17:09:20.000000000 
+0100
@@ -1,2 +1 @@
-0000000000000000000000000000000000000000 
ced8d2120eaaf48c1c3813433d3c5568a929541c Bruno Friedmann <[email protected]> 
1518360670 +0100 clone: from 
http://tully.ups-tlse.fr/jordi/temporalgapfilling.git
-ced8d2120eaaf48c1c3813433d3c5568a929541c 
4fc4a71acf7b9b051cda5a3b950de2cdb9d26287 Bruno Friedmann <[email protected]> 
1518360682 +0100 reset: moving to 4fc4a71acf7b9b051cda5a3b950de2cdb9d26287
+0000000000000000000000000000000000000000 
0010532c706a7d5fcd5a1e754cf4bce49d685e48 Antoine Belvire 
<[email protected]> 1573315760 +0100      clone: from 
https://gitlab.orfeo-toolbox.org/jinglada/temporalgapfilling
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/.git/logs/refs/heads/master 
new/temporalgapfilling/.git/logs/refs/heads/master
--- old/temporalgapfilling/.git/logs/refs/heads/master  2018-02-11 
15:51:22.899015015 +0100
+++ new/temporalgapfilling/.git/logs/refs/heads/master  2019-11-09 
17:09:20.000000000 +0100
@@ -1,2 +1 @@
-0000000000000000000000000000000000000000 
ced8d2120eaaf48c1c3813433d3c5568a929541c Bruno Friedmann <[email protected]> 
1518360670 +0100 clone: from 
http://tully.ups-tlse.fr/jordi/temporalgapfilling.git
-ced8d2120eaaf48c1c3813433d3c5568a929541c 
4fc4a71acf7b9b051cda5a3b950de2cdb9d26287 Bruno Friedmann <[email protected]> 
1518360682 +0100 reset: moving to 4fc4a71acf7b9b051cda5a3b950de2cdb9d26287
+0000000000000000000000000000000000000000 
0010532c706a7d5fcd5a1e754cf4bce49d685e48 Antoine Belvire 
<[email protected]> 1573315760 +0100      clone: from 
https://gitlab.orfeo-toolbox.org/jinglada/temporalgapfilling
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/temporalgapfilling/.git/logs/refs/remotes/origin/HEAD 
new/temporalgapfilling/.git/logs/refs/remotes/origin/HEAD
--- old/temporalgapfilling/.git/logs/refs/remotes/origin/HEAD   2018-02-11 
15:51:10.598969187 +0100
+++ new/temporalgapfilling/.git/logs/refs/remotes/origin/HEAD   2019-11-09 
17:09:20.000000000 +0100
@@ -1 +1 @@
-0000000000000000000000000000000000000000 
ced8d2120eaaf48c1c3813433d3c5568a929541c Bruno Friedmann <[email protected]> 
1518360670 +0100 clone: from 
http://tully.ups-tlse.fr/jordi/temporalgapfilling.git
+0000000000000000000000000000000000000000 
0010532c706a7d5fcd5a1e754cf4bce49d685e48 Antoine Belvire 
<[email protected]> 1573315760 +0100      clone: from 
https://gitlab.orfeo-toolbox.org/jinglada/temporalgapfilling
Binary files 
old/temporalgapfilling/.git/objects/pack/pack-b8d989d6ddc71b46e578e957f3eacd005c9cf27b.idx
 and 
new/temporalgapfilling/.git/objects/pack/pack-b8d989d6ddc71b46e578e957f3eacd005c9cf27b.idx
 differ
Binary files 
old/temporalgapfilling/.git/objects/pack/pack-b8d989d6ddc71b46e578e957f3eacd005c9cf27b.pack
 and 
new/temporalgapfilling/.git/objects/pack/pack-b8d989d6ddc71b46e578e957f3eacd005c9cf27b.pack
 differ
Binary files 
old/temporalgapfilling/.git/objects/pack/pack-c4d5926a3f6c7bf7bf210d49d2a4af0c719f3bd6.idx
 and 
new/temporalgapfilling/.git/objects/pack/pack-c4d5926a3f6c7bf7bf210d49d2a4af0c719f3bd6.idx
 differ
Binary files 
old/temporalgapfilling/.git/objects/pack/pack-c4d5926a3f6c7bf7bf210d49d2a4af0c719f3bd6.pack
 and 
new/temporalgapfilling/.git/objects/pack/pack-c4d5926a3f6c7bf7bf210d49d2a4af0c719f3bd6.pack
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/.git/packed-refs 
new/temporalgapfilling/.git/packed-refs
--- old/temporalgapfilling/.git/packed-refs     2018-02-11 15:51:10.598969187 
+0100
+++ new/temporalgapfilling/.git/packed-refs     2019-11-09 17:09:20.000000000 
+0100
@@ -3,7 +3,8 @@
 ced8d2120eaaf48c1c3813433d3c5568a929541c refs/remotes/origin/bug_multi_year
 b371a4401d67c8838502243a2a15ffa36539d6ce refs/remotes/origin/compilerflags
 4fc4a71acf7b9b051cda5a3b950de2cdb9d26287 refs/remotes/origin/develop
-ced8d2120eaaf48c1c3813433d3c5568a929541c refs/remotes/origin/master
+0010532c706a7d5fcd5a1e754cf4bce49d685e48 refs/remotes/origin/master
 2bc58a4357dd8e18e954dfd801e1b8af05e39f88 refs/remotes/origin/module
 a64ee23b382b3f06446bc83e343fbb360fb9e098 refs/remotes/origin/multicomponentbug
 eaa0cdb69f714609931969d078c73f080b230069 refs/remotes/origin/refactorGFfunction
+2a7318107d7008a7314f94ab137455db034aa0f4 refs/remotes/origin/remove_SetDocName
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/.git/refs/heads/master 
new/temporalgapfilling/.git/refs/heads/master
--- old/temporalgapfilling/.git/refs/heads/master       2018-02-11 
15:51:22.899015015 +0100
+++ new/temporalgapfilling/.git/refs/heads/master       2019-11-09 
17:09:20.000000000 +0100
@@ -1 +1 @@
-4fc4a71acf7b9b051cda5a3b950de2cdb9d26287
+0010532c706a7d5fcd5a1e754cf4bce49d685e48
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/temporalgapfilling/app/otbImageTimeSeriesGapFilling.cxx 
new/temporalgapfilling/app/otbImageTimeSeriesGapFilling.cxx
--- old/temporalgapfilling/app/otbImageTimeSeriesGapFilling.cxx 2018-02-11 
15:51:22.891014986 +0100
+++ new/temporalgapfilling/app/otbImageTimeSeriesGapFilling.cxx 2019-11-09 
17:09:20.000000000 +0100
@@ -83,7 +83,6 @@
     SetDescription("Time series gapfilling.");
 
     // Documentation
-    SetDocName("Image Time Series Gap Filling");
     SetDocLongDescription("This application performs a temporal gapfilling" 
                           "of an image time series.");
     SetDocLink("http://tully.ups-tlse.fr/jordi/temporalgapfilling#tab-readme";);
@@ -201,12 +200,14 @@
   {
     std::string in_date_file{""};
     std::string out_date_file{""};
+    std::tm first_in_date{};
     if(IsParameterEnabled("id"))
       {
       in_date_file = GetParameterString("id");
       otbAppLogINFO( "Using date file " << in_date_file );
       
       auto date_vec = GapFilling::parse_date_file(in_date_file);
+      first_in_date = date_vec[0];
       std::vector<TValue> doy_vector(date_vec.size(), TValue{0});
       std::transform(std::begin(date_vec), std::end(date_vec),
                      std::begin(doy_vector), GapFilling::doy_multi_year());
@@ -219,9 +220,12 @@
       otbAppLogINFO( "Using output date file " << out_date_file );
 
       auto date_vec = GapFilling::parse_date_file(out_date_file);
+      auto first_out_date = date_vec[0];
+      auto d_init = dv[0];
+      if(first_out_date < first_in_date) d_init = 
GapFilling::doy(first_out_date);
       std::vector<TValue> doy_vector(date_vec.size(), TValue{0});
       std::transform(std::begin(date_vec), std::end(date_vec),
-                     std::begin(doy_vector), GapFilling::doy_multi_year());
+                     std::begin(doy_vector), 
GapFilling::doy_multi_year(d_init));
       odv = TPixel(doy_vector.data(), doy_vector.size());
       }
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/include/otbDateUtils.h 
new/temporalgapfilling/include/otbDateUtils.h
--- old/temporalgapfilling/include/otbDateUtils.h       2018-02-11 
15:51:22.891014986 +0100
+++ new/temporalgapfilling/include/otbDateUtils.h       2019-11-09 
17:09:20.000000000 +0100
@@ -22,6 +22,9 @@
 #include <vnl/vnl_vector.h>
 #include <boost/algorithm/string.hpp>
 
+/// Compare 2 dates
+bool operator<(std::tm x, std::tm y);
+
 namespace GapFilling {
 using PrecisionType = double;
 using VectorType = vnl_vector<PrecisionType>;
@@ -42,12 +45,18 @@
 /// Return the day of year
 unsigned int doy(const std::tm& d);
 
+
 /** Functor with state to return the day of the year dealing with
 dates spread over multiple years adding 365*year_count to the doy.
 Does not take into account leap years.
 */
 struct doy_multi_year
 {
+  doy_multi_year() = default;
+  doy_multi_year(unsigned int d_prev_init) : d_prev{d_prev_init}
+  {
+    first_date = false;
+  }
   unsigned int operator()(const std::tm& d)
   {
     auto tmp_doy = doy(d);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/include/otbTemporalGapFilling.h 
new/temporalgapfilling/include/otbTemporalGapFilling.h
--- old/temporalgapfilling/include/otbTemporalGapFilling.h      2018-02-11 
15:51:10.606969217 +0100
+++ new/temporalgapfilling/include/otbTemporalGapFilling.h      2019-11-09 
17:09:20.000000000 +0100
@@ -322,7 +322,7 @@
       {
       auto lvp = lv[i];
       auto nvp = nv[i];
-      if(m[i]==(valid_value))
+      if(m[i]==valid_value)
         result[i] = p[i];
       else
         {
@@ -450,16 +450,27 @@
     std::size_t nbValidDates{0};
     for(size_t i = 0; i < nbDates; i++)
       {
-      if(m[i]==(valid_value))
+      if(m[i]==valid_value)
         {
         x[nbValidDates] = d[i];
+        //Ensure that the dates are strictly increasing
+        if(nbValidDates>0 && 
+           
(x[nbValidDates]-x[nbValidDates-1])<std::numeric_limits<double>::epsilon())
+        {
+          //1 epsilon is not enough for gsl
+          x[nbValidDates] = x[nbValidDates-1] + 0.1;
+        }
         y[nbValidDates] = p[i];
         nbValidDates++;
         }
       }
+    if(nbValidDates < 2)
+    {
+    return p;
+    }
     gsl_interp_accel* acc = gsl_interp_accel_alloc();
     gsl_spline* spline = select_spline_type(nbValidDates);
-    if(!spline) return p;
+    if(spline == nullptr) return p;
     gsl_spline_init(spline, x, y, nbValidDates);
     // the real interpolation
     PixelType result(nbDates);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/src/otbDateUtils.cxx 
new/temporalgapfilling/src/otbDateUtils.cxx
--- old/temporalgapfilling/src/otbDateUtils.cxx 2018-02-11 15:51:22.891014986 
+0100
+++ new/temporalgapfilling/src/otbDateUtils.cxx 2019-11-09 17:09:20.000000000 
+0100
@@ -20,6 +20,16 @@
 #include <cmath>
 #include <algorithm>
 
+
+bool operator<(std::tm x, std::tm y)
+{
+  if( y.tm_year < x.tm_year ) return false;
+  if( y.tm_year == x.tm_year && y.tm_mon < x.tm_mon) return false;
+  if( y.tm_year == x.tm_year && y.tm_mon == x.tm_mon
+      && y.tm_mday < x.tm_mday ) return false;
+  return true;
+}
+
 namespace GapFilling {
 
 std::vector<std::string> string_split(const std::string& s, const std::string& 
sep)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/temporalgapfilling/test/SplineGapfillingTest.cxx 
new/temporalgapfilling/test/SplineGapfillingTest.cxx
--- old/temporalgapfilling/test/SplineGapfillingTest.cxx        2018-02-11 
15:51:10.606969217 +0100
+++ new/temporalgapfilling/test/SplineGapfillingTest.cxx        2019-11-09 
17:09:20.000000000 +0100
@@ -33,6 +33,11 @@
                   VectorType{0, 1, 2, 3, 4, 5, 6},
                   VectorType{0, 1, 2, 3, 4, 5, 6},
                   VectorType{1, 1, 2, 3, 4, 1, 1}),
+  std::make_tuple(VectorType{0, 0, 0, 0, 0, 0, 0, 0}, //case with a dup input 
date
+                  VectorType{1, 1, 2, 3, 3, 4, 1, 1},
+                  VectorType{0, 1, 2, 3, 3, 4, 5, 6},
+                  VectorType{0, 1, 2, 3, 4, 5, 6},
+                  VectorType{1, 1, 2, 3, 4, 1, 1}),
   std::make_tuple(VectorType{0,0,0,0,0,0,0,0,0,0},
                   
VectorType{1,1.54030,1.34636,2.08887,3.04234,5.99120,5.87204,7.30059,8.39186,9.77669},
                   
VectorType{0,1.42074,2.45465,3.07056,3.62160,4.52054,5.86029,7.32849,8.49468,9.20606},
@@ -71,11 +76,13 @@
     auto m = std::get<0>(t);
     auto p = std::get<1>(t);
     auto d = std::get<2>(t);
+    auto od = std::get<3>(t);
     auto e = std::get<4>(t);
-    GFF gfd{GapFilling::vectorToPixel(d)};
+    GFF gfd{GapFilling::vectorToPixel(d), GapFilling::vectorToPixel(od)};
     PixelType mask(m.data(), m.size());
     PixelType pix(p.data(), p.size());
     PixelType dat(d.data(), d.size());
+    PixelType odat(od.data(), od.size());
     PixelType expect(e.data(), e.size());
 
     auto res = gfd(pix, mask);
@@ -84,6 +91,7 @@
       std::cout << "-- with dates --" << std::endl;
       std::cout << mask << std::endl;
       std::cout << dat << std::endl;
+      std::cout << odat << std::endl;
       std::cout << pix << std::endl;
       std::cout << expect << std::endl;
       std::cout << res << std::endl;


Reply via email to