[Git][debian-gis-team/saga][master] 5 commits: New upstream version 9.1.1+dfsg

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Wed Jul 26 16:01:42 BST 2023



Bas Couwenberg pushed to branch master at Debian GIS Project / saga


Commits:
133c0e9c by Bas Couwenberg at 2023-07-26T16:43:31+02:00
New upstream version 9.1.1+dfsg
- - - - -
924772f5 by Bas Couwenberg at 2023-07-26T16:43:45+02:00
Update upstream source from tag 'upstream/9.1.1+dfsg'

Update to upstream version '9.1.1+dfsg'
with Debian dir a13a8b44d2b9b0837bda6e6a94a65a28971c2601
- - - - -
53368171 by Bas Couwenberg at 2023-07-26T16:44:02+02:00
New upstream release.

- - - - -
7a002c03 by Bas Couwenberg at 2023-07-26T16:55:36+02:00
Export DEB_PYTHON_INSTALL_LAYOUT to fix FTBFS with CMake 3.27.0.

- - - - -
abd66f27 by Bas Couwenberg at 2023-07-26T16:55:36+02:00
Set distribution to unstable.

- - - - -


19 changed files:

- debian/changelog
- debian/rules
- saga-gis/src/accessories/helper/doxygen_saga_api_chm
- saga-gis/src/accessories/helper/doxygen_saga_api_html
- saga-gis/src/accessories/helper/make_saga_release.bat
- saga-gis/src/accessories/python/saga_python_example.py
- saga-gis/src/saga_core/saga_api/api_core.cpp
- saga-gis/src/saga_core/saga_api/parameter_data.cpp
- saga-gis/src/saga_core/saga_api/saga_api.h
- saga-gis/src/saga_core/saga_api/saga_api_python/CMakeLists.txt
- saga-gis/src/saga_core/saga_api/tool.cpp
- saga-gis/src/saga_core/saga_cmd/man/saga_cmd.1
- saga-gis/src/saga_core/saga_gui/man/saga_gui.1
- saga-gis/src/tools/climate/climate_tools/treeline.cpp
- saga-gis/src/tools/imagery/imagery_opencv/opencv_canny.cpp
- saga-gis/src/tools/io/io_gdal/gdal_driver.cpp
- saga-gis/src/tools/io/io_grid_image/grid_import.cpp
- saga-gis/version.cmake
- saga_setup_x64.iss


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,11 @@
+saga (9.1.1+dfsg-1) unstable; urgency=medium
+
+  * Team upload.
+  * New upstream release.
+  * Export DEB_PYTHON_INSTALL_LAYOUT to fix FTBFS with CMake 3.27.0.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Wed, 26 Jul 2023 16:44:36 +0200
+
 saga (9.1.0+dfsg-1) unstable; urgency=medium
 
   * Team upload.


=====================================
debian/rules
=====================================
@@ -3,6 +3,8 @@
 # Enable hardening build flags
 export DEB_BUILD_MAINT_OPTIONS=hardening=+all
 
+export DEB_PYTHON_INSTALL_LAYOUT=deb_system
+
 CFLAGS += $(CPPFLAGS)
 
 include /usr/share/dpkg/pkg-info.mk


=====================================
saga-gis/src/accessories/helper/doxygen_saga_api_chm
=====================================
@@ -38,7 +38,7 @@ PROJECT_NAME           = "SAGA API"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = v9.1.0
+PROJECT_NUMBER         = v9.1.1
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -58,7 +58,7 @@ PROJECT_LOGO           = ../../../saga_core/saga_gui/res/saga_icon_64.png
 # entered, it will be relative to the location where doxygen was started. If
 # left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       = saga-9.1.0_api_doc
+OUTPUT_DIRECTORY       = saga-9.1.1_api_doc
 
 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
 # directories (in 2 levels) under the output directory of each output format and
@@ -1371,7 +1371,7 @@ GENERATE_HTMLHELP      = YES
 # written to the html output directory.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-CHM_FILE               = ../../saga-9.1.0_api.chm
+CHM_FILE               = ../../saga-9.1.1_api.chm
 
 # The HHC_LOCATION tag can be used to specify the location (absolute path
 # including file name) of the HTML help compiler (hhc.exe). If non-empty,


=====================================
saga-gis/src/accessories/helper/doxygen_saga_api_html
=====================================
@@ -38,7 +38,7 @@ PROJECT_NAME           = "SAGA API"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = v9.1.0
+PROJECT_NUMBER         = v9.1.1
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -58,7 +58,7 @@ PROJECT_LOGO           = ../../../saga_core/saga_gui/res/saga_icon_64.png
 # entered, it will be relative to the location where doxygen was started. If
 # left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       = saga-9.1.0_api_doc
+OUTPUT_DIRECTORY       = saga-9.1.1_api_doc
 
 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
 # directories (in 2 levels) under the output directory of each output format and
@@ -1371,7 +1371,7 @@ GENERATE_HTMLHELP      = NO
 # written to the html output directory.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-CHM_FILE               = ../../saga-9.1.0_api.chm
