-
Notifications
You must be signed in to change notification settings - Fork 35
Description
This is a request for
- a new feature
- an enhancement to existing sbpy functionality
- somethings else: support of future development of reflectance related code
The requested changes will be implemented by
- me
- the sbpy developers
High-level concept
Given the profound confusion of all sorts of different reflectance and albedo used in the planetary science research communities, I intend to make the definitions and implementations of the frequently used reflectance concepts clear in sbpy.photometry
. The first step is to make a clear distinction between the reflectance of disk-resolved photometry (for a flat surface) and disk-integrated photometry (for integrated brightness of a planetary body) in sbpy.photometry
.
Explain the relevance to sbpy
sbpy.photometry
has implemented various disk-integrated phase function models, and a plan exists to implement disk-resolved photometric functions. It is essential to make the relevant concepts of physical quantities clear.
Proposal details
I'd like to call the reflectivity from a surface "reflectance", which is associated with three scattering angles: the incidence angle (i), emission angle (e), and phase angle (a). A specific reflectance, the bidirectional reflectance, r(i, e, a), has a unit of [1/sr], such that the scattered radiance in a particular direction, I(i, e, a), is expressed as the product of incident flux, F, and bidirectional reflectance: I(i, e, a) = F * r(i, e, a). There are various forms of reflectance quantities, such as radiance factor (RADF), reflectance factor (REFF), and bidirectional reflectance distribution function (BRDF), which will be implemented later in sbpy.photometry
.
On the other hand, I intend to call the reflectivity associated with the disk-integrated brightness of a planetary body "albedo". The definition is: albedo is the ratio of the disk-integrated brightness of a solar system planetary body at an arbitrary phase angle to that of a perfect Lambert disk of the same radius and at the same distance as the body, but illuminated and observed perpendicularly. As an integrated quantity, albedo only depends on phase angle. From this definition, the albedo of a planetary body at a particular phase angle, p(a), can be easily related to geometric albedo (pv) and disk-integrated phase function (Phi(a)) as: p(a) = pv * Phi(a). Albedo is dimensionless.
Based on the above definitions, albedo can be calculated by integrating reflectance over the illuminated and visible part on a planetary surface, and then ratioing the integral to the corresponding reflectance of a perfect Lambert disk.
Example (pseudo-)code
I've already started to implement the ideas. A WIP PR #329 is open to support the discussion of this issue. Here is a summary of what has been done in PR #329 :
- I added a unit
albedo_unit
, which is essentially equivalent tou.dimensionless_unscaled
, to specify albedo. - Renamed the equivalency function
reflectance
todimensionless_albedo
. - Added the conversion pair between albedo and cross-section for a given total brightness (flux or magnitude). This pair is redundant, but just for the sake of completeness.
- Updated
photometry
module wherever uses the originalreflectance
equivalencies to accommodate the new definition of albedo.
** For discussion**
I'd like to get input from the communities who work on planetary photometry. Do you think the above definitions make sense and intuitive when it comes to use the sbpy.photometry
code in actual observations and data reduction/analysis? Is it necessary to implement something like albedo_unit
? Any suggestions and/or ideas would be very welcome.