aspect-stable 0.7.dev1__tar.gz → 0.7.dev2__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.
Files changed (25) hide show
  1. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/PKG-INFO +1 -1
  2. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/pyproject.toml +1 -1
  3. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/__init__.py +6 -4
  4. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/aspect.toml +8 -0
  5. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/io.py +1 -1
  6. aspect_stable-0.7.dev2/src/aspect/models/classifier-v12-MLP_min-max-log_12-pixels.joblib +0 -0
  7. aspect_stable-0.7.dev2/src/aspect/models/classifier-v12-MLP_min-max-log_12-pixels.toml +30 -0
  8. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/workflow.py +8 -3
  9. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect_stable.egg-info/PKG-INFO +1 -1
  10. aspect_stable-0.7.dev2/src/aspect_stable.egg-info/SOURCES.txt +22 -0
  11. aspect_stable-0.7.dev1/src/aspect_stable.egg-info/SOURCES.txt +0 -20
  12. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/README.rst +0 -0
  13. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/setup.cfg +0 -0
  14. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/changelog.txt +0 -0
  15. /aspect_stable-0.7.dev1/src/aspect/models/aspect_min-max-log_12_pixels_v10_model.joblib → /aspect_stable-0.7.dev2/src/aspect/models/classifier-v10-RF_min-max-log_12-pixels.joblib +0 -0
  16. /aspect_stable-0.7.dev1/src/aspect/models/aspect_min-max-log_12_pixels_v10_model.toml → /aspect_stable-0.7.dev2/src/aspect/models/classifier-v10-RF_min-max-log_12-pixels.toml +0 -0
  17. /aspect_stable-0.7.dev1/src/aspect/models/aspect_min-max-log_12_pixels_v12_randomforest_model.joblib → /aspect_stable-0.7.dev2/src/aspect/models/classifier-v12-RF_min-max-log_12-pixels.joblib +0 -0
  18. /aspect_stable-0.7.dev1/src/aspect/models/aspect_min-max-log_12_pixels_v12_randomforest_model.toml → /aspect_stable-0.7.dev2/src/aspect/models/classifier-v12-RF_min-max-log_12-pixels.toml +0 -0
  19. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/plots.py +0 -0
  20. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/tools.py +0 -0
  21. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect/trainer.py +0 -0
  22. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect_stable.egg-info/dependency_links.txt +0 -0
  23. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect_stable.egg-info/requires.txt +0 -0
  24. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/src/aspect_stable.egg-info/top_level.txt +0 -0
  25. {aspect_stable-0.7.dev1 → aspect_stable-0.7.dev2}/tests/test_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aspect-stable
3
- Version: 0.7.dev1
3
+ Version: 0.7.dev2
4
4
  Summary: Automatic SPEctra Components Tagging
5
5
  Author-email: Vital Fernández <vgf@stsci.edu>
6
6
  License-Expression: GPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "aspect-stable"
3
- version = "0.7.dev1"
3
+ version = "0.7.dev2"
4
4
  readme = "README.rst"
5
5
  requires-python = ">=3.11"
6
6
  license = "GPL-3.0-or-later"
@@ -1,9 +1,7 @@
1
1
  import logging
2
2
  from pathlib import Path
3
3
  from aspect.io import cfg, load_cfg, load_model
4
- from aspect.workflow import ComponentsDetector, model_mgr, CHOICE_DM, TIME_DM
5
- from aspect.plots import decision_matrix_plot
6
- from aspect.trainer import components_trainer
4
+
7
5
 
8
6
  try:
9
7
  import tomllib
@@ -23,4 +21,8 @@ with open(_conf_path, mode="rb") as fp:
23
21
  __version__ = _setup_cfg['metadata']['version']
24
22
 
25
23
  # Invert the dictionary of categories number
26
- cfg['number_shape'] = {v: k for k, v in cfg['shape_number'].items()}
24
+ cfg['number_shape'] = {v: k for k, v in cfg['shape_number'].items()}
25
+
26
+ from aspect.workflow import ComponentsDetector, model_mgr, CHOICE_DM, TIME_DM
27
+ from aspect.plots import decision_matrix_plot
28
+ from aspect.trainer import components_trainer
@@ -3,6 +3,12 @@ name = 'aspect-stable'
3
3
  version = '0.7.dev1'
