Skip to content

Commit 7ffa2ef

Browse files
committed
Update (v1.1.3) Use mouse Add mousewheel to scroll, add "From Fits" checkbox for CCD Filter
1 parent 970db60 commit 7ffa2ef

File tree

1 file changed

+101
-19
lines changed

1 file changed

+101
-19
lines changed

MAOPhot.py

+101-19
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ class MyGUI:
335335
epsf_model = None
336336
stars_tbl = None
337337
isolated_stars_tbl = None
338+
fits_header_filter = ""
338339

339340
# Parameter declaration and init
340341
find_peaks_npeaks_entry = None
@@ -371,7 +372,8 @@ class MyGUI:
371372
display_all_objects = None
372373
candidate_stars = None
373374
settings_filename_entry = None # special case this is only place holder for filename
374-
375+
auto_behavior = None
376+
filter_entry = None
375377

376378
#
377379
# The TopLoevel window containing the settings
@@ -410,6 +412,8 @@ def display_image(self):
410412
self.canvas.create_image(0, 0, anchor=tk.NW, image=self.image)
411413
self.canvas.config(scrollregion=self.canvas.bbox(tk.ALL))
412414
self.canvas.bind("<Button-1>", self.mouse_main_canvas_click)
415+
self.canvas.bind("<MouseWheel>", self.on_canvas_mousewheel)
416+
self.canvas.bind("<Shift-MouseWheel>", self.on_canvas_shift_mousewheel)
413417
if self.ePSF_samples_plotted:
414418
self.display_ePSF_samples()
415419
self.plot_photometry()
@@ -462,9 +466,18 @@ def load_FITS(self, image_file):
462466
"FITS Minimum: " + str(FITS_minimum) + " Maximum: " +
463467
str(FITS_maximum))
464468
if 'filter' in header:
465-
self.filter = str(header['filter'])
466-
self.set_entry_text(self.filter_entry, self.filter)
467-
self.console_msg("Filter: " + self.filter)
469+
self.fits_header_filter = str(header['filter'])
470+
# User may want to use his own filter or filter not in Fits file
471+
if self.auto_behavior.get():
472+
self.filter = self.fits_header_filter
473+
self.filter_entry.config(state='normal')
474+
self.set_entry_text(self.filter_entry, self.filter)
475+
self.filter_entry.config(state='disable')
476+
self.console_msg("Filter: " + self.filter)
477+
else:
478+
self.filter_entry.config(state='normal')
479+
self.filter = self.filter_entry.get().strip()
480+
self.console_msg("Filter set by user: " + self.filter)
468481
else:
469482
self.console_msg(
470483
"Filter name not in FITS header. Set filter manually.")
@@ -1478,6 +1491,47 @@ def mouse_selstars_canvas_click(self,event):
14781491

14791492
return
14801493

