00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "qgsslopefilter.h"
00019
00020 QgsSlopeFilter::QgsSlopeFilter( const QString& inputFile, const QString& outputFile, const QString& outputFormat ): \
00021 QgsDerivativeFilter( inputFile, outputFile, outputFormat )
00022 {
00023
00024 }
00025
00026 QgsSlopeFilter::~QgsSlopeFilter()
00027 {
00028
00029 }
00030
00031 float QgsSlopeFilter::processNineCellWindow( float* x11, float* x21, float* x31, \
00032 float* x12, float* x22, float* x32, float* x13, float* x23, float* x33 )
00033 {
00034 float derX = calcFirstDerX( x11, x21, x31, x12, x22, x32, x13, x23, x33 );
00035 float derY = calcFirstDerY( x11, x21, x31, x12, x22, x32, x13, x23, x33 );
00036
00037 if ( derX == mOutputNodataValue || derY == mOutputNodataValue )
00038 {
00039 return mOutputNodataValue;
00040 }
00041
00042 return atan( sqrt( derX * derX + derY * derY ) ) * 180.0 / M_PI;
00043 }
00044