SREM estimates surface reflectance of satellite imagery without integrating information of aerosol particles and atmospheric gasses. Core algorithm is based on "A Simplified and Robust Surface Reflectance Estimation Method (SREM) for Use over DiverseLand Surfaces Using Multi-Sensor Data" [pdf].
This library supports Python >= 3.6
pip install srem
import numpy as np
from srem import srem
surface_reflectance = srem(
toa_reflectance, # np.ndarray with shape of (height, width)
wavelength, # float in micrometer
solar_azimuth_angle_deg, # float or np.ndarray with shape of (height, width)
solar_zenith_angle_deg, # float or np.ndarray with shape of (height, width)
sensor_azimuth_angle_deg, # float or np.ndarray with shape of (height, width)
sensor_zenith_angle_deg # float or np.ndarray with shape of (height, width)
)
assert isinstance(surface_reflectance, np.ndarray)
assert surface_reflectance.shape == toa_reflectance.shape
For detailed usage, please refer to examples of Landsat-8 and Sentinel-2.
- Bilal, Muhammad, et al. "A simplified and robust surface reflectance estimation method (srem) for use over diverse land surfaces using multi-sensor data." Remote Sensing 11.11 (2019): 1344.