+CHM_FILE               = ../../saga-9.1.1_api.chm
 
 # The HHC_LOCATION tag can be used to specify the location (absolute path
 # including file name) of the HTML help compiler (hhc.exe). If non-empty,


=====================================
saga-gis/src/accessories/helper/make_saga_release.bat
=====================================
@@ -32,9 +32,9 @@ REM Version
 REM For all bug-fix-releases!
 REM Don't forget to activate the variable
 REM - SWITCH_TO_BRANCH -
-REM SET SWITCH_TO_BRANCH=saga-9.1
-SET SAGA_VER_TEXT=9.1.0
-SET SAGA_VER_NEXT=9.2.0
+SET SWITCH_TO_BRANCH=saga-9.1
+SET SAGA_VER_TEXT=9.1.1
+SET SAGA_VER_NEXT=9.1.1
 SET SAGA_VERSION=saga-%SAGA_VER_TEXT%
 
 


=====================================
saga-gis/src/accessories/python/saga_python_example.py
=====================================
@@ -38,7 +38,7 @@
 
 # Windows: The most convenient way to make PySAGA available to all your
 # Python scripts is to copy the PySAGA folder to the 'Lib/site-packages/'
-# folder of your Python installation. If don't want to do this or if you
+# folder of your Python installation. If you don't want to do this or if you
 # don't have the rights to do so, you can also copy it to the folder with
 # the Python scripts in which you want to use PySAGA, or alternatively
 # you can add the path containing the PySAGA folder (e.g. the path to your
@@ -48,14 +48,14 @@
 ###import sys, os; sys.path.insert(1, os.path.split(os.path.dirname(__file__))[0])
 
 # Import saga_api from PySAGA:
-import PySAGA.saga_api as saga
+from PySAGA import saga_api
 
 
 #_________________________________________
 ##########################################
 def Run_Random_Terrain():
     print('Running: Random Terrain')
-    Tool = saga.SG_Get_Tool_Library_Manager().Get_Tool('grid_calculus', '6')
+    Tool = saga_api.SG_Get_Tool_Library_Manager().Get_Tool('grid_calculus', '6')
     if not Tool:
         print('Failed to request tool: Random Terrain')
         import sys; sys.exit()
@@ -80,7 +80,7 @@ def Run_Random_Terrain():
 ##########################################
 def Run_Slope_Aspect_Curvature(DEM):
     print('Running: Slope, Aspect, Curvature')
-    Tool = saga.SG_Get_Tool_Library_Manager().Get_Tool('ta_morphometry', '0')
+    Tool = saga_api.SG_Get_Tool_Library_Manager().Get_Tool('ta_morphometry', '0')
     if not Tool:
         print('Failed to request tool: Slope, Aspect, Curvature')
         return  None, None, None, None
@@ -90,8 +90,8 @@ def Run_Slope_Aspect_Curvature(DEM):
     Tool.Set_Parameter('METHOD'     , 6) # '9 parameter 2nd order polynom (Zevenbergen & Thorne 1987)'
     Tool.Set_Parameter('UNIT_SLOPE' , 0) # 'radians'
     Tool.Set_Parameter('UNIT_ASPECT', 1) # 'degree'
-    Tool.Set_Parameter('C_LONG'     , saga.SG_Get_Create_Pointer()) # optional output, remove this line, if you don't want to create it
-    Tool.Set_Parameter('C_CROS'     , saga.SG_Get_Create_Pointer()) # optional output, remove this line, if you don't want to create it
+    Tool.Set_Parameter('C_LONG'     , saga_api.SG_Get_Create_Pointer()) # optional output, remove this line, if you don't want to create it
+    Tool.Set_Parameter('C_CROS'     , saga_api.SG_Get_Create_Pointer()) # optional output, remove this line, if you don't want to create it
 
     if not Tool.Execute():
         print('failed to execute tool: ' + Tool.Get_Name().c_str())
@@ -116,7 +116,7 @@ def Run_Grid_Difference(A, B, PythonLoop):
     # cell by cell, slower than second solution
     if PythonLoop:
         print('Running: Grid Difference (Cell by Cell)\n')
-        C = saga.SG_Create_Grid(A.Get_System())
+        C = saga_api.SG_Create_Grid(A.Get_System())
         for y in range(0, C.Get_NY()):
             print('\r{:04.1f}%'.format(y * 100. / C.Get_NY()), end='\r', flush=True)
             for x in range(0, C.Get_NX()):
@@ -129,7 +129,7 @@ def Run_Grid_Difference(A, B, PythonLoop):
     # using built-in CSG_Grid function 'Subtract()'
     else:
         print('Running: Grid Difference (CSG_Grid::Subtract())')
-        C = saga.SG_Create_Grid(A)
+        C = saga_api.SG_Create_Grid(A)
         C.Subtract(B)
 
     # ------------------------------------
