Skip to content

Inquiry about strong fluctuations in limb radiance profiles from Smart-G Monte Carlo simulations #4

@20713

Description

@20713

Dear Mustapha,
I am currently using the Smart-G radiative transfer model to simulate limb-scattered radiance for ozone retrieval. While the aerosol optical inputs appear physically reasonable, I am observing unexpectedly strong fluctuations (noise-like oscillations) in the simulated limb radiance profiles(See figure below).

Image

Below is a summary of my current configuration and key diagnostic values:

  • Vertical grid: 100 layers, 1 km spacing
  • Aerosol extinction cross sections (per particle):
    • [3.67441e-09 3.67464e-09 3.68171e-09 3.91627e-09 4.05730e-09 4.32481e-09]cm²
  • Integrated aerosol optical depth (per wavelength):
    • [0.37159 0.37161 0.37233 0.39605 0.41031 0.43736]
  • Layer-by-layer dtau (per wavelength):
    • ·min = [0, 0, 0, 0, 0, 0]
    • ·max = [0.14389 0.1439 0.14417 0.15336 0.15888 0.16936]
  • Photon number: default (1e6 per sensor)
  • Aerosol phase matrix: from full Mie calculation
  • Even with these reasonable aerosol parameters, the resulting limb radiance profiles show large oscillations with altitude, which are much stronger than expected. These do not resemble physical atmospheric variability, and appear to be dominated by Monte Carlo statistical noise.
    My questions:
  1. Is such strong fluctuation in limb radiance typical when single-layer dtau reaches ~0.15–0.18, especially for limb geometry?

  2. Does Smart-G require significantly more photons (e.g., 5×–10× higher than 1e6) to reduce noise in limb-viewing simulations with non-negligible aerosol loading?

  3. Are there recommended settings for:

  • the photon count (nph),
  • angular resolution (mu sampling),
  • or vertical smoothing of aerosol profiles,
    to improve numerical stability of limb radiance?
  1. Is there a known issue or best practice regarding the use of full Mie aerosol scattering matrices in Smart-G?

If needed, I can provide my codes or sample outputs for inspection.

Thank you very much for your help, and for providing such a powerful radiative transfer tool.
Best regards,
Bin Hou

The main portion of the code is as follows:

# ---- Run Monte Carlo RTM with SMART-G ----

    # Limb geometry: one Sensor per tangent height (scheme-1)
    HTOA = 120 #714# km
    RTER = 6371.0 # km

    def zt2thv(zt, RTER=RTER, HTOA=HTOA):
        return np.degrees(np.arcsin((RTER + zt) / (RTER + HTOA)))

    ZT = 0.5 * (z_grid[:-1] + z_grid[1:])

    sensors = [
        Sensor(
            POSX=0.0, POSY=0.0, POSZ=RTER + HTOA,
            THDEG=180.0 - zt2thv(zt),
            PHDEG=0.0,
            LOC='ATMOS', FOV=0.0, TYPE=0
        )
        for zt in ZT
    ]
   # print(180.0 - zt2thv(ZT))

    surface = LambSurface(ALB=Albedo_cst(alb))

    le = dict(
    th_deg=[sza_deg],
    phi_deg=[saa_deg],
)

    S = Smartg(back=True, pp=False, double=True)

    NPHOT_PER_SENSOR = 1e6
    NB = int(NPHOT_PER_SENSOR * len(sensors))  

    rt = S.run(
        wl=wav_nm,
        surf=surface,
        le=le,
        atm=atm,
        NBPHOTONS=NB,
        refraction=True,
        sensor=sensors,
        reflectance=False,  
        #SEED=-1,
        FFS=True,
        NF=1e4,  #number_of_inverse_phase_function_discretisations
        DEPO = 0.0279 #depolarization_factor 
    )

More samples:
[INFO] Sample 31/50: SZA=50.0°, SAA=80.0°, ALB=1.00, IRANA=5081, REF=0.181μm, SIG=1.629
[CHK] AEROSOL_ext_cross_sections : [1.26161e-09 1.27696e-09 1.32029e-09 1.48749e-09 1.52678e-09 1.53276e-09]
sum dtau_aer: [0.13895 0.14064 0.14542 0.16383 0.16816 0.16882]
Per-wavelength dtau_aer min: [0. 0. 0. 0. 0. 0.]
Per-wavelength dtau_aer max: [0.05464 0.05531 0.05718 0.06442 0.06613 0.06639]

Image

[INFO] Sample 45/50: SZA=15.0°, SAA=20.0°, ALB=0.10, IRANA=18662, REF=0.254μm, SIG=1.535
[CHK] AEROSOL_ext_cross_sections : [2.73014e-09 2.73387e-09 2.80005e-09 3.05651e-09 3.20762e-09 3.38168e-09]
sum dtau_aer: [0.41108 0.41164 0.42161 0.46022 0.48298 0.50918]
Per-wavelength dtau_aer min: [0. 0. 0. 0. 0. 0.]
Per-wavelength dtau_aer max: [0.14637 0.14657 0.15012 0.16387 0.17197 0.1813 ]

Image

[INFO] Sample 50/50: SZA=30.0°, SAA=160.0°, ALB=0.40, IRANA=21052, REF=0.092μm, SIG=1.459
[CHK] AEROSOL_ext_cross_sections : [5.48855e-10 5.57321e-10 5.73128e-10 5.16408e-10 4.60935e-10 4.03870e-10]
sum dtau_aer: [0.15458 0.15696 0.16141 0.14544 0.12981 0.11374]
Per-wavelength dtau_aer min: [0. 0. 0. 0. 0. 0.]
Per-wavelength dtau_aer max: [0.05998 0.06091 0.06263 0.05643 0.05037 0.04414]

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions