diskmelts 2.2.1__tar.gz → 2.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {diskmelts-2.2.1/src/diskmelts.egg-info → diskmelts-2.3.0}/PKG-INFO +23 -8
- {diskmelts-2.2.1 → diskmelts-2.3.0}/README.md +19 -5
- {diskmelts-2.2.1 → diskmelts-2.3.0}/pyproject.toml +7 -6
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/__init__.py +7 -3
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/fitting.py +344 -131
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/13C12CH2_single_v2/net_13C12CH2_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/13CO2_single_v2/net_13CO2_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w11p5to17.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/C2H4_single_v2/net_C2H4_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/C2H6_single_v2/net_C2H6_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/C2HD_single_v2/net_C2HD_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/C3H4_single_v2/net_C3H4_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/C4H2_single_v2/net_C4H2_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma0/C6H6_single_v2/net_C6H6_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/CH3_single_v2/net_CH3_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/CH4_single_v2/net_CH4_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/CO17O_single_v2/net_CO17O_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/CO18O_single_v2/net_CO18O_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/CO2_single_v2/net_CO2_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w13p5to19p2_n13to19_t100to1400.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w19to25_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w4p9to7p4_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w7p2to11p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w9p9to15p1_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/HC3N_single_v2/net_HC3N_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/HCN_single_v2/net_HCN_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma0/OH_single_v2/net_OH_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/13C12CH2_single_v2/net_13C12CH2_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/13CO2_single_v2/net_13CO2_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w11p5to17.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/C2H4_single_v2/net_C2H4_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/C2H6_single_v2/net_C2H6_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/C2HD_single_v2/net_C2HD_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/C3H4_single_v2/net_C3H4_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/C4H2_single_v2/net_C4H2_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma2/C6H6_single_v2/net_C6H6_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/CH3_single_v2/net_CH3_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/CH4_single_v2/net_CH4_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/CO17O_single_v2/net_CO17O_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/CO18O_single_v2/net_CO18O_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/CO2_single_v2/net_CO2_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w13p5to19p2_n13to19_t100to1400.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w19to25_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w4p9to7p4_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w7p2to11p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w9p9to15p1_n13to19_t100to1400.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/HC3N_single_v2/net_HC3N_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/HCN_single_v2/net_HCN_forward.pt +0 -0
- diskmelts-2.3.0/src/diskmelts/models/Trained_model/sigma2/OH_single_v2/net_OH_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/plotting.py +39 -23
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/trainmodel.py +137 -12
- diskmelts-2.3.0/src/diskmelts/uncertainty.py +314 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/v2_fitting.py +140 -74
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/v2_grid_fitting.py +170 -114
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/v2_paper_comparison.py +8 -2
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/v2_read_plot.py +37 -24
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/validation.py +28 -24
- {diskmelts-2.2.1 → diskmelts-2.3.0/src/diskmelts.egg-info}/PKG-INFO +23 -8
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts.egg-info/SOURCES.txt +1 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts.egg-info/requires.txt +2 -1
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/13C12CH2_single_v2/net_13C12CH2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/13CO2_single_v2/net_13CO2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w11p5to17.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2H4_single_v2/net_C2H4_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2H6_single_v2/net_C2H6_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2HD_single_v2/net_C2HD_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C3H4_single_v2/net_C3H4_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C4H2_single_v2/net_C4H2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/CH3_single_v2/net_CH3_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/CH4_single_v2/net_CH4_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/CO17O_single_v2/net_CO17O_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/CO18O_single_v2/net_CO18O_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/CO2_single_v2/net_CO2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w13p5to19p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w4p9to7p4_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w7p2to11p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w9p9to15p1_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/HC3N_single_v2/net_HC3N_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/HCN_single_v2/net_HCN_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/OH_single_v2/net_OH_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/13C12CH2_single_v2/net_13C12CH2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/13CO2_single_v2/net_13CO2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w11p5to17.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2H4_single_v2/net_C2H4_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2H6_single_v2/net_C2H6_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2HD_single_v2/net_C2HD_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C3H4_single_v2/net_C3H4_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C4H2_single_v2/net_C4H2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/CH3_single_v2/net_CH3_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/CH4_single_v2/net_CH4_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/CO17O_single_v2/net_CO17O_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/CO18O_single_v2/net_CO18O_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/CO2_single_v2/net_CO2_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w13p5to19p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w4p9to7p4_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w7p2to11p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w9p9to15p1_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/HC3N_single_v2/net_HC3N_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/HCN_single_v2/net_HCN_forward.pt +0 -0
- diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/OH_single_v2/net_OH_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/LICENSE +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/MANIFEST.in +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/setup.cfg +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/__init__.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/_api.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/_core.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/cont_ranges.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/cont_ranges_PPan.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/carbon_extended.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/carbon_extended.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/carbon_rich.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/carbon_rich.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/ttauri.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/ttauri.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/water.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/consub/regions/water.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/C2H2_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/H2O_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/C2H2_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/H2O_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts.egg-info/dependency_links.txt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.3.0}/src/diskmelts.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diskmelts
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Machine-learning Enabled Line fitting Tool for Spectra of protoplanetary disks
|
|
5
5
|
Author: Chengyan Xie, Dingshan Deng
|
|
6
6
|
License-Expression: MIT
|
|
@@ -12,7 +12,7 @@ Keywords: astronomy,protoplanetary disks,JWST,spectral fitting,machine learning
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
13
|
Classifier: Operating System :: OS Independent
|
|
14
14
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
15
|
-
Requires-Python: >=3.
|
|
15
|
+
Requires-Python: >=3.9
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: torch>=1.13
|
|
@@ -20,8 +20,9 @@ Requires-Dist: numpy<2,>=1.26; sys_platform == "darwin" and platform_machine ==
|
|
|
20
20
|
Requires-Dist: numpy; sys_platform != "darwin" or platform_machine != "x86_64"
|
|
21
21
|
Requires-Dist: pandas
|
|
22
22
|
Requires-Dist: scipy
|
|
23
|
-
Requires-Dist: scikit-learn
|
|
23
|
+
Requires-Dist: scikit-learn>=1.0
|
|
24
24
|
Requires-Dist: matplotlib
|
|
25
|
+
Requires-Dist: emcee>=3
|
|
25
26
|
Provides-Extra: io
|
|
26
27
|
Requires-Dist: astropy; extra == "io"
|
|
27
28
|
Provides-Extra: dev
|
|
@@ -50,7 +51,7 @@ density (`logN`), and emitting area scaling (`A`) from observed spectra.
|
|
|
50
51
|
## Installation
|
|
51
52
|
|
|
52
53
|
DiskMELTS is available on [PyPI](https://pypi.org/project/diskmelts/) and
|
|
53
|
-
requires Python 3.
|
|
54
|
+
requires Python 3.9 or newer. It bundles 46 production checkpoints, 23 each
|
|
54
55
|
for the sigma=0 and sigma=2 grids, covering the same 18 species (see
|
|
55
56
|
[Available molecules](#available-molecules)).
|
|
56
57
|
Install it from any directory. These commands use
|
|
@@ -107,9 +108,11 @@ fit = fit_stage(
|
|
|
107
108
|
wave, flux, molecule="C2H2", pretrained=models,
|
|
108
109
|
wavelength_range=(13.0, 15.0), fit_ranges=(13.5, 14.1),
|
|
109
110
|
distance_pc=140.0, n_samples=1024, n_refine=4, n_top=4,
|
|
111
|
+
n_mcmc=20000, # quick look; omit for the converged default (~1 min)
|
|
112
|
+
# errorbars=False, # skip the MCMC error bars and return the best fit only
|
|
110
113
|
)
|
|
111
114
|
|
|
112
|
-
# 3. Best
|
|
115
|
+
# 3. Best fit, then posterior medians and 16-84% error bars (from MCMC).
|
|
113
116
|
print(fit["params"]["C2H2"])
|
|
114
117
|
print(fit["uncertainty"]["C2H2"])
|
|
115
118
|
```
|
|
@@ -126,8 +129,9 @@ covers multi-stage fits, saved outputs, and plots.
|
|
|
126
129
|
| `numpy` | Array operations |
|
|
127
130
|
| `pandas` | CSV I/O |
|
|
128
131
|
| `scipy` | L-BFGS-B optimizer, NNLS, Sobol sampling |
|
|
129
|
-
| `scikit-learn` |
|
|
132
|
+
| `scikit-learn` | PCA and scaling when training new models |
|
|
130
133
|
| `matplotlib` | Plotting |
|
|
134
|
+
| `emcee` | MCMC sampling of parameter error bars |
|
|
131
135
|
|
|
132
136
|
## Continuum subtraction
|
|
133
137
|
|
|
@@ -227,6 +231,14 @@ makes the returned emitting area physical. `fit_observation` accepts either a
|
|
|
227
231
|
CSV path or in-memory `obs_wav`, `obs_flux`, and optional `obs_err` arrays
|
|
228
232
|
(new in 2.2.1).
|
|
229
233
|
|
|
234
|
+
Every fit returns its best fit and, by default, error bars from MCMC sampling
|
|
235
|
+
of the posterior with [emcee](https://emcee.readthedocs.io/). Reported values
|
|
236
|
+
are posterior medians with 16–84% error bars; the noise level accounts for
|
|
237
|
+
correlated pixels and model mismatch, and a `*` marks a range that reaches a
|
|
238
|
+
fit bound. Sampling takes about a minute per stage. Pass `errorbars=False`
|
|
239
|
+
for best fits only. See
|
|
240
|
+
[What the uncertainties mean](https://diskmelts.readthedocs.io/en/latest/quickstart.html#uncertainties).
|
|
241
|
+
|
|
230
242
|
For a synthetic spectrum, `wave, flux = diskmelts.synthesize_spectrum('HCN',
|
|
231
243
|
T=300, logN=18, A=1)` returns the native wavelength axis and model flux (new
|
|
232
244
|
in 2.2.1). See the
|
|
@@ -270,8 +282,11 @@ assumes 2 km/s turbulent broadening. Select sigma=2 with `load_fitting_models(..
|
|
|
270
282
|
| OH | 15–26 | 100–1400 | 13–19.5 |
|
|
271
283
|
|
|
272
284
|
`diskmelts.MODEL_SPECS` records the exact domains, PCA sizes, and network
|
|
273
|
-
layers. Version 2.
|
|
274
|
-
|
|
285
|
+
layers. Version 2.3.0 retrains 26 of these checkpoints (13C12CH2, 13CO2,
|
|
286
|
+
C2H2 11.5–17 µm, C2H4, C2H6, C2HD, C4H2, CH4, CO17O, CO18O, CO2, HC3N, and HCN at
|
|
287
|
+
both sigmas) with lower held-out error; see the
|
|
288
|
+
[changelog](https://diskmelts.readthedocs.io/en/latest/changelog.html).
|
|
289
|
+
Upgrade with `python -m pip install -U diskmelts`.
|
|
275
290
|
|
|
276
291
|
## Training and validation data
|
|
277
292
|
|
|
@@ -11,7 +11,7 @@ density (`logN`), and emitting area scaling (`A`) from observed spectra.
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
13
|
DiskMELTS is available on [PyPI](https://pypi.org/project/diskmelts/) and
|
|
14
|
-
requires Python 3.
|
|
14
|
+
requires Python 3.9 or newer. It bundles 46 production checkpoints, 23 each
|
|
15
15
|
for the sigma=0 and sigma=2 grids, covering the same 18 species (see
|
|
16
16
|
[Available molecules](#available-molecules)).
|
|
17
17
|
Install it from any directory. These commands use
|
|
@@ -68,9 +68,11 @@ fit = fit_stage(
|
|
|
68
68
|
wave, flux, molecule="C2H2", pretrained=models,
|
|
69
69
|
wavelength_range=(13.0, 15.0), fit_ranges=(13.5, 14.1),
|
|
70
70
|
distance_pc=140.0, n_samples=1024, n_refine=4, n_top=4,
|
|
71
|
+
n_mcmc=20000, # quick look; omit for the converged default (~1 min)
|
|
72
|
+
# errorbars=False, # skip the MCMC error bars and return the best fit only
|
|
71
73
|
)
|
|
72
74
|
|
|
73
|
-
# 3. Best
|
|
75
|
+
# 3. Best fit, then posterior medians and 16-84% error bars (from MCMC).
|
|
74
76
|
print(fit["params"]["C2H2"])
|
|
75
77
|
print(fit["uncertainty"]["C2H2"])
|
|
76
78
|
```
|
|
@@ -87,8 +89,9 @@ covers multi-stage fits, saved outputs, and plots.
|
|
|
87
89
|
| `numpy` | Array operations |
|
|
88
90
|
| `pandas` | CSV I/O |
|
|
89
91
|
| `scipy` | L-BFGS-B optimizer, NNLS, Sobol sampling |
|
|
90
|
-
| `scikit-learn` |
|
|
92
|
+
| `scikit-learn` | PCA and scaling when training new models |
|
|
91
93
|
| `matplotlib` | Plotting |
|
|
94
|
+
| `emcee` | MCMC sampling of parameter error bars |
|
|
92
95
|
|
|
93
96
|
## Continuum subtraction
|
|
94
97
|
|
|
@@ -188,6 +191,14 @@ makes the returned emitting area physical. `fit_observation` accepts either a
|
|
|
188
191
|
CSV path or in-memory `obs_wav`, `obs_flux`, and optional `obs_err` arrays
|
|
189
192
|
(new in 2.2.1).
|
|
190
193
|
|
|
194
|
+
Every fit returns its best fit and, by default, error bars from MCMC sampling
|
|
195
|
+
of the posterior with [emcee](https://emcee.readthedocs.io/). Reported values
|
|
196
|
+
are posterior medians with 16–84% error bars; the noise level accounts for
|
|
197
|
+
correlated pixels and model mismatch, and a `*` marks a range that reaches a
|
|
198
|
+
fit bound. Sampling takes about a minute per stage. Pass `errorbars=False`
|
|
199
|
+
for best fits only. See
|
|
200
|
+
[What the uncertainties mean](https://diskmelts.readthedocs.io/en/latest/quickstart.html#uncertainties).
|
|
201
|
+
|
|
191
202
|
For a synthetic spectrum, `wave, flux = diskmelts.synthesize_spectrum('HCN',
|
|
192
203
|
T=300, logN=18, A=1)` returns the native wavelength axis and model flux (new
|
|
193
204
|
in 2.2.1). See the
|
|
@@ -231,8 +242,11 @@ assumes 2 km/s turbulent broadening. Select sigma=2 with `load_fitting_models(..
|
|
|
231
242
|
| OH | 15–26 | 100–1400 | 13–19.5 |
|
|
232
243
|
|
|
233
244
|
`diskmelts.MODEL_SPECS` records the exact domains, PCA sizes, and network
|
|
234
|
-
layers. Version 2.
|
|
235
|
-
|
|
245
|
+
layers. Version 2.3.0 retrains 26 of these checkpoints (13C12CH2, 13CO2,
|
|
246
|
+
C2H2 11.5–17 µm, C2H4, C2H6, C2HD, C4H2, CH4, CO17O, CO18O, CO2, HC3N, and HCN at
|
|
247
|
+
both sigmas) with lower held-out error; see the
|
|
248
|
+
[changelog](https://diskmelts.readthedocs.io/en/latest/changelog.html).
|
|
249
|
+
Upgrade with `python -m pip install -U diskmelts`.
|
|
236
250
|
|
|
237
251
|
## Training and validation data
|
|
238
252
|
|
|
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "diskmelts"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.3.0"
|
|
8
8
|
description = "Machine-learning Enabled Line fitting Tool for Spectra of protoplanetary disks"
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
11
|
license = "MIT"
|
|
12
12
|
license-files = ["LICENSE"]
|
|
13
13
|
authors = [
|
|
@@ -21,17 +21,18 @@ classifiers = [
|
|
|
21
21
|
"Topic :: Scientific/Engineering :: Astronomy",
|
|
22
22
|
]
|
|
23
23
|
dependencies = [
|
|
24
|
-
# Checkpoints load with torch.load(weights_only=
|
|
24
|
+
# Checkpoints load with torch.load(weights_only=True), added in 1.13.
|
|
25
25
|
"torch>=1.13",
|
|
26
26
|
# Intel macOS wheels stop at PyTorch 2.2, whose NumPy bridge needs NumPy 1.x.
|
|
27
27
|
"numpy>=1.26,<2; sys_platform == 'darwin' and platform_machine == 'x86_64'",
|
|
28
28
|
"numpy; sys_platform != 'darwin' or platform_machine != 'x86_64'",
|
|
29
29
|
"pandas",
|
|
30
30
|
"scipy",
|
|
31
|
-
#
|
|
32
|
-
|
|
33
|
-
"scikit-learn>=1.8,<1.9",
|
|
31
|
+
# Used only to fit PCA/scalers when training; checkpoints store plain arrays.
|
|
32
|
+
"scikit-learn>=1.0",
|
|
34
33
|
"matplotlib",
|
|
34
|
+
# Ensemble MCMC for posterior error bars (pure Python, NumPy only).
|
|
35
|
+
"emcee>=3",
|
|
35
36
|
]
|
|
36
37
|
|
|
37
38
|
[project.urls]
|
|
@@ -12,6 +12,8 @@ from diskmelts.trainmodel import (
|
|
|
12
12
|
train_model_bank,
|
|
13
13
|
select_grid_holdout,
|
|
14
14
|
tune_pca_components,
|
|
15
|
+
convert_legacy_checkpoint,
|
|
16
|
+
grid_sha256,
|
|
15
17
|
)
|
|
16
18
|
from diskmelts.fitting import (
|
|
17
19
|
load_models,
|
|
@@ -57,6 +59,9 @@ from diskmelts.v2_read_plot import (
|
|
|
57
59
|
from diskmelts.v2_paper_comparison import plot_literature_comparisons
|
|
58
60
|
from diskmelts import consub
|
|
59
61
|
|
|
62
|
+
# fit_nested, validate_nt, and plot_validation_split stay importable for
|
|
63
|
+
# existing scripts but are deprecated since 2.3.0 and left out of __all__.
|
|
64
|
+
|
|
60
65
|
__all__ = [
|
|
61
66
|
"consub",
|
|
62
67
|
"MODEL_SPECS",
|
|
@@ -78,11 +83,12 @@ __all__ = [
|
|
|
78
83
|
"train_model_bank",
|
|
79
84
|
"select_grid_holdout",
|
|
80
85
|
"tune_pca_components",
|
|
86
|
+
"convert_legacy_checkpoint",
|
|
87
|
+
"grid_sha256",
|
|
81
88
|
# fitting
|
|
82
89
|
"load_models",
|
|
83
90
|
"load_model_bank",
|
|
84
91
|
"generate_spectrum",
|
|
85
|
-
"fit_nested",
|
|
86
92
|
"fit_molecules",
|
|
87
93
|
"load_observed_spectrum",
|
|
88
94
|
"save_fit_outputs",
|
|
@@ -91,12 +97,10 @@ __all__ = [
|
|
|
91
97
|
"print_fit_params",
|
|
92
98
|
"save_fitted_comparison",
|
|
93
99
|
# validation
|
|
94
|
-
"validate_nt",
|
|
95
100
|
"validate_nt_holdout",
|
|
96
101
|
"validate_full",
|
|
97
102
|
# plotting
|
|
98
103
|
"plot_fit",
|
|
99
104
|
"plot_validation",
|
|
100
|
-
"plot_validation_split",
|
|
101
105
|
"plot_bank_reconstruction",
|
|
102
106
|
]
|