@@ -142,7 +142,7 @@ def Run_Grid_Difference(A, B, PythonLoop):
 ##########################################
 def Run_Contour_Lines_from_Grid(Grid):
     print('Running: Contour Lines from Grid')
-    Tool = saga.SG_Get_Tool_Library_Manager().Get_Tool('shapes_grid', '5')
+    Tool = saga_api.SG_Get_Tool_Library_Manager().Get_Tool('shapes_grid', '5')
     if not Tool:
         print('Failed to request tool: Contour Lines from Grid')
         import sys; sys.exit()
@@ -161,7 +161,7 @@ def Run_Contour_Lines_from_Grid(Grid):
 ##########################################
 def Run_Geomorphons(DEM):
     print('Running: Geomorphons')
-    Tool = saga.SG_Get_Tool_Library_Manager().Get_Tool('ta_lighting', '8')
+    Tool = saga_api.SG_Get_Tool_Library_Manager().Get_Tool('ta_lighting', '8')
     if not Tool:
         print('Failed to request tool: Geomorphons')
         import sys; sys.exit()
@@ -186,7 +186,7 @@ print('This is a simple script to demonstrate the usage of SAGA and its tools th
 
 Verbose = False
 if not Verbose:
-    saga.SG_UI_ProgressAndMsg_Lock(True)
+    saga_api.SG_UI_ProgressAndMsg_Lock(True)
 
 import os;
 output = 'test/'
@@ -195,7 +195,7 @@ if not os.path.exists(output):
 
 #_________________________________________
 # load or create a Digital Elevation Model
-DEM = saga.SG_Get_Data_Manager().Add_Grid(output + 'dem.tif')
+DEM = saga_api.SG_Get_Data_Manager().Add_Grid(output + 'dem.tif')
 if not DEM:
     DEM = Run_Random_Terrain()
     DEM.Save(output + 'dem.tif')
@@ -228,10 +228,10 @@ Geomorphons.Save(output + 'geomorphons.tif')
 
 #_________________________________________
 # when job is done, free memory resources:
-saga.SG_Get_Data_Manager().Delete_All()
+saga_api.SG_Get_Data_Manager().Delete_All()
 
 if not Verbose:
-    saga.SG_UI_ProgressAndMsg_Lock(False)
+    saga_api.SG_UI_ProgressAndMsg_Lock(False)
 
 print('________________\n...the end!')
 


=====================================
saga-gis/src/saga_core/saga_api/api_core.cpp
=====================================
@@ -372,101 +372,110 @@ bool SG_Initialize_Environment(bool bLibraries, bool bProjections, const SG_Char
 		g_App_Initialize.Initialize();
 	}
 
-	SG_UI_ProgressAndMsg_Lock(true);
-
 	//-----------------------------------------------------
-	#ifdef _SAGA_MSW
+	static bool bInitialized = false;
+
+	if( bInitialized == false )
 	{
-		wxString App_Path, Dll_Paths, System_Paths;
+		bInitialized = true;
 
-		if( Directory && SG_Dir_Exists(Directory) )
-		{
-			App_Path	= Directory;
-		}
-		else
+		SG_UI_ProgressAndMsg_Lock(true);
+
+		#ifdef _SAGA_MSW
 		{
-			App_Path	= SG_UI_Get_Application_Path(true).c_str();
-		}
+			wxString App_Path, Dll_Paths, System_Paths;
 
-		wxGetEnv("PATH", &System_Paths);
+			if( Directory && SG_Dir_Exists(Directory) )
+			{
+				App_Path	= Directory;
+			}
+			else
+			{
+				App_Path	= SG_UI_Get_Application_Path(true).c_str();
+			}
 
-		if( SG_Add_Dll_Paths(App_Path + "\\dll", Dll_Paths) )
-		{
-			Dll_Paths   += ';' + App_Path + ';' + System_Paths;
+			wxGetEnv("PATH", &System_Paths);
 
-			wxSetEnv("PATH", Dll_Paths);
-		}
+			if( SG_Add_Dll_Paths(App_Path + "\\dll", Dll_Paths) )
+			{
+				Dll_Paths   += ';' + App_Path + ';' + System_Paths;
 
-		if( bLibraries )
-		{
-			SG_Get_Tool_Library_Manager().Add_Directory(SG_File_Make_Path(&App_Path, "tools"), false);
-		}
+				wxSetEnv("PATH", Dll_Paths);
+			}
 
-		if( bProjections )
-		{
-			SG_Get_Projections().Load_Dictionary(SG_File_Make_Path(&App_Path, "saga_prj", "dic"));
-			SG_Get_Projections().Load_DB        (SG_File_Make_Path(&App_Path, "saga_prj", "srs"));
-		}
-	}
-	#elif defined(__WXMAC__)
-	{
-		CSG_String App_Path(SG_UI_Get_Application_Path(true));
+			if( bLibraries )
+			{
+				SG_Get_Tool_Library_Manager().Add_Directory(SG_File_Make_Path(&App_Path, "tools"), false);
+			}
 
-		if( bLibraries )
+			if( bProjections )
+			{
+				SG_Get_Projections().Load_Dictionary(SG_File_Make_Path(&App_Path, "saga_prj", "dic"));
+				SG_Get_Projections().Load_DB        (SG_File_Make_Path(&App_Path, "saga_prj", "srs"));
+			}
+		}
+		#elif defined(__WXMAC__)
 		{
-			if( SG_Get_Tool_Library_Manager().Add_Directory(App_Path + "/../Tools", false) < 1 )
+			CSG_String App_Path(SG_UI_Get_Application_Path(true));
+
+			if( bLibraries )
 			{
-				#ifdef TOOLS_PATH
-				SG_Get_Tool_Library_Manager().Add_Directory(TOOLS_PATH);
-				#endif
+				if( SG_Get_Tool_Library_Manager().Add_Directory(App_Path + "/../Tools", false) < 1 )
+				{
+					#ifdef TOOLS_PATH
+					SG_Get_Tool_Library_Manager().Add_Directory(TOOLS_PATH);
+					#endif
 
-				#ifdef SHARE_PATH
-				SG_Get_Tool_Library_Manager().Add_Directory(CSG_String(SHARE_PATH) + "/toolchains");	// look for tool chains
-				#endif
+					#ifdef SHARE_PATH
+					SG_Get_Tool_Library_Manager().Add_Directory(CSG_String(SHARE_PATH) + "/toolchains");	// look for tool chains
+					#endif
+				}
 			}
-		}
 
-		if( bProjections )
+			if( bProjections )
+			{
+				if( SG_Get_Projections().Load_Dictionary(App_Path + "/saga_prj.dic") == false )
+				{
+					#ifdef SHARE_PATH
+					SG_Get_Projections().Load_Dictionary(CSG_String(SHARE_PATH) + "/saga_prj.dic");
+					#endif
+				}
+
+				if( SG_Get_Projections().Load_DB        (App_Path + "/saga_prj.srs") == false )
+				{
+					#ifdef SHARE_PATH
+					SG_Get_Projections().Load_DB        (CSG_String(SHARE_PATH) + "/saga_prj.srs");
+					#endif
+				}
+			}
+
+			if( SG_Dir_Exists(App_Path + "/proj-data") ) { wxSetEnv("PROJ_LIB" , wxString::Format("%s/proj-data", App_Path.c_str())); }
+			if( SG_Dir_Exists(App_Path + "/gdal-data") ) { wxSetEnv("GDAL_DATA", wxString::Format("%s/gdal-data", App_Path.c_str())); }
+		}
+		#else // #ifdef _SAGA_LINUX
 		{
-			if( SG_Get_Projections().Load_Dictionary(App_Path + "/saga_prj.dic") == false )
+			if( bLibraries )
 			{
+				#ifdef TOOLS_PATH
+				SG_Get_Tool_Library_Manager().Add_Directory(TOOLS_PATH);
+				#endif
 				#ifdef SHARE_PATH
-				SG_Get_Projections().Load_Dictionary(CSG_String(SHARE_PATH) + "/saga_prj.dic");
+				SG_Get_Tool_Library_Manager().Add_Directory(SG_File_Make_Path(SHARE_PATH, "toolchains"));	// look for tool chains
 				#endif
 			}
 
-			if( SG_Get_Projections().Load_DB        (App_Path + "/saga_prj.srs") == false )
+			if( bProjections )
 			{
 				#ifdef SHARE_PATH
-				SG_Get_Projections().Load_DB        (CSG_String(SHARE_PATH) + "/saga_prj.srs");
+				SG_Get_Projections().Load_Dictionary(SG_File_Make_Path(SHARE_PATH, "saga_prj", "dic"));
+				SG_Get_Projections().Load_DB        (SG_File_Make_Path(SHARE_PATH, "saga_prj", "srs"));
 				#endif
 			}
 		}
