核驱动的Ross-Li模型核系数计算


title: 核驱动的Ross-Li模型核系数计算
date: 2018-12-10
categories: RS
tags: python


BRF计算

MODIS 双向反射模型参数( MCD43A1) 为描述表面反射率的 the RossThick-Li Sparse Reciprocal BRDF 模型( Ross-Li model) 提供了相关的权重参数(fiso,fvol,fgeo)

image

BRF是双向反射率因子; θs 为入射角天顶角; θv为观测天顶角; φ 为太阳与观测的相对方位角;Kvol( θs ,θv,φ) 和 Kgeo(θs ,θv,φ) 分别为体散射核和几何光学散射核,它们都是入射角和观测角的函数; fiso、fvol和 fgeo为各个核的系数,分别表示各向同性散射、体散射、几何光学散射所占的权重。

核函数计算公式

核驱动的Ross-Li模型核系数计算_第1张图片


import math as m
# For MODIS operational data processing, h/b is set to 2 and b/r is set to 1.
h_b = 2
b_r = 1

# 太阳入射角天顶角
thetas = 45
# 观测天顶角
thetav = 45
# 相对方位角
fi = 180

# 角度化弧度
thetas = m.radians(thetas)
thetav = m.radians(thetav)
fi = m.radians(fi)

# 计算kvol
thetas1 = 1/(m.tan((b_r)*m.tan(thetas)))
thetav1 = 1/(m.tan((b_r)*m.tan(thetav)))


az = m.acos(m.cos(thetas)*m.cos(thetav)+m.sin(thetas)*m.sin(thetav)*m.cos(fi))
~~kvol = (4/(3*m.pi))+(1/(m.cos(thetas)+m.cos(thetav)))*((m.pi/2-az)*m.cos(az)+m.sin(az))-1/3~~ 
kvol =(4/(3*m.pi))*(1/(m.cos(thetas)+m.cos(thetav)))*((m.pi/2-az)*m.cos(az)+m.sin(az))-1/3

# 计算kgeo
D = m.sqrt(m.tan(thetas1)*m.tan(thetas1)+m.tan(thetav1)*m.tan(thetav1)-2*m.tan(thetas1)*m.tan(thetav1)*m.cos(fi))

t = m.acos(h_b*m.sqrt(D*D+(m.tan(thetas1)*thetav1*m.sin(fi))*(m.tan(thetas1)*thetav1*m.sin(fi)))/(1/m.cos(thetas1)+thetav1))

O = (1/m.pi)*(t-m.sin(t)*m.cos(t))*(1/m.cos(thetas1)+1/m.cos(thetav1))

az1 = m.atan(m.cos(thetas1)*m.cos(thetav1)+m.sin(thetas1)*m.sin(thetav1)*m.cos(fi))

kgeo = O -1/m.cos(thetas1)-1/m.cos(thetav1)+1/2*(1+m.cos(az1))*1/m.cos(thetav1)
   
    
print(kvol,kgeo)

输出体散射核kvol、几何光学散射核kgeo如下:

0.7981866294316018 -0.8040929005525888

你可能感兴趣的:(python,BRDF)