Skip to content

Releases: sdss/lvmgort

GORT 0.6.0

14 Sep 17:38
Compare
Choose a tag to compare

🚀 New

  • #11 Support asynchronous readout during GortObserved-enabled observations and implement dithering:
    • Remove calls to lvmguider stop --now. The new stop command always cancels the guider task.
    • Added pre-readout hook for Exposure.
    • Allow GortObserver to read out an exposure asynchronously.
    • Gort.observe_tile() will by default read the last exposure asynchronously to allow for the next slew and acquisition to happen during readout.
    • Added a context manager GortObserver.register_overhead() that measured the elapsed time in different parts of the slew and acquisition process and records the values to the database.
    • The dither positions associated with a Tile are now a list of positions that the scheduler wants us to observe. Gort.observe_tile() will try to observe all dither positions without stopping the guider.
    • Added Gort.observe() with a simple loop for observing tiles.
  • Add dither information to Tile and support exposing multiple dither positions in the same observation.

✨ Improved

  • Pass the observed sky and standard pks to the scheduler during registration.
  • The K-mirror offset angle is now wrapped between -180 and 180 degrees. Hopefully this prevents some cases in which offsets angles very close to 360 degrees cause the K-mirror to fail because of a software limit.

🔧 Fixed

  • Fixed deprecations in Pandas fillna() with method='bfill'.

GORT 0.5.0

12 Sep 14:13
Compare
Choose a tag to compare

🚀 New

  • Added support for telescope enclosure lights.

✨ Improved

  • #10 GortObserver.slew() and the standard iteration task now calculate the adjusted target coordinates for the spec telescope so that the slew puts the star on top of the desired fibre to be observed. Most of this relies on code copied from lvmtipo used to calculate the field angle through the siderostat.
  • SkyCoordinates now accepts a name attribute that is passed to the SKYENAME and SKYWNAME header keywords.
  • IFU PA angles passed to the headers.
  • Pass exposure time when registering an exposure.
  • Support new outputs from lvmguider 0.4.0b1.
  • Get actor versions on init.
  • Support guiding in PA (disabled for now).
  • Reconnect AGs during startup recipe.
  • Add tile_id as `OBJECT`` if no object string user-defined.

🏷️ Changed

  • Set GR{telescope}FR{0|N} with the range of guider frames in which we were guiding (as opposed to the entire guide loop including acquisition frames).
  • Changed default guide tolerance to 1 arcsec.

🔧 Fixed

  • Fixed some additional issues with the exception hooks that cause a recursion loop in IPython in some cases.
  • Fixed a bug that would accumulate the range of guider frames for an spectrograph exposure if GortObserver.expose() was called multiple times.
  • Fixed a slicing issue with newer versions of Pandas.
  • Fixed a bug that caused the exposure flavour not being passed to the headers.
  • Deal with cases when the scheduler cannot find a good tile to observe.

GORT 0.4.0

26 Aug 20:32
Compare
Choose a tag to compare

🚀 New

  • Guider frames for each telescope taken during an exposure are added to the spectrograph headers.
  • Standards observed are added to the spectrograph headers. The standard information can be accessed as GortObserver.standards.
  • Added a cleanup recipe.
  • Added exposure frame to the progress bar.
  • Add PA parameter to tiles and propagate it to the k-mirror slew commands.
  • Use rich tracebacks. This can be disabled by calling Gort with use_rich_output=False. Tracebacks generated in an interactive IPython session are now saved to the file log.
  • Log Gort output to a temporary file by default. Gort can also be called with an argument log_file_path to indicate where to save the log, or with log_file_path=False to disable logging. The current file log path can be retrieved as Gort.get_log_path().

✨ Improved

  • #9 Refactoring of Exposure and SpectrographSet.expose(). Most of the code in the latter has been moved to the former. Added a system of hooks for the exposure process. For now, only a pre-readout hook that is called with the header before the exposure is read.
  • Concurrently stop spec guiding and reslew.
  • Pass seg_time and seg_min_num to slewStart.
  • The code used to build the spectrograph header has been cleaned up and consolidated in GortObserver.

🔧 Fixed

  • Explicitely define site coordinates to avoid astropy needing to download files.

GORT 0.3.0

14 Aug 19:35
Compare
Choose a tag to compare
GORT 0.3.0

GORT 0.2.2

23 Jul 17:56
Compare
Choose a tag to compare

🚀 New

  • Added the testcal calibration sequence.

✨ Improved

  • Updated the calibrations section in the documentation.
  • Prevent multiple devices reconnecting to RabbitMQ at the same time.
  • Set the OBJECT header keyword in spectrograph exposures.
  • Telescopes keep track of whether they have been homed.
  • Telescopes will move to park automatically when trying to open or close the dome.

🔧 Fixed

  • Fixed an issue that would cause object exposures to be taken as biases.
  • Fixed progress bar being affected by stdout and logs by setting the same rich Console object for logs and progress bars.
  • Fixed accessing the configuration from an Exposure object.

GORT 0.2.1

19 Jul 21:01
Compare
Choose a tag to compare

✨ Improved

  • SpectrographSet.expose() now accepts a count parameters to expose multiple frames.
  • The parameter flavour for SpectrographSet.expose() is not explicitely exposed and documented.
  • SpectrographSet.calibrate() accepts a slew_telescopes parameters. Whether the telescopes are slewed is also determined by the type of calibrations to take.
  • Various improvements to the calibration schema. flavour, warmup, and the fibsel parameters now have defaults in the configuration file to which the calibration routine will revert to. If fibsel: true, a default mask iteration will be performed. Both darks and lamps now accept exposure_time which can be a float or a list of floats.

🏷️ Changed

  • SpectrographSet.calibrate() does not park the telescope by default.

⚙️ Engineering

  • Progress bars are now transient.

GORT 0.2.0

18 Jul 21:35
Compare
Choose a tag to compare

🚀 New

  • Added support for spectrograph IEBs.
  • Added SpectrographSet.get_calibration_sequence().`
  • Added initialise`` (init) and abort`` methods for the spectrographs.

✨ Improved

  • #4 Use the rich library for status bars. It provides better style and works better with stdout and logger outputs.
  • Expose various parameters in Gort.observe_tile().
  • Various fixes and additional routes for the websockets server.
  • Allow to pass a calibration sequence as a dictionary, and validate against JSON schema.
  • Avoid having all MoTan devices moving at once by introducing a delay.

⚙️ Engineering

  • Update `unclick`` to 0.1.0b5.
  • Use the rich library logger but customise it to look like the usual console formatter.
  • Allow to define the configuration file to use as $GORT_CONFIG_FILE.

GORT 0.1.1

14 Jul 22:08
Compare
Choose a tag to compare

✨ Improved

  • Made the ScienceCoordinates.set_mf_pixel() method public.
  • Allow to set master frame pixel in ScienceCoordinates with xz tuple.
  • Added fibre_to_master_frame() transformation function.
  • Improve __repr__ for Tile and GortObserver.
  • Complete documentation for tiles, observing, and offsets.

GORT 0.1.0

14 Jul 16:56
Compare
Choose a tag to compare

🚀 New

  • Initial versions. Bugs are likely but most features are functional.
  • DeviceSet classes for telescopes, AGs, guiders, enclosure, spectrographs, and NPS.
  • Tile, GortObserver classes to perform observations.
  • Kubernetes class to interact with the Kubernetes cluster.
  • Various tools and transformation functions.
  • Very preliminary websocket server.