暗像元校正方法(改),取连续灰度值的像元频数之和超过像元总数的0.03%中的最小灰度值
关键类库:
numpy.ma 计算波段数组掩膜
matplotlib.pyploat 计算数组直方图
numpy 数组运算
# -*- coding: utf-8 -*-
"""
/***************************************************************************
darkSubtraction:
暗像元校正:
方法:计算波段中的最小值进行暗像元校正
过程:1.影像DN值转为辐射能量值(L = DN*gain +bias)
2.计算相对反射率(ρ=π×D2×L/(ESUNI×COS(SZ)))
3. 暗像元校正----#取直方图中4个连续灰度值的像元频数之和超过像元总数的0.03%中的最小灰度值作为暗像元进行计算
4.新建栅格数据写入数据(driver = gdal.Create(self, *args, **kwargs))
@version <1.1> 2018-04-16 Wujd : Created.
***************************************************************************/
"""
from osgeo import gdal
import numpy.ma as ma
import matplotlib.pyplot as plt
import numpy as np
class darkSubtraction:
def __init__(self):
"""
初始化变量
:param infilename:
"""
pass
def _get_rasterinfo(self,filename):
"""
获取栅格数据的行列数,波段数,放射矩阵,投影信息
:return:
@version <1.1> 2018-04-2 Wujd : Created.
"""
self.dataset = gdal.Open(filename)
self.im_width = self.dataset.RasterXSize
self.im_height = self.dataset.RasterYSize
self.im_bands = self.datase