D'accord.

Even Rouault wrote:
Le Friday 27 March 2009 20:05:11 Lucena, Ivan, vous avez écrit :
Even,

I see. You are right. With the absence of ComputeRasterStatistics() I got
confused and I made the wrong

assumption. BTW, why there is no wrapper for ComputeRasterStatistics()? That
would work then:
bd1.SetStatistics(bd2.ComputeRasterStatistics())

Because you don't use the latest and greatest GDAL ;-)

Extract from swig/include/Band.i from SVN head:

  /* Interface method added for GDAL 1.7.0 */
%apply (double *OUTPUT){double *min, double *max, double *mean, double *stddev}; %apply (IF_ERROR_RETURN_NONE) { (CPLErr) }; CPLErr ComputeStatistics( bool approx_ok, double *min = NULL, double *max = NULL, double *mean = NULL, double *stddev = NULL, GDALProgressFunc callback = NULL, void* callback_data=NULL){ return GDALComputeRasterStatistics( self, approx_ok, min, max, mean, stddev, callback, callback_data );
  }
%clear (CPLErr);


Not a big deal. The work around is easy.

Thank you very much,

Ivan

 -------Original Message-------
 From: Even Rouault <even.roua...@mines-paris.org>
 Subject: Re: [gdal-dev] python-gdal ComputStatistics return just two
values Sent: Mar 27 '09 18:45

 Hi Ivan,

 I don't think there's a bug.

 The C API for ComputeBandStats is :

 CPLErr CPL_DLL CPL_STDCALL
 GDALComputeBandStats( GDALRasterBandH hBand, int nSampleStep,
                              double *pdfMean, double *pdfStdDev,
                              GDALProgressFunc pfnProgress,
                              void *pProgressData );

 So, the python API is consistant with it.

 So it is expected that "bd1.SetStatistics(bd2.ComputeBandStats())" will
fail as it is provided with 2 values instead of the expected 4.

 Best regards,
 Even

 Le Friday 27 March 2009 19:02:14 Lucena, Ivan, vous avez écrit :
 > Hi there,
 >
 > I believe that ComputeBandStats() should return 4 values min, max,
 > mean and stddev) [1] but the Python API is returning just mean and
 > stddev.
 >
 > python:
 > >>> bd.ComputeBandStats()
 >
 > (9.0071713001936118, 11.350094331448236)
 >
 > >>> bd.ComputeRasterMinMax()
 >
 > (-1.7899999618530273, 31.149999618530273)
 >
 > gdalinfo:
 >
 > Band 1 Block=360x1 Type=Float32, ColorInterp=Gray
 >   Min=-1.790 Max=31.150
 >   Minimum=-1.790, Maximum=31.150, Mean=9.007, StdDev=11.350
 >   Unit Type: unspecified
 >   Metadata:
 >     STATISTICS_MINIMUM=-1.789999961853
 >     STATISTICS_MAXIMUM=31.14999961853
 >     STATISTICS_MEAN=9.0071713001936
 >     STATISTICS_STDDEV=11.350094331448
 >
 > Is that a bug?
 >
 > See what happens in that case:
 > >>> bd1.SetStatistics(bd2.ComputeBandStats())
 >
 > Traceback (most recent call last):
 >   File "<interactive input>", line 1, in <module>
 >   File "E:\Python25\Lib\site-packages\osgeo\gdal.py", line 729, in
 > SetStatistics return _gdal.Band_SetStatistics(*args)
 > TypeError: Band_SetStatistics() takes exactly 5 arguments (2 given)
 >
 > My best regards,
 >
 > Ivan
 >
 > [1] http://www.gdal.org/gdal_8h.html#a93b6b6ea6e71017ce25524e1a9ef1e3
 >
 > _______________________________________________
 > gdal-dev mailing list
 > gdal-dev@lists.osgeo.org
 > http://lists.osgeo.org/mailman/listinfo/gdal-dev





_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to