Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reflectance concepts #328

Open
5 tasks done
jianyangli opened this issue May 3, 2022 · 5 comments · May be fixed by #329
Open
5 tasks done

Reflectance concepts #328

jianyangli opened this issue May 3, 2022 · 5 comments · May be fixed by #329
Assignees

Comments

@jianyangli
Copy link
Contributor

jianyangli commented May 3, 2022

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 :

  1. I added a unit albedo_unit, which is essentially equivalent to u.dimensionless_unscaled, to specify albedo.
  2. Renamed the equivalency function reflectance to dimensionless_albedo.
  3. 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.
  4. Updated photometry module wherever uses the original reflectance 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.

@jianyangli jianyangli added the feature request request for new functionality label May 3, 2022
@jianyangli jianyangli changed the title feature request Reflectance concepts May 3, 2022
@jianyangli jianyangli linked a pull request May 3, 2022 that will close this issue
@jianyangli jianyangli self-assigned this May 3, 2022
@jianyangli
Copy link
Contributor Author

Related to #138

@jianyangli jianyangli linked a pull request May 4, 2022 that will close this issue
@mkelley
Copy link
Member

mkelley commented May 4, 2022

I'm not confident enough on my reflectance concepts to provide a quick answer, but perhaps we can find someone on our original proposal team to comment? I'll send an email today.

Regarding albedo, I think your top-level concept is too narrow (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). I would also like to see space for Bond albedo, and definitions that work for individual particles, like A = Qsca / Qext, where Qsca is scattering efficiency and Qext is extinction efficiency (e.g., Hanner et al. 1981), and bolometric albedo (Gehrz and Ney 1992, Eqs 5-8), which has been used in cometary astronomy. Not that you need to implement these already, but that I think sbpy should not exclude them at the start.

@jianyangli
Copy link
Contributor Author

jianyangli commented May 4, 2022

I totally agree about all the albedo quantities to be defined in sbpy. Because most albedo and reflectance quantities are dimensionless, plus the annoying and confusing pi factor in many places, it is not easy to distinguish them from each other in data analysis and modeling work, causing a lot of confusion. So it is my goal to eliminate or limit such confusion as much as possible in sbpy.photometry.

For example, when we convert a flux spectrum to a reflectance spectrum, which reflectance/albedo quantity do we want to convert? I think it probably makes the most sense to convert to something that can be directly related to geometric albedo and phase function, which are both disk-integrated quantities. Hence the above proposal, which only covers this one type of "albedo" (for lacking of a better terminology for it). Other disk-integrated quantities, such as Bond albedo, bolometric albedo, can all be directly related to the "albedo" that I proposed. For example, geometric albedo is the "albedo" at opposition, and Bond albedo is the "albedo" integrated over the full range of phase angle. The albedo of individual particles A = Qsca / Qext, which is in fact the single-scattering albedo, is also an integrated quantity, although for a single particle rather than a planetary body.

That's why I wanted to define a specific unit in sbpy to distinguish various albedo quantities from other dimensionless quantities. Then we can provide the conversion from these albedos to (disk-averaged) bidirectional reflectance, which is in unit of 1/sr, in sbpy, which relates the disk-integrated quantities to disk-resolved quantities, and takes care of the pi factor.

Of course, I'd like to hear feedbacks from others please!

@jianyangli
Copy link
Contributor Author

Input from W. Grundy:

Hi Mike,

Glad to see this project being picked up again. My only concern from a
quick read of the pasted text is that the "albedo" definition
implicitly assumes a spherical shape. Since we don't know asteroid
shapes a priori, even assuming we somehow know the "true" Hapke
parameters, integrating that model over a sphere won't give the same
result as for a different shape. That discrepancy generally gets worse
at higher phase. I wonder if you should call it "spherical albedo" or
something to make it clear that it assumes that shape? To some extent,
the macroscopic roughness parameter can account for non-sphericity, but
then you get a different set of Hapke parameters for the unresolved
body than you do when a spacecraft arrives and resolves the body, which
is kind of unsatisfactory too.

--- Will

On Wed, 2022-05-04 at 09:26 -0400, Michael S. P. Kelley wrote:
Hi Will,

We have finally restarted development on sbpy, our small-bodies
focused Python package, after a long delay in transferring the grant
to UMD. Jian-Yang is in the planning and early work stages for
implementing some new functionality based on surface scattering and
reflectance. Since you are a collaborator on the project, I am
reaching out for a review of the top-level summary, to be sure that
we are on the right track. Jian-Yang's proposal is at:
https://www.google.com/url?q=https://github.com/NASA-Planetary-Science/sbpy/issues/328&source=gmail-imap&ust=1652355299000000&usg=AOvVaw2-DztJa47pqqvoJmwGQZpJ and I have
copied the text below for your convenience. If you have a few
moments to think about it, let us know how it looks. Are the definitions
appropriate, will they avoid user confusion, etc?

Thanks,
Mike

@jianyangli
Copy link
Contributor Author

Reply to Grundy's input by @jianyangli

I think this is a general problem for disk-integrated photometry of irregularly shaped objects. For example, the definition of geometric albedo is, based on the Hapke’s book, “the ratio of the integrated brightness of a body at g=0 to the brightness of a perfect Lambert disk of the same radius and at the same distance as the body, but illuminated and observed perpendicularly.” By “same radius”, this definition implicitly assumes a spherical shape. We can probably replace “same radius” by “same cross-sectional area” so this definition can be adopted to an irregularly shaped body. But then the cross-sectional area of such an irregularly shaped body changes with rotation and observing direction. So I think some kind of assumptions will have to be made in the definition of integrated reflectance quantity. One can, and probably will have to, understand the “radius” as an “effective radius in terms of the integrated brightness as observed from a particular direction” for an irregularly shaped body. However, an additional complexity is, as you indicated, that the shading effects on an irregularly shaped body also affect its integrated brightness on top of the cross-sectional area, at least when the surface is not Lommel-Seeliger. So the “effective radius” does not necessarily result in the same cross-sectional area as the actual body. I will need to think how to better articulate this problem and how to deal with it conceptually, though.

“Spherical albedo” usually refers to directional-spherical albedo, or Bond albedo as we are familiar with. Sometimes also called global albedo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants