Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
gnthibault committed Aug 20, 2023
1 parent e5616df commit 96e5fbc
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 37 deletions.
2 changes: 1 addition & 1 deletion Camera/AbstractCamera.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ def _setup_calibration(self,
'exp_time': exp_time.to(u.second).value,
'gain': gain,
'offset': offset,
'temperature_degC': temperature.to(u.Celsius).value if temperature else "no_target",
'temperature_degC': temperature if temperature else "no_target",
'observation_ids': [o.id for o in observations]
}
metadata.update(headers)
Expand Down
3 changes: 2 additions & 1 deletion Service/SceneVizualization.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,8 @@ def run(self):

def start(self):
self.do_run = True
super().start()
if not self.is_alive():
super().start()

def stop(self):
self.do_run = False
Expand Down
2 changes: 2 additions & 0 deletions apps/launch_backyard_conf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ indiserver indi_lx200gemini indi_canon_ccd indi_asi_ccd
# export REMOTE_OBSERVATORY_CONFIG=config_backyard
# Other wise in simulation, you might want to set this variable
# export REMOTE_OBSERVATORY_IS_DARK=0
# export REMOTE_OBSERVATORY_CONFIG=config_backyard; export REMOTE_OBSERVATORY_IS_DARK=1; PYTHONPATH=. python ./apps/launch_remote_observatory.py --simulation_mode

16 changes: 9 additions & 7 deletions calibration/ImagingCalibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ def __init__(self,
f"{self.controller}")

def calibrate(self, observed_list):
#TODO TN: event are already waited for, you need to fix that
event = self.take_flat(observed_list)
event.wait()
event = self.take_dark(observed_list)
return event
event_flat = self.take_flat(observed_list)
event_dark = self.take_dark(observed_list, event=event_flat)
return event_dark

def take_flat(self, observed_list):
def take_flat(self, observed_list, event=None):
if event:
event.wait()
flat_config = set()
for seq_time, observation in observed_list.items():
conf = observation.configuration.get("filter", "no-filter")
Expand All @@ -75,12 +75,14 @@ def take_flat(self, observed_list):
self.controller.switch_off_flat_light()
return event

