Aerosol Models ============== pyRadtran supports multiple aerosol model types through a unified interface. OPAC Presets ------------ Use predefined OPAC aerosol types:: from pyradtran import run_with_opac_preset, OpacPreset, OpacPresetName # Using convenience function result = run_with_opac_preset( preset="maritime_clean", sza=45.0, wl_min=400, wl_max=800, ) # Using Scene builder from pyradtran import Scene scene = Scene().set_aerosol( OpacPreset(preset=OpacPresetName.MARITIME_CLEAN) ) Available presets include ``MARITIME_CLEAN``, ``MARITIME_POLLUTED``, ``MARITIME_TROPICAL``, ``URBAN``, ``DESERT``, etc. Custom OPAC ----------- Mix individual OPAC species with custom concentrations:: from pyradtran import OpacCustom aerosol = OpacCustom( species={ "INSO": 1000.0, # Insoluble "WASO": 5000.0, # Water soluble "SSAM": 200.0, # Sea salt (accumulation) } ) scene = Scene().set_aerosol(aerosol) External Aerosol Files ---------------------- Use pre-computed aerosol optical properties from external files:: from pyradtran import ExternalAerosol, ExternalFile aerosol = ExternalAerosol( files=[ ExternalFile(path="aerosol_explicit.dat", type="explicit"), ] ) scene = Scene().set_aerosol(aerosol) Supported file types: ``"explicit"``, ``"gg"``, ``"ssa"``, ``"tau"``, ``"moments"``. Composite Aerosol with Mie Scattering ------------------------------------- For advanced users, pyRadtran supports composite aerosols computed via Mie scattering:: from pyradtran import CompositeAerosol, MieSpecies from pyradtran.models.aerosol_composite import ( SizeDistribution, RefractiveIndex, IntegrationConfig ) aerosol = CompositeAerosol( species=[ MieSpecies( name="dust", size_distribution=SizeDistribution.log_normal( r_median=0.5, # um sigma_g=2.0, ), refractive_index=RefractiveIndex.from_constant(n=1.53, k=0.008), density=2.6, # g/cm3 ), MieSpecies( name="soot", size_distribution=SizeDistribution.log_normal( r_median=0.05, sigma_g=1.8, ), refractive_index=RefractiveIndex.from_constant(n=1.75, k=0.44), density=1.8, ), ], integration=IntegrationConfig(n_legendre=32), ) scene = Scene().set_aerosol(aerosol) Aerosol Modification -------------------- Modify aerosol properties after setting:: scene = scene.set_aerosol_modify( quantity="tau", value=0.3, ) Available quantities: ``"tau"``, ``"ssa"``, ``"gg"``, ``"reff"``, etc.