+		#endif
 
-		if( SG_Dir_Exists(App_Path + "/proj-data") ) { wxSetEnv("PROJ_LIB" , wxString::Format("%s/proj-data", App_Path.c_str())); }
-		if( SG_Dir_Exists(App_Path + "/gdal-data") ) { wxSetEnv("GDAL_DATA", wxString::Format("%s/gdal-data", App_Path.c_str())); }
+		SG_UI_ProgressAndMsg_Lock(false);
 	}
-	#else // #ifdef _SAGA_LINUX
-	{
-		if( bLibraries )
-		{
-			#ifdef TOOLS_PATH
-			SG_Get_Tool_Library_Manager().Add_Directory(TOOLS_PATH);
-			#endif
-			#ifdef SHARE_PATH
-			SG_Get_Tool_Library_Manager().Add_Directory(SG_File_Make_Path(SHARE_PATH, "toolchains"));	// look for tool chains
-			#endif
-		}
-
-		if( bProjections )
-		{
-			#ifdef SHARE_PATH
-			SG_Get_Projections().Load_Dictionary(SG_File_Make_Path(SHARE_PATH, "saga_prj", "dic"));
-			SG_Get_Projections().Load_DB        (SG_File_Make_Path(SHARE_PATH, "saga_prj", "srs"));
-			#endif
-		}
-	}
-	#endif
 		
 	//-----------------------------------------------------
 	if( bLibraries )
