-
Notifications
You must be signed in to change notification settings - Fork 1
Home
pvert is a set of Python and MATLAB codes for modeling radar backscatter and emission from one and two layer geologic media, with or without distributed heterogeneities. Backscattering and emission from homogenous media with rough interfaces are computed using the Improved Integral Equation Method (Fung et al., 2002). EM wave propagation and scattering within a homogenous background medium with discrete, spheroidal scatterers are described using vector radiative transfer (VRT) relations.
conda env create --name py36-vrt --file=py36-vrt.yml
conda activate py36-vrt
MatLab needs to be installed and licensed to run the I2EM surface scattering model. Python files for calculating rough surface scattering are included for user without MatLab access, but please note that the python I2EM filed do not currently compute cross-polarized backscatter.
Activate the newly created conda environment if not already activated. Execute the following set of commands within the new conda environemnt.
cd <matlabroot>/extern/engines/python
sudo mkdir build
sudo chmod 777 build
python setup.py install
Open and edit the run_vrt file to set the following.
-
input parameter values in the input dictionary (description of each parameter is given in the next section)
-
types of scattering mechanism to model
-
output csv file path
Example 1 - surface scattering
dict_list = generate_dictlist(thetai=list(np.linspace(0.0, 80.0, 10)),
d=[None],
atm_eps = [1+0j],
eps2r=[None], eps2i=[None],
eps1r=[5, 7], eps1i=[.01],
epsincr=[None], epsinci=[None],
s1=[0.026, 0.04], s2=[None],
cl1 = [None], cl2 = [None],
psdfunc = ["exponential"],
n0 = [None], volfrac = [None],
Dmax = [None], Lambda = [None], mu = [None],
a=[None], abyc= [None],
alpha=[None], beta=[None])
scattertypes = [["surface"]]
outfile = "Results/surface.csv"
Example 2 - subsurface scattering
dict_list = generate_dictlist(thetai=list(np.linspace(0.0, 80.0, 10)),
d=[0.126],
atm_eps = [1+0j],
eps2r=[8], eps2i=[100],
eps1r=[5, 7], eps1i=[.01],
epsincr=[None], epsinci=[None],
s1=[0.01], s2=[0.04],
cl1 = [0.5], cl2 = [0.5],
psdfunc = [None],
n0 = [None], volfrac = [None],
Dmax = [None], Lambda = [None], mu = [None],
a=[None], abyc= [None],
alpha=[None], beta=[None])
scattertypes = [["surface", "subsurface"]]
outfile = "Results/subsurface_dielectric.csv"
Example 3 - volume scattering
dict_list = generate_dictlist(thetai=list(np.linspace(0.0, 80.0, 10)),
d=[50],
atm_eps = [1+0j],
eps2r=[8], eps2i=[0.01],
eps1r=[5, 7], eps1i=[.01],
epsincr=[6], epsinci=[.05],
s1=[0.01], s2=[0.04],
cl1 = [0.5], cl2 = [0.5],
psdfunc = ["exponential"],
n0 = [1e8], volfrac = [.05],
Dmax = [0.016], Lambda = [205], mu = [50],
a=[None], abyc= [1.0],
alpha=[0.], beta=[0.])
scattertypes = [["surface", "subsurface", "volume", "volume-subsurface"]]
outfile = "Results/volume.csv"
Note that all input parameters must be defined in the input dictionary even if all the parameters don't get used.
Once the input and output variables have been set, execute the run_vrt.py to compute backscatter and emissivity.
`python run_vrt.py'
Parameter | Descripion | Units |
---|---|---|
thetai | Incidence angle | degrees |
d | Depth of layer (between atmosphere and substrate) | meters |
atm_eps | Complex permittivity of the atmosphere | |
eps_1r | Real part of the complex permittivity of the layer | |
eps_1i | Imaginary part of the complex permittivity of the layer | |
eps_2r | Real part of the complex permittivity of the substrate | |
eps_2i | Imaginary part of the complex permittivity of the substrate | |
eps_incr | Real part of the complex permittivity of inclusions | |
eps_inci | Imaginary part of the complex permittivity of inclusions | |
s1 | RMS height of the upper interface of the layer | meters |
s2 | RMS height of the lower interface of the layer | meters |
cl1 | correlation length of the upper interface of the layer | meters |
cl2 | correlation length of the lower interface of the layer | meters |
psdfunc | Size distribution of inclusions. See pytmatrix for acceptable values | |
n0 | Number of inclusions. See pytmatrix | |
volfrac | Volume fraction of inclusions. See pytmatrix | |
Dmax | Maximum diameter of inclusions. See pytmatrix | meters |
Lambda, mu | Size distribution parameters for inclusions. See pytmatrix | |
a | Size of inclusion when not using a particle size distribution (not recommended; using size distribution is more realistic) | meters |
abyc | Axis ratio of inclusions. See pytmatrix | |
alpha, beta | Euler angles for inclusions. See pytmatrix | degrees |