https://github.com/turtlesoupy/abm-u-and-abm-b-cpp
Scientific model for simulating light transport in unifacial/bifacial plant leaves (C++ version)
https://github.com/turtlesoupy/abm-u-and-abm-b-cpp
Last synced: about 1 year ago
JSON representation
Scientific model for simulating light transport in unifacial/bifacial plant leaves (C++ version)
- Host: GitHub
- URL: https://github.com/turtlesoupy/abm-u-and-abm-b-cpp
- Owner: turtlesoupy
- License: other
- Created: 2010-12-13T02:22:46.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2011-01-30T22:34:07.000Z (over 15 years ago)
- Last Synced: 2025-04-04T11:47:19.783Z (over 1 year ago)
- Language: C++
- Homepage: http://www.npsg.uwaterloo.ca/models/ABMU.php
- Size: 129 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
ABM-B and ABM-U (C++ version)
This is a reference implementation of the ABM-B and ABM-U models described in
http://www.npsg.uwaterloo.ca/resources/docs/rse2006.pdf, with modifications
described in http://www.npsg.uwaterloo.ca/resources/docs/ieee07-8.pdf
For detailed information, visit the online pages for:
- ABM-U: http://www.npsg.uwaterloo.ca/models/ABMU.php
- ABM-B: http://www.npsg.uwaterloo.ca/models/ABMB.php
The package is licensed under a BSD license, described in LICENSE.
This was released by the Natural Phenomenon Simulation Group at University of
Waterloo in Waterloo, Ontario, Canada. Please visit http://www.npsg.uwaterloo.ca
for more information.
Usage:
- Run "make abmu" to make an abmu executible. Run "make abmb" to
make an abmb executible. Afterwards,
run "./abmb samples/lopex_0219-0220.json output.csv"
or "./abmu samples/lopex_0141-0142.json output.csv". You can specify more
detailed options too, just run "./abmu" to see them all.
Command line flags:
- -n : Specifies the number of samples to run the monte carlo simulation.
We recommend 10^5 to get asymptotic convergence
- -a : Azimuthal angle in degrees to fire rays from.
- -p : Polar angle in degrees to fire rays from. Values from 0 to 90
correspond to the abaxial surface, while values from 90 to 180
correspond to the adaxial surface.
- -s : Wavelength step in nm. Output will occur with every wavelengths
- -w : Wavelength start in nm. Output will start with this wavelength.
- -e : Wavelength endin nm. Output will end with this wavelength.
- -d : Data directory. The data is outlined in the Code Organization section
below.
- -t : Number of threads. Rule of thumb is double the number of parallel processing
units in your computer.
- -q: Disable sieve and detour effects. This is an in-vivo Vs. in-vitro modelling issue that is
outlined in the paper here: http://www.npsg.uwaterloo.ca/resources/docs/ieee07-8.pdf
Requirements:
- The yajl JSON parsing library headers: http://lloyd.github.com/yajl/
(available in Ubuntu under libyajl-dev)
- pthreads
Code Organization:
- 'src/': This folder contains all the code files necessary for ABM-U/ABM-B to run.
- 'include/': This folder contains all the header files necessary for ABM-U/ABM-B to run.
- 'data/': This folder contains the data files (e.g., refractive indices) that are needed
to run ABM-B or ABM-U. All are available here: http://www.npsg.uwaterloo.ca/data/leaves.php
- 'caro-PAS-400-2500.txt': Specific absorption coefficient of carotenoids (400-2500nm)
- 'cellulose400-2500.txt': Specific absorption coefficient of cellulose (400-2500nm)
- 'chloAB-DFA-400-2500.txt': Specific absorption coefficient of chlorophyll a+b (400-2500nm)
- 'sacwH400-2500.txt': Specific absorption coefficient of water (400-2500nm)
- 'raH400-2500.txt': Refractive index (real part) of antidermal cell wall (400-2500nm)
- 'rcH400-2500.txt': Refractive index (real part) of epicuticular wax (400-2500nm)
- 'rmH400-2500.txt': Refractive index (real part) of wet mesophyll wall (400-2500nm)
- 'samples/': This folder contains data definitions for samples used for testing of ABM-U/ABM-B.
All samples correspond to those mentioned in http://www.npsg.uwaterloo.ca/resources/docs/rse2006.pdf.
Samples are specified in a json-like format.
- 'lopex_0141_0142.json': Soybean (Soja hispida or Glycine max), a bifacial leaf for ABM-B
- 'lopex_0219_0220.json': Corn (Zea mays L.), a unifacial leaf for ABM-U
Notes:
- All concentrations are specified in g/cm^3, and lengths in meters.
- Data is piecewise-constant interpolated accross 400-2500nm, with data points
every five nanometers.