setiastrosuitepro 1.7.1.post2__py3-none-any.whl → 1.7.3__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/images/3dplanet.png +0 -0
- setiastro/saspro/__init__.py +9 -8
- setiastro/saspro/__main__.py +326 -285
- setiastro/saspro/_generated/build_info.py +2 -2
- setiastro/saspro/doc_manager.py +4 -1
- setiastro/saspro/gui/main_window.py +41 -2
- setiastro/saspro/gui/mixins/file_mixin.py +6 -2
- setiastro/saspro/gui/mixins/menu_mixin.py +1 -0
- setiastro/saspro/gui/mixins/toolbar_mixin.py +8 -1
- setiastro/saspro/imageops/serloader.py +101 -17
- setiastro/saspro/layers.py +186 -10
- setiastro/saspro/layers_dock.py +198 -5
- setiastro/saspro/legacy/image_manager.py +10 -4
- setiastro/saspro/planetprojection.py +3854 -0
- setiastro/saspro/resources.py +2 -0
- setiastro/saspro/save_options.py +45 -13
- setiastro/saspro/ser_stack_config.py +21 -1
- setiastro/saspro/ser_stacker.py +8 -2
- setiastro/saspro/ser_stacker_dialog.py +37 -10
- setiastro/saspro/ser_tracking.py +57 -35
- setiastro/saspro/serviewer.py +164 -16
- setiastro/saspro/subwindow.py +36 -1
- {setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/METADATA +1 -1
- {setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/RECORD +28 -26
- {setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/WHEEL +0 -0
- {setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/entry_points.txt +0 -0
- {setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/licenses/LICENSE +0 -0
- {setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/licenses/license.txt +0 -0
setiastro/saspro/serviewer.py
CHANGED
|
@@ -9,7 +9,7 @@ from PyQt6.QtGui import QImage, QPixmap, QPainter, QPen, QColor
|
|
|
9
9
|
from PyQt6.QtWidgets import (
|
|
10
10
|
QDialog, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QFileDialog,
|
|
11
11
|
QScrollArea, QSlider, QCheckBox, QGroupBox, QFormLayout, QSpinBox,
|
|
12
|
-
QMessageBox, QRubberBand, QComboBox, QDoubleSpinBox
|
|
12
|
+
QMessageBox, QRubberBand, QComboBox, QDoubleSpinBox, QWidget
|
|
13
13
|
)
|
|
14
14
|
|
|
15
15
|
from setiastro.saspro.imageops.serloader import open_planetary_source, PlanetaryFrameSource
|
|
@@ -323,9 +323,80 @@ class SERViewer(QDialog):
|
|
|
323
323
|
|
|
324
324
|
self.btn_stack = QPushButton("Open Stacker…", self)
|
|
325
325
|
self.btn_stack.setEnabled(False) # enabled once SER loaded
|
|
326
|
+
self.chk_planet_norm = QCheckBox("Normalize for planetary centroid detect")
|
|
327
|
+
self.chk_planet_norm.setChecked(True)
|
|
328
|
+
self.chk_planet_norm.setToolTip("Detection-only normalization (does not change stacking pixels). Helps dim planets.")
|
|
329
|
+
|
|
330
|
+
self.spin_planet_thresh = QDoubleSpinBox()
|
|
331
|
+
self.spin_planet_thresh.setRange(50.0, 99.9)
|
|
332
|
+
self.spin_planet_thresh.setDecimals(1)
|
|
333
|
+
self.spin_planet_thresh.setSingleStep(0.5)
|
|
334
|
+
self.spin_planet_thresh.setValue(92.0)
|
|
335
|
+
self.spin_planet_thresh.setToolTip("Percentile used to threshold the blob for centroid detection.")
|
|
336
|
+
self.spin_planet_min = QDoubleSpinBox()
|
|
337
|
+
self.spin_planet_min.setRange(0.0, 0.5) # abs floor in [0..1]
|
|
338
|
+
self.spin_planet_min.setDecimals(3)
|
|
339
|
+
self.spin_planet_min.setSingleStep(0.005)
|
|
340
|
+
self.spin_planet_min.setValue(0.02)
|
|
341
|
+
self.spin_planet_min.setToolTip(
|
|
342
|
+
"Minimum normalized intensity (0..1) allowed for detection thresholding.\n"
|
|
343
|
+
"If percentile threshold is too low on dim planets, this prevents the mask from vanishing.\n"
|
|
344
|
+
"Typical: 0.01–0.05."
|
|
345
|
+
)
|
|
346
|
+
|
|
347
|
+
self.spin_planet_smooth = QDoubleSpinBox()
|
|
348
|
+
self.spin_planet_smooth.setRange(0.0, 10.0)
|
|
349
|
+
self.spin_planet_smooth.setDecimals(2)
|
|
350
|
+
self.spin_planet_smooth.setSingleStep(0.25)
|
|
351
|
+
self.spin_planet_smooth.setValue(1.5)
|
|
352
|
+
self.spin_planet_smooth.setToolTip("Gaussian blur sigma used before thresholding. 1.0–2.0 is typical.")
|
|
353
|
+
|
|
354
|
+
self.spin_norm_lo = QDoubleSpinBox(); self.spin_norm_lo.setRange(0.0, 20.0); self.spin_norm_lo.setValue(1.0)
|
|
355
|
+
self.spin_norm_hi = QDoubleSpinBox(); self.spin_norm_hi.setRange(80.0, 100.0); self.spin_norm_hi.setValue(99.5)
|
|
356
|
+
|
|
357
|
+
# -----------------------------
|
|
358
|
+
# Advanced detection settings
|
|
359
|
+
# -----------------------------
|
|
360
|
+
adv = QGroupBox("Advanced detection settings", self)
|
|
361
|
+
adv.setCheckable(True)
|
|
362
|
+
adv.setChecked(False)
|
|
363
|
+
|
|
364
|
+
adv_body = QWidget(adv) # <- content container
|
|
365
|
+
adv_form = QFormLayout(adv_body)
|
|
366
|
+
adv_form.setContentsMargins(8, 8, 8, 8)
|
|
367
|
+
adv_form.setVerticalSpacing(6)
|
|
368
|
+
adv_form.setHorizontalSpacing(10)
|
|
369
|
+
|
|
370
|
+
adv_form.addRow("", self.chk_planet_norm)
|
|
371
|
+
adv_form.addRow("Planet detect thresh (%)", self.spin_planet_thresh)
|
|
372
|
+
adv_form.addRow("Norm low pct", self.spin_norm_lo)
|
|
373
|
+
adv_form.addRow("Norm high pct", self.spin_norm_hi)
|
|
374
|
+
adv_form.addRow("Planet min val", self.spin_planet_min)
|
|
375
|
+
adv_form.addRow("Planet smooth σ", self.spin_planet_smooth)
|
|
376
|
+
|
|
377
|
+
# Put the body into the groupbox layout
|
|
378
|
+
adv_layout = QVBoxLayout(adv)
|
|
379
|
+
adv_layout.setContentsMargins(8, 8, 8, 8)
|
|
380
|
+
adv_layout.addWidget(adv_body)
|
|
381
|
+
|
|
382
|
+
# show/hide only the body
|
|
383
|
+
adv_body.setVisible(False)
|
|
384
|
+
adv.toggled.connect(adv_body.setVisible)
|
|
326
385
|
|
|
327
386
|
sform.addRow("Tracking", self.cmb_track)
|
|
328
387
|
sform.addRow("Keep %", self.spin_keep)
|
|
388
|
+
|
|
389
|
+
# instead of adding the detection rows directly:
|
|
390
|
+
# sform.addRow("", self.chk_planet_norm)
|
|
391
|
+
# sform.addRow("Planet detect thresh (%)", self.spin_planet_thresh)
|
|
392
|
+
# sform.addRow("Norm low pct", self.spin_norm_lo)
|
|
393
|
+
# sform.addRow("Norm high pct", self.spin_norm_hi)
|
|
394
|
+
# sform.addRow("Planet min val", self.spin_planet_min)
|
|
395
|
+
# sform.addRow("Planet smooth σ", self.spin_planet_smooth)
|
|
396
|
+
|
|
397
|
+
# add the advanced groupbox as a single row spanning the form
|
|
398
|
+
sform.addRow(adv)
|
|
399
|
+
|
|
329
400
|
sform.addRow("", self.lbl_anchor)
|
|
330
401
|
sform.addRow("", self.btn_stack)
|
|
331
402
|
|
|
@@ -354,7 +425,8 @@ class SERViewer(QDialog):
|
|
|
354
425
|
w.toggled.connect(self._refresh)
|
|
355
426
|
if hasattr(w, "valueChanged"):
|
|
356
427
|
w.valueChanged.connect(self._refresh)
|
|
357
|
-
|
|
428
|
+
for s in (self.spin_x, self.spin_y, self.spin_w, self.spin_h):
|
|
429
|
+
s.valueChanged.connect(self._sanitize_roi_controls)
|
|
358
430
|
self.cmb_track.currentIndexChanged.connect(self._on_track_mode_changed)
|
|
359
431
|
self.btn_stack.clicked.connect(self._open_stacker_clicked)
|
|
360
432
|
self.cmb_bayer.currentIndexChanged.connect(self._refresh)
|
|
@@ -746,16 +818,23 @@ class SERViewer(QDialog):
|
|
|
746
818
|
x, y, w, h = rect_disp
|
|
747
819
|
x_full = int(rx + x)
|
|
748
820
|
y_full = int(ry + y)
|
|
821
|
+
w = int(w)
|
|
822
|
+
h = int(h)
|
|
823
|
+
|
|
824
|
+
x_full, y_full, w, h = self._even_roi(x_full, y_full, w, h)
|
|
825
|
+
|
|
749
826
|
self.spin_x.setValue(x_full)
|
|
750
827
|
self.spin_y.setValue(y_full)
|
|
751
|
-
self.spin_w.setValue(
|
|
752
|
-
self.spin_h.setValue(
|
|
828
|
+
self.spin_w.setValue(w)
|
|
829
|
+
self.spin_h.setValue(h)
|
|
753
830
|
else:
|
|
754
831
|
x, y, w, h = rect_disp
|
|
755
|
-
self.
|
|
756
|
-
|
|
757
|
-
self.
|
|
758
|
-
self.
|
|
832
|
+
x, y, w, h = self._even_roi(int(x), int(y), int(w), int(h))
|
|
833
|
+
|
|
834
|
+
self.spin_x.setValue(x)
|
|
835
|
+
self.spin_y.setValue(y)
|
|
836
|
+
self.spin_w.setValue(w)
|
|
837
|
+
self.spin_h.setValue(h)
|
|
759
838
|
|
|
760
839
|
self.chk_roi.setChecked(True)
|
|
761
840
|
self._refresh()
|
|
@@ -844,10 +923,16 @@ class SERViewer(QDialog):
|
|
|
844
923
|
track_mode=self._track_mode_value(),
|
|
845
924
|
surface_anchor=anchor,
|
|
846
925
|
debayer=debayer,
|
|
847
|
-
bayer_pattern=bp,
|
|
926
|
+
bayer_pattern=bp,
|
|
848
927
|
keep_percent=float(self.spin_keep.value()),
|
|
849
|
-
)
|
|
850
928
|
|
|
929
|
+
# ✅ planetary detect knobs
|
|
930
|
+
planet_min_val=float(self.spin_planet_min.value()),
|
|
931
|
+
planet_use_norm=bool(self.chk_planet_norm.isChecked()),
|
|
932
|
+
planet_norm_hi_pct=float(self.spin_norm_hi.value()), # <-- you already have this
|
|
933
|
+
planet_thresh_pct=float(self.spin_planet_thresh.value()),
|
|
934
|
+
planet_smooth_sigma=float(self.spin_planet_smooth.value()),
|
|
935
|
+
)
|
|
851
936
|
|
|
852
937
|
dlg.stackProduced.connect(self._on_stacker_produced)
|
|
853
938
|
dlg.show()
|
|
@@ -1090,10 +1175,10 @@ class SERViewer(QDialog):
|
|
|
1090
1175
|
dlg.setDirectory(start_dir)
|
|
1091
1176
|
dlg.setFileMode(QFileDialog.FileMode.ExistingFiles)
|
|
1092
1177
|
dlg.setNameFilters([
|
|
1093
|
-
"Planetary Sources (*.ser *.avi *.mp4 *.mov *.mkv *.png *.tif *.tiff *.jpg *.jpeg *.bmp *.webp)",
|
|
1178
|
+
"Planetary Sources (*.ser *.avi *.mp4 *.mov *.mkv *.png *.tif *.tiff *.jpg *.jpeg *.bmp *.webp *.fit *.fits)",
|
|
1094
1179
|
"SER Videos (*.ser)",
|
|
1095
1180
|
"AVI/Video (*.avi *.mp4 *.mov *.mkv)",
|
|
1096
|
-
"Images (*.png *.tif *.tiff *.jpg *.jpeg *.bmp *.webp)",
|
|
1181
|
+
"Images (*.png *.tif *.tiff *.jpg *.jpeg *.bmp *.webp *.fit *.fits)",
|
|
1097
1182
|
"All Files (*)",
|
|
1098
1183
|
])
|
|
1099
1184
|
|
|
@@ -1217,12 +1302,65 @@ class SERViewer(QDialog):
|
|
|
1217
1302
|
self._refresh()
|
|
1218
1303
|
|
|
1219
1304
|
# ---------------- rendering ----------------
|
|
1305
|
+
def _even_roi(self, x: int, y: int, w: int, h: int):
|
|
1306
|
+
"""Force ROI x,y,w,h to even numbers (preserves Bayer phase)."""
|
|
1307
|
+
if self.reader is None:
|
|
1308
|
+
return x, y, w, h
|
|
1309
|
+
|
|
1310
|
+
m = self.reader.meta
|
|
1311
|
+
W = int(m.width)
|
|
1312
|
+
H = int(m.height)
|
|
1313
|
+
|
|
1314
|
+
# Clamp first
|
|
1315
|
+
x = max(0, min(W - 1, int(x)))
|
|
1316
|
+
y = max(0, min(H - 1, int(y)))
|
|
1317
|
+
w = max(1, int(w))
|
|
1318
|
+
h = max(1, int(h))
|
|
1319
|
+
|
|
1320
|
+
# Make origin even (keep Bayer phase)
|
|
1321
|
+
x &= ~1
|
|
1322
|
+
y &= ~1
|
|
1323
|
+
|
|
1324
|
+
# Make size even
|
|
1325
|
+
w &= ~1
|
|
1326
|
+
h &= ~1
|
|
1327
|
+
if w < 2: w = 2
|
|
1328
|
+
if h < 2: h = 2
|
|
1329
|
+
|
|
1330
|
+
# Fit inside image (keep evenness)
|
|
1331
|
+
if x + w > W:
|
|
1332
|
+
w = (W - x) & ~1
|
|
1333
|
+
if w < 2:
|
|
1334
|
+
x = max(0, (W - 2) & ~1)
|
|
1335
|
+
w = 2
|
|
1336
|
+
if y + h > H:
|
|
1337
|
+
h = (H - y) & ~1
|
|
1338
|
+
if h < 2:
|
|
1339
|
+
y = max(0, (H - 2) & ~1)
|
|
1340
|
+
h = 2
|
|
1341
|
+
|
|
1342
|
+
return int(x), int(y), int(w), int(h)
|
|
1343
|
+
|
|
1344
|
+
def _sanitize_roi_controls(self):
|
|
1345
|
+
if self.reader is None:
|
|
1346
|
+
return
|
|
1347
|
+
x = int(self.spin_x.value()); y = int(self.spin_y.value())
|
|
1348
|
+
w = int(self.spin_w.value()); h = int(self.spin_h.value())
|
|
1349
|
+
ex, ey, ew, eh = self._even_roi(x, y, w, h)
|
|
1350
|
+
if (ex, ey, ew, eh) != (x, y, w, h):
|
|
1351
|
+
self.spin_x.blockSignals(True); self.spin_y.blockSignals(True)
|
|
1352
|
+
self.spin_w.blockSignals(True); self.spin_h.blockSignals(True)
|
|
1353
|
+
self.spin_x.setValue(ex); self.spin_y.setValue(ey)
|
|
1354
|
+
self.spin_w.setValue(ew); self.spin_h.setValue(eh)
|
|
1355
|
+
self.spin_x.blockSignals(False); self.spin_y.blockSignals(False)
|
|
1356
|
+
self.spin_w.blockSignals(False); self.spin_h.blockSignals(False)
|
|
1220
1357
|
|
|
1221
1358
|
def _roi_tuple(self):
|
|
1222
1359
|
if not self.chk_roi.isChecked():
|
|
1223
1360
|
return None
|
|
1224
|
-
|
|
1225
|
-
|
|
1361
|
+
x, y, w, h = (int(self.spin_x.value()), int(self.spin_y.value()),
|
|
1362
|
+
int(self.spin_w.value()), int(self.spin_h.value()))
|
|
1363
|
+
return self._even_roi(x, y, w, h)
|
|
1226
1364
|
|
|
1227
1365
|
def _on_trim_changed(self):
|
|
1228
1366
|
if self.reader is None:
|
|
@@ -1542,18 +1680,28 @@ class SERViewer(QDialog):
|
|
|
1542
1680
|
|
|
1543
1681
|
def _to_qimage(self, arr: np.ndarray) -> QImage:
|
|
1544
1682
|
a = np.clip(arr, 0.0, 1.0)
|
|
1683
|
+
|
|
1545
1684
|
if a.ndim == 2:
|
|
1546
|
-
u = (a * 255.0).astype(np.uint8)
|
|
1685
|
+
u = (a * 255.0).astype(np.uint8, copy=False)
|
|
1686
|
+
# ✅ FITS/memmap correction: ensure C-contiguous rows
|
|
1687
|
+
if not u.flags["C_CONTIGUOUS"]:
|
|
1688
|
+
u = np.ascontiguousarray(u)
|
|
1689
|
+
|
|
1547
1690
|
h, w = u.shape
|
|
1548
1691
|
return QImage(u.data, w, h, w, QImage.Format.Format_Grayscale8).copy()
|
|
1549
1692
|
|
|
1550
1693
|
if a.ndim == 3 and a.shape[2] >= 3:
|
|
1551
|
-
u = (a[..., :3] * 255.0).astype(np.uint8)
|
|
1694
|
+
u = (a[..., :3] * 255.0).astype(np.uint8, copy=False)
|
|
1695
|
+
# ✅ FITS/memmap correction: ensure C-contiguous packed RGB
|
|
1696
|
+
if not u.flags["C_CONTIGUOUS"]:
|
|
1697
|
+
u = np.ascontiguousarray(u)
|
|
1698
|
+
|
|
1552
1699
|
h, w, _ = u.shape
|
|
1553
1700
|
return QImage(u.data, w, h, w * 3, QImage.Format.Format_RGB888).copy()
|
|
1554
1701
|
|
|
1555
1702
|
raise ValueError(f"Unexpected image shape: {a.shape}")
|
|
1556
1703
|
|
|
1704
|
+
|
|
1557
1705
|
def _roi_bounds(self):
|
|
1558
1706
|
"""
|
|
1559
1707
|
Returns (rx, ry, rw, rh) in full-frame coords if ROI enabled,
|
setiastro/saspro/subwindow.py
CHANGED
|
@@ -1737,6 +1737,29 @@ class ImageSubWindow(QWidget):
|
|
|
1737
1737
|
a_help = menu.addAction(self.tr("Show pixel/WCS readout hint"))
|
|
1738
1738
|
menu.addSeparator()
|
|
1739
1739
|
a_prev = menu.addAction(self.tr("Create Preview (drag rectangle)"))
|
|
1740
|
+
# --- Mask actions (requested in zoom/context menu) ---
|
|
1741
|
+
mw = self._find_main_window()
|
|
1742
|
+
vw = self # this ImageSubWindow is the view
|
|
1743
|
+
doc = getattr(vw, "document", None)
|
|
1744
|
+
|
|
1745
|
+
has_mask = bool(doc and getattr(doc, "active_mask_id", None))
|
|
1746
|
+
|
|
1747
|
+
menu.addSeparator()
|
|
1748
|
+
menu.addSection(self.tr("Mask"))
|
|
1749
|
+
|
|
1750
|
+
# 1) Toggle overlay (single item: Show/Hide)
|
|
1751
|
+
a_mask_overlay = menu.addAction(self.tr("Show Mask Overlay"))
|
|
1752
|
+
a_mask_overlay.setCheckable(True)
|
|
1753
|
+
a_mask_overlay.setChecked(bool(getattr(vw, "show_mask_overlay", False)))
|
|
1754
|
+
a_mask_overlay.setEnabled(has_mask)
|
|
1755
|
+
|
|
1756
|
+
# 2) Invert mask
|
|
1757
|
+
a_invert = menu.addAction(self.tr("Invert Mask"))
|
|
1758
|
+
a_invert.setEnabled(has_mask)
|
|
1759
|
+
|
|
1760
|
+
# 3) Remove mask
|
|
1761
|
+
a_remove = menu.addAction(self.tr("Remove Mask"))
|
|
1762
|
+
a_remove.setEnabled(has_mask)
|
|
1740
1763
|
|
|
1741
1764
|
act = menu.exec(self.mapToGlobal(pos))
|
|
1742
1765
|
|
|
@@ -1756,7 +1779,19 @@ class ImageSubWindow(QWidget):
|
|
|
1756
1779
|
elif act == a_prev:
|
|
1757
1780
|
self._preview_btn.setChecked(True)
|
|
1758
1781
|
self._toggle_preview_select_mode(True)
|
|
1759
|
-
|
|
1782
|
+
# --- Mask dispatch ---
|
|
1783
|
+
elif act == a_mask_overlay:
|
|
1784
|
+
if mw:
|
|
1785
|
+
if a_mask_overlay.isChecked():
|
|
1786
|
+
mw._show_mask_overlay()
|
|
1787
|
+
else:
|
|
1788
|
+
mw._hide_mask_overlay()
|
|
1789
|
+
elif act == a_invert:
|
|
1790
|
+
if mw:
|
|
1791
|
+
mw._invert_mask()
|
|
1792
|
+
elif act == a_remove:
|
|
1793
|
+
if mw:
|
|
1794
|
+
mw._remove_mask_menu()
|
|
1760
1795
|
|
|
1761
1796
|
|
|
1762
1797
|
def _send_to_shelf(self):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: setiastrosuitepro
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.3
|
|
4
4
|
Summary: Seti Astro Suite Pro - Advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization
|
|
5
5
|
License: GPL-3.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -11,6 +11,7 @@ setiastro/data/catalogs/List_of_Galaxies_with_Distances_Gly.csv,sha256=NkZ9hflb9
|
|
|
11
11
|
setiastro/data/catalogs/test.csv,sha256=vIL2AA8APalVj6ti-waEPS15Qey_DPUlxp1JZw1mN7E,93
|
|
12
12
|
setiastro/data/catalogs/updated_celestial_catalog.csv,sha256=HOsuyWFrQXEDv0ql2MWSuFDuftOQkUzFWh_DfYM-mz4,936414
|
|
13
13
|
setiastro/data/SASP_data.fits,sha256=_wLrlMnXSqY15dEvBtAnFE0IZOlj1zDbVEEhegKIcTk,4115520
|
|
14
|
+
setiastro/images/3dplanet.png,sha256=Zm4atz64lJe_uEULmA3QSZN1AKTtRvWeHTjOz4S1PyI,14612
|
|
14
15
|
setiastro/images/abeicon.png,sha256=r9HNnjZa1Zw_hKP9h6I2XqxOio1_mJBYCgh5gagu6LA,19423
|
|
15
16
|
setiastro/images/abeicon.svg,sha256=yAnr5-m3ej2OFPeCS156Ek0oI_PAe5Mivh6NXTI4DVo,866
|
|
16
17
|
setiastro/images/aberration.png,sha256=lP86_M-M-Y6a21xgKnXXoq9GwkujpfxGQ99qyF05JL4,330009
|
|
@@ -178,10 +179,10 @@ setiastro/images/wims.png,sha256=EFFaRRUPMMPInRXSr_thUGQAxZTXgDVkjHeiaJiZmgk,117
|
|
|
178
179
|
setiastro/images/wrench_icon.png,sha256=4-DFNkXZUBkfK4WCFLdcr1-b3MsrYcE3DGrp4tL6AVI,72352
|
|
179
180
|
setiastro/images/xisfliberator.png,sha256=sPC7mPHX_ToyBh9nSLn9B5fVRaM89QvqzW30ohbW8VE,1551111
|
|
180
181
|
setiastro/qml/ResourceMonitor.qml,sha256=k9_qXKAZLi8vj-5BffJTJu_UkRnxunZKn53HthdySKE,3948
|
|
181
|
-
setiastro/saspro/__init__.py,sha256=
|
|
182
|
-
setiastro/saspro/__main__.py,sha256=
|
|
182
|
+
setiastro/saspro/__init__.py,sha256=SkWRk-MAmjda55lRe1NvOEKqweotw7DunPVXlrgRFDc,717
|
|
183
|
+
setiastro/saspro/__main__.py,sha256=CDMFSrgAwc8wdTwHCUTUzAapUbuw8NiVqkHYBijCmKE,40202
|
|
183
184
|
setiastro/saspro/_generated/__init__.py,sha256=HbruQfKNbbVL4kh_t4oVG3UeUieaW8MUaqIcDCmnTvA,197
|
|
184
|
-
setiastro/saspro/_generated/build_info.py,sha256=
|
|
185
|
+
setiastro/saspro/_generated/build_info.py,sha256=iRzxmbhtGJIfcKywH10Ti1lyiapv-nfeMjJM6-teNcw,111
|
|
185
186
|
setiastro/saspro/abe.py,sha256=ao9UiOneVvgubI19TCE4gk2FNfW_E3D8rr0D_bmQOwI,59779
|
|
186
187
|
setiastro/saspro/abe_preset.py,sha256=u9t16yTb9v98tLjhvh496Fsp3Z-dNiBSs5itnAaJwh8,7750
|
|
187
188
|
setiastro/saspro/aberration_ai.py,sha256=8LtDu_KuqvL-W0MTUIJq9KguMjJPiUEQjMUibY16H-4,41673
|
|
@@ -221,7 +222,7 @@ setiastro/saspro/curves_preset.py,sha256=Cmz34JZWWrPIbudpPk1WvDk5NFjGIP-Vui3h_mx
|
|
|
221
222
|
setiastro/saspro/debayer.py,sha256=emuQdb41xHwGVvnBU-SF1H_Zdz271RFTz0lm09xl184,25314
|
|
222
223
|
setiastro/saspro/debug_utils.py,sha256=uYQne3MHxg_R7y17NqKFj1_befrmjzOI3_jD4JKovnA,1085
|
|
223
224
|
setiastro/saspro/dnd_mime.py,sha256=QNG97JQJc3xNQ5cPD4zwbC7OZTf9BzqjXE2SvZV9H5Q,1143
|
|
224
|
-
setiastro/saspro/doc_manager.py,sha256=
|
|
225
|
+
setiastro/saspro/doc_manager.py,sha256=ujII9hpYAgOagMxtUeeIwVEmQjzRot2kqj4-mF1ULGg,113035
|
|
225
226
|
setiastro/saspro/exoplanet_detector.py,sha256=_zhasWOf63BCZJuFy1vRC5PMGcc4Rf6DmkbveUuzDdY,96858
|
|
226
227
|
setiastro/saspro/file_utils.py,sha256=zB2BqVnDVLbg_5eO3PIFgYu_Ulm5M3MXQUuzNdvO6Q4,7569
|
|
227
228
|
setiastro/saspro/fitsmodifier.py,sha256=jYrSUwMacohP8ErFdJy0sr8Ld4YrTUgDdwaDr-_pRWg,30362
|
|
@@ -235,16 +236,16 @@ setiastro/saspro/ghs_preset.py,sha256=Zw3MJH5rEz7nqLdlmRBm3vYXgyopoupyDGAhM-PRXq
|
|
|
235
236
|
setiastro/saspro/graxpert.py,sha256=XSLeBhlAY2DkYUw93j2OEOuPLOPfzWYcT5Dz3JhhpW8,22579
|
|
236
237
|
setiastro/saspro/graxpert_preset.py,sha256=ESds2NPMPfsBHWNBfyYZ1rFpQxZ9gPOtxwz8enHfFfc,10719
|
|
237
238
|
setiastro/saspro/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
238
|
-
setiastro/saspro/gui/main_window.py,sha256=
|
|
239
|
+
setiastro/saspro/gui/main_window.py,sha256=ucjhcH9OZsQ3npCmYpVabAz47Xdu67LXdTqDqckao4g,374917
|
|
239
240
|
setiastro/saspro/gui/mixins/__init__.py,sha256=ubdTIri0xoRs6MwDnEaVsAHbMxuPqz0CZcYcue3Mkcc,836
|
|
240
241
|
setiastro/saspro/gui/mixins/dock_mixin.py,sha256=C6IWKM-uP2ekqO7ozVQQcTnEgAkUL_OaRZbncIdrh8g,23893
|
|
241
|
-
setiastro/saspro/gui/mixins/file_mixin.py,sha256=
|
|
242
|
+
setiastro/saspro/gui/mixins/file_mixin.py,sha256=p6gKJrDTKovK4YzowDQy1Z5nNsspQe7B9ICRXvCUvxc,17893
|
|
242
243
|
setiastro/saspro/gui/mixins/geometry_mixin.py,sha256=x-HyLXGFhEs8SJuXT8EF6tS3XJaH8IhAP-ZFJ2BS2Lw,19038
|
|
243
244
|
setiastro/saspro/gui/mixins/header_mixin.py,sha256=kfZUJviB61c8NBXFB3MVBEcRPX_36ZV8tUZNJkDmMJ0,17253
|
|
244
245
|
setiastro/saspro/gui/mixins/mask_mixin.py,sha256=hrC5jLWxUZgQiYUXp7nvECo2uiarK7_HKgawG4HGB9w,15711
|
|
245
|
-
setiastro/saspro/gui/mixins/menu_mixin.py,sha256=
|
|
246
|
+
setiastro/saspro/gui/mixins/menu_mixin.py,sha256=eoXZPjMysBXcC2DllHmXwSFv2BnFO-GDUgm-9XpJU0c,16750
|
|
246
247
|
setiastro/saspro/gui/mixins/theme_mixin.py,sha256=td6hYnZn17lXlFxQOXgK7-qfKo6CIJACF8_zrULlEkc,20740
|
|
247
|
-
setiastro/saspro/gui/mixins/toolbar_mixin.py,sha256=
|
|
248
|
+
setiastro/saspro/gui/mixins/toolbar_mixin.py,sha256=6LYgIRfNd59NYWEZ0zmCqLanwaYhLEqsGEm10RI9O54,92924
|
|
248
249
|
setiastro/saspro/gui/mixins/update_mixin.py,sha256=rq7J0Pcn_gO8UehCGVtcSvf-MDbmeGf796h0JBGr0sM,16545
|
|
249
250
|
setiastro/saspro/gui/mixins/view_mixin.py,sha256=EacXxtoAvkectGgLiahf3rHv2AaqKDQUteocVV_P834,17850
|
|
250
251
|
setiastro/saspro/gui/statistics_dialog.py,sha256=celhcsHcp3lNpox_X0ByAiYE80qFaF-dYyP8StzgrcU,1955
|
|
@@ -260,15 +261,15 @@ setiastro/saspro/imageops/__init__.py,sha256=CE9mHOsruHOQ5bYOHr1_fhxd9sdK1W9BpAi
|
|
|
260
261
|
setiastro/saspro/imageops/mdi_snap.py,sha256=Xyogrv3N0KRAKcfC65hy_PKG6ZktjmwDBisCQ_cP9pY,10117
|
|
261
262
|
setiastro/saspro/imageops/narrowband_normalization.py,sha256=q1KdHS7bjRYW-N0Jbszxf0TF38tNNgXKknM80lrzUsA,26793
|
|
262
263
|
setiastro/saspro/imageops/scnr.py,sha256=jLHxBU4KQ9Mu61Cym5YUq0pwxajJmGrPQRV2pug9LXE,1330
|
|
263
|
-
setiastro/saspro/imageops/serloader.py,sha256=
|
|
264
|
+
setiastro/saspro/imageops/serloader.py,sha256=uxZUobb3ebvd5xWr4XorOSNmtg7_9EMj6WqQ-E1fnxo,49028
|
|
264
265
|
setiastro/saspro/imageops/starbasedwhitebalance.py,sha256=urssLdgKD7J_LOuscjbf9zFImnUWoH-sotGvtbxfxTo,6589
|
|
265
266
|
setiastro/saspro/imageops/stretch.py,sha256=E_Ydh5VxUHrehwivhvVDvF8y89U6SRyjIFUQgJjHWXI,27113
|
|
266
267
|
setiastro/saspro/isophote.py,sha256=eSzlyBN_tZJSJTKlnBjwHY0zdw0SXPV6BRk_jt9TlVU,53753
|
|
267
|
-
setiastro/saspro/layers.py,sha256=
|
|
268
|
-
setiastro/saspro/layers_dock.py,sha256=
|
|
268
|
+
setiastro/saspro/layers.py,sha256=X83XlwJhH0zjjC6b3CGeQg4dBp4w9zxBGfZVwtY1h3Q,12997
|
|
269
|
+
setiastro/saspro/layers_dock.py,sha256=1vdxAPmdQ1_8ZqA4IySspqvcydB_alSj3AARoWbb29Y,42735
|
|
269
270
|
setiastro/saspro/lazy_imports.py,sha256=0M-4zklRGlqt5tvV6XZEFm958cRrOkxrjvSp_Ib1_zA,6564
|
|
270
271
|
setiastro/saspro/legacy/__init__.py,sha256=NjuxU-id3METsQ6tNd53YVqDTZK6mEz7uYjLzguCdNQ,121
|
|
271
|
-
setiastro/saspro/legacy/image_manager.py,sha256=
|
|
272
|
+
setiastro/saspro/legacy/image_manager.py,sha256=qH0NHRjJu6vDWTEYivTNifH9ytVRN1f5XMhm7pBCDVE,101597
|
|
272
273
|
setiastro/saspro/legacy/numba_utils.py,sha256=JZW1yJGMd0QLYojVpk9h_nEf6MpbdFTzqEPnN4m7GjU,135407
|
|
273
274
|
setiastro/saspro/legacy/xisf.py,sha256=Ah1CXDAohN__ej1Lq7LPU8vGLnDz8fluLQTGE71aUoc,52669
|
|
274
275
|
setiastro/saspro/linear_fit.py,sha256=s17ZExDxToqBuqv14-o6OFQpXYTyW2TUj_EunohxvAk,20918
|
|
@@ -305,6 +306,7 @@ setiastro/saspro/pedestal.py,sha256=WkwNaY0Qp1XP6KFtb6tnnKMhg71R5WEhVOdwWwJFmJ8,
|
|
|
305
306
|
setiastro/saspro/perfect_palette_picker.py,sha256=wJSTQQZgFm-baEBRopfF4Aw6vtvTmfL4_FZcd1q31vs,46937
|
|
306
307
|
setiastro/saspro/pipeline.py,sha256=QO8tttr050dbJkpkShO4g7gUEESAcRhhn7LLp0IwKyw,3774
|
|
307
308
|
setiastro/saspro/pixelmath.py,sha256=BVMe5ekKnPR2bLt6OEpUqzkMUsu2ENQhmcQ-hM5XcAw,72203
|
|
309
|
+
setiastro/saspro/planetprojection.py,sha256=2e51jpdabb9g6vJ1ItnaGxIUEJNRag4tEKDzP2FwaFw,144308
|
|
308
310
|
setiastro/saspro/plate_solver.py,sha256=QREhP8OKEm4jy2VGFEINW1q3-B4-lGnpIKdNiOwgxuc,96342
|
|
309
311
|
setiastro/saspro/project_io.py,sha256=usCbXxgB6bKj4L_71eTQIIzOzYAWxaNUoY4duB6oC5g,30357
|
|
310
312
|
setiastro/saspro/psf_utils.py,sha256=K3R4BjUzsopLRuLTbPlm8lBw3-x9twNWG4bK-4phDM4,4555
|
|
@@ -313,19 +315,19 @@ setiastro/saspro/pyi_rthook_astroquery.py,sha256=Omt8U0gMI3efw3y-GUUJtBYUylwT1OM
|
|
|
313
315
|
setiastro/saspro/remove_green.py,sha256=bd_4xLe-tEYPncOSVUHh-fVIrPWG6K0ESKgAygrwj_M,12082
|
|
314
316
|
setiastro/saspro/remove_stars.py,sha256=tv61y58xdm5g5Gu5T3I7jUqSmVVguJ9BWOKBy_X8ub8,60967
|
|
315
317
|
setiastro/saspro/remove_stars_preset.py,sha256=HcR50bRXqiJSx4jMyle389g8b6SIulXHxgSysk07vdk,19195
|
|
316
|
-
setiastro/saspro/resources.py,sha256=
|
|
318
|
+
setiastro/saspro/resources.py,sha256=gqnGhWd9gt4NnADI3fnTSRcs8koigFrihLUj4urLlWc,27559
|
|
317
319
|
setiastro/saspro/rgb_combination.py,sha256=8MKlxsbn5Pmiq3Vh28fMVYgYG4EIsvOYrwSJisJGyds,8765
|
|
318
320
|
setiastro/saspro/rgb_extract.py,sha256=FZRA2qac8LR2u-jNcQP-1xFeiOYVBo06-Q3Xl0KAlZM,624
|
|
319
321
|
setiastro/saspro/rgbalign.py,sha256=XwBDj5t_zj9Uh-PaX1SNlzix9PftnQBIoTMtRPvYK80,46528
|
|
320
322
|
setiastro/saspro/runtime_imports.py,sha256=tgIHH10cdAEbCTOmcs7retQhAww2dEc_3mKrv_m8W9s,206
|
|
321
323
|
setiastro/saspro/runtime_torch.py,sha256=IEVqD8jgn6la8t3R9ngZ2egSGMAC_tr1im3R8BnvXTQ,33497
|
|
322
|
-
setiastro/saspro/save_options.py,sha256=
|
|
324
|
+
setiastro/saspro/save_options.py,sha256=wUvuZBCDcQFDXF846njBd_4xoSRa2Ih1-I8Hf5ZTLbk,3648
|
|
323
325
|
setiastro/saspro/selective_color.py,sha256=hx-9X4jeso797ifoBmwp9hNagPW4cvNPs9-T0JLHce0,64804
|
|
324
|
-
setiastro/saspro/ser_stack_config.py,sha256=
|
|
325
|
-
setiastro/saspro/ser_stacker.py,sha256=
|
|
326
|
-
setiastro/saspro/ser_stacker_dialog.py,sha256=
|
|
327
|
-
setiastro/saspro/ser_tracking.py,sha256=
|
|
328
|
-
setiastro/saspro/serviewer.py,sha256=
|
|
326
|
+
setiastro/saspro/ser_stack_config.py,sha256=OMQHnRysXMW2l05PGLlwu1JxEBAcdUpBOEnFvn9jXP0,4921
|
|
327
|
+
setiastro/saspro/ser_stacker.py,sha256=HLJgX-Dc8hIajNupoK6U-APbr1vsHOycerL5KeYDI1Q,85310
|
|
328
|
+
setiastro/saspro/ser_stacker_dialog.py,sha256=TfQBwbEF7722jJAb4nML-eQPe247usbeaby98sz_Hho,69471
|
|
329
|
+
setiastro/saspro/ser_tracking.py,sha256=HU5F2ZAekjBsKu-nYQVqbx3FukUqGYTkTK6J9n0tUgg,8077
|
|
330
|
+
setiastro/saspro/serviewer.py,sha256=QvPtJky2IzrywXaOYjeSZSNY0I64TSrzfgH7vRgGk7M,68763
|
|
329
331
|
setiastro/saspro/sfcc.py,sha256=mKdNfbMxl4fgqyZnuAlkzNNIU3huYOHgqw0FGjtVhUs,89097
|
|
330
332
|
setiastro/saspro/shortcuts.py,sha256=QvFBXN_S8jqEwaP9m4pJMLVqzBmxo5HrjWhVCV9etQg,138256
|
|
331
333
|
setiastro/saspro/signature_insert.py,sha256=pWDxUO1Rxm27_fHSo2Y99bdOD2iG9q4AUjGR20x6TiA,70401
|
|
@@ -337,7 +339,7 @@ setiastro/saspro/star_spikes.py,sha256=PKI9C8SYmyi9St-IMtyJn75858kfi0NIJ26uDEjlS
|
|
|
337
339
|
setiastro/saspro/star_stretch.py,sha256=Sb4ZD3nTVS7zVIWPDtgjgwwhDnuOqM-cW6DBVLlqM1c,21308
|
|
338
340
|
setiastro/saspro/stat_stretch.py,sha256=DQjLzhsvcqhJrBmR_ZuSoGHEo5D1R7SHg_pfRnEZQ58,50934
|
|
339
341
|
setiastro/saspro/status_log_dock.py,sha256=SEZiijVLmtWbGxxjvf3XWUuMUhoVw50nwVfj7NhAl8s,2922
|
|
340
|
-
setiastro/saspro/subwindow.py,sha256
|
|
342
|
+
setiastro/saspro/subwindow.py,sha256=xiaowKi_G4Ph4L4bW1vbG5ZzMwFfhNVdAEHnuFmdlZc,144201
|
|
341
343
|
setiastro/saspro/supernovaasteroidhunter.py,sha256=PgCq3IR2pzsNBx6IxdhqfZlKPMZFhWI6cMJi600He78,66781
|
|
342
344
|
setiastro/saspro/swap_manager.py,sha256=7hJvQsnm1LSqLmXrj5uQkTSqNJq1SvrtrkCQPJdNego,4643
|
|
343
345
|
setiastro/saspro/texture_clarity.py,sha256=1snw-j91j5C--qi27VtQfZ_pIcRDLNH0K63tkFGvqe4,22918
|
|
@@ -405,9 +407,9 @@ setiastro/saspro/wimi.py,sha256=CNo833Pur9P-A1DUSntlAaQWekf6gzWIvetOMvLDrOw,3146
|
|
|
405
407
|
setiastro/saspro/wims.py,sha256=HDfVI3Ckf5OJEJLH8NI36pFc2USZnETpb4UDIvweNX4,27450
|
|
406
408
|
setiastro/saspro/window_shelf.py,sha256=jQUifB3uJ9tkzXqmscWj8lHQN5E8yleuRc7hDnes4-k,7453
|
|
407
409
|
setiastro/saspro/xisf.py,sha256=Ah1CXDAohN__ej1Lq7LPU8vGLnDz8fluLQTGE71aUoc,52669
|
|
408
|
-
setiastrosuitepro-1.7.
|
|
409
|
-
setiastrosuitepro-1.7.
|
|
410
|
-
setiastrosuitepro-1.7.
|
|
411
|
-
setiastrosuitepro-1.7.
|
|
412
|
-
setiastrosuitepro-1.7.
|
|
413
|
-
setiastrosuitepro-1.7.
|
|
410
|
+
setiastrosuitepro-1.7.3.dist-info/entry_points.txt,sha256=vJfnZaV6Uj3laETakqT8-D-aJZI_nYIicrhSoL0uuko,227
|
|
411
|
+
setiastrosuitepro-1.7.3.dist-info/licenses/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
|
|
412
|
+
setiastrosuitepro-1.7.3.dist-info/licenses/license.txt,sha256=KCwYZ9VpVwmzjelDq1BzzWqpBvt9nbbapa-woz47hfQ,123930
|
|
413
|
+
setiastrosuitepro-1.7.3.dist-info/METADATA,sha256=vXF_AZ0PBoL03VyVA97BhQ-mOaJLYxfsz5c8QSwPXbU,9919
|
|
414
|
+
setiastrosuitepro-1.7.3.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
415
|
+
setiastrosuitepro-1.7.3.dist-info/RECORD,,
|
|
File without changes
|
{setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{setiastrosuitepro-1.7.1.post2.dist-info → setiastrosuitepro-1.7.3.dist-info}/licenses/license.txt
RENAMED
|
File without changes
|