Re: [mmc-users] Redbird - Conversion of fluence into diffuse reflectance

3 views
Skip to first unread message

Qianqian Fang

unread,
Oct 22, 2025, 12:54:20 PM (9 days ago) Oct 22
to mmc-...@googlegroups.com, Charly Caredda, mcx-...@googlegroups.com

hi Charly,

as you might have noticed, I updated Redbird to 0.5.1 as part of the MCX suite v2025.10, with added examples/demo scripts explaining the basics of redbird forward modeling, especially these two new demos

https://github.com/fangq/redbird/blob/master/example/demo_redbird_forward_heterogeneous.m

https://github.com/fangq/redbird/blob/master/example/demo_redbird_forward_layered.m

in one of those comments,  a difference between redbird and MCX/MMC that I want to highlight is the detector reading (detphi) in redbird is fluence (interior to the domain), while in mmc/mcx, those were more directly derived from detected photons (escaped light) as "diffuse reflectance" (dref). the connection between the two was described in the paper you referenced.

As a matter of fact, my student previously wrote a validation script in mcxlab to test the Eq 7 in [1], see

https://github.com/fangq/mcx/blob/master/mcxlab/examples/demo_diffuse_reflectance_validation.m


However, in most DOT literature, the measurements used for data analysis were mostly fluence, instead of dref. This is because in the diffusion regime, dref and surface fluence differs just by a scaling factor - you can see our discussion on this scaling factor in our "replay" paper, Eqs. 14-15

https://opg.optica.org/boe/viewmedia.cfm?uri=boe-9-10-4588&html=true

at the time, we mostly approached this scaling factor empirically, but now with Eq 7 from [1], it should be more clear:

as you can see, the flux term in Eq 7 can be converted to fluence via the Fix's law, as described in Redbird's manual Eq 2.11, as the used boundary condition

https://github.com/fangq/redbird/blob/master/doc/Redbird_manual.pdf

replacing Eq 2.11 into Eq. 7 in [1], the entire angular integration becomes a single scalar.


Because of this scaling relationship, while most instruments (fibers, cameras) actually measure dref, but after data calibration (scaling the raw sensor reading with arbitrary units), the calibrated data can be readily converted to surface fluence, thus matching easily with the forward solutions from most diffusion solvers.


in short, yes, there is a relationship between dref and surface fluence, but it is a simple linear scaling relationship (in diffusion regime), and in reality, they are taken care of/removed as part of the data calibration. As a result, it is safe (and has been the general practices in DOT) to directly fit the fluence-based measurement instead of doing the unnecessary parallel conversions to dref (for both measurement and the forward model).

Using fluence for MC based DOT/NIRS is also highly advantageous because fluence data (interior) has significantly lower noise compared to dref data (few escaped photons). In the newly released Redbird 0.5.1, rbrunforward() accepts mmclab's cfg as input, and can produce detphi as interpolated fluence, which is considered better than using detected photon data for inverse problem.


let me know if this makes sense.


Qianqian


On 10/22/25 11:03, Charly Caredda wrote:
Dear prof Fang, 

I am using Redbird to study light propagation in tissues. I am attempting to convert the internal fluence values into external diffuse reflectance using Eq. (7) from Ref. [1]. As I am not very familiar with radiometric analysis, I would appreciate your insights on whether my reasoning is correct.


In this equation, F is the fluence, R_Fres is the Fresnel reflection coefficient for a photon incident at an angle θ relative to the surface normal, D = 1 / [ 3 (µ_a + µ_s')], and dΩ is the solid angle element.

If I understand correctly, the diffuse reflectance corresponds to the integral of the radiance (fluence and flux contributions) over a hemisphere. The flux term is given by the derivative of the fluence along the z-axis. Since the solid angle element is dΩ = sin(θ)dθdφ, I assume the equation can be rewritten as:


Does it make sense?

Thank you so much for your help :)


Best,

Charly

[1] Alwin Kienle and Michael S. Patterson, "Improved solutions of the steady-state and the time-resolved diffusion equations for reflectance from a semi-infinite turbid medium," J. Opt. Soc. Am. A 14, 246-254 (1997)


--
You received this message because you are subscribed to the Google Groups "mmc-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mmc-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/mmc-users/487050f7-e12a-45b9-8138-f049dd32788cn%40googlegroups.com.

Charly CAREDDA

unread,
Oct 22, 2025, 5:06:01 PM (9 days ago) Oct 22
to Qianqian Fang, mmc-...@googlegroups.com, mcx-...@googlegroups.com
Dear Qianqian,

This makes sense for me, thank you for the clear answer.
If I summarize my thoughts, the linear scaling relationship between dref and surface fluence can be estimated in two ways:

1)  Wiith Eq. 8 in Ref [1] if the refractive index is 1.4, otherwise, Eq. 7 should be used.
2) Fluence can be scaled to measurements with a scaling coefficient obtained from a calibration procedure (Eq. 2.39 in Redbird manual https://github.com/fangq/redbird/blob/master/doc/Redbird_manual.pdf)

Best regards,

[1] Alwin Kienle and Michael S. Patterson, "Improved solutions of the steady-state and the time-resolved diffusion equations for reflectance from a semi-infinite turbid medium," J. Opt. Soc. Am. A 14, 246-254 (1997)


Qianqian Fang

unread,
Oct 22, 2025, 5:56:11 PM (9 days ago) Oct 22
to Charly CAREDDA, mmc-...@googlegroups.com, mcx-...@googlegroups.com

just one more clarification regarding your reply below: 

there is really just one formula connecting fluence to dref in the diffusion region, i.e. Eq 7 in [1]. 

Eq 8 in [1] just combine the Fix's law (Eq. 4 in [1], which is the same, I believe, as Eq 2.39 in redbird's manual, both originated from Haskell et al 1994 paper).


by the way, flux and dref are not the same - flux is a vector, defined on a surface patch, only denotes the normal-direction component of the dref.

dref, on the other hand, integrates all escaping photons, regardless their existing angles, and is a scalar.

Reply all
Reply to author
Forward
0 new messages