遥感影像镶嵌及实现(一);遥感影像镶嵌及实现(三);遥感影像镶嵌及实现(四);遥感影像镶嵌及实现(五);遥感影像镶嵌及实现(六)。
遥感影像镶嵌及实现(二)——有效区域获取
遥感影像有效区域获取方法:
首先,需要知道影像无效区域的值,double GDALRasterBand::GetNoDataValue ( int * pbSuccess = nullptr ) 。对于无法获取的情况,一般认为(自己遇到的情况)DOM所有波段无效值为0;DSM无效值为-9999.0000;某海洋卫星的无效值为-32767.00000。
(1)对于分辨率高,输出幅宽不大,中低纬度的影像可以通过采样,查找到有效的4角点来构建矩形有效区域。由于正射校正结果可能出现影像边缘不规则,这种方法虽然快,但是不通用;
(2)而对于低分辨率、大幅宽,尤其是高纬度的影像,方法(1)无法满足要求,那么就需要查找不规则的影像区域。其中需要注意以下几点:
<1> 对于单景数据量大的影像,可以先采样,采样值不宜过大,多波段影像可以取其中一个波段,再查找完全有效区域。此时点数任然是比较多的,可以通过Dauglas-Peucker算法对点数进行压缩。压缩值可以根据输入点单位,及影像分辨率设定;
<2> 比较好些的做法是不采样获取其中一个波段影像,查找完全有效区域,再压缩;
<3> 对自己处理的结果影像(记住设置NoData)进行镶嵌,其数据格式及结构有一定的了解,代码实现起来容易,但兼容性比较差。请考虑好各种可能情况,对于外来数据,先了解数据格式等;
<4> 获取的点是像素,可以转化为经纬度或某种统一投影的XY,这需要考虑后续设计;
<5> 使用采样获取的有效区域点,记住用相同的采样还原。
对于代码实现,可以借鉴链接中的实现,后续会上传window版demo及源码哦~!~!