@@ -475,6 +484,8 @@ bool SG_Initialize_Environment(bool bLibraries, bool bProjections, const SG_Char
 
 		if( wxGetEnv("SAGA_TLB", &Path) )
 		{
+			SG_UI_ProgressAndMsg_Lock(true);
+
 			#ifdef _SAGA_MSW
 				CSG_Strings	Paths = SG_String_Tokenize(&Path, ";" ); // colon (':') would split drive from paths!
 			#else // #ifdef _SAGA_LINUX
@@ -485,12 +496,12 @@ bool SG_Initialize_Environment(bool bLibraries, bool bProjections, const SG_Char
 			{
 				SG_Get_Tool_Library_Manager().Add_Directory(Paths[i]);
 			}
+
+			SG_UI_ProgressAndMsg_Lock(false);
 		}
 	}
 
 	//-----------------------------------------------------
-	SG_UI_ProgressAndMsg_Lock(false);
-
 	return( true );
 }
 


=====================================
saga-gis/src/saga_core/saga_api/parameter_data.cpp
=====================================
@@ -949,11 +949,6 @@ CSG_String CSG_Parameter_Choice::Get_Items(void) const
 			Items += "|";
 		}
 
-		if( !m_Data[i].is_Empty() )
-		{
-			Items += "{" + m_Data[i] + "}";
-		}
-
 		Items += m_Items[i];
 	}
 


=====================================
saga-gis/src/saga_core/saga_api/saga_api.h
=====================================
@@ -86,8 +86,8 @@
 //---------------------------------------------------------
 #define SAGA_MAJOR_VERSION		9
 #define SAGA_MINOR_VERSION		1
-#define SAGA_RELEASE_NUMBER		0
-#define SAGA_VERSION			SG_T("9.1.0")
+#define SAGA_RELEASE_NUMBER		1
+#define SAGA_VERSION			SG_T("9.1.1")
 
 
 ///////////////////////////////////////////////////////////


=====================================
saga-gis/src/saga_core/saga_api/saga_api_python/CMakeLists.txt
=====================================
@@ -63,12 +63,12 @@ if(SWIG_FOUND)
 		if(EXISTS ${Python_SITELIB})
 			option(WITH_PYTHON_PKG "PySAGA package installation (if not checked API modules become installed directly in Python's site/dist-packages folder)" ON)
 			if(WITH_PYTHON_PKG)
-				message(STATUS "SAGA-Python-API installed to: ${PYTHON_SITELIB}/PySAGA")
+				message(STATUS "SAGA-Python-API installed to: ${Python_SITELIB}/PySAGA")
 				install(TARGETS saga_api_python                                                      DESTINATION ${Python_SITELIB}/PySAGA)
 				install(FILES ${CMAKE_BINARY_DIR}/src/saga_core/saga_api/saga_api_python/saga_api.py DESTINATION ${Python_SITELIB}/PySAGA)
 				install(FILES ${CMAKE_SOURCE_DIR}/src/accessories/python/__init__.py                 DESTINATION ${Python_SITELIB}/PySAGA)
 			else()
-				message(STATUS "SAGA-Python-API installed to: ${PYTHON_SITELIB}")
+				message(STATUS "SAGA-Python-API installed to: ${Python_SITELIB}")
 				install(TARGETS saga_api_python                                                      DESTINATION ${Python_SITELIB})
 				install(FILES ${CMAKE_BINARY_DIR}/src/saga_core/saga_api/saga_api_python/saga_api.py DESTINATION ${Python_SITELIB})
 			endif()


=====================================
saga-gis/src/saga_core/saga_api/tool.cpp
=====================================
@@ -1580,7 +1580,7 @@ CSG_String CSG_Tool::_Get_Script_Python(bool bHeader, bool bAllParameters)
 		Script += "\n";
 #endif // _SAGA_MSW
 		Script += "# Import saga_api from PySAGA:\n";
-		Script += "from PySAGA import saga_api as saga\n";
+		Script += "from PySAGA import saga_api\n";
 		Script += "\n";
 		Script += "\n";
 		Script += "#_________________________________________\n";
@@ -1590,7 +1590,7 @@ CSG_String CSG_Tool::_Get_Script_Python(bool bHeader, bool bAllParameters)
 
 	//-----------------------------------------------------
 	if( bHeader ) Script += "    # Get the tool:\n";
-	Script += "    Tool = saga.SG_Get_Tool_Library_Manager().Get_Tool('" + Get_Library() + "', '" + Get_ID() + "')\n";
+	Script += "    Tool = saga_api.SG_Get_Tool_Library_Manager().Get_Tool('" + Get_Library() + "', '" + Get_ID() + "')\n";
 	Script += "    if not Tool:\n";
     Script += "        print('Failed to request tool: " + Get_Name() + "')\n";
 	Script += "        return False\n";
