pyreduce-astro 0.7a5__tar.gz → 0.7a6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/.gitignore +1 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/CHANGELOG.md +12 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/CLAUDE.md +6 -6
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/PKG-INFO +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/README.md +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/aj_example.py +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/crires_plus_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/custom_instrument_example.py +3 -3
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/harpn_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/harps_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/harps_gridsearch.py +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/just_one_swath.py +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/jwst_miri_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/jwst_niriss_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/lick_apf_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/mcdonald_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/metis_ifu_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/metis_lss_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/micado_example.py +3 -3
- pyreduce_astro-0.7a6/examples/neid_example.py +65 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/nirspec_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/toes_example.py +10 -10
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/uves_callfunc.py +5 -5
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/uves_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/examples/xshooter_example.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyproject.toml +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/__main__.py +82 -18
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/cli.py +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/combine_frames.py +8 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/common.py +201 -15
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/harpn.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/harps.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/models.py +24 -0
- pyreduce_astro-0.7a6/pyreduce/instruments/neid.py +128 -0
- pyreduce_astro-0.7a6/pyreduce/instruments/neid.yaml +60 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/nirspec.py +2 -2
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/pipeline.py +6 -6
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/reduce.py +5 -5
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_AJ.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_ANDES.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_CRIRES_PLUS.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_HARPN.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_HARPS.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_JWST_MIRI.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_JWST_NIRISS.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_LICK_APF.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_MCDONALD.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_METIS_IFU.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_METIS_LSS.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_MICADO.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_NEID.json +9 -18
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_NIRSPEC.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_NTE.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_UVES.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_XSHOOTER.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_pyreduce.json +1 -1
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/settings/settings_schema.json +3 -3
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/uv.lock +1 -1
- pyreduce_astro-0.7a5/.pyup.yml +0 -4
- pyreduce_astro-0.7a5/codemeta.json +0 -56
- pyreduce_astro-0.7a5/environment.yml +0 -19
- pyreduce_astro-0.7a5/examples/neid_example.py +0 -56
- pyreduce_astro-0.7a5/plots_for_paper/dimensionality.py +0 -172
- pyreduce_astro-0.7a5/plots_for_paper/settings_HARPS.json +0 -47
- pyreduce_astro-0.7a5/plots_for_paper/wavecal_plot.py +0 -137
- pyreduce_astro-0.7a5/pyproject.toml.sav +0 -77
- pyreduce_astro-0.7a5/pyreduce/instruments/neid.py +0 -156
- pyreduce_astro-0.7a5/pyreduce/instruments/neid.yaml +0 -61
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/.gitattributes +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/.pre-commit-config.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/.python-version +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/.readthedocs.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/AGENTS.md +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/LICENSE +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/hatch_build.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/__init__.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/clib/__init__.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/clib/build_extract.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/clib/slit_func_2d_xi_zeta_bd.c +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/clib/slit_func_2d_xi_zeta_bd.h +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/clib/slit_func_bd.c +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/clib/slit_func_bd.h +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/clipnflip.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/configuration.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/continuum_normalization.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/cwrappers.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/datasets.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/echelle.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/estimate_background_scatter.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/extract.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/extraction_width.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/__init__.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/aj.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/aj.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/andes.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/andes.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/common.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/crires_plus.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/crires_plus.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/filters.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/harpn.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/harps.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/instrument_info.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/jwst_miri.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/jwst_miri.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/jwst_niriss.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/jwst_niriss.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/lick_apf.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/lick_apf.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/mcdonald.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/mcdonald.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/metis_ifu.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/metis_ifu.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/metis_lss.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/metis_lss.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/micado.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/micado.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/nirspec.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/nte.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/nte.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/uves.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/uves.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/xshooter.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/instruments/xshooter.yaml +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/make_shear.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_crires_plus_det1.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_crires_plus_det2.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_crires_plus_det3.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_ctio_chiron.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_elodie.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_feros3.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_flames_giraffe.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_harps_blue.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_harps_red.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_hds_blue.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_hds_red.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_het_hrs_2x5.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_jwst_miri_lrs_slitless.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_jwst_niriss_gr700xd.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_lick_apf_.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_mcdonald.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_nes.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_nirspec_nirspec.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_sarg.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_sarg_2x2a.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_sarg_2x2b.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_subaru_hds_red.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_blue.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_blue_binned_2_2.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_middle.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_middle_2x2_split.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_middle_binned_2_2.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_red.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_red_2x2.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_red_2x2_split.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_uves_red_binned_2_2.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/masks/mask_xshooter_nir.fits.gz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/rectify.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/tools/__init__.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/tools/combine.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/trace.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/util.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/MICADO_HK_3arcsec_chip5.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/atlas/thar.fits +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/atlas/thar_list.txt +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/atlas/une.fits +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/convert.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/crires_plus_J1228_det1.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/crires_plus_J1228_det2.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/crires_plus_J1228_det3.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/harpn_harpn_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/harps_blue_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/harps_blue_pol_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/harps_red_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/harps_red_pol_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/mcdonald.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/metis_lss_l_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/metis_lss_m_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/nirspec_K2.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_blue_360nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_blue_390nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_blue_437nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_middle_2x2_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_middle_565nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_middle_580nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_middle_600nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_middle_665nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_middle_860nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_red_580nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_red_600nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_red_665nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_red_760nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/uves_red_860nm_2D.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavecal/xshooter_nir.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/pyreduce/wavelength_calibration.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/argon.line +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/bpm_creator.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/create_wavelength_guess.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/download_files.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6/tools}/ipy_startup.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/neon.lin +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/neon.line +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/pymultispec.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/thar.npz +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/wavecal_creator.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/wavecal_creator_from_existing.py +0 -0
- {pyreduce_astro-0.7a5 → pyreduce_astro-0.7a6}/tools/xshooter_nir.json +0 -0
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## [0.7a6] - 2026-01-03
|
|
5
|
+
|
|
6
|
+
### Added
|
|
7
|
+
- `--file` option for CLI step commands to bypass file discovery
|
|
8
|
+
- NEID instrument with multi-amplifier support
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Rename `orders` step to `trace` throughout codebase (CLI, API, configs)
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- test_normflat to use column_range returned by extract
|
|
15
|
+
|
|
4
16
|
## [0.7a5] - 2025-12-30
|
|
5
17
|
|
|
6
18
|
### Changed
|
|
@@ -19,7 +19,7 @@ uv run reduce download UVES
|
|
|
19
19
|
PYREDUCE_PLOT=0 uv run python examples/uves_example.py
|
|
20
20
|
|
|
21
21
|
# Or use CLI
|
|
22
|
-
uv run reduce run UVES HD132205 --steps bias,flat,
|
|
22
|
+
uv run reduce run UVES HD132205 --steps bias,flat,trace,science
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## Package Structure
|
|
@@ -63,7 +63,7 @@ The reduction pipeline consists of these steps (in typical order):
|
|
|
63
63
|
| `mask` | `Mask` | Load bad pixel mask for detector |
|
|
64
64
|
| `bias` | `Bias` | Combine bias frames into master bias |
|
|
65
65
|
| `flat` | `Flat` | Combine flat frames, subtract bias |
|
|
66
|
-
| `
|
|
66
|
+
| `trace` | `OrderTracing` | Trace echelle order positions on flat |
|
|
67
67
|
| `curvature` | `SlitCurvatureDetermination` | Measure slit tilt/shear from arc lamp |
|
|
68
68
|
| `scatter` | `BackgroundScatter` | Model inter-order scattered light |
|
|
69
69
|
| `norm_flat` | `NormalizeFlatField` | Normalize flat, extract blaze function |
|
|
@@ -138,7 +138,7 @@ Defines HOW to reduce - algorithm parameters per step:
|
|
|
138
138
|
"bias": {
|
|
139
139
|
"degree": 0
|
|
140
140
|
},
|
|
141
|
-
"
|
|
141
|
+
"trace": {
|
|
142
142
|
"degree": 4,
|
|
143
143
|
"noise": 100,
|
|
144
144
|
"min_cluster": 500,
|
|
@@ -176,7 +176,7 @@ result = Pipeline.from_instrument(
|
|
|
176
176
|
target="HD132205",
|
|
177
177
|
night="2010-04-01",
|
|
178
178
|
channel="middle",
|
|
179
|
-
steps=("bias", "flat", "
|
|
179
|
+
steps=("bias", "flat", "trace", "science"),
|
|
180
180
|
base_dir="/data",
|
|
181
181
|
plot=1,
|
|
182
182
|
).run()
|
|
@@ -221,11 +221,11 @@ pyreduce.reduce.main(
|
|
|
221
221
|
|
|
222
222
|
```bash
|
|
223
223
|
# Full pipeline
|
|
224
|
-
uv run reduce run UVES HD132205 --steps bias,flat,
|
|
224
|
+
uv run reduce run UVES HD132205 --steps bias,flat,trace
|
|
225
225
|
|
|
226
226
|
# Individual steps (top-level commands)
|
|
227
227
|
uv run reduce bias UVES HD132205
|
|
228
|
-
uv run reduce
|
|
228
|
+
uv run reduce trace UVES HD132205
|
|
229
229
|
uv run reduce wavecal UVES HD132205
|
|
230
230
|
|
|
231
231
|
# Combine reduced spectra
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyreduce-astro
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7a6
|
|
4
4
|
Summary: A data reduction package for echelle spectrographs
|
|
5
5
|
Project-URL: Homepage, https://github.com/ivh/PyReduce
|
|
6
6
|
Project-URL: Documentation, https://pyreduce-astro.readthedocs.io
|
|
@@ -76,7 +76,7 @@ uv sync
|
|
|
76
76
|
uv run reduce download UVES
|
|
77
77
|
|
|
78
78
|
# Run reduction
|
|
79
|
-
uv run reduce run UVES HD132205 --steps bias,flat,
|
|
79
|
+
uv run reduce run UVES HD132205 --steps bias,flat,trace,science
|
|
80
80
|
|
|
81
81
|
# Or run individual steps
|
|
82
82
|
uv run reduce bias UVES HD132205
|
|
@@ -34,7 +34,7 @@ uv sync
|
|
|
34
34
|
uv run reduce download UVES
|
|
35
35
|
|
|
36
36
|
# Run reduction
|
|
37
|
-
uv run reduce run UVES HD132205 --steps bias,flat,
|
|
37
|
+
uv run reduce run UVES HD132205 --steps bias,flat,trace,science
|
|
38
38
|
|
|
39
39
|
# Or run individual steps
|
|
40
40
|
uv run reduce bias UVES HD132205
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -20,7 +20,7 @@ channel = "J1228_det1"
|
|
|
20
20
|
steps = (
|
|
21
21
|
# "bias",
|
|
22
22
|
# "flat",
|
|
23
|
-
# "
|
|
23
|
+
# "trace",
|
|
24
24
|
# "curvature",
|
|
25
25
|
# "scatter",
|
|
26
26
|
# "norm_flat",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -32,7 +32,7 @@ instrument.info["prescan_x"] = "PRESCAN X"
|
|
|
32
32
|
# For loading the config we specify pyreduce as the source, since this is the default
|
|
33
33
|
config = get_configuration_for_instrument("pyreduce")
|
|
34
34
|
# Define your own configuration
|
|
35
|
-
config["
|
|
35
|
+
config["trace"]["degree"] = 5
|
|
36
36
|
|
|
37
37
|
# Since we can't find the files ourselves (at least not without defining the criteria we are looking for)
|
|
38
38
|
# We need to manually define which files go where
|
|
@@ -53,7 +53,7 @@ channel = ""
|
|
|
53
53
|
steps = (
|
|
54
54
|
"bias",
|
|
55
55
|
"flat",
|
|
56
|
-
"
|
|
56
|
+
"trace",
|
|
57
57
|
"curvature",
|
|
58
58
|
"scatter",
|
|
59
59
|
"norm_flat",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -20,7 +20,7 @@ channel = "HARPN"
|
|
|
20
20
|
steps = (
|
|
21
21
|
# "bias",
|
|
22
22
|
# "flat",
|
|
23
|
-
# "
|
|
23
|
+
# "trace",
|
|
24
24
|
# "norm_flat",
|
|
25
25
|
# "wavecal_master",
|
|
26
26
|
"wavecal",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -18,7 +18,7 @@ channel = "red"
|
|
|
18
18
|
steps = (
|
|
19
19
|
"bias",
|
|
20
20
|
"flat",
|
|
21
|
-
"
|
|
21
|
+
"trace",
|
|
22
22
|
"curvature",
|
|
23
23
|
"scatter",
|
|
24
24
|
"norm_flat",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -18,7 +18,7 @@ channel = "LRS_SLITLESS"
|
|
|
18
18
|
steps = (
|
|
19
19
|
"bias",
|
|
20
20
|
"flat",
|
|
21
|
-
"
|
|
21
|
+
"trace",
|
|
22
22
|
"norm_flat",
|
|
23
23
|
# "wavecal",
|
|
24
24
|
# "curvature",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -18,7 +18,7 @@ channel = "GR700XD"
|
|
|
18
18
|
steps = (
|
|
19
19
|
"bias",
|
|
20
20
|
"flat",
|
|
21
|
-
"
|
|
21
|
+
"trace",
|
|
22
22
|
"norm_flat",
|
|
23
23
|
# "wavecal",
|
|
24
24
|
# "curvature",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -18,7 +18,7 @@ channel = ""
|
|
|
18
18
|
steps = (
|
|
19
19
|
"bias",
|
|
20
20
|
# "flat",
|
|
21
|
-
# "
|
|
21
|
+
# "trace",
|
|
22
22
|
# "norm_flat",
|
|
23
23
|
# "wavecal",
|
|
24
24
|
# "curvature",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -19,7 +19,7 @@ channel = "CS23"
|
|
|
19
19
|
steps = (
|
|
20
20
|
# "bias",
|
|
21
21
|
# "flat",
|
|
22
|
-
# "
|
|
22
|
+
# "trace",
|
|
23
23
|
# "curvature",
|
|
24
24
|
"scatter",
|
|
25
25
|
# "norm_flat",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -20,7 +20,7 @@ channel = "IFU_NOMINAL"
|
|
|
20
20
|
steps = (
|
|
21
21
|
# "bias",
|
|
22
22
|
# "flat",
|
|
23
|
-
"
|
|
23
|
+
"trace",
|
|
24
24
|
"curvature",
|
|
25
25
|
# "scatter",
|
|
26
26
|
# "norm_flat",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -20,7 +20,7 @@ channel = "LSS_M"
|
|
|
20
20
|
steps = (
|
|
21
21
|
# "bias",
|
|
22
22
|
"flat",
|
|
23
|
-
"
|
|
23
|
+
"trace",
|
|
24
24
|
"curvature",
|
|
25
25
|
# "scatter",
|
|
26
26
|
# "norm_flat",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -17,7 +17,7 @@ channel = ""
|
|
|
17
17
|
steps = (
|
|
18
18
|
# "bias",
|
|
19
19
|
"flat",
|
|
20
|
-
"
|
|
20
|
+
"trace",
|
|
21
21
|
"curvature",
|
|
22
22
|
# # "scatter",
|
|
23
23
|
# "norm_flat",
|
|
@@ -47,7 +47,7 @@ config = pyreduce.configuration.get_configuration_for_instrument(instrument)
|
|
|
47
47
|
# Once you are satisfied with a certain parameter, you can update it in settings_MICADO.json.
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
# config["
|
|
50
|
+
# config["trace"]["noise"] = 100
|
|
51
51
|
# config["curvature"]["extraction_width"] = 350 # curvature can still be improved with this and the following parameters
|
|
52
52
|
# config["curvature"]["peak_threshold"] =10
|
|
53
53
|
# config["curvature"]["peak_width"] =2 #CHECK 6 also works and detects one less line
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# /// script
|
|
2
|
+
# requires-python = ">=3.13"
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
|
+
# ///
|
|
5
|
+
"""
|
|
6
|
+
NEID reduction example
|
|
7
|
+
|
|
8
|
+
NEID is a fiber-fed, high-resolution (R~110,000) spectrograph on the
|
|
9
|
+
WIYN 3.5m telescope at Kitt Peak. L0 data has 16 amplifiers that are
|
|
10
|
+
automatically assembled during loading.
|
|
11
|
+
|
|
12
|
+
This example reduces HD 4628 observations from night 2024-09-19.
|
|
13
|
+
Note: Observations before 12:00 UTC belong to the previous night.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import os
|
|
17
|
+
|
|
18
|
+
from pyreduce.configuration import get_configuration_for_instrument
|
|
19
|
+
from pyreduce.pipeline import Pipeline
|
|
20
|
+
|
|
21
|
+
# Define parameters
|
|
22
|
+
instrument = "NEID"
|
|
23
|
+
target = "HD 4628"
|
|
24
|
+
night = "2024-09-19" # Observations before 12:00 UTC belong to previous night
|
|
25
|
+
channel = "HR"
|
|
26
|
+
|
|
27
|
+
# Reduction steps to run
|
|
28
|
+
# Start with basic steps; add wavecal/science once calibration files are set up
|
|
29
|
+
steps = (
|
|
30
|
+
"flat",
|
|
31
|
+
"trace",
|
|
32
|
+
# "curvature",
|
|
33
|
+
# "norm_flat",
|
|
34
|
+
# "wavecal_master",
|
|
35
|
+
# "wavecal_init",
|
|
36
|
+
# "wavecal",
|
|
37
|
+
# "science",
|
|
38
|
+
# "continuum",
|
|
39
|
+
# "finalize",
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
# Data paths
|
|
43
|
+
# Set REDUCE_DATA environment variable or modify base_dir
|
|
44
|
+
base_dir = os.environ.get("REDUCE_DATA", os.path.expanduser("~/REDUCE_DATA"))
|
|
45
|
+
base_dir = os.path.join(base_dir, "NEID")
|
|
46
|
+
input_dir = "" # Files directly in base_dir
|
|
47
|
+
output_dir = "reduced"
|
|
48
|
+
|
|
49
|
+
# Load default configuration
|
|
50
|
+
config = get_configuration_for_instrument(instrument)
|
|
51
|
+
|
|
52
|
+
# Run the pipeline
|
|
53
|
+
if __name__ == "__main__":
|
|
54
|
+
Pipeline.from_instrument(
|
|
55
|
+
instrument,
|
|
56
|
+
target,
|
|
57
|
+
night=night,
|
|
58
|
+
channel=channel,
|
|
59
|
+
steps=steps,
|
|
60
|
+
base_dir=base_dir,
|
|
61
|
+
input_dir=input_dir,
|
|
62
|
+
output_dir=output_dir,
|
|
63
|
+
configuration=config,
|
|
64
|
+
plot=1,
|
|
65
|
+
).run()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -18,7 +18,7 @@ channel = "NIRSPEC"
|
|
|
18
18
|
steps = (
|
|
19
19
|
"bias",
|
|
20
20
|
"flat",
|
|
21
|
-
"
|
|
21
|
+
"trace",
|
|
22
22
|
"norm_flat",
|
|
23
23
|
"wavecal",
|
|
24
24
|
"freq_comb",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
import numpy as np
|
|
6
6
|
|
|
@@ -81,13 +81,13 @@ instrument.info["wavelength_range"] = [
|
|
|
81
81
|
# For loading the config we specify pyreduce as the source, since this is the default
|
|
82
82
|
config = get_configuration_for_instrument("pyreduce")
|
|
83
83
|
# Define your own configuration
|
|
84
|
-
config["
|
|
85
|
-
config["
|
|
86
|
-
config["
|
|
87
|
-
config["
|
|
88
|
-
config["
|
|
89
|
-
config["
|
|
90
|
-
config["
|
|
84
|
+
config["trace"]["filter_y"] = 20 # smoothing along cross-dispersion
|
|
85
|
+
config["trace"]["degree"] = 4
|
|
86
|
+
config["trace"]["degree_before_merge"] = 2
|
|
87
|
+
config["trace"]["noise"] = 5.5
|
|
88
|
+
config["trace"]["min_cluster"] = 3000
|
|
89
|
+
config["trace"]["min_width"] = 200
|
|
90
|
+
config["trace"]["manual"] = True
|
|
91
91
|
config["norm_flat"]["oversampling"] = 8 # Subpixel scale for slit function modelling
|
|
92
92
|
config["norm_flat"]["swath_width"] = 400 # Extraction swath width (columns)
|
|
93
93
|
config["wavecal_master"]["extraction_width"] = 2
|
|
@@ -110,7 +110,7 @@ config["science"]["bias_scaling"] = "number_of_files"
|
|
|
110
110
|
files = {
|
|
111
111
|
"bias": ["Bias_0s_20240621_221716-%d.fit" % i for i in np.arange(1, 11)],
|
|
112
112
|
"flat": ["Flat_5s_20240621_222912-%d.fit" % i for i in np.arange(1, 5)],
|
|
113
|
-
"
|
|
113
|
+
"trace": [flat_file],
|
|
114
114
|
"science": ["Vega_Object_25s_20240621_224908-%d.fit" % i for i in np.arange(1, 2)],
|
|
115
115
|
"wavecal_master": [
|
|
116
116
|
"Sun_Calibration_35s_20240621_184136-%d.fit" % i for i in np.arange(1, 2)
|
|
@@ -138,7 +138,7 @@ channel = ""
|
|
|
138
138
|
steps = (
|
|
139
139
|
# "bias",
|
|
140
140
|
# "flat",
|
|
141
|
-
# "
|
|
141
|
+
# "trace",
|
|
142
142
|
# "norm_flat",
|
|
143
143
|
"wavecal_master",
|
|
144
144
|
"wavecal",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Example showing direct function calls for each step.
|
|
@@ -77,12 +77,12 @@ settings, files = file_groups[0]
|
|
|
77
77
|
print("Settings:", settings)
|
|
78
78
|
|
|
79
79
|
# Files are now accessible as a dict with keys:
|
|
80
|
-
# bias, flat,
|
|
80
|
+
# bias, flat, trace, curvature, scatter, wavecal_master, freq_comb_master, science
|
|
81
81
|
# Each is a list/array of file paths
|
|
82
82
|
|
|
83
83
|
bias_files = files.get("bias", [])
|
|
84
84
|
flat_files = files.get("flat", [])
|
|
85
|
-
order_files = files.get("
|
|
85
|
+
order_files = files.get("trace", flat_files) # Use flat if no dedicated order files
|
|
86
86
|
curvature_files = files.get("curvature", files.get("wavecal_master", []))
|
|
87
87
|
wavecal_files = files.get("wavecal_master", [])
|
|
88
88
|
science_files = files.get("science", [])
|
|
@@ -119,8 +119,8 @@ flat_step = Flat(*step_args, **step_config("flat"))
|
|
|
119
119
|
flat = flat_step.run(flat_files, bias, mask)
|
|
120
120
|
|
|
121
121
|
# Step 4: Order tracing
|
|
122
|
-
print("\n===
|
|
123
|
-
orders_step = OrderTracing(*step_args, **step_config("
|
|
122
|
+
print("\n=== TRACE ===")
|
|
123
|
+
orders_step = OrderTracing(*step_args, **step_config("trace"))
|
|
124
124
|
orders = orders_step.run(order_files, mask, bias)
|
|
125
125
|
|
|
126
126
|
# Step 5: Curvature
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -18,7 +18,7 @@ channel = "middle"
|
|
|
18
18
|
steps = (
|
|
19
19
|
"bias",
|
|
20
20
|
"flat",
|
|
21
|
-
"
|
|
21
|
+
"trace",
|
|
22
22
|
"norm_flat",
|
|
23
23
|
"curvature",
|
|
24
24
|
"wavecal",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# /// script
|
|
2
2
|
# requires-python = ">=3.13"
|
|
3
|
-
# dependencies = ["pyreduce-astro>=0.
|
|
3
|
+
# dependencies = ["pyreduce-astro>=0.7a6"]
|
|
4
4
|
# ///
|
|
5
5
|
"""
|
|
6
6
|
Simple usage example for PyReduce
|
|
@@ -19,7 +19,7 @@ channel = "NIR"
|
|
|
19
19
|
steps = (
|
|
20
20
|
# "bias",
|
|
21
21
|
# "flat",
|
|
22
|
-
# "
|
|
22
|
+
# "trace",
|
|
23
23
|
# "scatter",
|
|
24
24
|
# "norm_flat",
|
|
25
25
|
# "curvature",
|