diskmelts 2.2.1__tar.gz → 2.2.2__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.2.2}/PKG-INFO +5 -5
- {diskmelts-2.2.1 → diskmelts-2.2.2}/README.md +2 -2
- {diskmelts-2.2.1 → diskmelts-2.2.2}/pyproject.toml +5 -6
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/__init__.py +2 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/13C12CH2_single_v2/net_13C12CH2_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/13CO2_single_v2/net_13CO2_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w11p5to17.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C2H4_single_v2/net_C2H4_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C2H6_single_v2/net_C2H6_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C2HD_single_v2/net_C2HD_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C3H4_single_v2/net_C3H4_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C4H2_single_v2/net_C4H2_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma0/C6H6_single_v2/net_C6H6_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/CH3_single_v2/net_CH3_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/CH4_single_v2/net_CH4_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/CO17O_single_v2/net_CO17O_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/CO18O_single_v2/net_CO18O_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/CO2_single_v2/net_CO2_forward.pt +0 -0
- diskmelts-2.2.2/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.2.2}/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w19to25_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w4p9to7p4_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w7p2to11p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/net_H2O_w9p9to15p1_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/HC3N_single_v2/net_HC3N_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/HCN_single_v2/net_HCN_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/OH_single_v2/net_OH_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/13C12CH2_single_v2/net_13C12CH2_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/13CO2_single_v2/net_13CO2_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w11p5to17.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/C2H4_single_v2/net_C2H4_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/C2H6_single_v2/net_C2H6_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/C2HD_single_v2/net_C2HD_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/C3H4_single_v2/net_C3H4_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma2/C4H2_single_v2/net_C4H2_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma2/C6H6_single_v2/net_C6H6_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/CH3_single_v2/net_CH3_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/CH4_single_v2/net_CH4_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/CO17O_single_v2/net_CO17O_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/CO18O_single_v2/net_CO18O_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/CO2_single_v2/net_CO2_forward.pt +0 -0
- diskmelts-2.2.2/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.2.2}/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w19to25_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w4p9to7p4_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w7p2to11p2_n13to19_t100to1400.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/net_H2O_w9p9to15p1_n13to19_t100to1400.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma2/HC3N_single_v2/net_HC3N_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/HCN_single_v2/net_HCN_forward.pt +0 -0
- diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/OH_single_v2/net_OH_forward.pt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/trainmodel.py +125 -8
- {diskmelts-2.2.1 → diskmelts-2.2.2/src/diskmelts.egg-info}/PKG-INFO +5 -5
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts.egg-info/requires.txt +1 -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/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/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.2.2}/LICENSE +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/MANIFEST.in +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/setup.cfg +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/__init__.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/_api.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/_core.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/cont_ranges.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/cont_ranges_PPan.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/carbon_extended.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/carbon_extended.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/carbon_rich.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/carbon_rich.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/ttauri.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/ttauri.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/water.csv +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/consub/regions/water.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/fitting.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/C2H2_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma0/H2O_wavelength_bank_v2_fixed/H2O_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/C2H2_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/models/Trained_model/sigma2/H2O_wavelength_bank_v2_fixed/H2O_model_bank.json +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/plotting.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/v2_fitting.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/v2_grid_fitting.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/v2_paper_comparison.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/v2_read_plot.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts/validation.py +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts.egg-info/SOURCES.txt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/src/diskmelts.egg-info/dependency_links.txt +0 -0
- {diskmelts-2.2.1 → diskmelts-2.2.2}/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.2.
|
|
3
|
+
Version: 2.2.2
|
|
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,7 +20,7 @@ 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
25
|
Provides-Extra: io
|
|
26
26
|
Requires-Dist: astropy; extra == "io"
|
|
@@ -50,7 +50,7 @@ density (`logN`), and emitting area scaling (`A`) from observed spectra.
|
|
|
50
50
|
## Installation
|
|
51
51
|
|
|
52
52
|
DiskMELTS is available on [PyPI](https://pypi.org/project/diskmelts/) and
|
|
53
|
-
requires Python 3.
|
|
53
|
+
requires Python 3.9 or newer. It bundles 46 production checkpoints, 23 each
|
|
54
54
|
for the sigma=0 and sigma=2 grids, covering the same 18 species (see
|
|
55
55
|
[Available molecules](#available-molecules)).
|
|
56
56
|
Install it from any directory. These commands use
|
|
@@ -126,7 +126,7 @@ covers multi-stage fits, saved outputs, and plots.
|
|
|
126
126
|
| `numpy` | Array operations |
|
|
127
127
|
| `pandas` | CSV I/O |
|
|
128
128
|
| `scipy` | L-BFGS-B optimizer, NNLS, Sobol sampling |
|
|
129
|
-
| `scikit-learn` |
|
|
129
|
+
| `scikit-learn` | PCA and scaling when training new models |
|
|
130
130
|
| `matplotlib` | Plotting |
|
|
131
131
|
|
|
132
132
|
## Continuum subtraction
|
|
@@ -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
|
|
@@ -87,7 +87,7 @@ covers multi-stage fits, saved outputs, and plots.
|
|
|
87
87
|
| `numpy` | Array operations |
|
|
88
88
|
| `pandas` | CSV I/O |
|
|
89
89
|
| `scipy` | L-BFGS-B optimizer, NNLS, Sobol sampling |
|
|
90
|
-
| `scikit-learn` |
|
|
90
|
+
| `scikit-learn` | PCA and scaling when training new models |
|
|
91
91
|
| `matplotlib` | Plotting |
|
|
92
92
|
|
|
93
93
|
## Continuum subtraction
|
|
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "diskmelts"
|
|
7
|
-
version = "2.2.
|
|
7
|
+
version = "2.2.2"
|
|
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,16 +21,15 @@ 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",
|
|
35
34
|
]
|
|
36
35
|
|
|
@@ -12,6 +12,7 @@ from diskmelts.trainmodel import (
|
|
|
12
12
|
train_model_bank,
|
|
13
13
|
select_grid_holdout,
|
|
14
14
|
tune_pca_components,
|
|
15
|
+
convert_legacy_checkpoint,
|
|
15
16
|
)
|
|
16
17
|
from diskmelts.fitting import (
|
|
17
18
|
load_models,
|
|
@@ -78,6 +79,7 @@ __all__ = [
|
|
|
78
79
|
"train_model_bank",
|
|
79
80
|
"select_grid_holdout",
|
|
80
81
|
"tune_pca_components",
|
|
82
|
+
"convert_legacy_checkpoint",
|
|
81
83
|
# fitting
|
|
82
84
|
"load_models",
|
|
83
85
|
"load_model_bank",
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/13C12CH2_single_v2/net_13C12CH2_forward.pt
ADDED
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/13CO2_single_v2/net_13CO2_forward.pt
ADDED
|
Binary file
|
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/CO17O_single_v2/net_CO17O_forward.pt
ADDED
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma0/CO18O_single_v2/net_CO18O_forward.pt
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/13C12CH2_single_v2/net_13C12CH2_forward.pt
ADDED
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/13CO2_single_v2/net_13CO2_forward.pt
ADDED
|
Binary file
|
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/CO17O_single_v2/net_CO17O_forward.pt
ADDED
|
Binary file
|
diskmelts-2.2.2/src/diskmelts/models/Trained_model/sigma2/CO18O_single_v2/net_CO18O_forward.pt
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -10,6 +10,7 @@ Provides public functions:
|
|
|
10
10
|
train_model_bank : train overlapping wavelength/T/logN checkpoint tiles
|
|
11
11
|
select_grid_holdout : reproducibly withhold complete slab-grid models
|
|
12
12
|
tune_pca_components : choose PCA size from unseen-spectrum reconstruction
|
|
13
|
+
convert_legacy_checkpoint: rewrite a checkpoint's scikit-learn objects as arrays
|
|
13
14
|
|
|
14
15
|
Run as a script to generate pretrain CSVs, train all four molecules, and save
|
|
15
16
|
loss-curve diagnostics:
|
|
@@ -23,6 +24,7 @@ import copy
|
|
|
23
24
|
import hashlib
|
|
24
25
|
import json
|
|
25
26
|
import os
|
|
27
|
+
import pickle
|
|
26
28
|
import re
|
|
27
29
|
import numpy as np
|
|
28
30
|
import pandas as pd
|
|
@@ -30,8 +32,120 @@ import torch
|
|
|
30
32
|
import torch.nn as nn
|
|
31
33
|
import torch.optim as optim
|
|
32
34
|
from torch.utils.data import DataLoader, TensorDataset
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# ===========================================================================
|
|
38
|
+
# Array-only preprocessing (checkpoint format)
|
|
39
|
+
# ===========================================================================
|
|
40
|
+
|
|
41
|
+
class ArrayScaler:
|
|
42
|
+
"""Standardization stored as plain arrays (the StandardScaler subset used)."""
|
|
43
|
+
|
|
44
|
+
def __init__(self, mean, scale):
|
|
45
|
+
self.mean_ = np.asarray(mean)
|
|
46
|
+
self.scale_ = np.asarray(scale)
|
|
47
|
+
self.n_features_in_ = self.mean_.shape[0]
|
|
48
|
+
|
|
49
|
+
def transform(self, X):
|
|
50
|
+
return (np.asarray(X) - self.mean_) / self.scale_
|
|
51
|
+
|
|
52
|
+
def inverse_transform(self, Z):
|
|
53
|
+
return np.asarray(Z) * self.scale_ + self.mean_
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class ArrayPCA:
|
|
57
|
+
"""Non-whitened PCA projection stored as plain arrays."""
|
|
58
|
+
|
|
59
|
+
def __init__(self, components, mean, explained_variance_ratio=None):
|
|
60
|
+
self.components_ = np.asarray(components)
|
|
61
|
+
self.mean_ = np.asarray(mean)
|
|
62
|
+
self.n_components_ = self.components_.shape[0]
|
|
63
|
+
self.explained_variance_ratio_ = (None if explained_variance_ratio is None
|
|
64
|
+
else np.asarray(explained_variance_ratio))
|
|
65
|
+
|
|
66
|
+
def transform(self, X):
|
|
67
|
+
return (np.asarray(X) - self.mean_) @ self.components_.T
|
|
68
|
+
|
|
69
|
+
def inverse_transform(self, Z):
|
|
70
|
+
return np.asarray(Z) @ self.components_ + self.mean_
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _to_tensor(values):
|
|
74
|
+
return torch.from_numpy(np.array(values, copy=True))
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def _scaler_state(scaler):
|
|
78
|
+
return {'mean': _to_tensor(scaler.mean_), 'scale': _to_tensor(scaler.scale_)}
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def _pca_state(pca):
|
|
82
|
+
if pca is None:
|
|
83
|
+
return None
|
|
84
|
+
if getattr(pca, 'whiten', False):
|
|
85
|
+
raise ValueError('whitened PCA cannot be stored as a plain projection')
|
|
86
|
+
state = {'components': _to_tensor(pca.components_), 'mean': _to_tensor(pca.mean_)}
|
|
87
|
+
if getattr(pca, 'explained_variance_ratio_', None) is not None:
|
|
88
|
+
state['explained_variance_ratio'] = _to_tensor(pca.explained_variance_ratio_)
|
|
89
|
+
return state
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def _restore_scaler(value):
|
|
93
|
+
if isinstance(value, dict):
|
|
94
|
+
return ArrayScaler(value['mean'].numpy(), value['scale'].numpy())
|
|
95
|
+
return value # legacy scikit-learn object
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _restore_pca(value):
|
|
99
|
+
if isinstance(value, dict):
|
|
100
|
+
ratio = value.get('explained_variance_ratio')
|
|
101
|
+
return ArrayPCA(value['components'].numpy(), value['mean'].numpy(),
|
|
102
|
+
None if ratio is None else ratio.numpy())
|
|
103
|
+
return value # None or a legacy scikit-learn object
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def _load_checkpoint(path, device='cpu'):
|
|
107
|
+
"""Load a checkpoint, restoring array preprocessing.
|
|
108
|
+
|
|
109
|
+
Array-format checkpoints load with ``weights_only=True`` and need no
|
|
110
|
+
scikit-learn. Older checkpoints pickle scikit-learn objects and fall back
|
|
111
|
+
to a full unpickle, which requires a compatible scikit-learn.
|
|
112
|
+
"""
|
|
113
|
+
try:
|
|
114
|
+
ckpt = torch.load(path, map_location=device, weights_only=True)
|
|
115
|
+
except pickle.UnpicklingError:
|
|
116
|
+
ckpt = torch.load(path, map_location=device, weights_only=False)
|
|
117
|
+
for key in ('xp_sc', 'yp_sc_shape', 'yp_sc_peak'):
|
|
118
|
+
if key in ckpt:
|
|
119
|
+
ckpt[key] = _restore_scaler(ckpt[key])
|
|
120
|
+
ckpt['pca'] = _restore_pca(ckpt.get('pca'))
|
|
121
|
+
if 'wav' in ckpt and isinstance(ckpt['wav'], torch.Tensor):
|
|
122
|
+
ckpt['wav'] = ckpt['wav'].numpy()
|
|
123
|
+
return ckpt
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def _array_checkpoint(ckpt):
|
|
127
|
+
"""Return a copy of a checkpoint dict with array-only preprocessing."""
|
|
128
|
+
out = dict(ckpt)
|
|
129
|
+
for key in ('xp_sc', 'yp_sc_shape', 'yp_sc_peak'):
|
|
130
|
+
if key in out and not isinstance(out[key], dict):
|
|
131
|
+
out[key] = _scaler_state(out[key])
|
|
132
|
+
if out.get('pca') is not None and not isinstance(out['pca'], dict):
|
|
133
|
+
out['pca'] = _pca_state(out['pca'])
|
|
134
|
+
if 'wav' in out and not isinstance(out['wav'], torch.Tensor):
|
|
135
|
+
out['wav'] = _to_tensor(out['wav'])
|
|
136
|
+
return out
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def convert_legacy_checkpoint(path, output_path=None):
|
|
140
|
+
"""Rewrite a checkpoint's scikit-learn scalers/PCA as plain arrays.
|
|
141
|
+
|
|
142
|
+
Converted checkpoints load without scikit-learn and give identical
|
|
143
|
+
spectra. Loading the legacy file once still needs a compatible
|
|
144
|
+
scikit-learn. Writes to ``output_path`` (default: overwrite ``path``).
|
|
145
|
+
"""
|
|
146
|
+
ckpt = torch.load(path, map_location='cpu', weights_only=False)
|
|
147
|
+
torch.save(_array_checkpoint(ckpt), output_path or path)
|
|
148
|
+
return output_path or path
|
|
35
149
|
|
|
36
150
|
|
|
37
151
|
# ===========================================================================
|
|
@@ -460,8 +574,6 @@ def pretrain_forward_model(
|
|
|
460
574
|
X_pre_v_t (torch.Tensor) : standardised val inputs on device
|
|
461
575
|
log10p_v (np.ndarray) : true log10(peak) for val samples
|
|
462
576
|
"""
|
|
463
|
-
from sklearn.decomposition import PCA as _PCA
|
|
464
|
-
|
|
465
577
|
if peak_normalization not in ('csv', 'window'):
|
|
466
578
|
raise ValueError("peak_normalization must be 'csv' or 'window'")
|
|
467
579
|
if shape_loss not in ('standardized', 'spectral', 'spectral_edge'):
|
|
@@ -479,7 +591,7 @@ def pretrain_forward_model(
|
|
|
479
591
|
'pretrain_csv is required when training or when model_path '
|
|
480
592
|
'does not point to an existing checkpoint'
|
|
481
593
|
)
|
|
482
|
-
ckpt =
|
|
594
|
+
ckpt = _load_checkpoint(model_path, device)
|
|
483
595
|
missing = [key for key in ('xp_sc', 'wav') if key not in ckpt]
|
|
484
596
|
if missing:
|
|
485
597
|
raise ValueError(
|
|
@@ -534,6 +646,11 @@ def pretrain_forward_model(
|
|
|
534
646
|
shape_edge_weight=ckpt.get('shape_edge_weight', 1.0),
|
|
535
647
|
)
|
|
536
648
|
|
|
649
|
+
# scikit-learn is needed only to fit new preprocessing, not to load.
|
|
650
|
+
from sklearn.decomposition import PCA as _PCA
|
|
651
|
+
from sklearn.model_selection import train_test_split
|
|
652
|
+
from sklearn.preprocessing import StandardScaler
|
|
653
|
+
|
|
537
654
|
# --- Load pretrain CSV and select wavelength channels ---
|
|
538
655
|
df_pre = pd.read_csv(pretrain_csv)
|
|
539
656
|
pre_flux_cols = [c for c in df_pre.columns
|
|
@@ -634,7 +751,7 @@ def pretrain_forward_model(
|
|
|
634
751
|
|
|
635
752
|
# --- Load from checkpoint if it exists ---
|
|
636
753
|
if model_path and os.path.exists(model_path):
|
|
637
|
-
ckpt =
|
|
754
|
+
ckpt = _load_checkpoint(model_path, device)
|
|
638
755
|
expected_metadata = {
|
|
639
756
|
'wav_range': tuple(map(float, wav_range)),
|
|
640
757
|
'T_range': None if T_range is None else tuple(map(float, T_range)),
|
|
@@ -868,7 +985,7 @@ def pretrain_forward_model(
|
|
|
868
985
|
# Save checkpoint
|
|
869
986
|
if model_path:
|
|
870
987
|
os.makedirs(os.path.dirname(os.path.abspath(model_path)), exist_ok=True)
|
|
871
|
-
torch.save({
|
|
988
|
+
torch.save(_array_checkpoint({
|
|
872
989
|
'model_state_shape': net_shape.state_dict(),
|
|
873
990
|
'model_state_peak': net_peak.state_dict(),
|
|
874
991
|
'train_losses_shape': train_losses_shape,
|
|
@@ -899,7 +1016,7 @@ def pretrain_forward_model(
|
|
|
899
1016
|
'training_data_sha256': training_data_sha256,
|
|
900
1017
|
'n_dark_training': int((~peak_tr_valid).sum()),
|
|
901
1018
|
'n_dark_validation': int((~peak_v_valid).sum()),
|
|
902
|
-
}, model_path)
|
|
1019
|
+
}), model_path)
|
|
903
1020
|
print(f' [{mol}] saved → {model_path}')
|
|
904
1021
|
|
|
905
1022
|
return dict(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diskmelts
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.2
|
|
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,7 +20,7 @@ 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
25
|
Provides-Extra: io
|
|
26
26
|
Requires-Dist: astropy; extra == "io"
|
|
@@ -50,7 +50,7 @@ density (`logN`), and emitting area scaling (`A`) from observed spectra.
|
|
|
50
50
|
## Installation
|
|
51
51
|
|
|
52
52
|
DiskMELTS is available on [PyPI](https://pypi.org/project/diskmelts/) and
|
|
53
|
-
requires Python 3.
|
|
53
|
+
requires Python 3.9 or newer. It bundles 46 production checkpoints, 23 each
|
|
54
54
|
for the sigma=0 and sigma=2 grids, covering the same 18 species (see
|
|
55
55
|
[Available molecules](#available-molecules)).
|
|
56
56
|
Install it from any directory. These commands use
|
|
@@ -126,7 +126,7 @@ covers multi-stage fits, saved outputs, and plots.
|
|
|
126
126
|
| `numpy` | Array operations |
|
|
127
127
|
| `pandas` | CSV I/O |
|
|
128
128
|
| `scipy` | L-BFGS-B optimizer, NNLS, Sobol sampling |
|
|
129
|
-
| `scikit-learn` |
|
|
129
|
+
| `scikit-learn` | PCA and scaling when training new models |
|
|
130
130
|
| `matplotlib` | Plotting |
|
|
131
131
|
|
|
132
132
|
## Continuum subtraction
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/13C12CH2_single_v2/net_13C12CH2_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/13CO2_single_v2/net_13CO2_forward.pt
DELETED
|
Binary file
|
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2H4_single_v2/net_C2H4_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2H6_single_v2/net_C2H6_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C2HD_single_v2/net_C2HD_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C3H4_single_v2/net_C3H4_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/C4H2_single_v2/net_C4H2_forward.pt
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/CO17O_single_v2/net_CO17O_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/CO18O_single_v2/net_CO18O_forward.pt
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma0/HC3N_single_v2/net_HC3N_forward.pt
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/13C12CH2_single_v2/net_13C12CH2_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/13CO2_single_v2/net_13CO2_forward.pt
DELETED
|
Binary file
|
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2H2_wavelength_bank_v2/net_C2H2_w6to9.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2H4_single_v2/net_C2H4_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2H6_single_v2/net_C2H6_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C2HD_single_v2/net_C2HD_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/C3H4_single_v2/net_C3H4_forward.pt
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/CO17O_single_v2/net_CO17O_forward.pt
DELETED
|
Binary file
|
diskmelts-2.2.1/src/diskmelts/models/Trained_model/sigma2/CO18O_single_v2/net_CO18O_forward.pt
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|