@@ -1664,7 +1664,7 @@ CSG_String CSG_Tool::_Get_Script_Python(bool bHeader, bool bAllParameters)
 	if( bHeader )
 	{
 		Script += "    # job is done, free memory resources:\n";
-		Script += "    saga.SG_Get_Data_Manager().Delete_All()\n";
+		Script += "    saga_api.SG_Get_Data_Manager().Delete_All()\n";
 		Script += "\n";
 		Script += "    return True\n";
 		Script += "\n";
@@ -1750,13 +1750,13 @@ void CSG_Tool::_Get_Script_Python(CSG_String &Script, CSG_Parameters *pParameter
 			break;
 
 		case PARAMETER_TYPE_FixedTable     :
-			Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga.SG_Create_Table('table.txt'))\n", ID.c_str());
+			Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga_api.SG_Create_Table('table.txt'))\n", ID.c_str());
 			break;
 
 		case PARAMETER_TYPE_Grid_System    :
 			if( p->Get_Children_Count() == 0 )
 			{
-				Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga.CSG_Grid_System(%g, %g, %g, %d, %d))\n", ID.c_str(),
+				Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga_api.CSG_Grid_System(%g, %g, %g, %d, %d))\n", ID.c_str(),
 					p->asGrid_System()->Get_Cellsize(),
 					p->asGrid_System()->Get_XMin(), p->asGrid_System()->Get_YMin(),
 					p->asGrid_System()->Get_NX  (), p->asGrid_System()->Get_NY  ()
@@ -1772,13 +1772,13 @@ void CSG_Tool::_Get_Script_Python(CSG_String &Script, CSG_Parameters *pParameter
 		case PARAMETER_TYPE_PointCloud     :
 			if( p->is_Input() )
 			{
-				Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga.SG_Get_Data_Manager().Add('%s input file%s'))\n", ID.c_str(),
+				Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga_api.SG_Get_Data_Manager().Add('%s input file%s'))\n", ID.c_str(),
 					SG_Get_DataObject_Name(p->Get_DataObject_Type()).c_str(), p->is_Optional() ? SG_T(", optional") : SG_T("")
 				);
 			}
 			else if( p->is_Output() && p->is_Optional() )
 			{
-				Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga.SG_Get_Create_Pointer()) # optional output, remove this line, if you don't want to create it\n", ID.c_str());
+				Script	+= CSG_String::Format("    Tool.Set_Parameter('%s', saga_api.SG_Get_Create_Pointer()) # optional output, remove this line, if you don't want to create it\n", ID.c_str());
 			}
 			break;
 


=====================================
saga-gis/src/saga_core/saga_cmd/man/saga_cmd.1
=====================================
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SAGA_CMD 1"
-.TH SAGA_CMD 1 "2021-07-07" "9.1.0" " "
+.TH SAGA_CMD 1 "2021-07-07" "9.1.1" " "
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l


=====================================
saga-gis/src/saga_core/saga_gui/man/saga_gui.1
=====================================
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SAGA_GUI 1"
-.TH SAGA_GUI 1 "2021-07-07" "9.1.0" " "
+.TH SAGA_GUI 1 "2021-07-07" "9.1.1" " "
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l


=====================================
saga-gis/src/tools/climate/climate_tools/treeline.cpp
=====================================
@@ -309,15 +309,15 @@ CTree_Growth::CTree_Growth(void)
 	);
 
 	//-----------------------------------------------------
-	Parameters.Add_Grid_List("", "T"   , _TL("Mean Temperature"   ), _TL(""), PARAMETER_INPUT);
-	Parameters.Add_Grid_List("", "TMIN", _TL("Minimum Temperature"), _TL(""), PARAMETER_INPUT);
-	Parameters.Add_Grid_List("", "TMAX", _TL("Maximum Temperature"), _TL(""), PARAMETER_INPUT);
-	Parameters.Add_Grid_List("", "P"   , _TL("Precipitation"      ), _TL(""), PARAMETER_INPUT);
+	Parameters.Add_Grid_List("", "T"   , _TL("Mean Temperature"   ), _TL("Monthly averages of daily mean temperature (12 grids, January to December) [°C]"), PARAMETER_INPUT);
+	Parameters.Add_Grid_List("", "TMIN", _TL("Minimum Temperature"), _TL("Monthly averages of daily minimum temperature (12 grids, January to December) [°C]"), PARAMETER_INPUT);
+	Parameters.Add_Grid_List("", "TMAX", _TL("Maximum Temperature"), _TL("Monthly averages of daily maximum temperature (12 grids, January to December) [°C]"), PARAMETER_INPUT);
+	Parameters.Add_Grid_List("", "P"   , _TL("Precipitation"      ), _TL("Monthly sums of precipitation (12 grids, January to December) [mm / m²]"), PARAMETER_INPUT);
 
 	//-----------------------------------------------------
 	Parameters.Add_Grid_or_Const("",
 		"SWC"			, _TL("Soil Water Capacity of Profile"),
-		_TL("Total soil water capacity (mm H2O)."),
+		_TL("Total soil water capacity (mm H₂O)."),
 		220., 0., true
 	);
 