4
4
  category_order = ['undefined', 'white-noise', 'continuum', 'emission', 'cosmic-ray', 'broad', 'doublet-em', 'peak',
5
5
  'absorption', 'dead-pixel', 'doublet-abs', 'trough']
6
+ default_model = 'classifier_v10_RF'
7
+
8
+ [models]
9
+ classifier_v10_RF = 'classifier-v10-RF_min-max-log_12-pixels.joblib'
10
+ classifier_v12_RF = 'classifier-v12-RF_min-max-log_12-pixels.joblib'
11
+ classifier_v12_MLP ='classifier-v12-MLP_min-max-log_12-pixels.joblib'
6
12
 
7
13
  [shape_number]
8
14
  undefined = 0
@@ -32,6 +38,8 @@ dead-pixel = '#8788EE' # Purple
32
38
  trough = "#33937F" # Dark Emerald
33
39
  doublet-abs = '#A330C9' # Dark magenta
34
40
 
41
+
42
+
35
43
  [decision_matrices]
36
44
 
37
45
  # Orange Blue
@@ -23,7 +23,7 @@ with open(_CONF_FILE, mode="rb") as fp:
23
23
  cfg = tomllib.load(fp)
24
24
 
25
25
  # Default feature detection model
26
- DEFAULT_MODEL_ADDRESS = Path(_MODEL_FOLDER/'aspect_min-max-log_12_pixels_v10_model.joblib')
26
+ # DEFAULT_MODEL_ADDRESS = Path(_MODEL_FOLDER/'classifier-v10-RF_min-max-log_12-pixels.joblib')
27
27
 
28
28
  def read_trained_model(file_address):
29
29
 
@@ -0,0 +1,30 @@
1
+ [resuts]
2
+ f1 = 0.984128204164804
3
+ precision = 0.9842391985355154
4
+ Recall = 0.984132699154136
5
+ confusion_matrix = [ [ "0.12191329812026794", "0.0030832019843171745", "0.0", "0.0", "3.2940192140140753e-06", "0.0", "0.0", "0.0",], [ "0.0025874520926080563", "0.12195776737965712", "0.00030799079651031605", "2.799916331911964e-05", "3.2940192140140753e-06", "9.717356681341523e-05", "9.882057642042226e-06", "8.235048035035188e-06",], [ "0.0", "0.00028328565240521046", "0.12127919942157023", "0.0034373090498236876", "0.0", "0.0", "0.0", "0.0",], [ "0.0", "9.882057642042226e-06", "0.0007889176017563711", "0.12420099446440071", "0.0", "0.0", "0.0", "0.0",], [ "0.0", "0.0", "0.0", "0.0", "0.12499979412379912", "0.0", "0.0", "0.0",], [ "0.0", "5.2704307424225205e-05", "0.0", "0.0", "0.0", "0.12098438470191597", "0.003962705114458932", "0.0",], [ "0.0", "1.6470096070070377e-06", "0.0", "0.0", "0.0", "0.0012006700035081305", "0.123799124120291", "0.0",], [ "0.0", "1.6470096070070377e-06", "0.0", "0.0", "0.0", "0.0", "0.0", "0.12499814711419212",],]
6
+ fit_time = "46.44"
7
+
8
+ [properties]
9
+ box_size = 12
10
+ sample_size = 650000
11
+ test_sample_size_fraction = 0.1
12
+ categories = [ "white-noise", "continuum", "cosmic-ray", "emission", "doublet-em", "dead-pixel", "absorption", "doublet-abs",]
13
+ scale = "min-max-log"
14
+
15
+ [properties.estimator]
16
+ module = "sklearn.neural_network"
17
+ class = "MLPClassifier"
18
+
19
+ [properties.estimator_params]
20
+ hidden_layer_sizes = [ 256, 128, 64,]
21
+ activation = "relu"
22
+ solver = "adam"
23
+ learning_rate_init = 0.001
24
+ max_iter = 200
25
+ early_stopping = true
26
+ validation_fraction = 0.1
27
+ n_iter_no_change = 15
28
+ batch_size = 1024
29
+ random_state = 42
30
+ verbose = true
@@ -1,5 +1,5 @@
1
1
  import numpy as np
