[Git][debian-gis-team/saga][upstream] New upstream version 9.1.2+dfsg

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Wed Sep 13 04:34:16 BST 2023



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


Commits:
3e6b2118 by Bas Couwenberg at 2023-09-13T05:17:54+02:00
New upstream version 9.1.2+dfsg
- - - - -


17 changed files:

- 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/saga_core/saga_api/saga_api.h
- saga-gis/src/saga_core/saga_api/table.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/saga_core/saga_gui/wksp_grid.cpp
- saga-gis/src/saga_core/saga_gui/wksp_shapes_edit.cpp
- saga-gis/src/tools/grid/grid_tools/Grid_Shrink_Expand.cpp
- saga-gis/src/tools/imagery/imagery_opencv/opencv_canny.cpp
- saga-gis/src/tools/imagery/imagery_tools/landsat_scene_import.cpp
- saga-gis/src/tools/imagery/imagery_tools/landsat_scene_import.h
- saga-gis/src/tools/shapes/shapes_lines/line_split_with_lines.cpp
- saga-gis/src/tools/terrain_analysis/ta_lighting/SolarRadiation.cpp
- saga-gis/version.cmake
- saga_setup_x64.iss


Changes:

=====================================
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.1
+PROJECT_NUMBER         = v9.1.2
 
 # 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.1_api_doc
+OUTPUT_DIRECTORY       = saga-9.1.2_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.1_api.chm
+CHM_FILE               = ../../saga-9.1.2_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.1
+PROJECT_NUMBER         = v9.1.2
 
 # 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.1_api_doc
+OUTPUT_DIRECTORY       = saga-9.1.2_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.1_api.chm
+CHM_FILE               = ../../saga-9.1.2_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
=====================================
@@ -33,8 +33,8 @@ REM For all bug-fix-releases!
 REM Don't forget to activate the variable
 REM - SWITCH_TO_BRANCH -
 SET SWITCH_TO_BRANCH=saga-9.1
-SET SAGA_VER_TEXT=9.1.1
-SET SAGA_VER_NEXT=9.1.1
+SET SAGA_VER_TEXT=9.1.2
+SET SAGA_VER_NEXT=9.1.3
 SET SAGA_VERSION=saga-%SAGA_VER_TEXT%
 
 


=====================================
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		1
-#define SAGA_VERSION			SG_T("9.1.1")
+#define SAGA_RELEASE_NUMBER		2
+#define SAGA_VERSION			SG_T("9.1.2")
 
 
 ///////////////////////////////////////////////////////////


=====================================
saga-gis/src/saga_core/saga_api/table.cpp
=====================================
@@ -1506,19 +1506,15 @@ public:
 			switch( m_pTable->Get_Field_Type(Field) )
 			{
 			default: {
-				double d =
-					m_pTable->Get_Record(a)->asDouble(Field) -
-					m_pTable->Get_Record(b)->asDouble(Field);
-
+				double d = m_pTable->Get_Record(a)->asDouble(Field);
+				d       -= m_pTable->Get_Record(b)->asDouble(Field);
 				Difference = d < 0. ? -1 : d > 0. ? 1 : 0;
 			}	break;
 
 			case SG_DATATYPE_String:
 			case SG_DATATYPE_Date  :
-				Difference = SG_STR_CMP(
-					m_pTable->Get_Record(a)->asString(Field),
-					m_pTable->Get_Record(b)->asString(Field)
-				);
+				CSG_String   s    (m_pTable->Get_Record(a)->asString(Field));
+				Difference = s.Cmp(m_pTable->Get_Record(b)->asString(Field));
 				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.1" " "
+.TH SAGA_CMD 1 "2021-07-07" "9.1.2" " "
 .\" 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.1" " "
+.TH SAGA_GUI 1 "2021-07-07" "9.1.2" " "
 .\" 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/wksp_grid.cpp
=====================================
@@ -1018,15 +1018,7 @@ bool CWKSP_Grid::Edit_On_Mouse_Up(const CSG_Point &Point, double ClientToWorld,
 					for(int x=0; x<nx; x++)
 					{
 						pRecord->Set_Value(0, m_ySel + ny - y);
-
-						if( !Get_Grid()->is_NoData(m_xSel + x, m_ySel + ny - 1 - y) )
-						{
-							pRecord->Set_Value(1 + x, Get_Grid()->asDouble(m_xSel + x, m_ySel + ny - 1 - y));
-						}
-						else
-						{
-							pRecord->Set_NoData(1 + x);
-						}
+						pRecord->Set_Value(1 + x, Get_Grid()->asDouble(m_xSel + x, m_ySel + ny - 1 - y));
 					}
 				}
 			}


=====================================
saga-gis/src/saga_core/saga_gui/wksp_shapes_edit.cpp
=====================================
@@ -672,7 +672,7 @@ bool CWKSP_Shapes::_Edit_Split(void)
 						{
 							CSG_Shape	*pSplit	= Get_Shapes()->Add_Shape(Split.Get_Shape(iSplit));
 
-							((CSG_Table_Record *)pSplit)->Assign(pSelection);
+							pSplit->Assign( pSelection, SHAPE_COPY_ATTR );
 
 							Get_Shapes()->Select(pSplit, true);
 						}


=====================================
saga-gis/src/tools/grid/grid_tools/Grid_Shrink_Expand.cpp
=====================================
@@ -166,9 +166,12 @@ int CGrid_Shrink_Expand::On_Parameters_Enable(CSG_Parameters *pParameters, CSG_P
 		pParameters->Set_Enabled("ITERATIVE", pParameter->asInt() > 0);
 	}
 
-	if(	pParameter->Cmp_Identifier("EXPAND") )
+	if(	pParameter->Cmp_Identifier("EXPAND") || pParameter->Cmp_Identifier("RESULT") )
 	{
-		pParameters->Set_Enabled("KEEP_TYPE", pParameter->asInt() == 2); // mean?!
+		pParameters->Set_Enabled("KEEP_TYPE",
+		   (*pParameters)("EXPAND")->asInt() == 2 // expand mean?!
+		&& (*pParameters)("RESULT")->asPointer()  // create new target?!
+		);
 	}
 
 	return( CSG_Tool_Grid::On_Parameters_Enable(pParameters, pParameter) );
@@ -205,12 +208,15 @@ bool CGrid_Shrink_Expand::On_Execute(void)
 	{
 		Input.Create(*pInput); pResult = pInput; pInput = &Input;
 	}
-
-	//-----------------------------------------------------
-	if( pResult->Get_Type() != Type )
+	else
 	{
-		pResult->Create(Get_System(), Type);
-		pResult->Set_Name(pInput->Get_Name());
+		if( pResult->Get_Type() != Type )
+		{
+			pResult->Create(Get_System(), Type);
+		}
+
+		pResult->Set_Scaling(pInput->Get_Scaling(), pInput->Get_Offset());
+		pResult->Set_NoData_Value_Range(pInput->Get_NoData_Value(false), pInput->Get_NoData_Value(true));
 	}
 
 	//-----------------------------------------------------
@@ -522,13 +528,18 @@ bool CGrids_Shrink_Expand::On_Execute(void)
 	{
 		pResult->Create(Get_System(), pInput->Get_Attributes(), pInput->Get_Z_Attribute(), Type, true);
 		pResult->Set_Z_Name_Field(pInput->Get_Z_Name_Field());
-		pResult->Set_Name(pInput->Get_Name());
+
+		if( Type == pInput->Get_Type() )
+		{
+			pResult->Set_Scaling(pInput->Get_Scaling(), pInput->Get_Offset());
+			pResult->Set_NoData_Value_Range(pInput->Get_NoData_Value(false), pInput->Get_NoData_Value(true));
+		}
 	}
 
 	//-----------------------------------------------------
 	for(int i=0; i<pInput->Get_NZ(); i++)
 	{
-		Process_Set_Text(CSG_String::Format("%s %d/%d", _TL("processing"), i, pInput->Get_NZ()));
+		Process_Set_Text(CSG_String::Format("%s %d/%d", _TL("processing"), i + 1, pInput->Get_NZ()));
 
 		Do_Operation(pInput->Get_Grid_Ptr(i), pResult->Get_Grid_Ptr(i));
 	}


=====================================
saga-gis/src/tools/imagery/imagery_opencv/opencv_canny.cpp
=====================================
@@ -106,12 +106,13 @@ bool COpenCV_Canny::On_Execute(void)
 
 	cv::Mat Grid(Get_NY(), Get_NX(), CV_8U);
 
-	unsigned char *data = (unsigned char *)Grid.data;
-
-	#pragma omp parallel for
-	for(sLong i=0; i<Get_NCells(); i++)
+	for(int y=0; y<Get_NY() && Process_Get_Okay(); y++)
 	{
-		data[i] = (unsigned char)((pGrid->asDouble(i) - pGrid->Get_Min()) * 255 / pGrid->Get_Range());
+		#pragma omp parallel for
+		for(int x=0; x<Get_NX(); x++)
+		{
+			Grid.at<uchar>(y, x) = (unsigned char)((pGrid->asDouble(x, y) - pGrid->Get_Min()) * 255 / pGrid->Get_Range());
+		}
 	}
 
 	//-----------------------------------------------------
@@ -133,6 +134,8 @@ bool COpenCV_Canny::On_Execute(void)
 	pEdges->Fmt_Name("%s [%s]", pGrid->Get_Name(), Get_Name().c_str());
 	pEdges->Set_NoData_Value(0.);
 