=====================================
saga-gis/src/tools/imagery/imagery_opencv/opencv_canny.cpp
=====================================
@@ -102,7 +102,7 @@ bool COpenCV_Canny::On_Execute(void)
 	}
 
 	//-----------------------------------------------------
-	CSG_Grid *pGrid = Parameters("GRID")->asGrid();
+	CSG_Grid *pGrid = Parameters("GRID")->asGrid(); pGrid->Set_Max_Samples(pGrid->Get_NCells());
 
 	cv::Mat Grid(Get_NY(), Get_NX(), CV_8U);
 


=====================================
saga-gis/src/tools/io/io_gdal/gdal_driver.cpp
=====================================
@@ -1069,21 +1069,21 @@ bool CSG_GDAL_DataSet::Write(int i, CSG_Grid *pGrid, double noDataValue)
 		return( false );
 	}
 
-	GDALRasterBandH	pBand	= GDALGetRasterBand(m_pDataSet, i + 1);
+	GDALRasterBandH pBand = GDALGetRasterBand(m_pDataSet, i + 1);
 
 	//-----------------------------------------------------
-	CPLErr	Error	= CE_None;
+	CPLErr Error  = CE_None;
 
-	double	*zLine	= (double *)SG_Malloc(Get_NX() * sizeof(double));
+	double *zLine = (double *)SG_Malloc(Get_NX() * sizeof(double));
 
 	for(int y=0, yy=Get_NY()-1; Error==CE_None && y<Get_NY() && SG_UI_Process_Set_Progress(y, Get_NY()); y++, yy--)
 	{
 		for(int x=0; x<Get_NX(); x++)
 		{
-			zLine[x]	= pGrid->is_NoData(x, yy) ? noDataValue : pGrid->asDouble(x, yy);
+			zLine[x] = pGrid->is_NoData(x, yy) ? noDataValue : pGrid->asDouble(x, yy, false);
 		}
 
-		Error	= GDALRasterIO(pBand, GF_Write, 0, y, Get_NX(), 1, zLine, Get_NX(), 1, GDT_Float64, 0, 0);
+		Error = GDALRasterIO(pBand, GF_Write, 0, y, Get_NX(), 1, zLine, Get_NX(), 1, GDT_Float64, 0, 0);
 	}
 
 	SG_Free(zLine);


=====================================
saga-gis/src/tools/io/io_grid_image/grid_import.cpp
=====================================
@@ -152,11 +152,11 @@ bool CGrid_Import::On_Execute(void)
 	//-----------------------------------------------------
 	CSG_File	Stream;
 
-	if     ( SG_File_Cmp_Extension(File, "bmp") ) { Stream.Open(SG_File_Make_Path("", File,   "bpw"), SG_FILE_R, false); }
-	else if( SG_File_Cmp_Extension(File, "jpg") ) { Stream.Open(SG_File_Make_Path("", File,   "jgw"), SG_FILE_R, false); }
-	else if( SG_File_Cmp_Extension(File, "png") ) { Stream.Open(SG_File_Make_Path("", File,   "pgw"), SG_FILE_R, false); }
-	else if( SG_File_Cmp_Extension(File, "tif") ) { Stream.Open(SG_File_Make_Path("", File,   "tfw"), SG_FILE_R, false); }
-	else                                          { Stream.Open(SG_File_Make_Path("", File, "world"), SG_FILE_R, false); }
+	if     ( SG_File_Cmp_Extension(File, "bmp") ) { if( !Stream.Open(SG_File_Make_Path("", File, "bpw"), SG_FILE_R, false) ) { Stream.Open(SG_File_Make_Path("", File,  "bpwx"), SG_FILE_R, false); } }
+	else if( SG_File_Cmp_Extension(File, "jpg") ) { if( !Stream.Open(SG_File_Make_Path("", File, "jgw"), SG_FILE_R, false) ) { Stream.Open(SG_File_Make_Path("", File,  "jgwx"), SG_FILE_R, false); } }
+	else if( SG_File_Cmp_Extension(File, "png") ) { if( !Stream.Open(SG_File_Make_Path("", File, "pgw"), SG_FILE_R, false) ) { Stream.Open(SG_File_Make_Path("", File,  "pgwx"), SG_FILE_R, false); } }
+	else if( SG_File_Cmp_Extension(File, "tif") ) { if( !Stream.Open(SG_File_Make_Path("", File, "tfw"), SG_FILE_R, false) ) { Stream.Open(SG_File_Make_Path("", File,  "tfwx"), SG_FILE_R, false); } }
+	else                                          {                                                                            Stream.Open(SG_File_Make_Path("", File, "world"), SG_FILE_R, false);   }
 
 	bool bTransform = false; double xMin = 0., yMin = 0., Cellsize = 1., m[6];
 
