Reflectance

class sonic.Reflectance

This software is made available under the MIT license. See SONIC/LICENSE for details.

Method Summary
static calcAzimuth(method, var1, var2, var3)

Calculates the emission azimuth angles given either incidence, emission and normal unit vectors or incidence, emission, and phase angles.

Inputs:
  • method (string): Type of azimuth calculation inputs
    1. ‘unitVec’: Unit Vector Inputs

    2. ‘phaseAng’: Phase angle with incidence and

      emission angle inputs [rad]

  • var1/var2/var3:
    1. Incidence, emission and normal unit vectors

      (3xn) (double)

    2. Incidence, emission, phase angles (nxm)

      (double) [rad]

Outputs:
  • cosPhi (1xn) (double): cosine of the emission azimuth

    angles

Last revised: 09/30/2024 Last author: Priyal Soni

static calcCosAzimuth(method, var1, var2, var3)

Calculates cosine of the emission azimuth angles given either incidence, emission and normal unit vectors or incidence, emission, and phase angles.

Inputs:
  • method (string): Type of azimuth calculation inputs
    1. ‘unitVec’: Unit Vector Inputs

    2. ‘phaseAng’: Phase angle with incidence and

      emission angle inputs

  • var1/var2/var3:
    1. Incidence, emission and normal unit vectors

      (3xn) (double)

    2. Incidence, emission, phase angles (nxm)

      (double) [rad]

Outputs:
  • cosPhi (1xn) (double): cosine of the emission azimuth

    angles

Last revised: 09/30/2024 Last author: Priyal Soni

static calcCosIE(u_i, u_e, u_n)

Calculates cosine of the incidence and emission angles (measured from the normal vector) given the incidence, emission and normal unit vectors.

Inputs:
  • u_i (3xn) (double): incidence unit vectors

  • u_e (3xn) (double): emission unit vectors

  • u_n (3xn) (double): normal unit vectors

Outputs:
  • cosi (1xn) (double): cosine of incidence angles

  • cose (1xn) (double): cosine of emission angles

Last revised: 09/30/2024 Last author: Priyal Soni

static calcCosPhase(varargin)

Calculates cosine of the phase angles given either incidence, emission and azimuth angles or incidence and emission unit vectors

Inputs:
  • varargin:
    1. Incidence, emission and azimuth angles (nxm)

      (double) [rad]

    2. Incidence and emission unit vectors (3xn)

      (double)

Outputs:
  • cosg (1xn) (double): phase angles [rad]

Last revised: 09/30/2024 Last author: Priyal Soni

static calcIE(u_i, u_e, u_n)

Calculates incidence and emission angles (measured from the normal vector) given the incidence, emission and normal unit vectors.

Inputs:
  • u_i (3xn) (double): incidence unit vectors

  • u_e (3xn) (double): emission unit vectors

  • u_n (3xn) (double): normal unit vectors

Outputs:
  • i (1xn) (double): incidence angles [rad]

  • e (1xn) (double): emission angles [rad]

Last revised: 09/30/2024 Last author: Priyal Soni

static calcPhase(varargin)

Calculates the phase angles given either incidence, emission and azimuth angles or incidence and emission unit vectors

Inputs:
  • varargin:
    1. Incidence, emission and azimuth angles (nxm)

      (double) [rad]

    2. Incidence and emission unit vectors (3xn)

      (double)

Outputs:
  • g (1xn) (double): phase angles [rad]

Last revised: 09/30/2024 Last author: Priyal Soni

static checkInputs(inputType, var1, var2, varargin)

Validates all reflectance model inputs to ensure size compatibility and value

Inputs:
  • inputType (string):
    • “iep” for incidence/emission/phase angles

    • “iea” for incidence/emission/azimuth angles

    • “ien” for incidence/emission/normal vectors

      – Must be column vectors, (3xn)

  • var1

  • var2

  • varargin: REQUIRED for “ien” as var3

    OPTIONAL for “iea” and “iep” depending on the reflectance model

Outputs:
  • var1: same as input

  • var2: same as input

  • varargout: same as varargin

    will be output if varargin is used for var3

Last revised: 09/30/2024 Last author: Priyal Soni

static cosineArgCheck(x)

Checks x to ensure any value sufficiently close to +1 or -1 are set to +1 and -1 (respectively) to avoid complex evaluation in cos(x)

Inputs:
  • x (n,m) (double): matrix of values that will be

evaluated using cos(x)

Outputs:
  • x (n,m) (double): corrected matrix with any values

within sonic.Tolerances.CosArgCheck and greater than 1 are set to +1, and similar with -1.

Last revised: 09/30/2024 Last author: Priyal Soni

static mustBeDoubleOrPointsS2(a)

Input validation function for reflectance model inputs.

Inputs:
  • a: typically var1, var2, or var3 in a reflctance

    object refl() function.

Outputs:
  • N/A for input validation functions

Last revised: 09/30/2024 Last author: Priyal Soni