HiRISE

HiRISE.HiPlan.HIPHOP
Class Hapke_Parameters

java.lang.Object
  extended by HiRISE.HiPlan.HIPHOP.Hapke_Parameters

public class Hapke_Parameters
extends Object

The set of Hapke parameters used by HIPHOP.

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.

Version:
1.9
Author:
Christian Schaller - UA/PIRL

Field Summary
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 String ID
          Class identification name with source code version and date.
 
Constructor Summary
Hapke_Parameters()
           
 
Method Summary
 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(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)
           
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ID

public static final String ID
Class identification name with source code version and date.

See Also:
Constant Field Values

DEFAULT_SINGLE_SCATTERING_ALBEDO

public static final double DEFAULT_SINGLE_SCATTERING_ALBEDO
See Also:
Constant Field Values

DEFAULT_USE_MACROSCOPIC_ROUGHNESS

public static final boolean DEFAULT_USE_MACROSCOPIC_ROUGHNESS
See Also:
Constant Field Values

DEFAULT_MEAN_SLOPE

public static final double DEFAULT_MEAN_SLOPE
See Also:
Constant Field Values

DEFAULT_SCATTERING

public static final Scattering DEFAULT_SCATTERING

DEFAULT_HG_ASYMMETRY

public static final double DEFAULT_HG_ASYMMETRY
See Also:
Constant Field Values

DEFAULT_HG_WEIGHTING

public static final double DEFAULT_HG_WEIGHTING
See Also:
Constant Field Values

DEFAULT_USE_CBOE

public static final boolean DEFAULT_USE_CBOE
See Also:
Constant Field Values

DEFAULT_USE_SHOE

public static final boolean DEFAULT_USE_SHOE
See Also:
Constant Field Values

DEFAULT_WAVELENGTH

public static final double DEFAULT_WAVELENGTH
See Also:
Constant Field Values

DEFAULT_CBOE_AMPLITUDE

public static final double DEFAULT_CBOE_AMPLITUDE
See Also:
Constant Field Values

DEFAULT_SHOE_AMPLITUDE

public static final double DEFAULT_SHOE_AMPLITUDE
See Also:
Constant Field Values

DEFAULT_HS_PARAMETER

public static final double DEFAULT_HS_PARAMETER
See Also:
Constant Field Values

DEFAULT_PARTICLE_SCATTERING_AREA

public static final double DEFAULT_PARTICLE_SCATTERING_AREA
See Also:
Constant Field Values

DEFAULT_PARTICLE_SCATTERING_EFFICIENCY

public static final double DEFAULT_PARTICLE_SCATTERING_EFFICIENCY
See Also:
Constant Field Values

DEFAULT_PARTICLE_NUMBER_DENSITY

public static final double DEFAULT_PARTICLE_NUMBER_DENSITY
See Also:
Constant Field Values

DEFAULT_MEAN_COS_SCATTERING_ANGLE

public static final double DEFAULT_MEAN_COS_SCATTERING_ANGLE
See Also:
Constant Field Values
Constructor Detail

Hapke_Parameters

public Hapke_Parameters()
Method Detail

single_scattering_albedo

public double single_scattering_albedo()

single_scattering_albedo

public void single_scattering_albedo(double single_scattering_albedo)

use_macroscopic_roughness

public boolean use_macroscopic_roughness()

use_macroscopic_roughness

public void use_macroscopic_roughness(boolean use_macroscopic_roughness)

mean_slope

public double mean_slope()
Gets the mean slope (in degrees) used in macroscopic roughness calculations.

If use_macroscopic_roughness is false, this parameter is unused.

Returns:
the mean slope (in degrees).

mean_slope

public void mean_slope(double mean_slope)
Sets the mean slope (in degrees) used in macroscopic roughness calculations.

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.

Parameters:
mean_slope - the new mean slope in degrees; should not exceed 29 degrees.

scattering

