ISKBrdf

class ISKBrdf(name:str)

The ISKBrdf interface provides implementations of **B**idirectional **R**eflectance **D**istribution **F**unction. The b.d.r.f. is currently implemented in a scalar form and for the moment the polarized version should be assumed to be unpolarised which is reasonable for the surface reflectances implemented to date (2016-12-20) but would not be true for special, surface reflectances such as sea-glint.

An example is given below:

import sasktranif.sasktranif as skif

sun  = skif.ISKBrdf('Lambertian')

:param str name:
The name of the BRDF object to be created. The name must correspond to
an installed sasktranif BRDF.
IsValidObject() → ok

Used to identify if the underlying C++ ISKBRDF is properly created. The function is primarily intended for internal usage:

ok = brdfobject.IsValidObject();
Parameters:ok (boolean) – The return value, true if the C++ object is properly constructed otehrwise false.
Returns:returns true if successful
BRDF(wavelen_nm, pt, MU_in, MU_out, COSDPHI) → ok, brdf

Returns the (scalar) bidirectional reflectance distribution function at given wavelength and location for a given incoming and outgoing direction. solar irradiance at the top of the atmosphere at the current solar distance for the given wavelengths:

ok,brdf = brdfobject.BRDF( wavelength, pt, cosincoming, cosoutgoing, cosazimuth)
Parameters:
  • wavelen_nm (float) – The wavelength in nanonmeters at which to calculate the BRDF.
  • location (GEODETIC_INSTANT) – The location and instant in time for which the BRDF is required. The GEODETIC_INSTANT is a 4 element array [latitude, longitude, height_meters, mjd]. Latitude and longitude are geodetic coordinates in degrees, height_meters is height above sea-level in meters and mjd is Modified Julian Date expressed in days.
  • MU_in (float) – The cosine of the zenith angle of the incoming ray. Note we consider the angle between the local vertical and the outbound direction of the ray, i.e. this will be a value between 0 and 1 for regular surfaces.
  • MU_out (float) – The cosine of the zenith angle of the scattered ray. Note we consider the angle between the local vertical and the outbound direction of the ray, i.e. this will be a value between 0 and 1 for regular surfaces.
  • COSDPHI (float) – The cosine of the azimuthal angle between the incoming and outgoing ray. Note that the azimuthal angle is between the incoming ray pointing into the surface and the outgoing ray pointing out of the surface. Forward scatter occurs at an azimuth of 0 degrees (cosine = 1) and backscatter occurs at an azimuth of 180 degrees (cosine = -1). COSDPHI will have a value between -1 and 1.
  • ok (boolean) – returns true if successful
Returns:

the value of the brdf for this configuration.

Return type:

float

SetProperty(propertyname, value) → ok

Set custom properties of the solar spectrum object. The user must refer to documentation about the specific solar spectrum object to see what properties it supports:

ok = sun.SetProperty(propertyname, value)
Parameters:
  • propertyname (string) – The name of the custom property to be modified.
  • value (double/array/object) – The new value of the property. The value must be a scalar double, array of doubles or a SasktranIF object
  • ok (boolean) – returns true if successful
Returns:

returns true if successful