2
- from aspect.io import read_trained_model, DEFAULT_MODEL_ADDRESS, cfg, Aspect_Error
2
+ from aspect.io import read_trained_model, cfg, Aspect_Error, _MODEL_FOLDER
3
3
  from aspect.tools import monte_carlo_expansion, white_noise_scale, scale_min_max
4
4
  from aspect.plots import plot_comps_detect
5
5
  # from matplotlib import pyplot as plt
@@ -8,7 +8,7 @@ from pathlib import Path
8
8
 
9
9
  CHOICE_DM = np.array(cfg['decision_matrices']['choice'])
10
10
  TIME_DM = np.array(cfg['decision_matrices']['time'])
11
-
11
+ DEFAULT_MODEL_ADDRESS = _MODEL_FOLDER/cfg['models'][cfg['metadata']['default_model']]
12
12
 
13
13
  def flux_to_image(flux_array, approximation, model_2D):
14
14
 
@@ -164,7 +164,12 @@ class ModelManager:
164
164
 
165
165
  return
166
166
 
167
- def reload_model(self, model_address=None, n_jobs=None):
167
+ def reload_model(self, model_address=None, model_key=None, n_jobs=None):
168
+
169
+ # Use model address or model reference otherwise reload the model
170
+ if (model_address is None) and (model_key is not None):
171
+ assert model_key in cfg['models'], 'Input reference not found in aspect configuration'
172
+ model_address = _MODEL_FOLDER / cfg['models'][model_key]
168
173
 
169
174
  # Call the constructor again
170
175
  self.__init__(model_address, n_jobs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aspect-stable
3
- Version: 0.7.dev1
3
+ Version: 0.7.dev2
4
4
  Summary: Automatic SPEctra Components Tagging
5
5
  Author-email: Vital Fernández <vgf@stsci.edu>
6
6
  License-Expression: GPL-3.0-or-later
@@ -0,0 +1,22 @@
1
+ README.rst
2
+ pyproject.toml
3
+ src/aspect/__init__.py
4
+ src/aspect/aspect.toml
5
+ src/aspect/changelog.txt
6
+ src/aspect/io.py
7
+ src/aspect/plots.py
8
+ src/aspect/tools.py
9
+ src/aspect/trainer.py
10
+ src/aspect/workflow.py
11
+ src/aspect/models/classifier-v10-RF_min-max-log_12-pixels.joblib
12
+ src/aspect/models/classifier-v10-RF_min-max-log_12-pixels.toml
13
+ src/aspect/models/classifier-v12-MLP_min-max-log_12-pixels.joblib
14
+ src/aspect/models/classifier-v12-MLP_min-max-log_12-pixels.toml
15
+ src/aspect/models/classifier-v12-RF_min-max-log_12-pixels.joblib
16
+ src/aspect/models/classifier-v12-RF_min-max-log_12-pixels.toml
17
+ src/aspect_stable.egg-info/PKG-INFO
18
+ src/aspect_stable.egg-info/SOURCES.txt
19
+ src/aspect_stable.egg-info/dependency_links.txt
20
+ src/aspect_stable.egg-info/requires.txt
21
+ src/aspect_stable.egg-info/top_level.txt
22
+ tests/test_tools.py
@@ -1,20 +0,0 @@
1
- README.rst
2
- pyproject.toml
3
- src/aspect/__init__.py
4
- src/aspect/aspect.toml
5
- src/aspect/changelog.txt
6
- src/aspect/io.py
7
- src/aspect/plots.py
8
- src/aspect/tools.py
9
- src/aspect/trainer.py
10
- src/aspect/workflow.py
11
- src/aspect/models/aspect_min-max-log_12_pixels_v10_model.joblib
12
- src/aspect/models/aspect_min-max-log_12_pixels_v10_model.toml
13
- src/aspect/models/aspect_min-max-log_12_pixels_v12_randomforest_model.joblib
14
- src/aspect/models/aspect_min-max-log_12_pixels_v12_randomforest_model.toml
15
- src/aspect_stable.egg-info/PKG-INFO
16
- src/aspect_stable.egg-info/SOURCES.txt
17
- src/aspect_stable.egg-info/dependency_links.txt
18
- src/aspect_stable.egg-info/requires.txt
19
- src/aspect_stable.egg-info/top_level.txt
20
- tests/test_tools.py