Inferring dust properties radial profiles (Dust temperature, Dust surface density, maximum grain size) from sub-millimeter and millimeter dust continuum observations. Questions are welcome at: a.sierra@ucl.ac.uk
- Python 3
- Install the DSHARP opacity tools (See full DSHARP opacity documentation Here)
- Additional packages: numpy, scipy, emcee, corner
- Download the opacity files ricci_compact.npz, default_opacities_smooth.npz, available at the DSHARP opacity reposity Here
- Clone the main.py (main code), Utils.py (Useful functions), and properties_LkCa15.py (parameters file) in this repository and put them in the same directory as the opacity files.
- The radial profiles in two or more bands. A single ascii file with the following columns: Radius, Intensity1, Intensity2, ...., IntensityN, Error Intensity1, Error Intensity2, ... Error Intensity N. Make sure that the intensities are arranged from the highest frequency Intensity1, to the lowest frequency Intensity N. For example, you can use the intensity radial profiles for LkCa15 in Sierra et al. 2025, directly from the LkCa15_multiwave.txt file
ipython main.py properties_LkCa15.py- The code uses your radial intensity profiles from ALMA or VLA and the formal solution to the radiative transfer equation in Sierra & Lizano 2020 to fit the spectral energy distribution (SED) of your disk at each radius. The dust temperature, dust surface densiy, and maximum grain size radial profile are infered from the SED fit.
- The SED is initially independently fitted at each radius. This is called ''SED first round''.
- The SED is fitted again at each radius, using the median value of the best-fit values in the surrounding radius as a prior (within +/- rsmooth/2). This is called ''SED second round''.
- This procedure corrects for unrealistic best-fit values at individual radii, as shown in the Figure below. (The corrected final fit is that shown in the second row).
#Disk properties:
- 'outputdir': Output directory to save your results
- 'label': Name of disk
- 'distance': Distance to your disk in parsecs
- 'pslope': Slope of the particle size distribution (recommended values: 2.5 < p < 3.5)
- 'inc': Inclination of your disk. If your radial profiles are already deprojected, use 0!
- 'nus': Central frequencies of your multi-wavelength data. Warning!: from highest to lowest frequency [GHz]
- 'flux_error': flux calibrator error in each frequency (see e.g. ALMA Technical Handbook for reference)
- 'weights': How important is each wavelength in the posterior distribution? Use a list of 1 if all of them are equally important. Use 0 to remove the effect of some walenght
- 'profiles': path to your intensities profiles. You should provide a file with the following format: radius, Intensity1, Intensity2, ... , Error Intensity1, Error Intensity2, ...]
- 'Units': What is your intensity units? Options available: 'Jy/sr' or 'Jy/beam'
- 'rUnits': What is your radius units? Options: 'arcsec' or 'au'
- 'beam': What is the beam size resolution of your radial profile? (This value is only used if your intensity units are Jy/beam)
#Space parameter:
- 'minRad': minimum radius where you want to fit the properties
- 'maxRad': maximum radius where you want to fit the properties
- 'smooth': radius where you want to smooth your data (recommended value: resolution/3)
- 'minAmax': minimum maximum grain size to explore [centimeters]
- 'maxAmax': maximum maximum grain size to explore [centimeters]
- 'minTemp' : minimum dust temperature to explore [Kelvins]
- 'maxTemp': maximum dust temperature to explore [Kelvins]
- 'minSigma': minimum dust surface density to explore [g/cm^2]
- 'maxSigma': maximum dust surface density to explore [g/cm^2]
- 'Opacities': Opacity properties model. Options: 'default_opacities_smooth.npz' or 'ricci_compact.npz'
- 'saveEmceePlots': Do you want to save the results from the Emcee? True or False.
#Finally, you can include a prior to your fit using the function lnTprior:
Lstar: Luminosity of the central star.
The Tdust radial profile is taken from the dust temperature of an passively irradiated disk, but you can modify it and use your own temperature definition.
Sierra & Lizano 2020
@ARTICLE{2020ApJ...892..136S,
author = {{Sierra}, Anibal and {Lizano}, Susana},
title = "{Effects of Scattering, Temperature Gradients, and Settling on the Derived Dust Properties of Observed Protoplanetary Disks}",
journal = {\apj},
keywords = {Circumstellar dust, Interstellar scattering, Radiative transfer, Radio continuum emission, Protoplanetary disks, 236, 854, 1335, 1340, 1300, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Solar and Stellar Astrophysics},
year = 2020,
month = apr,
volume = {892},
number = {2},
eid = {136},
pages = {136},
doi = {10.3847/1538-4357/ab7d32},
archivePrefix = {arXiv},
eprint = {2003.02982},
primaryClass = {astro-ph.EP},
adsurl = {https://ui.adsabs.harvard.edu/abs/2020ApJ...892..136S},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
Sierra et al. 2024b
@ARTICLE{2024arXiv240815407S,
author = {{Sierra}, Anibal and {P{\'e}rez}, Laura M. and {Sotomayor}, Benjam{\'\i}n and {Benisty}, Myriam and {Chandler}, Claire J. and {Andrews}, Sean and {Carpenter}, John and {Henning}, Thomas and {Testi}, Leonardo and {Ricci}, Luca and {Wilner}, David},
title = "{Constraints on the physical origin of large cavities in transition disks from multi-wavelength dust continuum emission}",
journal = {arXiv e-prints},
keywords = {Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Solar and Stellar Astrophysics},
year = 2024,
month = aug,
eid = {arXiv:2408.15407},
pages = {arXiv:2408.15407},
doi = {10.48550/arXiv.2408.15407},
archivePrefix = {arXiv},
eprint = {2408.15407},
primaryClass = {astro-ph.EP},
adsurl = {https://ui.adsabs.harvard.edu/abs/2024arXiv240815407S},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