@@ -174,10 +174,35 @@ bool CGrid_Import::On_Execute(void)
 		}
 	}
 
+	//-----------------------------------------------------
+	CSG_Projection Projection;
+
+	if( SG_File_Exists(File + ".aux.xml") )
+	{
+		CSG_MetaData MD(File + ".aux.xml");
+
+		for(int i=0; i<MD.Get_Children_Count(); i++)
+		{
+			if( MD[i].Cmp_Name("Metadata") && MD[i].Cmp_Property("domain", "xml:ESRI") && MD[i].Cmp_Property("format", "xml")
+			&&  MD[i]("GeodataXform")
+			&&  MD[i]["GeodataXform"]("SpatialReference")
+			&&  MD[i]["GeodataXform"]["SpatialReference"]("WKT") )
+			{
+				Projection.Create(MD[i]["GeodataXform"]["SpatialReference"]["WKT"].Get_Content());
+				break;
+			}
+		}
+	}
+
+	if( !Projection.is_Okay() && SG_File_Exists(SG_File_Make_Path("", File, "prj")) )
+	{
+		Projection.Load(SG_File_Make_Path("", File, "prj"));
+	}
+
 	//-----------------------------------------------------
 	#define SET_METADATA(pGrid, Suffix, Output) {\
 		pGrid->Set_Name(SG_File_Get_Name(File, false) + Suffix);\
-		pGrid->Get_Projection().Load(SG_File_Make_Path("", File, "prj"), SG_PROJ_FMT_WKT);\
+		pGrid->Get_Projection().Create(Projection);\
 		Parameters(Output)->Set_Value(pGrid);\
 		DataObject_Set_Colors(pGrid, 11, SG_COLORS_BLACK_WHITE);\
 	}


=====================================
saga-gis/version.cmake
=====================================
@@ -1,7 +1,7 @@
 # The version number.
 set (SAGA_VERSION_MAJOR 9)
 set (SAGA_VERSION_MINOR 1)
-set (SAGA_VERSION_PATCH 0)
+set (SAGA_VERSION_PATCH 1)
 
 # get git commit hash (or dirty if git is not installed)
 


=====================================
saga_setup_x64.iss
=====================================
@@ -1,5 +1,5 @@
-; To build installer (for example, saga-9.1.0_setup.exe).
-; - Unzip the SAGA binary files in their own folder (for example, saga-9.1.0.zip).
+; To build installer (for example, saga-9.1.1_setup.exe).
+; - Unzip the SAGA binary files in their own folder (for example, saga-9.1.1.zip).
 ; - Place saga.iss and saga_readme.rtf in the SAGA folder (contains saga_gui.exe, etc.).
 ; - Open saga.iss in Inno Setup.
 ; - Choose Build | Compile.
@@ -7,7 +7,7 @@
 
 [Setup]
 AppName=SAGA - System for Automated Geoscientific Analyses
-AppVerName=SAGA 9.1.0
+AppVerName=SAGA 9.1.1
 
 ArchitecturesAllowed=x64
 ArchitecturesInstallIn64BitMode=x64
@@ -22,9 +22,9 @@ Compression=lzma
 SolidCompression=yes
 
 OutputDir=.
-OutputBaseFilename=saga-9.1.0_x64_setup
+OutputBaseFilename=saga-9.1.1_x64_setup
 
-VersionInfoVersion=9.1.0.0
+VersionInfoVersion=9.1.1.0
 VersionInfoCompany=SAGA User Group Association
 VersionInfoCopyright=(c) 2005-2023 by O. Conrad
 VersionInfoDescription=SAGA single-file installer
@@ -51,5 +51,5 @@ Name: "{commondesktop}\SAGA"; Filename: "{app}\saga_gui.exe"; WorkingDir: "{app}
 Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\saga_gui.exe"; ValueType: string; ValueName: ""; ValueData: "{app}\saga_gui.exe"; Flags: uninsdeletekey
 Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\saga_gui.exe"; ValueType: string; ValueName: "Path"; ValueData: "{app}"
 
-Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.1.0"; ValueType: string; ValueName: "InstallDir"; ValueData: "{app}"; Flags: uninsdeletekey
-Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.1.0"; ValueType: string; ValueName: "Version"; ValueData: "9.1.0.0"
+Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.1.1"; ValueType: string; ValueName: "InstallDir"; ValueData: "{app}"; Flags: uninsdeletekey
+Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.1.1"; ValueType: string; ValueName: "Version"; ValueData: "9.1.1.0"



View it on GitLab: https://salsa.debian.org/debian-gis-team/saga/-/compare/fa8154591681d7985d01143846f2ca1bf543cc25...abd66f27bc4534b30b70ca44452be299660bceb1

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/saga/-/compare/fa8154591681d7985d01143846f2ca1bf543cc25...abd66f27bc4534b30b70ca44452be299660bceb1
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20230726/4d4d81a3/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list