teareduce 0.5.5__tar.gz → 0.5.8__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.
- {teareduce-0.5.5/src/teareduce.egg-info → teareduce-0.5.8}/PKG-INFO +2 -1
- {teareduce-0.5.5 → teareduce-0.5.8}/pyproject.toml +1 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/__init__.py +3 -1
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/__main__.py +65 -6
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/cosmicraycleanerapp.py +303 -94
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/definitions.py +1 -1
- teareduce-0.5.5/src/teareduce/cleanest/cleanest.py → teareduce-0.5.8/src/teareduce/cleanest/interpolate.py +10 -8
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/interpolationeditor.py +1 -0
- teareduce-0.5.8/src/teareduce/cleanest/lacosmicpad.py +57 -0
- teareduce-0.5.8/src/teareduce/cleanest/mergemasks.py +58 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/modalprogressbar.py +2 -2
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/parametereditor.py +14 -3
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/reviewcosmicray.py +31 -2
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/tests/test_cleanest.py +11 -11
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/version.py +1 -1
- {teareduce-0.5.5 → teareduce-0.5.8/src/teareduce.egg-info}/PKG-INFO +2 -1
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce.egg-info/SOURCES.txt +3 -1
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce.egg-info/requires.txt +1 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/LICENSE.txt +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/README.md +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/setup.cfg +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/__init__.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/avoid_astropy_warnings.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/centerchildparent.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/dilatemask.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/find_closest_true.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/imagedisplay.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/interpolation_a.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/interpolation_x.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cleanest/interpolation_y.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cookbook/__init__.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cookbook/get_cookbook_file.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/correct_pincushion_distortion.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/cosmicrays.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/ctext.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/draw_rectangle.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/elapsed_time.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/histogram1d.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/imshow.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/numsplines.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/peaks_spectrum.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/polfit.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/robust_std.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/sdistortion.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/simulateccdexposure.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/sliceregion.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/statsummary.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/tests/__init__.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/tests/test_sliceregion.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/tests/test_version.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/wavecal.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/write_array_to_fits.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce/zscale.py +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce.egg-info/dependency_links.txt +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce.egg-info/entry_points.txt +0 -0
- {teareduce-0.5.5 → teareduce-0.5.8}/src/teareduce.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: teareduce
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.8
|
|
4
4
|
Summary: Utilities for astronomical data reduction
|
|
5
5
|
Author-email: Nicolás Cardiel <cardiel@ucm.es>
|
|
6
6
|
License: GPL-3.0-or-later
|
|
@@ -23,6 +23,7 @@ Requires-Dist: astropy
|
|
|
23
23
|
Requires-Dist: ccdproc
|
|
24
24
|
Requires-Dist: lmfit
|
|
25
25
|
Requires-Dist: matplotlib
|
|
26
|
+
Requires-Dist: maskfill
|
|
26
27
|
Requires-Dist: numpy>=1.22
|
|
27
28
|
Requires-Dist: requests
|
|
28
29
|
Requires-Dist: rich
|
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
"""Interactive Cosmic Ray cleaning tool."""
|
|
11
11
|
|
|
12
12
|
import argparse
|
|
13
|
+
from ast import arg
|
|
13
14
|
import tkinter as tk
|
|
15
|
+
from tkinter import filedialog
|
|
16
|
+
from tkinter import simpledialog
|
|
14
17
|
import os
|
|
18
|
+
from pathlib import Path
|
|
15
19
|
import platform
|
|
16
20
|
from rich import print
|
|
17
21
|
from rich_argparse import RichHelpFormatter
|
|
@@ -21,6 +25,7 @@ from .definitions import DEFAULT_FONT_SIZE
|
|
|
21
25
|
from .definitions import DEFAULT_TK_WINDOW_SIZE_X
|
|
22
26
|
from .definitions import DEFAULT_TK_WINDOW_SIZE_Y
|
|
23
27
|
from .cosmicraycleanerapp import CosmicRayCleanerApp
|
|
28
|
+
from ..version import VERSION
|
|
24
29
|
|
|
25
30
|
import matplotlib
|
|
26
31
|
|
|
@@ -32,13 +37,13 @@ def main():
|
|
|
32
37
|
description="Interactive cosmic ray cleaner for FITS images.",
|
|
33
38
|
formatter_class=RichHelpFormatter,
|
|
34
39
|
)
|
|
35
|
-
parser.add_argument("input_fits", help="Path to the FITS file to be cleaned.")
|
|
36
|
-
parser.add_argument("--extension", type=
|
|
40
|
+
parser.add_argument("input_fits", nargs="?", default=None, help="Path to the FITS file to be cleaned.")
|
|
41
|
+
parser.add_argument("--extension", type=str, default="0", help="FITS extension to use (default: 0).")
|
|
37
42
|
parser.add_argument("--auxfile", type=str, default=None, help="Auxiliary FITS file")
|
|
38
43
|
parser.add_argument(
|
|
39
44
|
"--extension_auxfile",
|
|
40
|
-
type=
|
|
41
|
-
default=0,
|
|
45
|
+
type=str,
|
|
46
|
+
default="0",
|
|
42
47
|
help="FITS extension for auxiliary file (default: 0).",
|
|
43
48
|
)
|
|
44
49
|
parser.add_argument(
|
|
@@ -65,14 +70,67 @@ def main():
|
|
|
65
70
|
default=DEFAULT_TK_WINDOW_SIZE_Y,
|
|
66
71
|
help=f"Height of the GUI window in pixels (default: {DEFAULT_TK_WINDOW_SIZE_Y}).",
|
|
67
72
|
)
|
|
73
|
+
parser.add_argument("--version", action="version", version=f"%(prog)s {VERSION}")
|
|
74
|
+
parser.add_argument("--verbose", "-v", action="store_true", help="Enable verbose output.")
|
|
68
75
|
args = parser.parse_args()
|
|
69
76
|
|
|
77
|
+
# Welcome message
|
|
78
|
+
print("[bold green]Cosmic Ray Cleaner[/bold green]")
|
|
79
|
+
print("Interactive tool to clean cosmic rays from FITS images.")
|
|
80
|
+
print("teareduce version: " + VERSION)
|
|
81
|
+
print(f"https://nicocardiel.github.io/teareduce-cookbook/docs/cleanest/cleanest.html\n")
|
|
82
|
+
|
|
83
|
+
# If input_file is not provided, ask for it using a file dialog
|
|
84
|
+
if args.input_fits is None:
|
|
85
|
+
root = tk.Tk()
|
|
86
|
+
root.withdraw() # Hide the root window
|
|
87
|
+
args.input_fits = filedialog.askopenfilename(
|
|
88
|
+
title="Select FITS file to be cleaned",
|
|
89
|
+
filetypes=[("FITS files", "*.fits *.fit *.fts"), ("All files", "*.*")],
|
|
90
|
+
)
|
|
91
|
+
if not args.input_fits:
|
|
92
|
+
print("No input FITS file selected. Exiting.")
|
|
93
|
+
exit(1)
|
|
94
|
+
print(f"Selected input FITS file: {args.input_fits}")
|
|
95
|
+
args.extension = simpledialog.askstring(
|
|
96
|
+
"Select Extension",
|
|
97
|
+
f"\nEnter extension number or name for file:\n{Path(args.input_fits).name}",
|
|
98
|
+
initialvalue=args.extension,
|
|
99
|
+
)
|
|
100
|
+
# Ask for auxiliary file if not provided
|
|
101
|
+
if args.auxfile is None:
|
|
102
|
+
use_auxfile = tk.messagebox.askyesno(
|
|
103
|
+
"Auxiliary File",
|
|
104
|
+
"Do you want to use an auxiliary FITS file?",
|
|
105
|
+
default=tk.messagebox.NO,
|
|
106
|
+
)
|
|
107
|
+
if use_auxfile:
|
|
108
|
+
args.auxfile = filedialog.askopenfilename(
|
|
109
|
+
title="Select Auxiliary FITS file",
|
|
110
|
+
filetypes=[("FITS files", "*.fits *.fit *.fts"), ("All files", "*.*")],
|
|
111
|
+
initialfile=args.auxfile,
|
|
112
|
+
)
|
|
113
|
+
if not args.auxfile:
|
|
114
|
+
print("No auxiliary FITS file selected. Exiting.")
|
|
115
|
+
exit(1)
|
|
116
|
+
else:
|
|
117
|
+
use_auxfile = True
|
|
118
|
+
if use_auxfile:
|
|
119
|
+
print(f"Selected auxiliary FITS file: {args.auxfile}")
|
|
120
|
+
args.extension_auxfile = simpledialog.askstring(
|
|
121
|
+
"Select Extension for Auxiliary File",
|
|
122
|
+
f"\nEnter extension number or name for auxiliary file:\n{Path(args.auxfile).name}",
|
|
123
|
+
initialvalue=args.extension_auxfile,
|
|
124
|
+
)
|
|
125
|
+
root.destroy()
|
|
126
|
+
|
|
127
|
+
# Check that input files, and the corresponding extensions, exist
|
|
70
128
|
if not os.path.isfile(args.input_fits):
|
|
71
129
|
print(f"Error: File '{args.input_fits}' does not exist.")
|
|
72
|
-
|
|
130
|
+
exit(1)
|
|
73
131
|
if args.auxfile is not None and not os.path.isfile(args.auxfile):
|
|
74
132
|
print(f"Error: Auxiliary file '{args.auxfile}' does not exist.")
|
|
75
|
-
|
|
133
|
+
exit(1)
|
|
76
134
|
|
|
77
135
|
# Initialize Tkinter root
|
|
78
136
|
root = tk.Tk()
|
|
@@ -100,6 +158,7 @@ def main():
|
|
|
100
158
|
fontsize=args.fontsize,
|
|
101
159
|
width=args.width,
|
|
102
160
|
height=args.height,
|
|
161
|
+
verbose=args.verbose,
|
|
103
162
|
)
|
|
104
163
|
|
|
105
164
|
# Execute
|