public class Hapke_Parameters
extends java.lang.Object
There is currently a limitation on the values of the Henyey-Greenfield asymmetry and weighting parameters, thanks to the calculation of the "big P" parameter. When the scattering function is a single HG function, the asymmetry parameter is limited to the range -0.6 to 0.5, inclusive, in increments of 0.1; the weighting parameter is not used. For the double HG function, the asymmetry parameter is limited to the range -0.7 to 0.7, inclusive, and the weighting is limited to the range 0.2 to 0.8, inclusive, both in increments of 0.1.
No attept is made to enforce this limit within the setters for these parameters. The "big P" calculation silenty rounds the values as necessary and returns a -1 when the values are out of range. It is up to the user of this class to enforce the restrictions. The use of a spinner to set them, for instance, is recommended.
This requirement will be lifted once the "big P" calculation is moved from being table-based to being equation-based for the HG scattering functions.
Note that the original IDL GUI limited the HG asymmetry parameter to the range -0.7 to -0.1, inclusive, and the weighting parameter to the range 0.2 to 0.8, inclusive, both in increments of 0.1.
Based on IDL code by Nick Thomas, University of Bern.
Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_CBOE_AMPLITUDE |
static double |
DEFAULT_HG_ASYMMETRY |
static double |
DEFAULT_HG_WEIGHTING |
static double |
DEFAULT_HS_PARAMETER |
static double |
DEFAULT_MEAN_COS_SCATTERING_ANGLE |
static double |
DEFAULT_MEAN_SLOPE |
static double |
DEFAULT_PARTICLE_NUMBER_DENSITY |
static double |
DEFAULT_PARTICLE_SCATTERING_AREA |
static double |
DEFAULT_PARTICLE_SCATTERING_EFFICIENCY |
static Scattering |
DEFAULT_SCATTERING |
static double |
DEFAULT_SHOE_AMPLITUDE |
static double |
DEFAULT_SINGLE_SCATTERING_ALBEDO |
static boolean |
DEFAULT_USE_CBOE |
static boolean |
DEFAULT_USE_MACROSCOPIC_ROUGHNESS |
static boolean |
DEFAULT_USE_SHOE |
static double |
DEFAULT_WAVELENGTH |
static java.lang.String |
ID
Class identification name with source code version and date.
|
Constructor and Description |
---|
Hapke_Parameters() |
Modifier and Type | Method and Description |
---|---|
double |
cboe_amplitude() |
void |
cboe_amplitude(double cboe_amplitude) |
double |
hg_asymmetry() |
void |
hg_asymmetry(double hg_asymmetry) |
double |
hg_weighting() |
void |
hg_weighting(double hg_weighting) |
double |
hs_parameter() |
void |
hs_parameter(double hs_parameter) |
static void |
main(java.lang.String[] args)
Performs simple tests of the Hapke parameters methods.
|
double |
mean_cos_scattering_angle() |
void |
mean_cos_scattering_angle(double mean_cos_scattering_angle) |
double |
mean_slope()
Gets the mean slope (in degrees) used in macroscopic roughness calculations.
|
void |
mean_slope(double mean_slope)
Sets the mean slope (in degrees) used in macroscopic roughness calculations.
|
double |
P_function()
Gets the value of "big-P."
|
double |
particle_number_density() |
void |
particle_number_density(double particle_number_density) |
double |
particle_scattering_area() |
void |
particle_scattering_area(double particle_scattering_area) |
double |
particle_scattering_efficiency() |
void |
particle_scattering_efficiency(double particle_scattering_efficiency) |
Scattering |
scattering() |
void |
scattering(Scattering scattering) |
double |
shoe_amplitude() |
void |
shoe_amplitude(double shoe_amplitude) |
double |
single_scattering_albedo() |
void |
single_scattering_albedo(double single_scattering_albedo) |
java.lang.String |
toString()
Gets a brief description of this set of Hapke parameters.
|
double |
transport_mfp()
Computes the transport mean free path in meters for this set of Hapke
parameters.
|
boolean |
use_cboe()
Tests whether the Hapke parameters indicate the coherent backscatter
opposition effect (CBOE) is to be used.
|
void |
use_cboe(boolean use_cboe)
Sets whether the Hapke parameters indicate the coherent backscatter
opposition effect (CBOE) is to be used.
|
boolean |
use_macroscopic_roughness() |
void |
use_macroscopic_roughness(boolean use_macroscopic_roughness) |
boolean |
use_shoe()
Tests whether the Hapke parameters indicate the shadow hiding opposition
effect (SBOE) is to be used.
|
void |
use_shoe(boolean use_shoe)
Sets whether the Hapke parameters indicate the shadow hiding opposition
effect (SBOE) is to be used.
|
double |
wavelength()
Gets the coherent backscatter opposition effect wavelength in meters.
|
void |
wavelength(double wavelength)
Sets the coherent backscatter opposition effect wavelength in meters.
|
public static final java.lang.String ID
public static final double DEFAULT_SINGLE_SCATTERING_ALBEDO
public static final boolean DEFAULT_USE_MACROSCOPIC_ROUGHNESS
public static final double DEFAULT_MEAN_SLOPE
public static final Scattering DEFAULT_SCATTERING
public static final double DEFAULT_HG_ASYMMETRY
public static final double DEFAULT_HG_WEIGHTING
public static final boolean DEFAULT_USE_CBOE
public static final boolean DEFAULT_USE_SHOE
public static final double DEFAULT_WAVELENGTH
public static final double DEFAULT_CBOE_AMPLITUDE
public static final double DEFAULT_SHOE_AMPLITUDE
public static final double DEFAULT_HS_PARAMETER
public static final double DEFAULT_PARTICLE_SCATTERING_AREA
public static final double DEFAULT_PARTICLE_SCATTERING_EFFICIENCY
public static final double DEFAULT_PARTICLE_NUMBER_DENSITY
public static final double DEFAULT_MEAN_COS_SCATTERING_ANGLE
public double single_scattering_albedo()
public void single_scattering_albedo(double single_scattering_albedo)
public boolean use_macroscopic_roughness()
public void use_macroscopic_roughness(boolean use_macroscopic_roughness)
public double mean_slope()
If use_macroscopic_roughness
is false, this parameter is
unused.
public void mean_slope(double mean_slope)
If this slope is greater than 29.43 degrees, the roughness calculations will fail when the following multiplicative factor is calculated for mean slope θ:
f = (1 - π(tan θ)2)1/2
For θ > 29.43 degrees, f evaluates to a complex number.
If use_macroscopic_roughness
is false, this parameter is
unused.
mean_slope
- the new mean slope in degrees; should not exceed 29
degrees.public Scattering scattering()
public void scattering(Scattering scattering)
public double hg_asymmetry()
public void hg_asymmetry(double hg_asymmetry)
public double hg_weighting()
public void hg_weighting(double hg_weighting)
public boolean use_cboe()
Note that HiRISE is never in a geometry such that CBOE matters; it should never be used, but is present nevertheless for other applications.
public void use_cboe(boolean use_cboe)
Note that HiRISE is never in a geometry such that CBOE matters; it should never be used, but is present nevertheless for other applications.
use_cboe
- indicates whether CBOE is to be used.public boolean use_shoe()
public void use_shoe(boolean use_shoe)
use_shoe
- indicates whether SHOE is to be used.public double wavelength()
use_cboe
public void wavelength(double wavelength)
wavelength
- the new wavelength in meters.use_cboe
public double cboe_amplitude()
public void cboe_amplitude(double cboe_amplitude)
public double shoe_amplitude()
public void shoe_amplitude(double shoe_amplitude)
public double hs_parameter()
public void hs_parameter(double hs_parameter)
public double particle_scattering_area()
public void particle_scattering_area(double particle_scattering_area)
public double particle_scattering_efficiency()
public void particle_scattering_efficiency(double particle_scattering_efficiency)
public double particle_number_density()
public void particle_number_density(double particle_number_density)
public double mean_cos_scattering_angle()
public void mean_cos_scattering_angle(double mean_cos_scattering_angle)
public double P_function()
public double transport_mfp()
This function uses the following Hapke parameters:
public java.lang.String toString()
toString
in class java.lang.Object
public static void main(java.lang.String[] args)
These tests are performed using the default set of parameters.
Compare the results of these tests with the equivalent calls of the IDL HIPHOP.
Hapke_Parameters
Command-line arguments are ignored.
args
- command-line arguments, ignored.Copyright \ (C) Arizona Board of Regents on behalf of the \ Planetary Image Research Laboratory, Lunar and \ Planetary Laboratory at the University of Arizona