# Release Notes

## SpecpolFlow 1.1 (2026 July 5)
Version 1.1, released on 5 July, 2026
* New functions
    * Equivalent widths and V/R ratios can now be calculated using the [`calc_ew`](Spectrum.calc_ew) function from the [`Spectrum`](Spectrum) class or the [`calc_ew`](LSD.calc_ew) function from the [`LSD`](LSD) class. Use cases are demonstrated in the subject [Measuring equivalent widths](../Tutorials/12-EquivalentWidth_Tutorial.ipynb) tutorial.
    * V/R ratios (ratio of the equivalent width of the violet side of a line to the red side of a line) can now be calculated using the [`calc_V_R`](LSD.calc_V_R) functions from the [`LSD`](LSD) class.
    * Plot spectra and line lists with the `plot_obs_lines` function, which can label lines from the list, and can plot Stokes I, V, null, or both I and V spectra, described in the [Plotting Spectra with Line Lists](../Tutorials/PlotLinesSpectra_Tutorial.ipynb) tutorial.
    * Plot line lists and labels with flexible formatting with the `plot_lineList` function.
    * Command line plotting tool for spectra and line lists `spf-plotspec`, as an easy 'quick look' tool.
    * Plot a breakdown of the number of lines from different elements in a Mask with the new `plot_elementsChart` function.  This is described <a href='../Tutorials/3-MaskClass_Tutorial.html#plotting-elements-in-a-mask'>inside the Mask tutorial</a>
    * Tools for converting between wavelengths in air and vacuum for the Spectrum, LineList, and Mask classes, with the `vacuum_to_air` and `air_to_vacuum` functions.
    * Tools for Doppler shifting the Spectrum, LineList, and Mask classes, with the `doppler_shift` functions.
    * Function to convert Mask objects back into LineList objects using the `Mask.convert_to_line_list` function (complimenting the `make_mask` and `convert_list_to_mask` functions)
* Modified functions
    * `Spectrum.coadd` can now coadd spectral orders separately or it can merge spectral orders before coadding.  By default it will coadd orders individually, which is controlled by the `byOrders` keyword.  If orders are merged before coadding, how the merge is performed is controlled by the `mergeOrders` keyword.
    * The `converters.espadons` and `converters.spirou` functions can now read compressed fits files in fits.gz, fits.zip, or fits.b2z formats
    * The `read_spectrum` function has a new `usecols` option to control which columns of the input text file are used for non-standard formats
    * The `LSD.calc_bz` function has a new `plotAllCOG` option, which can be set to `False` to only plot the center of gravity used, not all alternatives
    * The plot generated by LSDpy has removed the smoothed profile included by default (the full unsmoothed profile is still plotted)
* New tutorials
    * [Measuring equivalent widths](../Tutorials/12-EquivalentWidth_Tutorial.ipynb)
    * [Plotting Spectra with Line Lists](../Tutorials/PlotLinesSpectra_Tutorial.ipynb)
    * <a href='../Tutorials/3-MaskClass_Tutorial.html#plotting-elements-in-a-mask'>Pie charts for the elements in a line list</a>

## SpecpolFlow 1.0 (2025 July 13)
Version 1.0, released on 13 July, 2025.

This was the first full release, after several months as a pre-release beta.
