Skip to content

v0.4.0

Choose a tag to compare

@VANvonZHANG VANvonZHANG released this 18 May 04:11
· 106 commits to main since this release

Added

  • AerosolOpticsData dataclass — generic multi-wavelength optical property container with auto-computed Legendre moments (optics_export.py)
  • from_optical_results() factory function builds AerosolOpticsData from list[OpticalResult]
  • AerosolOpticsData.to_netcdf() / .from_netcdf() for NetCDF persistence
  • Visualization functions: plot_spectral_properties, plot_phase_function, plot_optical_comparison, plot_phase_function_comparison, plot_legendre_convergence, plot_legendre_moments_spectrum, generate_comparison_summary
  • Smoke tests for all new visualization functions (test_optics_vis_new.py)
  • Unit tests for AerosolOpticsData construction, Legendre auto-computation, and NetCDF round-trip (test_optics_export.py)

Changed

  • Replaced pyradtran_export.py with format-agnostic optics_export.py — aerosol3d no longer produces pyRadtran-specific output
  • Simplified compute_optics.py example (-204 lines) — uses from_optical_results() and library visualization
  • Simplified compare_results.py example (-192 lines) — uses library comparison functions
  • run_radiative_transfer.py now loads AerosolOpticsData.from_netcdf() and passes Legendre moments to pyRadtran

Fixed

  • Legendre moments from phase functions are now auto-computed and passed through the RT pipeline (previously fell back to Henyey-Greenstein approximation)
  • Convert k_l → beta_l (divide by 2l+1) before passing to DISORT PMOM — DISORT expects normalized moments, not raw coefficients
  • plot_phase_function_comparison handles datasets with different theta grid sizes via interpolation

Documentation

  • Updated README.md features, API overview, quick start, and examples table to reflect Mie solver, AerosolOpticsData, and optical visualization
  • Added optics_export, visualization, legendre modules to Sphinx API reference
  • Added optical data export, Legendre moments, and visualization sections to optical-computation user guide
  • Added step 4 (export and visualize) to quickstart guide
  • Added DDA-Mie-pyRadtran pipeline tutorial and coated fractal aggregate tutorial
  • Added optional dependencies section (matplotlib, xarray, netCDF4, pyRadtran) to installation guide
  • Expanded mie-vs-dda-validation tutorial with detailed explanations
  • Added documentation contribution guidelines to contributing guide
  • Synced CONTRIBUTING.md with Sphinx version

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.