+	unsigned char *data = (unsigned char *)Grid.data;
+
 	#pragma omp parallel for
 	for(sLong i=0; i<Get_NCells(); i++)
 	{


=====================================
saga-gis/src/tools/imagery/imagery_tools/landsat_scene_import.cpp
=====================================
@@ -234,34 +234,32 @@ int CLandsat_Scene_Import::On_Parameters_Enable(CSG_Parameters *pParameters, CSG
 {
 	if( pParameter->Cmp_Identifier("METAFILE") )
 	{
-		CSG_MetaData	Info_Scene, Metadata;
-		CSG_Table		Info_Bands;
-		CSG_Strings		File_Bands;
+		CSG_MetaData Metadata, Info_Scene; CSG_Table Info_Bands; CSG_Strings File_Bands;
 
 		if( Load_Metadata(Metadata, pParameter->asString()) && Get_Info(Metadata, File_Bands, Info_Bands, Info_Scene) )
 		{
-			int	Sensor	= Get_Info_Sensor(Metadata);
+			int Sensor = Get_Info_Sensor(Metadata);
 
-			pParameters->Set_Enabled("SKIP_PAN"    , Sensor == SENSOR_OLI_TIRS || Sensor == SENSOR_ETM);
-			pParameters->Set_Enabled("SKIP_AEROSOL", Sensor == SENSOR_OLI_TIRS);
-			pParameters->Set_Enabled("SKIP_CIRRUS" , Sensor == SENSOR_OLI_TIRS);
+			pParameters->Set_Enabled("SKIP_PAN"    , Sensor >= SENSOR_ETM);
+			pParameters->Set_Enabled("SKIP_AEROSOL", Sensor >= SENSOR_OLI);
+			pParameters->Set_Enabled("SKIP_CIRRUS" , Sensor >= SENSOR_OLI);
 
-			const CSG_Table_Record	&Info_Band	= Info_Bands[0];
+			const CSG_Table_Record &Info_Band = Info_Bands[0];
 
-			bool	bRadiance	=  (Info_Band.asString("RADIANCE_ADD") && Info_Band.asString("RADIANCE_MUL"))
-								|| (Info_Band.asString("L_MIN") && Info_Band.asString("QCAL_MIN")
-								&&  Info_Band.asString("L_MAX") && Info_Band.asString("QCAL_MAX"));
+			bool bRadiance =  (Info_Band.asString("RADIANCE_ADD") && Info_Band.asString("RADIANCE_MUL"))
+			               || (Info_Band.asString("L_MIN") && Info_Band.asString("QCAL_MIN")
+			               &&  Info_Band.asString("L_MAX") && Info_Band.asString("QCAL_MAX"));
 
-			bool	bReflectance	= Info_Band.asString("REFLECTANCE_ADD") && Info_Band.asString("REFLECTANCE_MUL");
+			bool bReflectance = Info_Band.asString("REFLECTANCE_ADD") && Info_Band.asString("REFLECTANCE_MUL");
 
 			pParameters->Set_Enabled("CALIBRATION", bRadiance || bReflectance);
 
 			if( bRadiance || bReflectance )
 			{
-				CSG_String	Choices(_TL("none"));
+				CSG_String Choices(_TL("none"));
 
-				if( bRadiance    )	Choices	+= CSG_String("|") + _TL("radiance"   );
-				if( bReflectance )	Choices	+= CSG_String("|") + _TL("reflectance");
+				if( bRadiance    ) Choices += CSG_String("|") + _TL("radiance"   );
+				if( bReflectance ) Choices += CSG_String("|") + _TL("reflectance");
 
 				(*pParameters)("CALIBRATION")->asChoice()->Set_Items(Choices);
 			}
@@ -277,15 +275,15 @@ int CLandsat_Scene_Import::On_Parameters_Enable(CSG_Parameters *pParameters, CSG
 
 	if( pParameter->Cmp_Identifier("CALIBRATION") )
 	{
-		pParameters->Set_Enabled("DATA_TYPE", pParameter->asInt() != 0);
-		pParameters->Set_Enabled("TEMP_UNIT", pParameter->asInt() == 2);
+		pParameters->Set_Enabled("DATA_TYPE"    , pParameter->asInt() != 0);
+		pParameters->Set_Enabled("TEMP_UNIT"    , pParameter->asInt() == 2);
 	}
 
 	if( pParameter->Cmp_Identifier("PROJECTION") )
 	{
-		pParameters->Set_Enabled("RESAMPLING", pParameter->asInt() >= 2);
-		pParameters->Set_Enabled("UTM_ZONE"  , pParameter->asInt() == 3);
-		pParameters->Set_Enabled("UTM_SOUTH" , pParameter->asInt() == 3);
+		pParameters->Set_Enabled("RESAMPLING"   , pParameter->asInt() >= 2);
+		pParameters->Set_Enabled("UTM_ZONE"     , pParameter->asInt() == 3);
+		pParameters->Set_Enabled("UTM_SOUTH"    , pParameter->asInt() == 3);
 	}
 
 	if(	pParameter->Cmp_Identifier("EXTENT") )
@@ -310,7 +308,7 @@ int CLandsat_Scene_Import::On_Parameters_Enable(CSG_Parameters *pParameters, CSG
 //---------------------------------------------------------
 bool CLandsat_Scene_Import::On_Execute(void)
 {
-	CSG_MetaData	Metadata;
+	CSG_MetaData Metadata;
 
 	if( !Load_Metadata(Metadata, Parameters("METAFILE")->asString()) )
 	{
@@ -320,16 +318,14 @@ bool CLandsat_Scene_Import::On_Execute(void)
 	}
 
 	//-----------------------------------------------------
-	CSG_MetaData	Info_Scene;
-	CSG_Table		Info_Bands;
-	CSG_Strings		File_Bands;
+	CSG_MetaData Info_Scene; CSG_Table Info_Bands; CSG_Strings File_Bands;
 
 	if( !Get_Info(Metadata, File_Bands, Info_Bands, Info_Scene) )
 	{
 		return( false );
 	}
 
-	int	Sensor	= Get_Info_Sensor(Metadata);
+	int Sensor = Get_Info_Sensor(Metadata);
 
 	//-----------------------------------------------------
 	if( Parameters("BAND_INFO")->asTable() )
@@ -345,16 +341,16 @@ bool CLandsat_Scene_Import::On_Execute(void)
 	}
 
 	//-----------------------------------------------------
-	CSG_String	Path	= SG_File_Get_Path(Parameters("METAFILE")->asString());
+	CSG_String Path = SG_File_Get_Path(Parameters("METAFILE")->asString());
 
-	bool	bMultiGrids	= Parameters("MULTI2GRIDS")->asBool();
-	int		Calibration	= Parameters("CALIBRATION")->asInt ();
+	bool bMultiGrids = Parameters("MULTI2GRIDS")->asBool();
+	int  Calibration = Parameters("CALIBRATION")->asInt ();
 
-	double	SunHeight	= -1;
+	double SunHeight = -1;
 
 	if( Info_Scene("SUN_ELEVATION") )
 	{
-		SunHeight	= Info_Scene["SUN_ELEVATION"].Get_Content().asDouble();
+		SunHeight = Info_Scene["SUN_ELEVATION"].Get_Content().asDouble();
 	}
 
 	//-----------------------------------------------------
@@ -404,7 +400,7 @@ bool CLandsat_Scene_Import::On_Execute(void)
 				DataObject_Add(pBand); DataObject_Set_Colors(pBand, 2, SG_COLORS_BLACK_WHITE);
 			}
 
-			if( bMultiGrids && is_Multispectral(Sensor, i) && !is_Aerosol(Sensor, i) && !is_Cirrus(Sensor, i) )
+			if( bMultiGrids && is_Spectral(Sensor, i) && !is_Aerosol(Sensor, i) && !is_Cirrus(Sensor, i) )
 			{
 				if( pBands == NULL )
 				{
@@ -414,8 +410,6 @@ bool CLandsat_Scene_Import::On_Execute(void)
 
 						return( false );
 					}
-
-					Parameters("BANDS")->asGridList()->Add_Item(pBands);
 				}
 
 				pBands->Add_Grid(Info_Bands[i], pBand, true);
@@ -434,6 +428,8 @@ bool CLandsat_Scene_Import::On_Execute(void)
 		pBands->Set_Description(Info_Scene.asText());
 		pBands->Set_Z_Attribute (4);
 		pBands->Set_Z_Name_Field(2);
+
+		Parameters("BANDS")->asGridList()->Add_Item(pBands);
 	}
 
 	//-----------------------------------------------------
@@ -446,13 +442,7 @@ bool CLandsat_Scene_Import::On_Execute(void)
 ///////////////////////////////////////////////////////////
 
 //---------------------------------------------------------
-bool CLandsat_Scene_Import::is_Panchromatic(int Sensor, int Band)
-{
-	return( (Sensor == SENSOR_ETM && Band == 8) || (Sensor == SENSOR_OLI_TIRS && Band == 7) );
-}
-
-//---------------------------------------------------------
-bool CLandsat_Scene_Import::is_Multispectral(int Sensor, int Band)
+bool CLandsat_Scene_Import::is_Spectral(int Sensor, int Band)
 {
 	switch( Sensor )
 	{
@@ -465,7 +455,7 @@ bool CLandsat_Scene_Import::is_Multispectral(int Sensor, int Band)
 	case SENSOR_ETM:
 		return( Band != 5 && Band != 6 && Band != 8 );
 
-	case SENSOR_OLI_TIRS:
+	case SENSOR_OLI: case SENSOR_OLI_TIRS:
 		return( Band != 7 && Band != 9  && Band != 10 );
 	}
 
@@ -473,21 +463,60 @@ bool CLandsat_Scene_Import::is_Multispectral(int Sensor, int Band)
 }
 
 //---------------------------------------------------------
-bool CLandsat_Scene_Import::is_Aerosol(int Sensor, int Band)
+bool CLandsat_Scene_Import::is_Thermal(int Sensor, int Band)
 {
-	return( (Sensor == SENSOR_OLI_TIRS && Band == 0) );
+	switch( Sensor )
+	{
+	case SENSOR_TM:
+		return( Band == 5 );
+
+	case SENSOR_ETM:
+		return( Band == 5 || Band == 6 );
+
+	case SENSOR_OLI_TIRS:
+		return( Band == 9 || Band == 10 );
+	}
+
+	return( false );
 }
 
 //---------------------------------------------------------
-bool CLandsat_Scene_Import::is_Cirrus(int Sensor, int Band)
+bool CLandsat_Scene_Import::is_Panchromatic(int Sensor, int Band)
 {
-	return( (Sensor == SENSOR_OLI_TIRS && Band == 8) );
+	switch( Sensor )
+	{
+	case SENSOR_ETM:
+		return( Band == 8 );
+
+	case SENSOR_OLI: case SENSOR_OLI_TIRS:
+		return( Band == 7 );
+	}
+
+	return( false );
 }
 
 //---------------------------------------------------------
-bool CLandsat_Scene_Import::is_Thermal(int Sensor, int Band)
+bool CLandsat_Scene_Import::is_Aerosol(int Sensor, int Band)
+{
+	switch( Sensor )
+	{
+	case SENSOR_OLI: case SENSOR_OLI_TIRS:
+		return( Band == 0 );
+	}
+
+	return( false );
+}
+
+//---------------------------------------------------------
+bool CLandsat_Scene_Import::is_Cirrus(int Sensor, int Band)
 {
-	return( !is_Panchromatic(Sensor, Band) && !is_Multispectral(Sensor, Band) );
+	switch( Sensor )
+	{
+	case SENSOR_OLI: case SENSOR_OLI_TIRS:
+		return( Band == 8 );
+	}
+
+	return( false );
 }
 
 
@@ -498,14 +527,14 @@ bool CLandsat_Scene_Import::is_Thermal(int Sensor, int Band)
 //---------------------------------------------------------
 bool CLandsat_Scene_Import::Load_Metadata(CSG_MetaData &Metadata, const CSG_String &File)
 {
-	CSG_File	Stream;
+	CSG_File Stream;
 
 	if( !Stream.Open(File, SG_FILE_R, false) )
 	{
 		return( false );
 	}
 
-	CSG_String	Line, Key, Value;
+	CSG_String Line, Key, Value;
 
 	if( !Stream.Read_Line(Line) || !Load_Metadata(Line, Key, Value) || Key.Cmp("GROUP") )
 	{
@@ -528,15 +557,15 @@ bool CLandsat_Scene_Import::Load_Metadata(CSG_MetaData &Metadata, const CSG_Stri
 //---------------------------------------------------------
 bool CLandsat_Scene_Import::Load_Metadata(const CSG_String &Line, CSG_String &Key, CSG_String &Value)
 {
-	Key	= Line.BeforeFirst('='); Key.Trim(true); Key.Trim(false);
+	Key = Line.BeforeFirst('='); Key.Trim(true); Key.Trim(false);
 
 	if( !Key.is_Empty() )
 	{
-		Value	= Line.AfterFirst('='); Value.Trim(true); Value.Trim(false);
+		Value = Line.AfterFirst('='); Value.Trim(true); Value.Trim(false);
 
 		if( Value.Length() >= 2 && Value[0] == '\"' )
 		{
-			Value	= Value.Mid(1, Value.Length() - 2);
+			Value = Value.Mid(1, Value.Length() - 2);
 		}
 
 		return( !Value.is_Empty() );
@@ -564,13 +593,14 @@ int CLandsat_Scene_Import::Get_Info_Sensor(const CSG_MetaData &Metadata)
 {
 	if( Metadata("SENSOR_ID") )
 	{
-		CSG_String	Sensor	= Metadata["SENSOR_ID"].Get_Content();
-
-		if( !Sensor.Cmp("MSS"     ) )	return( SENSOR_MSS      );
-		if( !Sensor.Cmp("TM"      ) )	return( SENSOR_TM       );
-		if( !Sensor.Cmp("ETM"     ) )	return( SENSOR_ETM      );
-		if( !Sensor.Cmp("ETM+"    ) )	return( SENSOR_ETM      );
-		if( !Sensor.Cmp("OLI_TIRS") )	return( SENSOR_OLI_TIRS );
+		CSG_String Sensor = Metadata["SENSOR_ID"].Get_Content();
+
+		if( !Sensor.Cmp("MSS"     ) ) return( SENSOR_MSS      );
+		if( !Sensor.Cmp("TM"      ) ) return( SENSOR_TM       );
+		if( !Sensor.Cmp("ETM"     ) ) return( SENSOR_ETM      );
+		if( !Sensor.Cmp("ETM+"    ) ) return( SENSOR_ETM      );
+		if( !Sensor.Cmp("OLI"     ) ) return( SENSOR_OLI      );
+		if( !Sensor.Cmp("OLI_TIRS") ) return( SENSOR_OLI_TIRS );
 	}
 
 	return( SENSOR_UNKNOWN );
@@ -609,7 +639,7 @@ struct SBand_Keys
 //---------------------------------------------------------
 enum EBand_Head
 {
-	BAND_HEAD_ID	= 0,
+	BAND_HEAD_ID = 0,
 	BAND_HEAD_NR,
 	BAND_HEAD_NAME,
 	BAND_HEAD_WAVE_MIN,
@@ -667,7 +697,7 @@ struct SBand_Keys	Band_Data[BAND_DATA_COUNT]	=
 //---------------------------------------------------------
 bool CLandsat_Scene_Import::Get_Info(const CSG_MetaData &Metadata, CSG_Strings &File_Bands, CSG_Table &Info_Bands, CSG_MetaData &Info_Scene)
 {
-	int	Version	= Get_Info_Version(Metadata);
+	int Version = Get_Info_Version(Metadata);
 
 	if( Version == VERSION_UNKNOWN )
 	{
@@ -676,7 +706,7 @@ bool CLandsat_Scene_Import::Get_Info(const CSG_MetaData &Metadata, CSG_Strings &
 		return( false );
 	}
 
-	int	Sensor	= Get_Info_Sensor(Metadata);
+	int Sensor = Get_Info_Sensor(Metadata);
 
 	if( Sensor == SENSOR_UNKNOWN )
 	{
@@ -707,12 +737,10 @@ bool CLandsat_Scene_Import::Get_Info(const CSG_MetaData &Metadata, CSG_Strings &
 	GET_INFO_SCENE(false, "ROLL_ANGLE"              );	// MTL
 
 	//-----------------------------------------------------
-	int	iField;
-
 	Info_Bands.Destroy();
 	Info_Bands.Set_Name(_TL("Band Info"));
 
-	for(iField=0; iField<BAND_HEAD_COUNT; iField++)
+	for(int iField=0; iField<BAND_HEAD_COUNT; iField++)
 	{
 		Info_Bands.Add_Field(
 			Band_Head[iField].Name,
@@ -720,11 +748,11 @@ bool CLandsat_Scene_Import::Get_Info(const CSG_MetaData &Metadata, CSG_Strings &
 		);
 	}
 
-	bool	bOkay[BAND_DATA_COUNT];
+	bool bOkay[BAND_DATA_COUNT];
 
-	for(iField=0; iField<BAND_DATA_COUNT; iField++)
+	for(int iField=0; iField<BAND_DATA_COUNT; iField++)
 	{
-		bOkay[iField]	= false;
+		bOkay[iField] = false;
 
 		Info_Bands.Add_Field(
 			Band_Data[iField].Name,
@@ -733,31 +761,31 @@ bool CLandsat_Scene_Import::Get_Info(const CSG_MetaData &Metadata, CSG_Strings &
 	}
 
 	//-----------------------------------------------------
-	const int	Sensor_nBands[SENSOR_UNKNOWN]	=
+	const int Sensor_nBands[SENSOR_UNKNOWN] =
 	{
-		4, 7, 9, 11
+		4, 7, 9, 9, 11 // MSS, TM, ETM, OLI, OLI/TIRS
 	};
 
 	for(int Band=0; Band<Sensor_nBands[Sensor]; Band++)
 	{
-		CSG_String	Value;
+		CSG_String Value;
 
 		if( !Get_Info_Band(Metadata, Version, Sensor, Band, BAND_DATA_FILE, Value) )
 		{
 			return( false );
 		}
 
-		File_Bands	+= Value;
+		File_Bands += Value;
 
-		CSG_Table_Record	&Info	= *Info_Bands.Add_Record();
+		CSG_Table_Record &Info = *Info_Bands.Add_Record();
 
 		Set_Info_Band(Sensor, Band, Info);	// set defaults
 
-		for(iField=0; iField<BAND_DATA_COUNT; iField++)
+		for(int iField=0; iField<BAND_DATA_COUNT; iField++)
 		{
 			if( Get_Info_Band(Metadata, Version, Sensor, Band, iField, Value) )
 			{
-				bOkay[iField]	= true;
+				bOkay[iField] = true;
 
 				Info.Set_Value (BAND_HEAD_COUNT + iField, Value);
 			}
@@ -769,7 +797,7 @@ bool CLandsat_Scene_Import::Get_Info(const CSG_MetaData &Metadata, CSG_Strings &
 	}
 
 	//-----------------------------------------------------
-	for(iField=BAND_DATA_COUNT-1; iField>=0; iField--)
+	for(int iField=BAND_DATA_COUNT-1; iField>=0; iField--)
 	{
 		if( !bOkay[iField] )
 		{
@@ -783,21 +811,21 @@ bool CLandsat_Scene_Import::Get_Info(const CSG_MetaData &Metadata, CSG_Strings &
 //---------------------------------------------------------
 bool CLandsat_Scene_Import::Get_Info_Band(const CSG_MetaData &Metadata, int Version, int Sensor, int Band, int Key, CSG_String &Value)
 {
-	CSG_String	Name;
+	CSG_String Name;
 
 	if( Sensor == SENSOR_ETM )
 	{
 		switch( Band )
 		{
-		case 0:	Name	= Version != VERSION_MTL_2  ? "BAND1"  : "BAND_1"       ; break;
-		case 1:	Name	= Version != VERSION_MTL_2  ? "BAND2"  : "BAND_2"       ; break;
-		case 2:	Name	= Version != VERSION_MTL_2  ? "BAND3"  : "BAND_3"       ; break;
-		case 3:	Name	= Version != VERSION_MTL_2  ? "BAND4"  : "BAND_4"       ; break;
-		case 4:	Name	= Version != VERSION_MTL_2  ? "BAND5"  : "BAND_5"       ; break;
-		case 5:	Name	= Version != VERSION_MTL_2  ? "BAND61" : "BAND_6_VCID_1"; break;
-		case 6:	Name	= Version != VERSION_MTL_2  ? "BAND62" : "BAND_6_VCID_2"; break;
-		case 7:	Name	= Version != VERSION_MTL_2  ? "BAND7"  : "BAND_7"       ; break;
-		case 8:	Name	= Version != VERSION_MTL_2  ? "BAND8"  : "BAND_8"       ; break;
+		case 0: Name = Version != VERSION_MTL_2 ? "BAND1"  : "BAND_1"       ; break;
+		case 1: Name = Version != VERSION_MTL_2 ? "BAND2"  : "BAND_2"       ; break;
+		case 2: Name = Version != VERSION_MTL_2 ? "BAND3"  : "BAND_3"       ; break;
+		case 3: Name = Version != VERSION_MTL_2 ? "BAND4"  : "BAND_4"       ; break;
+		case 4: Name = Version != VERSION_MTL_2 ? "BAND5"  : "BAND_5"       ; break;
+		case 5: Name = Version != VERSION_MTL_2 ? "BAND61" : "BAND_6_VCID_1"; break;
+		case 6: Name = Version != VERSION_MTL_2 ? "BAND62" : "BAND_6_VCID_2"; break;
+		case 7: Name = Version != VERSION_MTL_2 ? "BAND7"  : "BAND_7"       ; break;
+		case 8: Name = Version != VERSION_MTL_2 ? "BAND8"  : "BAND_8"       ; break;
 		}
 	}
 	else if( Sensor == SENSOR_MSS && Version == VERSION_MTL_2 )
@@ -810,7 +838,7 @@ bool CLandsat_Scene_Import::Get_Info_Band(const CSG_MetaData &Metadata, int Vers
 	}
 
 	//-----------------------------------------------------
-	CSG_String	Tag;
+	CSG_String Tag;
 
 	Tag.Printf(Key != BAND_DATA_FILE ? Band_Data[Key].Format : Version != VERSION_MTL_2 
 		? "%s_FILE_NAME" : "FILE_NAME_%s", Name.c_str()
@@ -821,7 +849,7 @@ bool CLandsat_Scene_Import::Get_Info_Band(const CSG_MetaData &Metadata, int Vers
 		return( false );
 	}
 
-	Value	= Metadata[Tag].Get_Content();
+	Value = Metadata[Tag].Get_Content();
 
 	return( true );
 }
@@ -829,7 +857,7 @@ bool CLandsat_Scene_Import::Get_Info_Band(const CSG_MetaData &Metadata, int Vers
 //---------------------------------------------------------
 bool CLandsat_Scene_Import::Set_Info_Band(int Sensor, int Band, CSG_Table_Record &Info)
 {
-	#define SET_INFO_BAND(band, name, wmin, wmax)	{\
+	#define SET_INFO_BAND(band, name, wmin, wmax) {\
 		Info.Set_Value(BAND_HEAD_ID      , 1 + (int)Info.Get_Index());\
 		Info.Set_Value(BAND_HEAD_NR      , band);\
 		Info.Set_Value(BAND_HEAD_NAME    , name);\
@@ -879,7 +907,7 @@ bool CLandsat_Scene_Import::Set_Info_Band(int Sensor, int Band, CSG_Table_Record
 		}
 		break;
 
-	case SENSOR_OLI_TIRS:
+	case SENSOR_OLI: case SENSOR_OLI_TIRS:
 		switch( Band )
 		{
 		case  0: SET_INFO_BAND( 1, _TL("Coast & Aerosol"), 0.433, 0.453);
@@ -936,8 +964,8 @@ CSG_Grid * CLandsat_Scene_Import::Load_Grid(const CSG_String &File)
 	}
 
 	//-----------------------------------------------------
-	CSG_Grid	*pGrid	= NULL;
-	CSG_Tool	*pTool	= SG_Get_Tool_Library_Manager().Create_Tool("io_gdal", 0);	// Import Raster
+	CSG_Grid *pGrid = NULL;
+	CSG_Tool *pTool = SG_Get_Tool_Library_Manager().Create_Tool("io_gdal", 0);	// Import Raster
 
 	if( pTool && pTool->Set_Manager(NULL)
 		&&  pTool->Set_Parameter("FILES"      , File)
@@ -948,7 +976,7 @@ CSG_Grid * CLandsat_Scene_Import::Load_Grid(const CSG_String &File)
 		&&	pTool->Set_Parameter("EXTENT_YMAX", Extent.Get_YMax())
 		&&  pTool->Execute() )
 	{
-		pGrid	= pTool->Get_Parameter("GRIDS")->asGridList()->Get_Grid(0);
+		pGrid = pTool->Get_Parameter("GRIDS")->asGridList()->Get_Grid(0);
 	}
 
 	SG_Get_Tool_Library_Manager().Delete_Tool(pTool);
@@ -982,9 +1010,9 @@ CSG_Grid * CLandsat_Scene_Import::Load_Band(const CSG_String &File)
 	//-----------------------------------------------------
 	else if( Parameters("PROJECTION")->asInt() <= 1 ) // UTM
 	{
-		CSG_Grid	*pTmp	= pBand;
+		CSG_Grid *pTmp = pBand;
 
-		CSG_String	Projection	= pTmp->Get_Projection().Get_Proj4();
+		CSG_String Projection = pTmp->Get_Projection().Get_Proj4();
 
 		if( Projection.Find("+proj=utm") >= 0
 		&&  (  (Projection.Find("+south") >= 0 && Parameters("PROJECTION")->asInt() == 0)
@@ -1021,7 +1049,7 @@ CSG_Grid * CLandsat_Scene_Import::Load_Band(const CSG_String &File)
 	//-----------------------------------------------------
 	else if( Parameters("PROJECTION")->asInt() == 2 )	// Geographic Coordinates
 	{
-		CSG_Tool	*pTool	= SG_Get_Tool_Library_Manager().Create_Tool("pj_proj4", 4);	// Coordinate Transformation (Grid)
+		CSG_Tool *pTool = SG_Get_Tool_Library_Manager().Create_Tool("pj_proj4", 4);	// Coordinate Transformation (Grid)
 
 		if(	pTool )
 		{
@@ -1037,7 +1065,7 @@ CSG_Grid * CLandsat_Scene_Import::Load_Band(const CSG_String &File)
 			{
 				delete(pBand);
 
-				pBand	= pTool->Get_Parameters()->Get_Parameter("GRID")->asGrid();
+				pBand = pTool->Get_Parameters()->Get_Parameter("GRID")->asGrid();
 			}
 
 			SG_Get_Tool_Library_Manager().Delete_Tool(pTool);
@@ -1054,7 +1082,7 @@ CSG_Grid * CLandsat_Scene_Import::Load_Band(const CSG_String &File)
 
 		if( !Projection.is_Equal(pBand->Get_Projection()) )
 		{
-			CSG_Tool	*pTool	= SG_Get_Tool_Library_Manager().Create_Tool("pj_proj4", 4);	// Coordinate Transformation (Grid)
+			CSG_Tool *pTool = SG_Get_Tool_Library_Manager().Create_Tool("pj_proj4", 4);	// Coordinate Transformation (Grid)
 
 			if(	pTool )
 			{
@@ -1071,7 +1099,7 @@ CSG_Grid * CLandsat_Scene_Import::Load_Band(const CSG_String &File)
 				{
 					delete(pBand);
 
-					pBand	= pTool->Get_Parameters()->Get_Parameter("GRID")->asGrid();
+					pBand = pTool->Get_Parameters()->Get_Parameter("GRID")->asGrid();
 				}
 
 				SG_Get_Tool_Library_Manager().Delete_Tool(pTool);
@@ -1106,19 +1134,19 @@ bool CLandsat_Scene_Import::Get_Float(CSG_Grid *pBand, CSG_Grid &DN)
 bool CLandsat_Scene_Import::Get_Radiance(CSG_Grid *pBand, const CSG_Table_Record &Info_Band)
 {
 	//-----------------------------------------------------
-	double	Offset, Scale, DNmin;
+	double Offset, Scale, DNmin;
 
 	if( Info_Band.asString("RADIANCE_ADD") && Info_Band.asString("RADIANCE_MUL") )
 	{
-		DNmin	=  0.;
-		Offset	=  Info_Band.asDouble("RADIANCE_ADD");
-		Scale	=  Info_Band.asDouble("RADIANCE_MUL");
+		DNmin  =  0.;
+		Offset =  Info_Band.asDouble("RADIANCE_ADD");
+		Scale  =  Info_Band.asDouble("RADIANCE_MUL");
 	}
 	else if( Info_Band.asString("L_MIN") && Info_Band.asString("L_MAX") && Info_Band.asString("QCAL_MIN") && Info_Band.asString("QCAL_MAX") )
 	{
-		DNmin	=  Info_Band.asDouble("QCAL_MIN");
-		Offset	=  Info_Band.asDouble("L_MIN");
-		Scale	= (Info_Band.asDouble("L_MAX") - Offset) / (Info_Band.asDouble("QCAL_MAX") - DNmin);
+		DNmin  =  Info_Band.asDouble("QCAL_MIN");
+		Offset =  Info_Band.asDouble("L_MIN");
+		Scale  = (Info_Band.asDouble("L_MAX") - Offset) / (Info_Band.asDouble("QCAL_MAX") - DNmin);
 	}
 	else
 	{
@@ -1128,7 +1156,7 @@ bool CLandsat_Scene_Import::Get_Radiance(CSG_Grid *pBand, const CSG_Table_Record
 	}
 
 	//-----------------------------------------------------
-	CSG_Grid	DN(*pBand);
+	CSG_Grid DN(*pBand);
 
 	if( Parameters("DATA_TYPE")->asInt() == 1 )
 	{
@@ -1136,7 +1164,7 @@ bool CLandsat_Scene_Import::Get_Radiance(CSG_Grid *pBand, const CSG_Table_Record
 	}
 	else
 	{
-		double	MaxVal	= (pBand->Get_Type() == SG_DATATYPE_Byte ? 256 : 256*256) - 1;
+		double MaxVal = (pBand->Get_Type() == SG_DATATYPE_Byte ? 256 : 256*256) - 1;
 		pBand->Set_NoData_Value(MaxVal--);
 		pBand->Set_Scaling(1000. / MaxVal, 0.);
 	}
@@ -1165,12 +1193,12 @@ bool CLandsat_Scene_Import::Get_Radiance(CSG_Grid *pBand, const CSG_Table_Record
 bool CLandsat_Scene_Import::Get_Reflectance(CSG_Grid *pBand, const CSG_Table_Record &Info_Band, double SunHeight)
 {
 	//-----------------------------------------------------
-	double	Offset, Scale;
+	double Offset, Scale;
 
 	if( Info_Band.asString("REFLECTANCE_ADD") && Info_Band.asString("REFLECTANCE_MUL") )
 	{
-		Offset	= Info_Band.asDouble("REFLECTANCE_ADD");
-		Scale	= Info_Band.asDouble("REFLECTANCE_MUL");
+		Offset = Info_Band.asDouble("REFLECTANCE_ADD");
+		Scale  = Info_Band.asDouble("REFLECTANCE_MUL");
 	}
 	else
 	{
@@ -1179,10 +1207,10 @@ bool CLandsat_Scene_Import::Get_Reflectance(CSG_Grid *pBand, const CSG_Table_Rec
 		return( false );
 	}
 
-	SunHeight	= sin(SunHeight * M_DEG_TO_RAD);
+	SunHeight = sin(SunHeight * M_DEG_TO_RAD);
 
 	//-----------------------------------------------------
-	CSG_Grid	DN(*pBand);
+	CSG_Grid DN(*pBand);
 
 	if( Parameters("DATA_TYPE")->asInt() == 1 )
 	{
@@ -1190,7 +1218,7 @@ bool CLandsat_Scene_Import::Get_Reflectance(CSG_Grid *pBand, const CSG_Table_Rec
 	}
 	else
 	{
-		double	MaxVal	= (pBand->Get_Type() == SG_DATATYPE_Byte ? 256 : 256*256) - 1;
+		double MaxVal = (pBand->Get_Type() == SG_DATATYPE_Byte ? 256 : 256*256) - 1;
 		pBand->Set_NoData_Value(MaxVal--);
 		pBand->Set_Scaling(1. / MaxVal, 0.);	// 0 to 1 (reflectance)
 	}
@@ -1207,7 +1235,7 @@ bool CLandsat_Scene_Import::Get_Reflectance(CSG_Grid *pBand, const CSG_Table_Rec
 		}
 		else
 		{
-			double	r	= (Offset + Scale * DN.asDouble(i)) / SunHeight;
+			double r = (Offset + Scale * DN.asDouble(i)) / SunHeight;
 
 			pBand->Set_Value(i, r < 0. ? 0. : r > 1. ? 1. : r);
 		}
@@ -1227,16 +1255,16 @@ bool CLandsat_Scene_Import::Get_Temperature(CSG_Grid *pBand, const CSG_Table_Rec
 		return( false );
 	}
 
-	double	Offset	= Info_Band.asDouble("RADIANCE_ADD");
-	double	Scale	= Info_Band.asDouble("RADIANCE_MUL");
+	double Offset = Info_Band.asDouble("RADIANCE_ADD");
+	double  Scale = Info_Band.asDouble("RADIANCE_MUL");
 
-	double	k1		= Info_Band.asDouble("THERMAL_K1");
-	double	k2		= Info_Band.asDouble("THERMAL_K2");
+	double     k1 = Info_Band.asDouble("THERMAL_K1");
+	double     k2 = Info_Band.asDouble("THERMAL_K2");
 
 	//-----------------------------------------------------
-	CSG_Grid	DN(*pBand);
+	CSG_Grid DN(*pBand);
 
-	int	Unit	= Parameters("TEMP_UNIT")->asInt();
+	int Unit = Parameters("TEMP_UNIT")->asInt();
 
 	if( Parameters("DATA_TYPE")->asInt() == 1 )
 	{
@@ -1244,7 +1272,7 @@ bool CLandsat_Scene_Import::Get_Temperature(CSG_Grid *pBand, const CSG_Table_Rec
 	}
 	else
 	{
-		double	MaxVal	= (pBand->Get_Type() == SG_DATATYPE_Byte ? 256 : 256*256) - 1;
+		double MaxVal = (pBand->Get_Type() == SG_DATATYPE_Byte ? 256 : 256*256) - 1;
 		pBand->Set_NoData_Value(MaxVal--);
 		pBand->Set_Scaling(100. / MaxVal, (Unit == 0 ? 273.15 : 0.) - 40.);	// -40�C to 60�C
 	}
@@ -1261,7 +1289,7 @@ bool CLandsat_Scene_Import::Get_Temperature(CSG_Grid *pBand, const CSG_Table_Rec
 		}
 		else
 		{
-			double	r	= Offset + Scale * DN.asDouble(i);
+			double r = Offset + Scale * DN.asDouble(i);
 
 			pBand->Set_Value(i, k2 / log(1. + (k1 / r)) - (Unit == 0 ? 0. : 273.15));
 		}


=====================================
saga-gis/src/tools/imagery/imagery_tools/landsat_scene_import.h
=====================================
@@ -71,6 +71,7 @@ enum
 	SENSOR_MSS	= 0,
 	SENSOR_TM,
 	SENSOR_ETM,
+	SENSOR_OLI,
 	SENSOR_OLI_TIRS,
 	SENSOR_UNKNOWN
 };
@@ -98,11 +99,11 @@ protected:
 
 private:
 
+	bool					is_Spectral				(int Sensor, int Band);
+	bool					is_Thermal				(int Sensor, int Band);
 	bool					is_Panchromatic			(int Sensor, int Band);
-	bool					is_Multispectral		(int Sensor, int Band);
 	bool					is_Aerosol				(int Sensor, int Band);
 	bool					is_Cirrus				(int Sensor, int Band);
-	bool					is_Thermal				(int Sensor, int Band);
 
 	bool					Load_Metadata			(CSG_MetaData &Metadata, const CSG_String &File);
 	bool					Load_Metadata			(const CSG_String &Line, CSG_String &Key, CSG_String &Value);


=====================================
saga-gis/src/tools/shapes/shapes_lines/line_split_with_lines.cpp
=====================================
@@ -63,31 +63,31 @@ CLine_Split_with_Lines::CLine_Split_with_Lines(void)
 	Set_Author		("O. Conrad (c) 2014");
 
 	Set_Description	(_TW(
-		"Split Lines with Lines."
+		"The tool allows one to split lines with lines."
 	));
 
 	//-----------------------------------------------------
 	Parameters.Add_Shapes("",
 		"LINES"		, _TL("Lines"),
-		_TL(""),
+		_TL("The input lines to split."),
 		PARAMETER_INPUT , SHAPE_TYPE_Line
 	);
 
 	Parameters.Add_Shapes("",
 		"SPLIT"		, _TL("Split Features"),
-		_TL(""),
+		_TL("The lines with which the input lines are to be divided."),
 		PARAMETER_INPUT , SHAPE_TYPE_Line
 	);
 
 	Parameters.Add_Shapes("",
 		"INTERSECT"	, _TL("Intersection"),
-		_TL(""),
+		_TL("The splitted lines."),
 		PARAMETER_OUTPUT, SHAPE_TYPE_Line
 	);
 
 	Parameters.Add_Choice("",
 		"OUTPUT"	, _TL("Output"),
-		_TL(""),
+		_TL("Choose the output line type, either polylines or separate lines."),
 		CSG_String::Format("%s|%s",
 			_TL("polylines"),
 			_TL("separate lines")
@@ -221,31 +221,31 @@ CLine_Split_at_Points::CLine_Split_at_Points(void)
 	Set_Author		("O. Conrad (c) 2015");
 
 	Set_Description	(_TW(
-		"Split Lines at Points."
+		"The tool allows one to split lines at certain points. The points must be provided as point shapes."
 	));
 
 	//-----------------------------------------------------
 	Parameters.Add_Shapes("",
 		"LINES"		, _TL("Lines"),
-		_TL(""),
+		_TL("The input lines to split."),
 		PARAMETER_INPUT , SHAPE_TYPE_Line
 	);
 
 	Parameters.Add_Shapes("",
 		"SPLIT"		, _TL("Split Features"),
-		_TL(""),
+		_TL("The points at which the input lines are to be split."),
 		PARAMETER_INPUT , SHAPE_TYPE_Point
 	);
 
 	Parameters.Add_Shapes("",
 		"INTERSECT"	, _TL("Intersection"),
-		_TL(""),
+		_TL("The splitted lines."),
 		PARAMETER_OUTPUT, SHAPE_TYPE_Line
 	);
 
 	Parameters.Add_Choice("",
 		"OUTPUT"	, _TL("Output"),
-		_TL(""),
+		_TL("Choose the output line type, either polylines or separate lines."),
 		CSG_String::Format("%s|%s",
 			_TL("polylines"),
 			_TL("separate lines")
@@ -254,7 +254,7 @@ CLine_Split_at_Points::CLine_Split_at_Points(void)
 
 	Parameters.Add_Double("",
 		"EPSILON"	, _TL("Epsilon"),
-		_TL(""),
+		_TL("The tolerance used to find the point-line intersections [map units]."),
 		0., true
 	);
 }
@@ -307,7 +307,7 @@ bool CLine_Split_at_Points::On_Execute(void)
 
 		if( Parameters("OUTPUT")->asInt() == 1 )
 		{
-			for(int iPart=pLine->Get_Part_Count()-1; iPart>1; iPart--)
+			for(int iPart=pLine->Get_Part_Count()-1; iPart>0; iPart--)
 			{
 				CSG_Shape_Line	*pAdd	= (CSG_Shape_Line *)pIntersect->Add_Shape(pLine, SHAPE_COPY_ATTR);	// only attributes
 


=====================================
saga-gis/src/tools/terrain_analysis/ta_lighting/SolarRadiation.cpp
=====================================
@@ -1053,7 +1053,7 @@ inline bool CSolarRadiation::Get_Shade_Params(double Sun_Height, double Sun_Azim
 {
 	if( Sun_Height > 0. )
 	{
-		dx = sin(dz); dy = cos(dz); dz = Sun_Azimuth + M_PI_180;
+		dz = Sun_Azimuth + M_PI_180; dx = sin(dz); dy = cos(dz);
 
 		if( fabs(dx) - fabs(dy) > EPSILON )
 		{


=====================================
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 1)
+set (SAGA_VERSION_PATCH 2)
 
 # 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.1_setup.exe).
-; - Unzip the SAGA binary files in their own folder (for example, saga-9.1.1.zip).
+; To build installer (for example, saga-9.1.2_setup.exe).
+; - Unzip the SAGA binary files in their own folder (for example, saga-9.1.2.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.1
+AppVerName=SAGA 9.1.2
 
 ArchitecturesAllowed=x64
 ArchitecturesInstallIn64BitMode=x64
@@ -22,9 +22,9 @@ Compression=lzma
 SolidCompression=yes
 
 OutputDir=.
-OutputBaseFilename=saga-9.1.1_x64_setup
+OutputBaseFilename=saga-9.1.2_x64_setup
 
-VersionInfoVersion=9.1.1.0
+VersionInfoVersion=9.1.2.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.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"
+Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.1.2"; ValueType: string; ValueName: "InstallDir"; ValueData: "{app}"; Flags: uninsdeletekey
+Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.1.2"; ValueType: string; ValueName: "Version"; ValueData: "9.1.2.0"



View it on GitLab: https://salsa.debian.org/debian-gis-team/saga/-/commit/3e6b2118502bfd72c0806f0c7ea17cbc1da27560

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/saga/-/commit/3e6b2118502bfd72c0806f0c7ea17cbc1da27560
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/20230913/6d948973/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list