mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-03 00:02:25 -05:00
parent
970149f13e
commit
ebdb546c10
@ -204,11 +204,12 @@ void QgsColorRampShader::classifyColorRamp( const int classes, const int band, c
|
||||
{
|
||||
// Quantile
|
||||
if ( band < 0 || !input )
|
||||
return; // quantile classificationr requires a valid band, minMaxOrigin, and input
|
||||
return; // quantile classification requires a valid band, minMaxOrigin, and input
|
||||
|
||||
double cut1 = std::numeric_limits<double>::quiet_NaN();
|
||||
double cut2 = std::numeric_limits<double>::quiet_NaN();
|
||||
const int sampleSize = 250000;
|
||||
// Note: the sample size in other parts of QGIS appears to be 25000, it is ten times here.
|
||||
const int sampleSize = 250000 * 10;
|
||||
|
||||
// set min and max from histogram, used later to calculate number of decimals to display
|
||||
input->cumulativeCut( band, 0.0, 1.0, min, max, extent, sampleSize );
|
||||
|
@ -352,7 +352,6 @@ void QgsRasterInterface::initHistogram( QgsRasterHistogram &histogram,
|
||||
// Because it is easier to define fixed lower value for the chart, we calc optimum binCount
|
||||
// for higher resolution (to avoid calculating that where histogram() is used. In any any case,
|
||||
// it does not make sense to use more than width*height;
|
||||
myBinCount = std::min( 2000, histogram.width * histogram.height );
|
||||
|
||||
// for Int16/Int32 make sure bin count <= actual range, because there is no sense in having
|
||||
// bins at fractional values
|
||||
@ -360,8 +359,12 @@ void QgsRasterInterface::initHistogram( QgsRasterHistogram &histogram,
|
||||
mySrcDataType == Qgis::Int16 || mySrcDataType == Qgis::Int32 ||
|
||||
mySrcDataType == Qgis::UInt16 || mySrcDataType == Qgis::UInt32 ) )
|
||||
{
|
||||
if ( myBinCount > histogram.maximum - histogram.minimum + 1 )
|
||||
myBinCount = int( std::ceil( histogram.maximum - histogram.minimum + 1 ) );
|
||||
myBinCount = std::min( histogram.width * histogram.height, static_cast<int>( std::ceil( histogram.maximum - histogram.minimum + 1 ) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
// This is for not integer types:
|
||||
myBinCount = std::min( 2000, histogram.width * histogram.height );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user