Skip to content

Version 2.0.0

Choose a tag to compare

@kbwestfall kbwestfall released this 11 Feb 15:35
· 25 commits to release since this release
b0b439d

Breaking Changes

  • FindObj parameters find_maxdev and find_extrap_npoly have been renamed to trace_maxdev and trace_extrap_npoly, respectively, to indicate their use in object tracing rather than object finding. No change to the functionality of these parameters has been made. Users with these parameters in their pre-existing :ref:PypeIt Input Files <input_files> will need to change the parameter names in order to run said files.

Documentation Updates

  • Added tables with the list of available telluric model spectra.

Dependency Changes

  • Removed dependency on linetools package (details below).

Functionality/Performance Improvements and Additions

  • Added the possibility to use pypeit_sensfunc to compute a sensitivity function using the the 1D spectrum generated by pypeit_coadd_1dspec, i.e., the OneSpec datamodel. Note that this is only possible for non-echelle data.
  • Added a new class to interface with the atmospheric extinction data.
  • Significant refactor of interface with flux-calibration standards.
  • Addition of two new FindObj object tracing prameters trace_maxshift and trace_min_max that make it easier to work with spectral images that are subject to high atmospheric dispersion (former) and/or regions of the detector that extend beyond the detected object (latter).
  • Include an object tracing QA plot (<objname>_<det>_<slit>_obj_trace.png) in the collection of QA plots produced in the main PypeIt run.
  • Added the possibility to use the maskdesign information to set specmin and specmax in the edge tracing process for each slit (only if this information is available). Currently implemented only for Gemini/GMOS.
  • When creating a sensitivity function from a standard star reduced using the mosaic approach, the code now splits the standard star spec1d into the single detectors and, after the sensitivity function for each detector is computed, it splices them into a single sensfunc covering the full wavelength range.
  • Add the possibility to use more than one standard star spec1d to create the sensitivity function. This can be helpful in case of spectrally dithered observations.

Instrument-specific Updates

  • Improved support for LBT/LUCI, including updated detector parameters, support for the N3.75 camera, wavelength solutions for the G200 grating, and a basic non-linearity correction. Edge finding parameters have been better optimized, and spatial flexure correction has now been turned on.
  • Updated object tracing parameters for LDT/DeVeny to allow more robust extraction of objects observed at low elevation where atmospheric dispersion is significant.
  • Updated the gain and ronoise values for Gemini/GMOS spectrographs to account for the different values measured in each amplifier.
  • Enables MMT/Binospec reductions to match the slitmask design input to the detected slits, similar to procedures used for Keck/DEIMOS, Keck/MOSFIRE, etc.

Script Changes

  • Added a new script, pypeit_rectify_2dspec, which creates a rectified 2D spectral image. Each slit/order in the spec2d output file is rectified onto a common wavelength grid. This rectified 2D image must be used only for quick-look visualization purposes, and not for scientific analysis.

Testing

  • Added tests for some :mod:~pypeit.core.coadd functions.

Under-the-hood Improvements

  • Improved extension checking for post-processing scripts to explicitly allow PypeIt-produced ".fits" files regardless of a given spectrograph's raw data extension.

Bug Fixes

  • Removed last vestiges of support for Python 3.10 in the form of datetime.UTC crutches left over from the start of support of Python 3.12.
  • Fixed a bug with configuration-specific parameters where the raw data FITS header was polled for metadata information used to set parameters rather than relying on the metadata in the .pypeit file. For some spectrographs, this required adding new columns to the .pypeit file format; to retain backwards- compatibility when an older .pypeit file without these columns is used, the code still pulls the desired metadata from the raw data FITS file as before.
  • Fixed Coadd2d filenames to remove spaces from objet names (as is done in the main PypeIt run).

AI Use

Deprecation of linetools dependency

We used Claude to aid in the removal of the linetools dependency from PypeIt with the following prompts:

  • On this deprecate_linetools branch, I wish to remove all imports of linetools. Can you confirm that I have successfully done so?

  • Yes, please do, but ignore the ones in the Documentation files

  • The test test_arc.py in tests/ is failing. Please suggest a fix. If you need to run it, use the "pypeit" environment in conda.

Additional by-hand changes were made to remove the linetools references from the docs, remove lingering instances of xspectrum1d, and fix remaining issues.

We also added tests for the new pypeit.utils.loadjson function using the following prompt (GPT-5 mini):

  • Please add test functions to test_utils.py that test the functionality of the pypeit.utils.loadjson function. As necessary, the test functions should create test JSON files in the pypeit/tests directory that are then deleted when each test is complete. The tests should cover usage with regular and gzip compressed files. The tests should also cover failure modes when the file does not exist, the file is not JSON format, and any of the loading functions fail.

  • Please make the following edits to your contribution. Remove the definition of TEST_DIR; instead simply save the files in the current working directory. Move all the new tests to the end of the file. Make sure all imports are at the top of the file, after any initial file docstring.