BRDF#
- class geowombat.radiometry.BRDF[source]#
Bases:
GeoVolKernels
A class for Bidirectional Reflectance Distribution Function (BRDF) normalization.
Methods
get_mean_sza
(central_latitude)Returns the mean solar zenith angle (SZA) as a function of the central latitude.
norm_brdf
(data, solar_za, solar_az, ...[, ...])Applies Nadir Bidirectional Reflectance Distribution Function (BRDF) normalization using the global c-factor method
get_kernels
Methods Documentation
- static get_mean_sza(central_latitude)#
Returns the mean solar zenith angle (SZA) as a function of the central latitude.
- Parameters:
central_latitude (float) – The central latitude.
Reference:
See [ZRK16]
- Returns:
float
- norm_brdf(data, solar_za, solar_az, sensor_za, sensor_az, central_latitude=None, sensor=None, wavelengths=None, src_nodata=-32768, dst_nodata=-32768, mask=None, scale_factor=1.0, out_range=None, scale_angles=True, vol_weight=1.0)[source]#
Applies Nadir Bidirectional Reflectance Distribution Function (BRDF) normalization using the global c-factor method
- Parameters:
data (2d or 3d DataArray) – The data to normalize.
solar_za (2d DataArray) – The solar zenith angles (degrees).
solar_az (2d DataArray) – The solar azimuth angles (degrees).
sensor_za (2d DataArray) – The sensor azimuth angles (degrees).
sensor_az (2d DataArray) – The sensor azimuth angles (degrees).
central_latitude (Optional[float or 2d DataArray]) – The central latitude.
sensor (Optional[str]) – The satellite sensor.
wavelengths (str list) – The wavelength(s) to normalize.
src_nodata (Optional[int or float]) – The input ‘no data’ value.
dst_nodata (Optional[int or float]) – The output ‘no data’ value.
mask (Optional[DataArray]) – A data mask, where clear values are 0.
scale_factor (Optional[float]) – A scale factor to apply to the input data.
out_range (Optional[float]) – The out data range. If not given, the output data are return in a 0-1 range.
scale_angles (Optional[bool]) – Whether to scale the pixel angle arrays.
vol_weight (Optional[float]) – Weight to be applied to the volumetric kernel in the c-factor equation
References
See [RZJ+16] for the c-factor method.
For further background on BRDF:
- Returns:
xarray.DataArray
Examples
>>> import geowombat as gw >>> from geowombat.radiometry import BRDF >>> >>> brdf = BRDF() >>> >>> # Example where pixel angles are stored in separate GeoTiff files >>> with gw.config.update(sensor='l7', scale_factor=0.0001): >>> >>> with gw.open('solarz.tif') as solarz, >>> gw.open('solara.tif') as solara, >>> gw.open('sensorz.tif') as sensorz, >>> gw.open('sensora.tif') as sensora: >>> >>> with gw.open('landsat.tif') as src: >>> src_norm = brdf.norm_brdf(src, solarz, solara, sensorz, sensora)
- norm_brdf(data, solar_za, solar_az, sensor_za, sensor_az, central_latitude=None, sensor=None, wavelengths=None, src_nodata=-32768, dst_nodata=-32768, mask=None, scale_factor=1.0, out_range=None, scale_angles=True, vol_weight=1.0)[source]#
Applies Nadir Bidirectional Reflectance Distribution Function (BRDF) normalization using the global c-factor method
- Parameters:
data (2d or 3d DataArray) – The data to normalize.
solar_za (2d DataArray) – The solar zenith angles (degrees).
solar_az (2d DataArray) – The solar azimuth angles (degrees).
sensor_za (2d DataArray) – The sensor azimuth angles (degrees).
sensor_az (2d DataArray) – The sensor azimuth angles (degrees).
central_latitude (Optional[float or 2d DataArray]) – The central latitude.
sensor (Optional[str]) – The satellite sensor.
wavelengths (str list) – The wavelength(s) to normalize.
src_nodata (Optional[int or float]) – The input ‘no data’ value.
dst_nodata (Optional[int or float]) – The output ‘no data’ value.
mask (Optional[DataArray]) – A data mask, where clear values are 0.
scale_factor (Optional[float]) – A scale factor to apply to the input data.
out_range (Optional[float]) – The out data range. If not given, the output data are return in a 0-1 range.
scale_angles (Optional[bool]) – Whether to scale the pixel angle arrays.
vol_weight (Optional[float]) – Weight to be applied to the volumetric kernel in the c-factor equation
References
See [RZJ+16] for the c-factor method.
For further background on BRDF:
- Returns:
xarray.DataArray
Examples
>>> import geowombat as gw >>> from geowombat.radiometry import BRDF >>> >>> brdf = BRDF() >>> >>> # Example where pixel angles are stored in separate GeoTiff files >>> with gw.config.update(sensor='l7', scale_factor=0.0001): >>> >>> with gw.open('solarz.tif') as solarz, >>> gw.open('solara.tif') as solara, >>> gw.open('sensorz.tif') as sensorz, >>> gw.open('sensora.tif') as sensora: >>> >>> with gw.open('landsat.tif') as src: >>> src_norm = brdf.norm_brdf(src, solarz, solara, sensorz, sensora)
Adrian Fisher. Cloud and cloud-shadow detection in spot5 hrg imagery with automated morphological feature extraction. Remote Sensing, 6(1):776–800, 2014.
Xiaowen Li and Alan H Strahler. Geometric-optical bidirectional reflectance modeling of the discrete crown vegetation canopy: effect of crown shape and mutual shadowing. IEEE transactions on Geoscience and Remote Sensing, 30(2):276–292, 1992.
Jean-Louis Roujean, Marc Leroy, and Pierre-Yves Deschamps. A bidirectional reflectance model of the earth’s surface for the correction of remote sensing data. Journal of Geophysical Research: Atmospheres, 97(D18):20455–20468, 1992.
David P Roy, HK Zhang, Junchang Ju, Jose Luis Gomez-Dans, Philip E Lewis, CB Schaaf, Qingsong Sun, Jian Li, Haiyan Huang, and V Kovalskyy. A general method to normalize Landsat reflectance data to nadir BRDF adjusted reflectance. Remote Sensing of Environment, 176:255–271, 2016.
Crystal B Schaaf, Feng Gao, Alan H Strahler, Wolfgang Lucht, Xiaowen Li, Trevor Tsang, Nicholas C Strugnell, Xiaoyang Zhang, Yufang Jin, Jan-Peter Muller, and others. First operational BRDF, albedo nadir reflectance products from MODIS. Remote sensing of Environment, 83(1-2):135–148, 2002.
Lin Sun, Xinyan Liu, Yikun Yang, TingTing Chen, Quan Wang, and Xueying Zhou. A cloud shadow detection method combined with cloud height iteration and spectral analysis for landsat 8 oli data. ISPRS Journal of Photogrammetry and Remote Sensing, 138:193–207, 2018.
Hankui K Zhang, David P Roy, and Valeriy Kovalskyy. Optimal solar geometry definition for global long-term landsat time-series bidirectional reflectance normalization. IEEE Transactions on Geoscience and Remote Sensing, 54(3):1410–1418, 2016.