setiastrosuitepro 1.6.0__py3-none-any.whl
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.
Potentially problematic release.
This version of setiastrosuitepro might be problematic. Click here for more details.
- setiastro/__init__.py +2 -0
- setiastro/saspro/__init__.py +20 -0
- setiastro/saspro/__main__.py +784 -0
- setiastro/saspro/_generated/__init__.py +7 -0
- setiastro/saspro/_generated/build_info.py +2 -0
- setiastro/saspro/abe.py +1295 -0
- setiastro/saspro/abe_preset.py +196 -0
- setiastro/saspro/aberration_ai.py +694 -0
- setiastro/saspro/aberration_ai_preset.py +224 -0
- setiastro/saspro/accel_installer.py +218 -0
- setiastro/saspro/accel_workers.py +30 -0
- setiastro/saspro/add_stars.py +621 -0
- setiastro/saspro/astrobin_exporter.py +1007 -0
- setiastro/saspro/astrospike.py +153 -0
- setiastro/saspro/astrospike_python.py +1839 -0
- setiastro/saspro/autostretch.py +196 -0
- setiastro/saspro/backgroundneutral.py +560 -0
- setiastro/saspro/batch_convert.py +325 -0
- setiastro/saspro/batch_renamer.py +519 -0
- setiastro/saspro/blemish_blaster.py +488 -0
- setiastro/saspro/blink_comparator_pro.py +2923 -0
- setiastro/saspro/bundles.py +61 -0
- setiastro/saspro/bundles_dock.py +114 -0
- setiastro/saspro/cheat_sheet.py +168 -0
- setiastro/saspro/clahe.py +342 -0
- setiastro/saspro/comet_stacking.py +1377 -0
- setiastro/saspro/config.py +38 -0
- setiastro/saspro/config_bootstrap.py +40 -0
- setiastro/saspro/config_manager.py +316 -0
- setiastro/saspro/continuum_subtract.py +1617 -0
- setiastro/saspro/convo.py +1397 -0
- setiastro/saspro/convo_preset.py +414 -0
- setiastro/saspro/copyastro.py +187 -0
- setiastro/saspro/cosmicclarity.py +1564 -0
- setiastro/saspro/cosmicclarity_preset.py +407 -0
- setiastro/saspro/crop_dialog_pro.py +948 -0
- setiastro/saspro/crop_preset.py +189 -0
- setiastro/saspro/curve_editor_pro.py +2544 -0
- setiastro/saspro/curves_preset.py +375 -0
- setiastro/saspro/debayer.py +670 -0
- setiastro/saspro/debug_utils.py +29 -0
- setiastro/saspro/dnd_mime.py +35 -0
- setiastro/saspro/doc_manager.py +2634 -0
- setiastro/saspro/exoplanet_detector.py +2166 -0
- setiastro/saspro/file_utils.py +284 -0
- setiastro/saspro/fitsmodifier.py +744 -0
- setiastro/saspro/free_torch_memory.py +48 -0
- setiastro/saspro/frequency_separation.py +1343 -0
- setiastro/saspro/function_bundle.py +1594 -0
- setiastro/saspro/ghs_dialog_pro.py +660 -0
- setiastro/saspro/ghs_preset.py +284 -0
- setiastro/saspro/graxpert.py +634 -0
- setiastro/saspro/graxpert_preset.py +287 -0
- setiastro/saspro/gui/__init__.py +0 -0
- setiastro/saspro/gui/main_window.py +8494 -0
- setiastro/saspro/gui/mixins/__init__.py +33 -0
- setiastro/saspro/gui/mixins/dock_mixin.py +263 -0
- setiastro/saspro/gui/mixins/file_mixin.py +445 -0
- setiastro/saspro/gui/mixins/geometry_mixin.py +403 -0
- setiastro/saspro/gui/mixins/header_mixin.py +441 -0
- setiastro/saspro/gui/mixins/mask_mixin.py +421 -0
- setiastro/saspro/gui/mixins/menu_mixin.py +361 -0
- setiastro/saspro/gui/mixins/theme_mixin.py +367 -0
- setiastro/saspro/gui/mixins/toolbar_mixin.py +1324 -0
- setiastro/saspro/gui/mixins/update_mixin.py +309 -0
- setiastro/saspro/gui/mixins/view_mixin.py +435 -0
- setiastro/saspro/halobgon.py +462 -0
- setiastro/saspro/header_viewer.py +445 -0
- setiastro/saspro/headless_utils.py +88 -0
- setiastro/saspro/histogram.py +753 -0
- setiastro/saspro/history_explorer.py +939 -0
- setiastro/saspro/image_combine.py +414 -0
- setiastro/saspro/image_peeker_pro.py +1596 -0
- setiastro/saspro/imageops/__init__.py +37 -0
- setiastro/saspro/imageops/mdi_snap.py +292 -0
- setiastro/saspro/imageops/scnr.py +36 -0
- setiastro/saspro/imageops/starbasedwhitebalance.py +210 -0
- setiastro/saspro/imageops/stretch.py +244 -0
- setiastro/saspro/isophote.py +1179 -0
- setiastro/saspro/layers.py +208 -0
- setiastro/saspro/layers_dock.py +714 -0
- setiastro/saspro/lazy_imports.py +193 -0
- setiastro/saspro/legacy/__init__.py +2 -0
- setiastro/saspro/legacy/image_manager.py +2226 -0
- setiastro/saspro/legacy/numba_utils.py +3659 -0
- setiastro/saspro/legacy/xisf.py +1071 -0
- setiastro/saspro/linear_fit.py +534 -0
- setiastro/saspro/live_stacking.py +1830 -0
- setiastro/saspro/log_bus.py +5 -0
- setiastro/saspro/logging_config.py +460 -0
- setiastro/saspro/luminancerecombine.py +309 -0
- setiastro/saspro/main_helpers.py +201 -0
- setiastro/saspro/mask_creation.py +928 -0
- setiastro/saspro/masks_core.py +56 -0
- setiastro/saspro/mdi_widgets.py +353 -0
- setiastro/saspro/memory_utils.py +666 -0
- setiastro/saspro/metadata_patcher.py +75 -0
- setiastro/saspro/mfdeconv.py +3826 -0
- setiastro/saspro/mfdeconv_earlystop.py +71 -0
- setiastro/saspro/mfdeconvcudnn.py +3263 -0
- setiastro/saspro/mfdeconvsport.py +2382 -0
- setiastro/saspro/minorbodycatalog.py +567 -0
- setiastro/saspro/morphology.py +382 -0
- setiastro/saspro/multiscale_decomp.py +1290 -0
- setiastro/saspro/nbtorgb_stars.py +531 -0
- setiastro/saspro/numba_utils.py +3044 -0
- setiastro/saspro/numba_warmup.py +141 -0
- setiastro/saspro/ops/__init__.py +9 -0
- setiastro/saspro/ops/command_help_dialog.py +623 -0
- setiastro/saspro/ops/command_runner.py +217 -0
- setiastro/saspro/ops/commands.py +1594 -0
- setiastro/saspro/ops/script_editor.py +1102 -0
- setiastro/saspro/ops/scripts.py +1413 -0
- setiastro/saspro/ops/settings.py +560 -0
- setiastro/saspro/parallel_utils.py +554 -0
- setiastro/saspro/pedestal.py +121 -0
- setiastro/saspro/perfect_palette_picker.py +1053 -0
- setiastro/saspro/pipeline.py +110 -0
- setiastro/saspro/pixelmath.py +1600 -0
- setiastro/saspro/plate_solver.py +2435 -0
- setiastro/saspro/project_io.py +797 -0
- setiastro/saspro/psf_utils.py +136 -0
- setiastro/saspro/psf_viewer.py +549 -0
- setiastro/saspro/pyi_rthook_astroquery.py +95 -0
- setiastro/saspro/remove_green.py +314 -0
- setiastro/saspro/remove_stars.py +1625 -0
- setiastro/saspro/remove_stars_preset.py +404 -0
- setiastro/saspro/resources.py +472 -0
- setiastro/saspro/rgb_combination.py +207 -0
- setiastro/saspro/rgb_extract.py +19 -0
- setiastro/saspro/rgbalign.py +723 -0
- setiastro/saspro/runtime_imports.py +7 -0
- setiastro/saspro/runtime_torch.py +754 -0
- setiastro/saspro/save_options.py +72 -0
- setiastro/saspro/selective_color.py +1552 -0
- setiastro/saspro/sfcc.py +1425 -0
- setiastro/saspro/shortcuts.py +2807 -0
- setiastro/saspro/signature_insert.py +1099 -0
- setiastro/saspro/stacking_suite.py +17712 -0
- setiastro/saspro/star_alignment.py +7420 -0
- setiastro/saspro/star_alignment_preset.py +329 -0
- setiastro/saspro/star_metrics.py +49 -0
- setiastro/saspro/star_spikes.py +681 -0
- setiastro/saspro/star_stretch.py +470 -0
- setiastro/saspro/stat_stretch.py +502 -0
- setiastro/saspro/status_log_dock.py +78 -0
- setiastro/saspro/subwindow.py +3267 -0
- setiastro/saspro/supernovaasteroidhunter.py +1712 -0
- setiastro/saspro/swap_manager.py +99 -0
- setiastro/saspro/torch_backend.py +89 -0
- setiastro/saspro/torch_rejection.py +434 -0
- setiastro/saspro/view_bundle.py +1555 -0
- setiastro/saspro/wavescale_hdr.py +624 -0
- setiastro/saspro/wavescale_hdr_preset.py +100 -0
- setiastro/saspro/wavescalede.py +657 -0
- setiastro/saspro/wavescalede_preset.py +228 -0
- setiastro/saspro/wcs_update.py +374 -0
- setiastro/saspro/whitebalance.py +456 -0
- setiastro/saspro/widgets/__init__.py +48 -0
- setiastro/saspro/widgets/common_utilities.py +305 -0
- setiastro/saspro/widgets/graphics_views.py +122 -0
- setiastro/saspro/widgets/image_utils.py +518 -0
- setiastro/saspro/widgets/preview_dialogs.py +280 -0
- setiastro/saspro/widgets/spinboxes.py +275 -0
- setiastro/saspro/widgets/themed_buttons.py +13 -0
- setiastro/saspro/widgets/wavelet_utils.py +299 -0
- setiastro/saspro/window_shelf.py +185 -0
- setiastro/saspro/xisf.py +1123 -0
- setiastrosuitepro-1.6.0.dist-info/METADATA +266 -0
- setiastrosuitepro-1.6.0.dist-info/RECORD +174 -0
- setiastrosuitepro-1.6.0.dist-info/WHEEL +4 -0
- setiastrosuitepro-1.6.0.dist-info/entry_points.txt +6 -0
- setiastrosuitepro-1.6.0.dist-info/licenses/LICENSE +674 -0
- setiastrosuitepro-1.6.0.dist-info/licenses/license.txt +2580 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# pro/numba_warmup.py
|
|
2
|
+
"""
|
|
3
|
+
Background Numba JIT warmup module.
|
|
4
|
+
|
|
5
|
+
Triggers compilation of frequently-used Numba functions in a background thread
|
|
6
|
+
after the main UI has loaded. This ensures the first actual use of these
|
|
7
|
+
functions is fast, while not blocking the application startup.
|
|
8
|
+
"""
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
import threading
|
|
11
|
+
import numpy as np
|
|
12
|
+
import logging
|
|
13
|
+
|
|
14
|
+
_warmup_thread: threading.Thread | None = None
|
|
15
|
+
_warmup_done = threading.Event()
|
|
16
|
+
|
|
17
|
+
def _do_warmup():
|
|
18
|
+
"""
|
|
19
|
+
Compile critical numba functions with small dummy arrays.
|
|
20
|
+
This runs in a background thread after the UI is visible.
|
|
21
|
+
|
|
22
|
+
Expanded to cover 25+ frequently-used functions for:
|
|
23
|
+
- Image blending operations (7 functions)
|
|
24
|
+
- Geometric transforms (6 functions)
|
|
25
|
+
- Image processing (5 functions)
|
|
26
|
+
- Statistical operations (5 functions)
|
|
27
|
+
- Calibration (2+ functions)
|
|
28
|
+
"""
|
|
29
|
+
try:
|
|
30
|
+
# Import numba functions - expanded set
|
|
31
|
+
from setiastro.saspro.legacy.numba_utils import (
|
|
32
|
+
# Blending operations (7)
|
|
33
|
+
blend_add_numba,
|
|
34
|
+
blend_subtract_numba,
|
|
35
|
+
blend_multiply_numba,
|
|
36
|
+
blend_divide_numba,
|
|
37
|
+
blend_screen_numba,
|
|
38
|
+
blend_overlay_numba,
|
|
39
|
+
blend_difference_numba,
|
|
40
|
+
# Geometric transforms (6)
|
|
41
|
+
rescale_image_numba,
|
|
42
|
+
flip_horizontal_numba,
|
|
43
|
+
flip_vertical_numba,
|
|
44
|
+
rotate_180_numba,
|
|
45
|
+
bin2x2_numba,
|
|
46
|
+
apply_rotation_numba,
|
|
47
|
+
# Image processing (5)
|
|
48
|
+
invert_image_numba,
|
|
49
|
+
apply_flat_division_numba,
|
|
50
|
+
subtract_dark_numba,
|
|
51
|
+
apply_gain_numba,
|
|
52
|
+
clip_image_numba,
|
|
53
|
+
# Statistical operations (5)
|
|
54
|
+
kappa_sigma_clip_weighted,
|
|
55
|
+
windsorized_sigma_clip_weighted,
|
|
56
|
+
percentile_clip_weighted,
|
|
57
|
+
median_filter_numba,
|
|
58
|
+
apply_color_correction_numba,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
# Create small dummy arrays for warmup
|
|
62
|
+
dummy_rgb = np.random.rand(32, 32, 3).astype(np.float32)
|
|
63
|
+
dummy_mono = np.random.rand(32, 32).astype(np.float32)
|
|
64
|
+
dummy_3d_mono = np.random.rand(8, 32, 32).astype(np.float32) # Stack of 8 frames
|
|
65
|
+
dummy_3d_rgb = np.random.rand(8, 32, 32, 3).astype(np.float32) # Stack of 8 RGB frames
|
|
66
|
+
dummy_4d = np.random.rand(4, 2, 32, 32).astype(np.float32) # 4 frames, 2 channels
|
|
67
|
+
|
|
68
|
+
# Warm up blending operations
|
|
69
|
+
warmup_funcs = [
|
|
70
|
+
(blend_add_numba, [dummy_rgb, dummy_rgb, 0.5]),
|
|
71
|
+
(blend_subtract_numba, [dummy_rgb, dummy_rgb, 0.5]),
|
|
72
|
+
(blend_multiply_numba, [dummy_rgb, dummy_rgb, 0.5]),
|
|
73
|
+
(blend_divide_numba, [dummy_rgb, dummy_rgb, 0.5]),
|
|
74
|
+
(blend_screen_numba, [dummy_rgb, dummy_rgb, 0.5]),
|
|
75
|
+
(blend_overlay_numba, [dummy_rgb, dummy_rgb, 0.5]),
|
|
76
|
+
(blend_difference_numba, [dummy_rgb, dummy_rgb, 0.5]),
|
|
77
|
+
# Geometric transforms
|
|
78
|
+
(rescale_image_numba, [dummy_rgb, 0.5]),
|
|
79
|
+
(flip_horizontal_numba, [dummy_rgb]),
|
|
80
|
+
(flip_vertical_numba, [dummy_rgb]),
|
|
81
|
+
(rotate_180_numba, [dummy_mono]),
|
|
82
|
+
(bin2x2_numba, [dummy_mono]),
|
|
83
|
+
# Image processing
|
|
84
|
+
(invert_image_numba, [dummy_rgb]),
|
|
85
|
+
(apply_flat_division_numba, [dummy_rgb, dummy_rgb]),
|
|
86
|
+
(subtract_dark_numba, [dummy_mono, dummy_mono]),
|
|
87
|
+
(apply_gain_numba, [dummy_mono, 1.0]),
|
|
88
|
+
(clip_image_numba, [dummy_rgb, 0.0, 1.0]),
|
|
89
|
+
# Statistical operations (with multiple frames)
|
|
90
|
+
(kappa_sigma_clip_weighted, [dummy_3d_mono, np.ones(8)]),
|
|
91
|
+
(windsorized_sigma_clip_weighted, [dummy_3d_mono, np.ones(8)]),
|
|
92
|
+
(percentile_clip_weighted, [dummy_3d_mono, 50.0]),
|
|
93
|
+
(median_filter_numba, [dummy_mono, 3]),
|
|
94
|
+
(apply_color_correction_numba, [dummy_rgb, dummy_rgb]),
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
for func, args in warmup_funcs:
|
|
98
|
+
try:
|
|
99
|
+
_ = func(*args)
|
|
100
|
+
except Exception:
|
|
101
|
+
# Silently skip functions that may not be available or fail
|
|
102
|
+
pass
|
|
103
|
+
|
|
104
|
+
logging.debug("Numba warmup completed successfully")
|
|
105
|
+
|
|
106
|
+
except Exception as e:
|
|
107
|
+
logging.debug(f"Numba warmup failed (non-critical): {e}")
|
|
108
|
+
finally:
|
|
109
|
+
_warmup_done.set()
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def start_background_warmup():
|
|
113
|
+
"""
|
|
114
|
+
Start the Numba warmup in a background thread.
|
|
115
|
+
Call this after the main window is visible.
|
|
116
|
+
"""
|
|
117
|
+
global _warmup_thread
|
|
118
|
+
|
|
119
|
+
if _warmup_thread is not None and _warmup_thread.is_alive():
|
|
120
|
+
return # Already running
|
|
121
|
+
|
|
122
|
+
_warmup_thread = threading.Thread(target=_do_warmup, daemon=True, name="NumbaWarmup")
|
|
123
|
+
_warmup_thread.start()
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def wait_for_warmup(timeout: float = 5.0) -> bool:
|
|
127
|
+
"""
|
|
128
|
+
Wait for the warmup to complete.
|
|
129
|
+
|
|
130
|
+
Args:
|
|
131
|
+
timeout: Maximum time to wait in seconds.
|
|
132
|
+
|
|
133
|
+
Returns:
|
|
134
|
+
True if warmup completed, False if timeout.
|
|
135
|
+
"""
|
|
136
|
+
return _warmup_done.wait(timeout=timeout)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def is_warmup_done() -> bool:
|
|
140
|
+
"""Check if warmup has completed."""
|
|
141
|
+
return _warmup_done.is_set()
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Seti Astro Suite Pro - Operations and command framework.
|
|
3
|
+
|
|
4
|
+
This package contains:
|
|
5
|
+
- Command execution framework (command_runner, commands)
|
|
6
|
+
- Script management system (scripts, script_editor)
|
|
7
|
+
- Settings and help dialogs (settings, command_help_dialog)
|
|
8
|
+
"""
|
|
9
|
+
|