1494+
###############################################################
1495+
#
1496+
#
1497+
# on_auto_behavior_checkbox_checked
1498+
#
1499+
# if checked, diable CCD Filter Text
1500+
#
1501+
###############################################################
1502+
1503+
def on_auto_behavior_checkbox_checked(self):
1504+
if self.auto_behavior.get():
1505+
self.filter_entry.config(state='normal')
1506+
self.set_entry_text(self.filter_entry, self.fits_header_filter)
1507+
self.filter_entry.config(state='disabled')
1508+
else:
1509+
self.filter_entry.config(state='normal')
1510+
1511+
###############################################################
1512+
#
1513+
#
1514+
# on_canvas_mousewheel
1515+
#
1516+
# scroll vertically
1517+
#
1518+
###############################################################
1519+
1520+
def on_canvas_mousewheel(self, event):
1521+
self.canvas.yview_scroll(-1 * (event.delta // 120), "units") # Scroll vertically
1522+
1523+
###############################################################
1524+
#
1525+
#
1526+
# on_canvas_shift_mousewheel
1527+
#
1528+
# scroll horizontally
1529+
#
1530+
###############################################################
1531+
1532+
def on_canvas_shift_mousewheel(self, event):
1533+
self.canvas.xview_scroll(-1 * (event.delta // 120), "units") # Scroll horizontally
1534+
14811535
###############################################################
14821536
#
14831537
#
@@ -2500,8 +2554,7 @@ def get_comparison_stars(self):
25002554
#have a AUID
25012555
self.console_msg("Getting AAVSO Comparison Stars...")
25022556
comparison_stars = \
2503-
self.aavso_get_comparison_stars(frame_center, filter_band=str(
2504-
self.filter_entry.get()),
2557+
self.aavso_get_comparison_stars(frame_center, filter_band=str(self.filter),
25052558
field_of_view=fov_horizontal,
25062559
maglimit=self.max_ensemble_magnitude_entry.get())
25072560

@@ -2900,11 +2953,21 @@ def save_settings_as(self):
29002953
if len(str(file_name)) > 0:
29012954
self.console_msg("Saving settings as " + str(file_name.name))
29022955
self.settings_filename = str(file_name.name)
2903-
settings = {}
2956+
29042957
'''
29052958
Use the valid_parameter list which contains the official list
29062959
of user parameters
29072960
'''
2961+
2962+
# But first check if auto_behavior is set (CCD Filter from FITS), if set
2963+
# then dont save any Fits data, erase filter_entry, put back later
2964+
if self.auto_behavior.get():
2965+
filter_entry = self.filter_entry.get()
2966+
self.filter_entry.config(state='normal')
2967+
self.set_entry_text(self.filter_entry, "")
2968+
self.filter_entry.config(state='disable')
2969+
2970+
settings = {}
29082971
mao_parameters = list(self.valid_parameter_list)
29092972
for param in mao_parameters:
29102973
settings.update({param : self.valid_parameter_list[param].get()})
@@ -2918,6 +2981,12 @@ def save_settings_as(self):
29182981
self.set_entry_text(self.settings_filename_entry, self.settings_filename)
29192982
self.settings_filename_entry.xview_scroll(len(self.settings_filename), tk.UNITS)
29202983
self.console_msg("Saved.")
2984+
2985+
# Put back that filter_entry if auto_behavior on
2986+
if self.auto_behavior.get():
2987+
self.filter_entry.config(state='normal')
2988+
self.set_entry_text(self.filter_entry, filter_entry)
2989+
self.filter_entry.config(state='disable')
29212990

29222991
except Exception as e:
29232992
self.error_raised = True
@@ -3257,15 +3326,14 @@ def launch_settings(self):
32573326
row = 0
32583327

32593328

3260-
separator_telescope_ = ttk.Separator(settings_right_frame, orient='horizontal')
3261-
separator_telescope_.grid(row=row, columnspan=3, pady=5, sticky=tk.EW)
3329+
separator_ = ttk.Separator(settings_right_frame, orient='horizontal')
3330+
separator_.grid(row=row, columnspan=3, pady=5, sticky=tk.EW)
32623331
row += 1
32633332

32643333
"""
32653334
AAVSO Report Settings
32663335
"""
3267-
_label_ = tk.Label(
3268-
settings_right_frame, text="AAVSO Report Settings")
3336+
_label_ = tk.Label(settings_right_frame, text="AAVSO Report Settings")
32693337
_label_.grid(row=row, columnspan=3, sticky=tk.EW)
32703338
row += 1
32713339

@@ -3288,13 +3356,6 @@ def launch_settings(self):
32883356
self.exposure_entry.grid(row=row, column=2, ipadx=settings_entry_pad, sticky=tk.W)
32893357
row += 1
32903358

3291-
filter_label = tk.Label(settings_right_frame, text="CCD Filter:")
3292-
filter_label.grid(row=row, column=0, columnspan=2, sticky=tk.E)
3293-
self.filter_entry = tk.Entry(
3294-
settings_right_frame, width=extended_settings_entry_width, background='pink')
3295-
self.filter_entry.grid(row=row, column=2, ipadx=settings_entry_pad, sticky=tk.W)
3296-
row += 1
3297-
32983359
airmass_label = tk.Label(settings_right_frame, text="Airmass:")
32993360
airmass_label.grid(row=row, column=0, columnspan=2, sticky=tk.E)
33003361
self.airmass_entry = tk.Entry(
@@ -3331,6 +3392,21 @@ def launch_settings(self):
33313392
self.vizier_catalog_entry.grid(row=row, column=2, sticky=tk.E)
33323393
row += 1
33333394

3395+
separator_ = ttk.Separator(settings_right_frame, orient='horizontal')
3396+
separator_.grid(row=row, columnspan=3, pady=5, sticky=tk.EW)
3397+
row += 1
3398+
3399+
from_fits_header_check = tk.Checkbutton(settings_right_frame, text="From FITS",
3400+
variable=self.auto_behavior,
3401+
command=self.on_auto_behavior_checkbox_checked)
3402+
from_fits_header_check.grid(row=row, column=0, sticky=tk.W)
3403+
3404+
filter_label = tk.Label(settings_right_frame, text="CCD Filter:")
3405+
filter_label.grid(row=row, column=1, sticky=tk.E)
3406+
self.filter_entry = tk.Entry(settings_right_frame,
3407+
width=extended_settings_entry_width, background='pink')
3408+
self.filter_entry.grid(row=row, column=2, ipadx=settings_entry_pad, sticky=tk.W)
3409+
row += 1
33343410

33353411
separator_ = ttk.Separator(settings_right_frame, orient='horizontal')
33363412
separator_.grid(row=row, columnspan=3, pady=5, sticky=tk.EW)
@@ -4649,6 +4725,10 @@ def __init__(self):
46494725
self.fitter_stringvar = tk.StringVar()
46504726
self.fitter_stringvar.set("TRF LS")
46514727
self.display_all_objects = tk.StringVar(None, 0) #init to display user objects only
4728+
self.auto_behavior = tk.BooleanVar()
4729+
self.auto_behavior.set(False)
4730+
4731+
46524732

46534733
self.launch_settings()
46544734

@@ -4692,7 +4772,9 @@ def __init__(self):
46924772
'object_name_alpha_entry': self.object_name_alpha_entry,
46934773
'object_name_delta_entry': self.object_name_delta_entry,
46944774
'object_notes_entry': self.object_notes_entry,
4695-
'display_all_objects': self.display_all_objects
4775+
'display_all_objects': self.display_all_objects,
4776+
'auto_behavior': self.auto_behavior,
4777+
'filter_entry': self.filter_entry
46964778
}
46974779

46984780
# if .config had a valid settings_filename, then load that one in

0 commit comments

Comments
 (0)