Installation Changes
- Significant expansion of PypeIt's use of the cache system; see
:ref:data_installation
. Important changes include that most cached
files are now version dependent. When upgrading to new versions of
PypeIt, users should delete their cache and start fresh.
Dependency Changes
- Support added for numpy>=2.0.0; numpy<=2.0.0 should still be supported
- Deprecated support for python 3.10
- General update to dependencies to be roughly consistent with release
of python 3.11
Functionality/Performance Improvements and Additions
- Added the
max_overlap
parameter, which limits the set of new order
traces added, to compensate for orders missed during automated
edge-tracing, to those that have less than a given fractional overlap
with adjacent orders. - Added the
order_fitrej
andorder_outlier
parameters used to
set the sigma-clipping threshold used when fitting Legendre functions
to the order widths and gaps. - Added the possibility to decide if the extracted standard star
spectrum should be used as a crutch for tracing the object in the
science frame (before it was done as default). This is done by
setting the parameteruse_std_trace
in FindObjPar. - Now PypeIt can handle the case where "Standard star trace does not
match the number of orders in the echelle data" both inrun_pypeit
and inpypeit_coadd_1dspec
. - Added the functionality to use slitless flats to create pixelflats.
Note: new frametypeslitless_pixflat
is added to the PypeIt
frametype list. - The created pixelflats are stored in the reduction directory and in
the PypeIt cache directorydata/pixelflats
. - Added a functionality that allows, when multiple frames are combined,
to scale each frame to have the same mean value before combining. To
use this functionality, the new parameterscale_mean
should be set
toTrue
. - Added the possibility to use the parameter
fwhm_fromlines
also for
the tilts calibration.
Instrument-specific Updates
-
Improved LRIS frame typing, including the typing of slitless flats and
sky flats. -
Improved HIRES frame typing and configuration setup.
-
Added support for Keck/KCWI BH3 grating configuration.
-
Updated the requirements of a spectral flip for KCWI (blue) data. If
all amplifiers are used, the data will not be flipped in the spectral
direction. Otherwise, the data will be flipped. -
Added support for the (decommissioned) AAT/UHRF instrument
-
Updated X-Shooter detector gain and read noise to come from header,
and updated plate scales to the most recent values from the manual.
Detailed changes are:-
NIR arm:
- Platescale updated from 0.197 to 0.245 arcsec/pixel
- Dark current updated from 0. to 72. e-/pixel/hr
- Gain updated from 2.12 to 2.29 e-/DN
-
VIS arm:
- Platescale updated from an order-dependent value, to being
0.154 arcsec/pixel for all orders
- Platescale updated from an order-dependent value, to being
-
UVB arm:
- Platescale updated from an order-dependent value, to being
0.164 arcsec/pixel for all orders
- Platescale updated from an order-dependent value, to being
-
-
Add new P200/DBSP reid_arxiv template for 1200/7100 with D55 dichroic
-
Add B480 as a supported option for Gemini-S/GMOS
Script Changes
- Modifications to the cache-related :ref:
install_scripts
to
accommodate expansion of and changes to the cache system. - Added
pypeit_clean_cache
script to facilitate both viewing and
removing files in the cache. - Changed the name of the multi-dimensional specdata to
specdata_multi
inpypeit_identify
and improved the robustness
of the saving dialog when calibrating single trace spectra. - Fixed a read-in error for the high resolution A0V PHOENIX model.
- A new script, called
pypeit_extract_datacube
, allows 1D spectra of
point sources to be extracted from datacubes. - The sensitivity function is now generated outside of datacube
generation. - The
grating_corr
column is now used to select the correct grating
correction file for each spec2d file when generating the datacube. - Added the
--extr
parameter in thepypeit_sensfunc
script (also
as aSensFuncPar
) to allow the user to specify the extraction
method to use when computing the sensitivity function (before only
optimal extraction was used). - Added
pypeit_show_pixflat
script to inspect the (slitless) pixel
flat generated during the reduction and stored indata/pixelflats
. - Added
pypeit_chk_flexure
script to check both spatial and spectral
flexure applied to the reduced data. - Treatment of file names is now more formal. Compression signatures
are now considered, and filename matching is now more strict. - Removed
--spec_samp_fact
and--spat_samp_fact
command line
options frompypeit_coadd_2d
. These options are now parameters in
Coadd2dPar
. pypeit_show_2dspec
now shows the first available detector in the
2D spectrum by default. The user can specify the detector to show with
the--det
option.- Added
--removetrace
command line option topypeit_ql
to not
show the object trace when displaying the 2D spectrum. - Change the default value for
--skip_display
inpypeit_ql
to
True
.
Datamodel Changes
- Adjusted spec1d datamodel to enable use with UVES_popler GUI tool
Under-the-hood Improvements
- Introduced :class:
~pypeit.pypeitdata.PypeItDataPaths
to handle all
interactions with thepypeit/data
directory, which provides a
unified interface for accessing on-disk and cached files. - When adding missing orders, the full syncing procedure is no longer
performed. The code now only checks that the edges are still synced
after the missed orders are added. - When detecting overlapping orders/slits, the code now forces each edge
used to have been directly detected; i.e., if an edge is inserted, the
fact that the resulting slit is abnormally short should not trigger
the overlap detection. - Improved the QA plot resulting from fitting order widths and gaps as a
function of spatial position. - Updated general raw image reader so that it correctly accounts for
spectrographs that read the data and overscan sections directly from
the file headers.
Bug Fixes
- Fix "The system cannot find the file specified" errors when installing
on Windows. - Fixed a fault caused when all frames in a pypeit file are identified
as being part ofall
calibration groups. - Allow for empty 2D wavecal solution in HDU extension of WaveCalib file
- Fixed a bug in the ginga display function, when the user doesn't
provide thetrc_name
argument. - Fix a MAJOR BUT SUBTLE bug in the use of
numpy.argsort
. When
usingnumpy.argsort
the parameterkind='stable'
should be used
to ensure that a sorting algorithm more robust than "quicksort" is
used. - Fix error "ValueError: setting an array element with a sequence. The
requested array has an inhomogeneous shape after 1 dimensions..."
occurring when unpacking theSpecObj
spectrum but having an
attribute of theSpecObj
object that isNone
. - Fixed a hidden bug that was causing the spatial flexure to fail. The
bug was in theSlitTraceBitMask
class, where the function
exclude_for_flexure()
was not returning the'BOXSLIT'
flag. - Fix a bug in
pypeit_coadd_2d
related to how the binning was taken
into account in the mask definition, and in the calculation of the
offset between frames. - Fix bug when trying to open mosaic data from previous versions;
version checking flag was not being propagated.