iad
Forward and Inverse Radiative Transport using the Adding-Doubling method
Science Score: 77.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
3 of 5 committers (60.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.6%) to scientific vocabulary
Repository
Forward and Inverse Radiative Transport using the Adding-Doubling method
Basic Info
Statistics
- Stars: 23
- Watchers: 3
- Forks: 9
- Open Issues: 3
- Releases: 24
Metadata Files
README.md
Inverse Adding-Doubling
by Scott Prahl
April 2024
Overview
Inverse Adding-Doubling is a command-line program that determines the intrinsic optical properties of a flat scattering and absoption sample using measurements of the total reflection and transmission. Basically, optical properties are repeatedly guessed until the calculated reflection and transmission match the measured values. The program accounts for realistic measurement constraints associated with integrating sphere effects.
This package provides two executables ad and iad. The first does a forward adding-doubling calculation (i.e., given the albedo, optical thickness, and anisotropy it returns the total reflection and transmission). The second does the reverse.
This program Prahl et al., Applied Optics, 32, 559-568, 1993 uses the Adding-Doubling method of van de Hulst Multiple Light Scattering, Academic Press, 1978. I extended the Adding-Doubling method to account for Fresnel reflection at boundaries as well as corrections that must accompany integrating sphere experiments.
Finally, integrating spheres do not always collect all the light that exits from the front or back surface of a sample. Since this is impossible to account for the 1D adding-doubling technique, a Monte Carlo simulation is embedded in the inverse calculation.
Details about using the program are documented in the accompanying manual.
Installation
Obtaining executables from source entails unzipping and running make (See
INSTALL.md for more details.) Windows executables are available
in the iad-win-3-16-2.zip releases.
Usage
Inverting a single measurement on the command line
To find the optical properties of a 1mm thick sample with 40% total reflectance and 10% total transmission
bash
./iad -r 0.4 -t 0.1 -d 1
which will generate output that ends with
```
Measured MR Measured MT Estimated Estimated Estimated
wave MR fit MT fit mua mus' g
[nm] [---] [---] [---] [---] 1/mm 1/mm [---]
1 0.4000 0.4000 0.1000 0.0999 0.4673 3.9317 0.0000 *
```
The process can be reversed by doing a forward calculation with the -z option. Here -A 0.4673 sets the absorption coefficient, and -j 3.9317 sets the reduced scattering coefficient). Specifying the thickness -d 1 is necessary because the default
thickness is infinite.
bash
./iad -z -A 0.4673 -j 3.9317 -d 1
produces output that ends with
```
Measured MR Measured MT Estimated Estimated Estimated
wave MR fit MT fit mua mus' g
[nm] [---] [---] [---] [---] 1/mm 1/mm [---]
0 0.0000 0.4000 0.0000 0.0999 0.4673 3.9317 0.0000 *
```
For Windows, there are executable binaries
ad.exeandiad.execompiled using MinGW-w64. These apps can be run using theCommand Promptapplicationcmd.exe. These binaries are packaged in the separateiad-windistributions on github or omlc.
Inverting spectral data
Often one wants the optical properties over an entire spectrum. A good example was recently provide by @anishabahl. This measurement was made with a spectrophotometer equipped with a dual beam integrating sphere. The input data looks includes the total reflection and transmission as well a header that describes the experiment. The reflection and transmission data look like this
The input file is processed with
bash
iad -X -i 8 -g 0.9 phantom-with-no-slides.rxt
The option i 8 indicates that light is incident on the sample at an angle of 8°, -X indicates that a sphere with dual beams was used, and -g 0.9 indicates the default
scattering anisotropy. Note that in the PDMS file, the refractive index of the
sample changes with each data point
This command will produce an output file that when plotted looks like
which matches the intrinsic absorption of Wacker PDMS found in Cai's 2008 Disseration
This is an excellent set of measurements because there is almost no influence of the absorption coefficient on the scattering coefficient.
Jupyter support
As of March 2024, there is now a python command-line script iadplus that will analyze an .rxt input file and graph the results. Everything is assembled into a Jupyter notebook for convenience. You may need to install some python modules to be able to use iadplus
iadplus -options '-i 8 -X ' file.rxt
will run iad and produce file-notebook/file.ipynb along with a bunch of .svg files used in the Jupyter notebook file.ipynb
Author
Scott Prahl
http://omlc.org/~prahl
Owner
- Name: Scott Prahl
- Login: scottprahl
- Kind: user
- Location: Portland, Oregon
- Company: Oregon Institute of Technology
- Website: http://omlc.org/~prahl
- Repositories: 11
- Profile: https://github.com/scottprahl
Citation (CITATION.cff)
cff-version: 1.2.0
title: 'iad: C code for Forward and Inverse Radiative Transport using the Adding-Doubling method'
message: 'Code is citable as below. Article is Prahl et al., Applied Optics, 32, 559-568, 1993.'
authors:
- given-names: Scott
family-names: Prahl
orcid: 'https://orcid.org/0000-0003-1468-6851'
doi: 10.5281/zenodo.102147394
url: 'https://doi.org/10.5281/zenodo.102147394'
GitHub Events
Total
- Issues event: 2
- Watch event: 3
- Delete event: 1
- Push event: 3
- Fork event: 1
- Create event: 1
Last Year
- Issues event: 2
- Watch event: 3
- Delete event: 1
- Push event: 3
- Fork event: 1
- Create event: 1
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Scott Prahl | s****t@p****m | 505 |
| Work Prahl | p****l@b****u | 53 |
| Tom Vercauteren | t****n@k****k | 18 |
| Scott Prahl | p****s@o****u | 10 |
| Andreas Scherer | a****b@f****e | 6 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 7 months ago
All Time
- Total issues: 24
- Total pull requests: 3
- Average time to close issues: 10 months
- Average time to close pull requests: 3 days
- Total issue authors: 13
- Total pull request authors: 2
- Average comments per issue: 2.5
- Average comments per pull request: 1.33
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 5
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 3
- Pull request authors: 0
- Average comments per issue: 2.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Yijing-KCL (2)
- alexpattyn (2)
- shanghongY (1)
- eduardosprp (1)
- fredchen00 (1)
- anishabahl (1)
- Grieverheart (1)
- xiaoxuinchina (1)
- YiyuanLinXX (1)
- Jaasim99 (1)
- RashidLadj (1)
- fengzefeng (1)
- jgroehl (1)
Pull Request Authors
- tvercaut (1)
- ascherer (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v3 composite