BRDF of a material with isotropic phase function

From PlanarRad
Revision as of 15:12, 24 February 2014 by John (talk | contribs)
Jump to navigation Jump to search

This example shows how to model the bidirectional reflectance distribution function (BRDF) of a material for which the extinction and absorption co-efficients are known and we can assume the phase function is isotropic. We are interested in slab of this material that is sufficiently thick that whatever is underneath it has negligible effect on its reflectance, i.e. you can't see through it. In fact we can will work out how thick that needs to be in the analysis.

The example uses the Windows version of PlanarRad. It will involve working with a few text files for which you can use Wordpad. In general Notepad does not work because (I think) it doesn't handle the Unix-style line endings. However I strongly recommend using Notepad++ for working with text files under Windows, and that is what the screenshots here are taken from.


Step 1 : Set up single band run

We will be working with a single wavelength so we need to set up a small band specification file to specify this. Create a text file called 'bands1.bsf', or alternatively edit 'bands17.bsf' that can be found in the 'planarrad_test04' directory. Make it look like this:

Error creating thumbnail: Unable to save thumbnail to destination


A few notes of explanation:

  • bs_name - this is what will appear in PlanarRad to refer to this band specification.
  • bs_code - this will be appended onto the name of some automatically generated files.
  • band_count - the number of bands.
  • band_widths_data - a comma separated list of the widths of the bands in nanometeres.
  • band_centres_data - a comma separated list of the centre wavelengths if the bands in nanometres.
  • preferred_default - if 'yes' the PlanarRad GUI will offer this band specification as the default.

Note that although we have specified the band as centred at 500 nm and being 10 nm wide, this is irrelevant in what follows because we will be manually setting all the optical properties for a single wavelength run. Nowhere in the model will '500 nm' actually be used in any calculation, and so this same procedure and the same 'bands1.bsf' file can be used for runs at any wavelength.

Now create new folder called 'testslab' (or whatever) and save 'bands1.bsf' in it.

Error creating thumbnail: Unable to save thumbnail to destination


Now run PlanarRad and from the menus choose 'File > Change current working directory' and select the 'testslab' directory that contains the band specification file. You should see that 'Bands:' under the 'Model' tab changes to '1 Band (500 nm)'. I.e. it should look like this:

Error creating thumbnail: Unable to save thumbnail to destination

It is sensible at this point to give the run a name, as in 'run1' here. When the run is processed folder called 'run1' will be saved in the 'testslab' directory and any outputs will be found there.


Step 2 : Be aware of the directional discretisation in use

The selected entry of 'HL Standard' next to 'Directional Structure' of means that PlanarRad will decompose the sphere of all directions into segments or 'quads' in the same way that HydroLight does. This means the upward and downward hemispheres are split into 9 by 24 segments of constant zenith and azimuth angle, plus and end-cap, as below.

Hl standard.png    Vec3d from angles.png

The right hand side indicates how the zenith angle, θ, and azimuth, Φ, specifies a direction. Every direction therefore lies within a corresponding segment. PlanarRad, like Hydrolight, works with the 'quad averaged radiance' which means when we talk about the radiance in a particular direction we are talking about the radiance averaged over one of these segments. For evaluating BRDFs we will later deal with a table of numbers, which represent the radiance in each of these segments in the upward hemisphere leaving the surface of the slab.

The zenith angles of the lines that seperate the quads are at the following degrees:

0, 5, 15, 25, 35, 45, 55, 65, 75, 85, 90, 95, 105, 115, 125, 135, 145, 155, 165, 175, 180

In other words, the centres of the quads are at these θ values:

0, 10, 20, 30, 40, 50, 60, 70, 80, 87.5, 92.5, 100, 110, 120, 130, 140, 150, 160, 170, 180

So when we talk about the average radiance in particular segment we can consider it as an approximation of the radiance at these particular θ angles.

Azimuthally the segments are arranged such that zero Φ corresponds the centre of a segment. The segment centre azimuth angles are:

0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345

The segment at (θ, Φ) of (0, 0) or (180, 0) is the end-cap, so the total number of segments in a hemisphere is a table of 9 x 24 plus the end-cap, i.e. 217 values. Over the sphere of all directions is 18 x 24 plus 2 end-caps, i.e. 432 segments in the whole sphere.

The sun has a much smaller solid angle than one of these segments, so some precision is lost in this directional treatment, however typically the effect is so small it's not worth worring about. It is comparitively easy to increase the directional resolution by adding an appropriate directional structure text file to the working directory, just as we did with the band specification file. This will be described elsewhere.

Note that in hydrological optics the direction z is depth into the water and increases downwards. Therefore in general z points downwards through the slab of media and is zero at the air-media interface. The figure above is probably upside-down compared to the situation being modelled.


Step 3 : Outline of basic procedure

The most straightforward use of PlanarRad is to model the directional radiance leaving the top of the slab of media for given incident radiance distribution. That is, PlanarRad doesn't output the full BRDF directly but instead outputs the reflected light from a specific incident light field. Since the downward incident radiance in one wavelength band is characterised by a table of 217 values (the downward hemisphere), and the upward 'exitant' radiance is similarly tabulated by 217 entries (the upward hemisphere), then the full BRDF would be a 217 x 217 table of numbers, that describe how the radiance incident in each solid-angle segment would distribute to all 217 exitant solid angle segments.

One way to use PlanarRad to fill this 217 x 217 table of numbers is therefore to run it 217 times, each time all the incident light being confined to just one solid-angle segment. The exitant radiance is then the relative BRDF response for that incident direction. However there is no need to do all 217 runs, because the system is rotationally invariant, that is if the input radiance is at azimuth 30 degrees, then the output will just be the same as for azimuth zero degrees but rotated by 30 degrees. Therefore with the 'HL Standard' directional distribution the BRDF can be fully characterised with just 10 runs for zenith angles (θ) of 0, 10, 20, 30, 40, 50, 60, 70, 80, 87.5 degrees, and azimuth (Φ) fixed at zero degrees.

The following steps describe how to perform the modelling for one incident direction.

We will work downwards through the setting pages starting at 'Input Radiance Distribution'.


Step 4 : Input Radiance Distribution

Let's say we are interested in the directional reflectance arising from light incident at zenith (θ) 30 degrees and azimuth (Φ) 0 degrees. We need to set up the input radiance so that it is zero in all segments except the one centred at θ = 30, Φ = 0. This can be done with the 'HL Idealized' sky model by setting the 'Diffuse Irradiance Ratio' to zero, as below:

Error creating thumbnail: Unable to save thumbnail to destination

In this context the 'Cosine parameter' has no effect and can be left as one.


Step 5 : Interface Properties