public Scattering scattering()

scattering

public void scattering(Scattering scattering)

hg_asymmetry

public double hg_asymmetry()

hg_asymmetry

public void hg_asymmetry(double hg_asymmetry)

hg_weighting

public double hg_weighting()

hg_weighting

public void hg_weighting(double hg_weighting)

use_cboe

public boolean use_cboe()
Tests whether the Hapke parameters indicate the coherent backscatter opposition effect (CBOE) is to be used.

Note that HiRISE is never in a geometry such that CBOE matters; it should never be used, but is present nevertheless for other applications.

Returns:
true if CBOE is to be used; false if not.

use_cboe

public void use_cboe(boolean use_cboe)
Sets whether the Hapke parameters indicate the coherent backscatter opposition effect (CBOE) is to be used.

Note that HiRISE is never in a geometry such that CBOE matters; it should never be used, but is present nevertheless for other applications.

Parameters:
use_cboe - indicates whether CBOE is to be used.

use_shoe

public boolean use_shoe()
Tests whether the Hapke parameters indicate the shadow hiding opposition effect (SBOE) is to be used.

Returns:
true if SHOE is to be used; false if not.

use_shoe

public void use_shoe(boolean use_shoe)
Sets whether the Hapke parameters indicate the shadow hiding opposition effect (SBOE) is to be used.

Parameters:
use_shoe - indicates whether SHOE is to be used.

wavelength

public double wavelength()
Gets the coherent backscatter opposition effect wavelength in meters.

Returns:
the CBOE wavelength in meters.
See Also:
use_cboe

wavelength

public void wavelength(double wavelength)
Sets the coherent backscatter opposition effect wavelength in meters.

Parameters:
wavelength - the new wavelength in meters.
See Also:
use_cboe

cboe_amplitude

public double cboe_amplitude()

cboe_amplitude

public void cboe_amplitude(double cboe_amplitude)

shoe_amplitude

public double shoe_amplitude()

shoe_amplitude

public void shoe_amplitude(double shoe_amplitude)

hs_parameter

public double hs_parameter()

hs_parameter

public void hs_parameter(double hs_parameter)

particle_scattering_area

public double particle_scattering_area()

particle_scattering_area

public void particle_scattering_area(double particle_scattering_area)

particle_scattering_efficiency

public double particle_scattering_efficiency()

particle_scattering_efficiency

public void particle_scattering_efficiency(double particle_scattering_efficiency)

particle_number_density

public double particle_number_density()

particle_number_density

public void particle_number_density(double particle_number_density)

mean_cos_scattering_angle

public double mean_cos_scattering_angle()

mean_cos_scattering_angle

public void mean_cos_scattering_angle(double mean_cos_scattering_angle)

P_function

public double P_function()
Gets the value of "big-P."

Returns:
the value of "big-P."

transport_mfp

public double transport_mfp()
Computes the transport mean free path in meters for this set of Hapke parameters. This value is the result of equation 35 in Hapke, 2002.

This function uses the following Hapke parameters:

Returns:
the transport mean free path in meters.
See Also:
"Hapke, B. 2002. Bidirectional Reflectance Spectroscopy. 5. The Coherent Backscatter Opposition Effect and Anisotropic Scattering. Icarus 157, 523-534."

toString

public String toString()
Gets a brief description of this set of Hapke parameters.

Overrides:
toString in class Object
Returns:
a descriptive string.

main

public static void main(String[] args)
Performs simple tests of the Hapke parameters methods.

These tests are performed using the default set of parameters.

Compare the results of these tests with the equivalent calls of the IDL HIPHOP.

Usage

Hapke_Parameters

Command-line arguments are ignored.

Parameters:
args - command-line arguments, ignored.

HiRISE

Copyright (C) Arizona Board of Regents on behalf of the Planetary Image Research Laboratory, Lunar and Planetary Laboratory at the University of Arizona