Skip to content

Commit de3d48a

Browse files
ivhclaude
andcommitted
Release v0.8a4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2a9e788 commit de3d48a

5 files changed

Lines changed: 37 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
# Changelog
22

33

4+
## [0.8a4] - 2026-02-14
5+
6+
### Added
7+
- HARPSPOL instrument with dual-beam (Wollaston prism) support
8+
- Otsu+DP beam-pair detection for multi-fiber trace pairing
9+
- `--use` CLI flag to select fiber groups (e.g., `--use upper,lower`)
10+
- Wavelength propagation from trace into extracted Spectrum
11+
12+
### Changed
13+
- Output files go into per-night subdirectory (`reduced/{night}/`)
14+
- Group filenames use `{prefix}_{group}.{step}.{ext}` convention
15+
- Traces without order_centers get sequential m values (was None)
16+
17+
### Fixed
18+
- Fix `create_image_from_lines` row count (use ntrace, not order range)
19+
- Fix 2D wavecal polynomial eval: use trace index, not physical order m
20+
- Fix multi-channel filename overwrite (include channel in science/rectify)
21+
- Fix linelist order drift across re-runs (normalize to 0-based on save)
22+
- Fix output_dir CLI default (None, so config's `reduced/{night}` is used)
23+
424
## [0.8a3] - 2026-02-11
525

626
### Changed

docs/cli.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ uv run reduce run INSTRUMENT [OPTIONS]
4444
| `--plot-show` | | Display mode: block, defer, or off |
4545
| `--order-range` | | Order range to process (e.g., "1,21") |
4646
| `--settings` | | JSON file with settings overrides |
47+
| `--use` | | Fiber group(s) to reduce (e.g., "upper" or "upper,lower") |
4748

4849
**Examples:**
4950

@@ -193,15 +194,18 @@ PyReduce expects the following directory structure:
193194
$REDUCE_DATA/
194195
INSTRUMENT/
195196
raw/
196-
*.fits # Input FITS files
197-
reduced/
198-
*_bias.fits # Master bias
199-
*_flat.fits # Master flat
200-
*.traces.fits # Traces and extraction heights
201-
*.science.fits # Extracted spectra
202-
*.final.fits # Final output
197+
*.fits # Input FITS files
198+
reduced/{night}/
199+
{inst}_{chan}.bias.fits # Master bias
200+
{inst}_{chan}.flat.fits # Master flat
201+
{inst}_{chan}.traces.fits # Traces and wavelength polynomials
202+
*.{chan}.science.fits # Extracted spectra
203+
*.{chan}.final.fits # Final output
203204
```
204205

206+
For multi-fiber instruments, group-specific files use the pattern
207+
`{inst}_{chan}_{group}.{step}.{ext}` (e.g., `harpspol_blue_upper.linelist.npz`).
208+
205209
The base directory can be set via:
206210
1. `--base-dir` option
207211
2. `REDUCE_DATA` environment variable

docs/wavecal_linelist.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,19 +170,19 @@ trace step
170170
wavecal_master step
171171
└─ reads traces.fits
172172
└─ extracts calibration lamp spectrum per fiber group
173-
└─ writes wavecal_master.{group}.fits
173+
└─ writes {prefix}_{group}.wavecal_master.fits
174174
175175
wavecal_init step
176176
└─ reads wavecal_master output
177177
└─ identifies lines by matching peaks to atlas
178-
└─ writes linelist.{group}.npz
178+
└─ writes {prefix}_{group}.linelist.npz
179179
180180
wavecal step
181-
└─ reads linelist.{group}.npz (from wavecal_init or previous wavecal run)
181+
└─ reads {prefix}_{group}.linelist.npz (from wavecal_init or previous wavecal run)
182182
└─ reads wavecal_master output
183183
└─ reads traces.fits
184184
└─ aligns, refines positions, fits 2D polynomial
185-
└─ overwrites linelist.{group}.npz with refined linelist
185+
└─ overwrites {prefix}_{group}.linelist.npz with refined linelist
186186
└─ updates traces.fits with wavelength polynomials (Trace.wave, Trace.m)
187187
188188
science step

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "pyreduce-astro"
3-
version = "0.8a3"
3+
version = "0.8a4"
44
requires-python = ">=3.13"
55
description = "A data reduction package for echelle spectrographs"
66
readme = "README.md"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)