ossim中Spot5模型在读取像素视线角时存在一个严重的bug,导致某些点的视线角提取错误。
下面是ossim中getPixelLookAngleX 函数的代码:
ossimSpotDimapSupportData::getPixelLookAngleX(const ossim_float64& sample, ossim_float64& pa) const { ossim_uint32 s = static_cast<ossim_uint32>(sample); getInterpolatedLookAngle(s, thePixelLookAngleX, pa); }
其中
ossim_uint32 s = static_cast<ossim_uint32>(sample);
这一句是对像素值取整,而后面紧接着按取整后的像素值进行插值,这是什么逻辑。。。
以下是修复后的代码
ossimSpotDimapSupportData::getPixelLookAngleX(const ossim_float64& sample, ossim_float64& pa) const { getInterpolatedLookAngle(sample, thePixelLookAngleX, pa); }
同样的,也需要对getPixelLookAngleY函数进行相应的修改。