def take_dark(self, observed_list):
def take_dark(self, observed_list, event=None):
"""
Temperature is the "most expensive" parameter to change, hence we will use this as our primary key
:param observed_list:
:return:
"""
if event:
event.wait()
dark_config_dict = dict()
for seq_time, observation in observed_list.items():
temp_deg = observation.configuration['temperature']
Expand Down
19 changes: 13 additions & 6 deletions calibration/SpectralCalibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,14 @@ def __init__(self,

def calibrate(self, observed_list):

self.take_flat(observed_list)
self.take_spectral_calib(observed_list)
self.take_dark(observed_list)
event_flat = self.take_flat(observed_list)
event_spectral = self.take_spectral_calib(observed_list, event=event_flat)
event_dark = self.take_dark(observed_list, event=event_spectral)
return event_dark

def take_flat(self, observed_list):
def take_flat(self, observed_list, event=None):
if event:
event.wait()
self.controller.switch_on_flat_light()
for i in range(self.flat_nb):
event = self.camera.take_calibration(
Expand All @@ -77,7 +80,9 @@ def take_flat(self, observed_list):
event.wait()
self.controller.switch_off_flat_light()

def take_spectral_calib(self, observed_list):
def take_spectral_calib(self, observed_list, event=None):
if event:
event.wait()
self.controller.switch_on_spectro_light()
for i in range(self.spectral_calib_nb):
event = self.camera.take_calibration(
Expand All @@ -91,12 +96,14 @@ def take_spectral_calib(self, observed_list):
event.wait()
self.controller.switch_off_spectro_light()

def take_dark(self, observed_list):
def take_dark(self, observed_list, event=None):
"""
Temperature is the "most expensive" parameter to change, hence we will use this as our primary key
:param observed_list:
:return:
"""
if event:
event.wait()
dark_config_dict = dict()
for seq_time, observation in observed_list.items():
temp_deg = observation.configuration['temperature']
Expand Down
2 changes: 1 addition & 1 deletion conf_files/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ offset_pointer:
timeout_seconds: 300
max_identification_error_seconds: 1
sync_mount_upon_solve: False
use_guider_adjust: True
use_guider_adjust: False
on_star_identification_failure: trust_astrometry # get_brightest or trust_astrometry
max_iterations: 5
max_pointing_error_seconds: 2
Expand Down
11 changes: 8 additions & 3 deletions conf_files/config_backyard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,9 @@ mount:
equatorial_eod: J2000 # JNOW
tcp_host: 192.168.8.63
tcp_port: 11110
indi_client:
indi_host: localhost
indi_port: 7625
cameras:
-
module: IndiASICamera290MMMini
Expand All @@ -156,7 +159,7 @@ cameras:
APERTURE: 200
sampling_arcsec: 0.88
do_guiding: true
do_pointing: true
do_pointing: false
pointing_seconds: 30
do_adjust_pointing: true
adjust_center_x: 877
Expand Down Expand Up @@ -280,12 +283,14 @@ pointer:
max_iterations: 10
max_pointing_error_seconds: 10
offset_pointer:
module: StarOffsetPointer #StarOffsetPointer #NoOffsetPointer #InvisibleOffsetPointer
module: StarOffsetPointer #StarOffsetPointer #NoOffsetPointer #InvisibleObjectOffsetPointer
timeout_seconds: 300
max_identification_error_seconds: 1
max_identification_error_seconds: 2
sync_mount_upon_solve: True
use_guider_adjust: True
on_star_identification_failure: trust_astrometry # get_brightest or trust_astrometry
max_iterations: 10
max_pointing_error_seconds: 2.5
guider:
module : GuiderPHD2
host : 127.0.0.1
Expand Down
28 changes: 14 additions & 14 deletions conf_files/spectral_targets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,20 @@ targets :
gain: 150
offset: 30
exp_time_sec: 20
# "10 Lacertae":
# priority: 0
# count: 1
# temperature: 15
# gain: 150
# offset: 30
# exp_time_sec: 20
# "Gamma Cassiopeiae" :
# priority : 0
# count : 2
# temperature : 10
# gain: 150
# offset: 30
# exp_time_sec : 5
"10 Lacertae":
priority: 0
count: 1
temperature: 15
gain: 150
offset: 30
exp_time_sec: 20
"Gamma Cassiopeiae" :
priority : 0
count : 2
temperature : 10
gain: 150
offset: 30
exp_time_sec : 5
# "T CrB" :
# priority : 0
# count : 1
Expand Down
8 changes: 4 additions & 4 deletions helper/IndiWebManagerClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ def restart_driver(self, driver_name, master=False):
host, port = self.master_host, self.master_port
else:
host, port = self.host, self.port
if self.is_driver_started(driver_name, host=host, port=port):
if self.is_driver_started(driver_name, master=master):
try:
base_url = f"http://{host}:{port}"
req = f"{base_url}/api/drivers/restart/{urllib.parse.quote(driver_name)}"
Expand All @@ -179,7 +179,7 @@ def restart_driver(self, driver_name, master=False):
self.logger.error(msg)
raise RuntimeError(msg)
else:
self.start_driver(driver_name, check_started=False, host=host, port=port)
self.start_driver(driver_name, check_started=False, master=master)

def start_driver(self, driver_name, check_started=True, master=False):
"""
Expand All @@ -194,7 +194,7 @@ def start_driver(self, driver_name, check_started=True, master=False):
if driver_name is None:
self.logger.debug(f"In start_driver, no driver name provided, assuming webmanager has auto-start enabled")
return
if check_started and self.is_driver_started(driver_name, host=host, port=port):
if check_started and self.is_driver_started(driver_name, master=master):
return
try:
base_url = f"http://{host}:{port}"
Expand All @@ -219,7 +219,7 @@ def stop_driver(self, driver_name, master=False):
else:
host, port = self.host, self.port
# No need to stop a driver that is not started
if not self.is_driver_started(driver_name, host=host, port=port):
if not self.is_driver_started(driver_name, master=master):
self.logger.debug(f"No need to stop driver {driver_name} because it doesn't seems to be started")
return
try:
Expand Down

0 comments on commit 96e5fbc

Please sign in to comment.