././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1714581079.6255643
specutils-1.15.0/ 0000755 0005037 0002007 00000000000 14614467130 014471 5 ustar 00rosteen STSCI\science ././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1714581079.585385
specutils-1.15.0/.github/ 0000755 0005037 0002007 00000000000 14614467130 016031 5 ustar 00rosteen STSCI\science ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/.github/CODEOWNERS 0000644 0005037 0002007 00000000501 14614467073 017426 0 ustar 00rosteen STSCI\science # https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# they will be requested for
# review when someone opens a pull request.
* @eteq @rosteen @nmearl @keflavich
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1714581079.5857155
specutils-1.15.0/.github/workflows/ 0000755 0005037 0002007 00000000000 14614467130 020066 5 ustar 00rosteen STSCI\science ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/.github/workflows/ci_cron_weekly.yml 0000644 0005037 0002007 00000002730 14614467073 023615 0 ustar 00rosteen STSCI\science name: Weekly cron
on:
pull_request:
# We also want this workflow triggered if the 'Extra CI' label is added
# or present when PR is updated
types:
- synchronize
- labeled
schedule:
# run every Monday at 6am UTC
- cron: '0 6 * * 1'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
if: (github.repository == 'astropy/specutils' && (github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'Extra CI')))
strategy:
fail-fast: false
matrix:
include:
# We do not use remote data here, since
# that gives too many false positives due to URL timeouts.
- name: Python 3.12 with pre-release version of key dependencies
os: ubuntu-latest
python: '3.12'
toxenv: py312-test-predeps
- name: Documentation link check
os: ubuntu-latest
python: '3.12'
toxenv: linkcheck
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install Python dependencies
run: python -m pip install --upgrade tox
- name: Run tests
run: tox ${{ matrix.toxargs}} -e ${{ matrix.toxenv}} -- ${{ matrix.toxposargs}}
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/.github/workflows/ci_workflows.yml 0000644 0005037 0002007 00000005454 14614467073 023337 0 ustar 00rosteen STSCI\science name: CI
on:
push:
pull_request:
schedule:
# run every Wednesday at 5pm UTC
- cron: '17 0 * * 3'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: Code style checks
os: ubuntu-latest
python: 3.x
toxenv: codestyle
- name: Python 3.11 with remote data and coverage
os: ubuntu-latest
python: '3.11'
toxenv: py311-test-cov
toxargs: -v
toxposargs: --remote-data=any
- name: Python 3.12 (Windows)
os: windows-latest
python: '3.12'
toxenv: py312-test
- name: Python 3.12 (MacOS X)
os: macos-latest
python: '3.12'
toxenv: py312-test
- name: Python 3.10
os: ubuntu-latest
python: '3.10'
toxenv: py310-test
- name: Python 3.9
os: ubuntu-latest
python: 3.9
toxenv: py39-test
- name: Python 3.8 with oldest supported version of key dependencies
os: ubuntu-20.04
python: 3.8
toxenv: py38-test-oldestdeps
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install Python dependencies
run: python -m pip install --upgrade tox
- name: Run tests
run: tox ${{ matrix.toxargs }} -e ${{ matrix.toxenv }} -- ${{ matrix.toxposargs }}
# TODO: Do we need --gcov-glob "*cextern*" ?
- name: Upload coverage to codecov
if: ${{ contains(matrix.toxenv,'-cov') }}
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
file: ./coverage.xml
allowed_failures:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: (Allowed Failure) Python 3.12 with remote data and dev version of key dependencies
os: ubuntu-latest
python: '3.12'
toxenv: py312-test-devdeps
toxposargs: --remote-data=any
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install Python dependencies
run: python -m pip install --upgrade tox
- name: Run tests
run: tox ${{ matrix.toxargs }} -e ${{ matrix.toxenv }} -- ${{ matrix.toxposargs }}
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/.gitignore 0000644 0005037 0002007 00000001510 14614467073 016464 0 ustar 00rosteen STSCI\science # Compiled files
*.py[cod]
*.a
*.o
*.so
__pycache__
# Ignore .c files by default to avoid including generated code. If you want to
# add a non-generated .c extension, use `git add -f filename.c`.
*.c
# Other generated files
*/version.py
*/cython_version.py
htmlcov
.coverage
coverage.xml
MANIFEST
.ipynb_checkpoints
# Sphinx
docs/api
docs/_build
# Eclipse editor project files
.project
.pydevproject
.settings
# Pycharm editor project files
.idea
# Floobits project files
.floo
.flooignore
# Visual Studio Code project files
.vscode
.history
# Packages/installer info
*.egg
*.egg-info
dist
build
eggs
.eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
distribute-*.tar.gz
# Other
.cache
.tox
.*.sw[op]
*~
.project
.pydevproject
.settings
pip-wheel-metadata/
# Mac OSX
.DS_Store
.vscode
# Other
.pytest_cache
.jukit
venv
.venv
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/.readthedocs.yml 0000644 0005037 0002007 00000000670 14614467073 017570 0 ustar 00rosteen STSCI\science version: 2
build:
os: "ubuntu-20.04"
tools:
python: "mambaforge-4.10"
jobs:
post_checkout:
- git fetch --shallow-since=2023-01-01 || true
conda:
environment: docs/rtd_environment.yaml
sphinx:
builder: html
configuration: docs/conf.py
fail_on_warning: true
python:
install:
- method: pip
path: .
extra_requirements:
- docs
- all
# Don't build any extra formats
formats: []
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/CHANGES.rst 0000644 0005037 0002007 00000046237 14614467073 016315 0 ustar 00rosteen STSCI\science 1.15.0 (2024-05-01)
-------------------
New Features
^^^^^^^^^^^^
- Implemented ``SpectralRegion.write()`` and ``SpectralRegion.read()`` to round-trip spectral
regions to/from ECSV files via ``astropy.table.QTable``. [#1133]
1.14.0 (2024-04-16)
-------------------
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- ``new_flux_unit`` changed to ``with_flux_unit`` to match spectral version,
updated docstring to reflect actual behavior. [#1124]
- Compatibility with numpy 2.0 and astropy 6.1. [#1130]
1.13.0 (2024-02-19)
-------------------
New Features
^^^^^^^^^^^^
- Added SDSS-V file format readers. [#1107]
- Switched from using ``numpy.correlate`` to ``scipy.signal.correlate`` in ``template_correlate``
and enabled passing through the ``method`` argument. [#1114]
- Added DESI file format readers. [#1116]
- Added ``truncate`` option for resampler and template correlation extrapolation treatment. [#1121]
Bug Fixes
^^^^^^^^^
- SDSS reader now properly exposes the ``spPlate_identify`` and ``spPlate_loader`` functions. [#1097]
- Masks now round-trip through tabular-fits reader/write. [#1104]
- ``template_correlate`` no longer errors when used on a ``Spectrum1D`` that lacks an
``uncertainty`` array. [#1118]
- ``with_spectral_unit`` has been changed to ``with_spectral_axis_unit`` and actually works
now. [#1119]
- Template correlation functions now truncate to overlapping region to avoid NaNs in normalization
when spectrum and template have non-overlapping regions. [#1121]
- Fixed numpy error when printing a ``Spectrum1D`` object. [#1123]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Made a couple small updates to developer docs. [#1110, #1112]
- Updated the format of ``Spectrum1D.__str__`` and ``Spectrum1D.__repr__``. [#1123]
1.12.0 (2023-10-17)
-------------------
New Features
^^^^^^^^^^^^
- Registering a ``SpectrumList`` reader for a data loader is now optional. [#1068]
Bug Fixes
^^^^^^^^^
- Fixed SDSS-I/II spSpec units. [#1066]
- Addressed compatibility with ASDF 3.0 for JWST data. [#1079]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Corrected ``velocity_convention`` options in Spectrum1D docstring. [#1088]
1.11.0 (2023-06-16)
-------------------
New Features
^^^^^^^^^^^^
- ``wcs1d-fits`` loader now reads and writes boolean masks. [#1051]
Bug Fixes
^^^^^^^^^
- Reimplementation of FluxConservingResampler. It is now faster and yields more accurate results. [#1060]
- Fixed uncertainty calculations in centroid and gaussian width functions, also added an option
to use an ``astropy.uncertainty`` distribution instead of the analytic solution. [#1057]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Drastically improved performance of region extraction. [#1048]
- When creating a Spectrum1D object, it is enforced that the spectral axis is sorted and either
strictly increasing or decreasing. [#1061]
1.10.0 (2023-04-05)
-------------------
New Features
^^^^^^^^^^^^
- ``wcs1d-fits`` loader now reads and writes celestial components of
of multi-dimensional WCS, and handles ``mask`` and ``uncertainty``
attributes. [#1009]
- Added support for reading from files with flux in counts. [#1018]
Bug Fixes
^^^^^^^^^
- Fixed ``SpectralAxis.with_observer_stationary_relative_to`` to actually
return the updated spectral axis. [#992]
- Fixed region extraction for axes/regions in units of ``u.pix``. [#1001]
- ``tabular-fits`` writer now properly converts uncertainties to ``StdDevUncertainty``
if needed. [#1027]
- Fix bug in ``fit_lines`` which gave unexpected outputs from the ``get_fit_info``
and ``ignore_units`` keyword arguments. [#1030]
- Fix SNR calculations with both masks and regions. [#1044]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Added some basic documentation for ``Spectrum1D.write``. [#1017]
- JWST s2d and s3d readers now requires the optional dependency, ``stdatamodels``,
which user has to install separately. [#1038]
- ASDF tag for Spectrum1D is now compatible with ASDF v3.
As a result, minversion of ``asdf`` has been bumped to 2.14.
Redundant ASDF schema for ``SpectralCoord`` is removed.
It also now supports ``mask`` serialization. [#1042, #1053]
- JWST X1D reader will no longer raise a ``UnitWarning`` for surface brightness
error. [#1050]
1.9.1 (2022-11-22)
------------------
Bug Fixes
^^^^^^^^^
- Add and subtract operations on Spectrum1D now allow for other operand's class
to handle the arithmetic if that class has special handling. [#988]
1.9.0 (2022-10-18)
------------------
Bug Fixes
^^^^^^^^^
- Fix bug in fitting with weights if weights argument is set to 'unc'. [#979]
- Fix bug in JWST reader which caused multi-extension files to load only the
primary HDU [#982]
- Implemented conversion to expected uncertainty type in a few functions that
were still just assuming the uncertainty was the correct type. [#984]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Bumped astropy minimum version to 5.1. [#984]
1.8.1 (2022-09-09)
------------------
Bug Fixes
^^^^^^^^^
- Arithmetic with constants and Spectrum1D now works in either order. [#964]
- Fixed uncertainty propagation in FluxConservingResampler. [#976]
1.8.0 (2022-08-22)
------------------
New Features
^^^^^^^^^^^^
- Implemented uncertainty propagation for analysis functions. [#938, #939, #961, #968]
- Model fitting with ``fit_lines`` now returns uncertainties from the underlying scipy
fitter by default. [#962]
Bug Fixes
^^^^^^^^^
- Fixed a bug with moment map orders greater than 1 not being able to handle
cubes with non-square spatial dimensions. [#970]
- Added a workaround for reading JWST IFUs with incorrect GWCS. [#973]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- The Spectrum1D redshift and radial_velocity attribute setters were deprecated
in favor of the more explicit set_redshift_to, shift_spectrum_to, and
set_radial_velocity_to methods. [#946, #943]
- ``estimate_line_parameters`` now calculates estimates based on the selected
region, rather than the entire spectrum. [#962]
1.7.0 (2022-02-21)
------------------
New Features
^^^^^^^^^^^^
Bug Fixes
^^^^^^^^^
- Fixed ``spectral_slab`` crashing when ``spectral_axis`` has unit of pixels and
the bounds are also defined in the unit of pixels. [#926]
- Fixed resulting ``spectral_axis`` containing NaN when a cube is passed into
``Spectrum1D`` without WCS nor spectral axis and the spatial-spatial dimension
is smaller than spectral dimension. [#926]
- Fixed WCS not accurately reflecting the updated spectral axis after slicing a
``Spectrum1D``. [#918]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Logger usage is removed. Warnings now issued using Python ``warnings`` module.
This enables more granular warning control for downstream packages. [#922]
1.6.0 (2022-01-27)
------------------
New Features
^^^^^^^^^^^^
- Add collapse methods to Spectrum1D. [#904, #906]
- SpectralRegion and Spectrum1D now allow descending (in wavelength space) as
well as ascending spectral values. [#911]
1.5.0
-----
New Features
^^^^^^^^^^^^
- Convolution-based smoothing will now apply a 1D kernel to multi-dimensional fluxes
by convolving along the spectral axis only, rather than raising an error. [#885]
- ``template_comparison`` now handles ``astropy.nddata.Variance`` and
``astropy.nddata.InverseVariance`` uncertainties instead of assuming
the uncertainty is standard deviation. [#899]
Bug Fixes
^^^^^^^^^
- Speed up JWST s3d loader and reduce memory usage. [#874]
- ``SpectralRegion`` can now handle pixels. [#886]
- Fix bug where ``template_comparison`` would return the wrong chi2 value. [#872]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- ``fit_lines`` now makes use of unit support in ``astropy.modeling``. [#891]
- ``Spectrum1D.with_spectral_units`` now attempts to fall back on the ``spectral_axis``
units if units could not be retrieved from the WCS. [#892]
- ``ndcube`` package pin updated to released version (2.0). [#897]
- Minor changes for astropy 5.0 compatibility. [#895]
1.4.1
-----
Bug Fixes
^^^^^^^^^
- Fix JWST s3d loader. [#866]
1.4
---
New Features
^^^^^^^^^^^^
- Allow overriding existing astropy registry elements. [#861]
- ``Spectrum1D`` will now swap the spectral axis with the last axis on initialization
if it can be identified from the WCS and is not last, rather than erroring. [#654, #822]
Bug Fixes
^^^^^^^^^
- Change loader priorities so survey loaders always override generic ones. [#860]
- Handle "FLUX_ERROR" header keyword in addition to "ERROR" in JWST loader. [#856]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- ``Spectrum1D`` now subclasses ``NDCube`` instead of ``NDDataRef``. [#754, #822, #850]
1.3.1
-----
New Features
^^^^^^^^^^^^
- Add ``SpectrumList`` loader for set of JWST _x1d files. [#838]
Bug Fixes
^^^^^^^^^
- Handle new ``astropy.units.PhysicalType`` class added in astropy 4.3. [#833]
- Handle case of WCS with None values in ``world_axis_physical_types`` when
initializing Spectrum1D. [#839]
- Fix bug in apStar loader. [#839]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Improve continuum flux calculation in ``equivalent_width``. [#843]
1.3
---
New Features
^^^^^^^^^^^^
- Added ability to slice ``Spectrum1D`` with spectral axis values. [#790]
- Added ability to replace a section of a spectrum with a spline or model fit. [#782]
Bug Fixes
^^^^^^^^^
- Fix infinite recursion when unpickling a ``QuantityModel``. [#823]
- Changed positional to keyword arguments in ``fit_continuum``. [#806]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fix inaccuracy about custom loading in docs. [#819]
- Use non-root logger to prevent duplicate messages. [#810]
- Removed unused astropy config code. [#805]
1.2
---
New Features
^^^^^^^^^^^^
- Add support for reading IRAF MULTISPEC format with non-linear 2D WCS into
``SpectrumCollection`` to default_loaders. [#708]
- ``SpectralRegion`` objects can now be created from the ``QTable``
object returned from the line finding rountines. [#759]
- Include new 6dFGS loaders. [#734]
- Include new OzDES loaders. [#764]
- Include new GAMA survey loaders. [#765]
- Include new GALAH loaders. [#766]
- Include new WiggleZ loaders. [#767]
- Include new 2dF/AAOmega loaders. [#768]
- Add loader to handle IRAF MULTISPEC non-linear 2D WCS. [#708]
- Add ability to extract minimum bounding regions of ``SpectralRegion`` objects. [#755]
- Implement new moment analysis function for specutils objects. [#758]
- Add new spectral slab extraction functionality. [#753]
- Include new loaders for AAT and other Australian surveys. [#719]
- Improve docstrings and intialization of ``SpectralRegion`` objects. [#770]
Bug Fixes
^^^^^^^^^
- Fix ``extract_region`` behavior and slicing for ``Spectrum1D`` objects
that have multi-dimensional flux arrays. Extracting a region that extends
beyond the limits of the data no longer drops the last data point in the
returned spectrum. [#724]
- Fixes to the jwst loaders. [#759]
- Fix handling of ``SpectralCollection`` objects in moment calculations. [#781]
- Fix issue with non-loadable x1d files. [#775]
- Fix WCS handling in SDSS loaders. [#738]
- Fix the property setters for radial velocity and redshift. [#722]
- Fix line test errors and include python 3.9 in tests. [#751]
- Fix smoothing functionality dropping spectrum meta information. [#732]
- Fix region extraction for ``Spectrum1D`` objects with multi-dimensional fluxes. [#724]
Documentation
^^^^^^^^^^^^^
- Update SDSS spectrum documentation examples. [#778]
- Include new documentation on working with ``SpectralCube`` objects. [#726, #784]
- Add documentation on spectral cube related functionality. [#783]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Improved error messages when creating ``SpectralRegion`` objects. [#759]
- Update documentation favicons and ensure color consistency. [#780]
- Remove fallback ``SpectralCoord`` code and rely on upstream. [#786]
- Move remaining loaders to use utility functions for parsing files. [#718]
- Remove unnecessary data reshaping in tabular fits writer. [#730]
- Remove astropy helpers and CI helpers dependencies. [#562]
1.1
---
New Features
^^^^^^^^^^^^
- Added writer to ``wcs1d-fits`` and support for multi-D flux arrays with
1D WCS (identical ``spectral_axis`` scale). [#632]
- Implement ``SpectralCoord`` for ``SpectrumCollection`` objects. [#619]
- Default loaders work with fits file-like objects. [#637]
- Implement bin edge support on ``SpectralCoord`` objects using
``SpectralAxis`` subclass. [#645]
- Implement new 6dFGS loader. [#608]
- Implement uncertainty handling for ``line_flux``. [#669]
- Implement new 2SLAQ-LRG loader. [#633]
- Implement new 2dFGRS loader. [#695]
- Default loaders now include WCS 1D (with multi-dimensional flux handling) writer. [#632]
- Allow continuum fitting over multiple windows. [#698]
- Have NaN-masked inputs automatically update the ``mask`` appropriately. [#699]
Bug Fixes
^^^^^^^^^
- Fixed ``tabular-fits`` handling of 1D+2D spectra without WCS;
identification and parsing of metadata and units for ``apogee``
and ``muscles`` improved; enabled loading from file-like objects. [#573]
- Fix ASDF handling of ``SpectralCoord``. [#642]
- Preserve flux unit in ``resample1d`` for older versions of numpy. [#649]
- Fix setting the doppler values on ``SpectralCoord`` instances. [#657]
- Properly handle malformed distances in ``SkyCoord`` instances. [#663]
- Restrict spectral equivalencies to contexts where it is required. [#573]
- Fix ``from_center`` descending spectral axis handling. [#656]
- Fix factor of two error in ``from_center`` method of ``SpectralRegion`` object. [#710]
- Fix handling of multi-dimensional mask slicing. [#704]
- Fix identifier for JWST 1D loader. [#715]
Documentation
^^^^^^^^^^^^^
- Display supported loaders in specutils documentation. [#675]
- Clarify inter-relation of specutils objects in relevant docstrings. [#654]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Remove pytest runtime dependency. [#603]
- Change implementation of ``.quantity`` to ``.view`` in ``SpectralCoord``. [#614]
- Ensure underlying references point to ``SpectralCoord`` object. [#640]
- Deprecate ``spectral_axis_unit`` property. [#618]
- Backport ``SpectralCoord`` from astropy core for versions <4.1. [#674]
- Improve SDSS loaders and improve handling of extensions. [#667]
- Remove spectral cube testing utilities. [#683]
- Change local specutils directory creation behavior. [#691]
- Ensure existing manipulation and analysis functions use ``mask`` attribute. [#670]
- Improve mask handling in analysis functions. [#701]
1.0
---
New Features
^^^^^^^^^^^^
- Implement ``SpectralCoord`` object. [#524]
- Implement cross-correlation for finding redshift/radial velocity. [#544]
- Improve FITS file identification in default_loaders. [#545]
- Support ``len()`` for ``SpectrumCollection`` objects. [#575]
- Improved 1D JWST loader and allow parsing into an ``SpectrumCollection`` object. [#579]
- Implemented 2D and 3D data loaders for JWST products. [#595]
- Include documentation on how to use dust_extinction in specutils. [#594]
- Include example of spectrum shifting in docs. [#600]
- Add new default excise_regions exciser function and improve subregion handling. [#609]
- Implement use of ``SpectralCoord`` in ``Spectrum1D`` objects. [#610]
Bug Fixes
^^^^^^^^^
- Fix stacking and unit treatment in ``SpectrumCollection.from_spectra``. [#578]
- Fix spectral axis unit retrieval. [#581]
- Fix bug in subspectrum fitting. [#586]
- Fix uncertainty to weight conversion to match astropy assumptions. [#594]
- Fix warnings and log messages from ASDF serialization tests. [#597]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Remove spectral_resolution stub from Spectrum1D. [#606]
0.7
---
New Features
^^^^^^^^^^^^
- Make specutils compatible with Astropy 4.0 (breaking change). [#462]
- Remove all wcs adapter code and rely on APE14 implementation. [#462]
Bug Fixes
^^^^^^^^^
- Address ``MexicanHat1D`` name change in documentation. [#564]
0.6.1
-----
API Changes
^^^^^^^^^^^
- Resamplers now include ``extrapolation_treatment`` argument. [#537]
- Template fitting now returns an array of chi squared values for each template. [#551]
New Features
^^^^^^^^^^^^
- Masks now supported in fitting operations. [#519]
- Resamplers now support resamping beyond the edge of a spectrum using. [#537]
- New template fitting for redshift finding. [#527]
- New continuum checker to discern whether continuum is normalized or subtracted. [#538]
- Include documentation on how to achieve splicing using specutils. [#536]
- Include function to calculate masks based on S/N thresholding. [#509]
Bug Fixes
^^^^^^^^^
- Include new regions regression tests. [#345]
- Fix fitting documentation code block test. [#478]
- Fix Apogee loader to incorporate spectral axis keyword argument. [#560]
- Fix tabular fits writer and include new regression test. [#539]
- Fix dispersion attribute bug in ``Spectrum1D`` objects. [#530]
- Correctly label regression tests that require remote data. [#525]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Switch to using ``gaussian_sigma_width`` for ``Gaussian1D`` fitting estimator. [#434]
- Update documentation side bar to include page listing. [#556]
- New documentation on ``spectrum_mixin``. [#532]
- Model names are now preserved in the ``fit_lines`` operation. [#526]
- Clearer error messages for incompatible units in line fitting. [#520]
- Include travis stages in test matrix. [#515]
0.6
---
New Features
^^^^^^^^^^^^
- New redshift and radial velocity storage on `Spectrum1D` object.
- Spectral template matching including resampling.
- Error propagation in convolution smoothing.
- Sub-pixel precision for fwhm calculations.
- New spectral resampling functions.
- New IRAF data loaders.
- New FWZI calculation.
Bug Fixes
^^^^^^^^^
- Stricter intiailizer for ``Spectrum1D``.
- Correct handling of weights in line fitting.
- Array size checking in `Spectrum1D` objects.
- Fix for continuum fitting on pixel-axis dispersions.
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
0.5.3
-----
Bug Fixes
^^^^^^^^^
- Fix comparison of FITSWCS objects in arithmetic operations.
- Fix example documentation when run in python interpreter.
0.5.2 (2019-02-06)
----------------
Bug Fixes
^^^^^^^^^
- Bugfixes for astropy helpers, pep8 syntax checking, and plotting in docs [#416,#417,#419]
- All automatically generated ``SpectrumList`` loaders now have identifiers. [#440]
- ``SpectralRange.from_center`` parameters corrected after change to SpectralRange interface. [#433]
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Improve explanation on creating spectrum continua. [#420]
- Wrap IO identifier functions to ensure they always return True or False and log any errors. [#404]
0.5.1 (2018-11-29)
------------------
Bug Fixes
^^^^^^^^^
- Fixed a bug in using spectral regions that have been inverted. [#403]
- Use the pytest-remotedata plugin to control tests that require access to remote data. [#401,#408]
0.5 (2018-11-21)
----------------
This was the first release of specutils executing the
[APE14](https://github.com/astropy/astropy-APEs/blob/main/APE14.rst)
plan (i.e. the "new" specutils) and therefore intended for broad use.
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1583343826.0
specutils-1.15.0/CITATION 0000644 0005037 0002007 00000000723 13627764322 015636 0 ustar 00rosteen STSCI\science If you use Specutils for work/research presented in a publication (whether
directly, or as a dependency to another package), please cite the Zenodo DOI
for the appopriate version of Specutils. The versions (and their BibTeX
entries) can be found at:
https://doi.org/10.5281/zenodo.1421356
We also encourage the acknowledgement of Astropy, which is a dependency of
Specutils. See http://www.astropy.org/acknowledging.html for more on the
recommendations for this.
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/MANIFEST.in 0000644 0005037 0002007 00000000427 14614467073 016240 0 ustar 00rosteen STSCI\science include README.rst
include CHANGES.rst
include setup.cfg
include pyproject.toml
recursive-include specutils *.pyx *.c *.pxd
recursive-include docs *
recursive-include licenses *
recursive-include scripts *
prune build
prune docs/_build
prune docs/api
global-exclude *.pyc *.o
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1714581079.6254578
specutils-1.15.0/PKG-INFO 0000644 0005037 0002007 00000013402 14614467130 015566 0 ustar 00rosteen STSCI\science Metadata-Version: 2.1
Name: specutils
Version: 1.15.0
Summary: Package for spectroscopic astronomical data
Home-page: https://specutils.readthedocs.io/
Author: Specutils Developers
Author-email: coordinators@astropy.org
License: BSD 3-Clause
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: licenses/LICENSE.rst
Requires-Dist: numpy>=1.19
Requires-Dist: scipy>=1.3
Requires-Dist: astropy>=5.1
Requires-Dist: gwcs>=0.18
Requires-Dist: asdf-astropy>=0.3
Requires-Dist: asdf>=2.14.4
Requires-Dist: ndcube>=2.0
Provides-Extra: test
Requires-Dist: pytest-astropy; extra == "test"
Requires-Dist: tox; extra == "test"
Requires-Dist: matplotlib; extra == "test"
Requires-Dist: spectral-cube; extra == "test"
Provides-Extra: jwst
Requires-Dist: stdatamodels>=1.1.0; extra == "jwst"
Provides-Extra: docs
Requires-Dist: sphinx-astropy; extra == "docs"
Requires-Dist: matplotlib; extra == "docs"
Requires-Dist: graphviz; extra == "docs"
Specutils
=========
.. image:: https://github.com/astropy/specutils/workflows/CI/badge.svg
:target: https://github.com/astropy/specutils/actions
:alt: GitHub Actions CI Status
.. image:: https://codecov.io/github/astropy/specutils/branch/master/graph/badge.svg
:target: https://codecov.io/github/astropy/specutils
:alt: Coverage Status
.. image:: https://readthedocs.org/projects/specutils/badge/?version=latest
:target: http://specutils.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat
:target: http://www.astropy.org/
:alt: Powered by Astropy
Specutils is an `Astropy affiliated package `_
with the goal of providing a shared set of Python representations of
astronomical spectra and basic tools to operate on these spectra. The effort is
also meant to be a "hub", helping to unite the Python astronomical spectroscopy
community around shared effort, much as Astropy is meant to for the wider
astronomy Python ecosystem. This broader effort is outlined in the
`APE13 document `_.
Note that Specutils is not intended to meet all possible spectroscopic analysis or
reduction needs. While it provides some standard analysis functionality
(following the Python philosophy of "batteries included"), it is best thought
of as a "tool box" that provides pieces of functionality that can be used to
build a particular scientific workflow or higher-level analysis tool. To that
end, it is also meant to facilitate connecting together disparate reduction
pipelines and analysis tools through shared Python representations of
spectroscopic data.
Getting Started with Specutils
------------------------------
For details on installing and using Specutils, see the
`specutils documentation `_.
Note that Specutils now only supports Python 3. While some functionality may
continue to work on Python 2, it is not tested and support cannot be guaranteed
(due to the sunsetting of Python 2 support by the Python and Astropy development
teams).
License
-------
This project is Copyright (c) Specutils Developers and licensed under
the terms of the BSD 3-Clause license. This package is based upon
the `Astropy package template `_
which is licensed under the BSD 3-clause license. See the ``licenses`` folder for
more information.
Contributing
------------
We love contributions! specutils is open source,
built on open source, and we'd love to have you hang out in our community.
**Imposter syndrome disclaimer**: We want your help. No, really.
There may be a little voice inside your head that is telling you that you're not
ready to be an open source contributor; that your skills aren't nearly good
enough to contribute. What could you possibly offer a project like this one?
We assure you - the little voice in your head is wrong. If you can write code at
all, you can contribute code to open source. Contributing to open source
projects is a fantastic way to advance one's coding skills. Writing perfect code
isn't the measure of a good developer (that would disqualify all of us!); it's
trying to create something, making mistakes, and learning from those
mistakes. That's how we all improve, and we are happy to help others learn.
Being an open source contributor doesn't just mean writing code, either. You can
help out by writing documentation, tests, or even giving feedback about the
project (and yes - that includes giving feedback about the contribution
process). Some of these contributions may be the most valuable to the project as
a whole, because you're coming to the project with fresh eyes, so you can see
the errors and assumptions that seasoned contributors have glossed over.
Note: This disclaimer was originally written by
`Adrienne Lowe `_ for a
`PyCon talk `_, and was adapted by
specutils based on its use in the README file for the
`MetPy project `_.
If you locally cloned this repo before 22 Mar 2021
--------------------------------------------------
The primary branch for this repo has been transitioned from ``master`` to ``main``. If you have a local clone of this repository and want to keep your local branch in sync with this repo, you'll need to do the following in your local clone from your terminal::
git fetch --all --prune
# you can stop here if you don't use your local "master"/"main" branch
git branch -m master main
git branch -u origin/main main
If you are using a GUI to manage your repos you'll have to find the equivalent commands as it's different for different programs. Alternatively, you can just delete your local clone and re-clone!
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/README.rst 0000644 0005037 0002007 00000011513 14614467073 016167 0 ustar 00rosteen STSCI\science Specutils
=========
.. image:: https://github.com/astropy/specutils/workflows/CI/badge.svg
:target: https://github.com/astropy/specutils/actions
:alt: GitHub Actions CI Status
.. image:: https://codecov.io/github/astropy/specutils/branch/master/graph/badge.svg
:target: https://codecov.io/github/astropy/specutils
:alt: Coverage Status
.. image:: https://readthedocs.org/projects/specutils/badge/?version=latest
:target: http://specutils.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat
:target: http://www.astropy.org/
:alt: Powered by Astropy
Specutils is an `Astropy affiliated package `_
with the goal of providing a shared set of Python representations of
astronomical spectra and basic tools to operate on these spectra. The effort is
also meant to be a "hub", helping to unite the Python astronomical spectroscopy
community around shared effort, much as Astropy is meant to for the wider
astronomy Python ecosystem. This broader effort is outlined in the
`APE13 document `_.
Note that Specutils is not intended to meet all possible spectroscopic analysis or
reduction needs. While it provides some standard analysis functionality
(following the Python philosophy of "batteries included"), it is best thought
of as a "tool box" that provides pieces of functionality that can be used to
build a particular scientific workflow or higher-level analysis tool. To that
end, it is also meant to facilitate connecting together disparate reduction
pipelines and analysis tools through shared Python representations of
spectroscopic data.
Getting Started with Specutils
------------------------------
For details on installing and using Specutils, see the
`specutils documentation `_.
Note that Specutils now only supports Python 3. While some functionality may
continue to work on Python 2, it is not tested and support cannot be guaranteed
(due to the sunsetting of Python 2 support by the Python and Astropy development
teams).
License
-------
This project is Copyright (c) Specutils Developers and licensed under
the terms of the BSD 3-Clause license. This package is based upon
the `Astropy package template `_
which is licensed under the BSD 3-clause license. See the ``licenses`` folder for
more information.
Contributing
------------
We love contributions! specutils is open source,
built on open source, and we'd love to have you hang out in our community.
**Imposter syndrome disclaimer**: We want your help. No, really.
There may be a little voice inside your head that is telling you that you're not
ready to be an open source contributor; that your skills aren't nearly good
enough to contribute. What could you possibly offer a project like this one?
We assure you - the little voice in your head is wrong. If you can write code at
all, you can contribute code to open source. Contributing to open source
projects is a fantastic way to advance one's coding skills. Writing perfect code
isn't the measure of a good developer (that would disqualify all of us!); it's
trying to create something, making mistakes, and learning from those
mistakes. That's how we all improve, and we are happy to help others learn.
Being an open source contributor doesn't just mean writing code, either. You can
help out by writing documentation, tests, or even giving feedback about the
project (and yes - that includes giving feedback about the contribution
process). Some of these contributions may be the most valuable to the project as
a whole, because you're coming to the project with fresh eyes, so you can see
the errors and assumptions that seasoned contributors have glossed over.
Note: This disclaimer was originally written by
`Adrienne Lowe `_ for a
`PyCon talk `_, and was adapted by
specutils based on its use in the README file for the
`MetPy project `_.
If you locally cloned this repo before 22 Mar 2021
--------------------------------------------------
The primary branch for this repo has been transitioned from ``master`` to ``main``. If you have a local clone of this repository and want to keep your local branch in sync with this repo, you'll need to do the following in your local clone from your terminal::
git fetch --all --prune
# you can stop here if you don't use your local "master"/"main" branch
git branch -m master main
git branch -u origin/main main
If you are using a GUI to manage your repos you'll have to find the equivalent commands as it's different for different programs. Alternatively, you can just delete your local clone and re-clone!
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/conftest.py 0000644 0005037 0002007 00000002054 14614467073 016677 0 ustar 00rosteen STSCI\science try:
from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
ASTROPY_HEADER = True
except ImportError:
ASTROPY_HEADER = False
# Repeat this from specutils/conftest.py so tox picks it up.
def pytest_configure(config):
if ASTROPY_HEADER:
config.option.astropy_header = True
# Customize the following lines to add/remove entries from the list of
# packages for which version numbers are displayed when running the tests.
PYTEST_HEADER_MODULES.pop('Pandas', None)
PYTEST_HEADER_MODULES.pop('h5py', None)
PYTEST_HEADER_MODULES['astropy'] = 'astropy'
PYTEST_HEADER_MODULES['gwcs'] = 'gwcs'
PYTEST_HEADER_MODULES['asdf'] = 'asdf'
PYTEST_HEADER_MODULES['asdf-astropy'] = 'asdf_astropy'
PYTEST_HEADER_MODULES['stdatamodels'] = 'stdatamodels'
PYTEST_HEADER_MODULES['ndcube'] = 'ndcube'
PYTEST_HEADER_MODULES['spectral-cube'] = 'spectral_cube'
from specutils import __version__
TESTED_VERSIONS['specutils'] = __version__
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1714581079.5896907
specutils-1.15.0/docs/ 0000755 0005037 0002007 00000000000 14614467130 015421 5 ustar 00rosteen STSCI\science ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1583343826.0
specutils-1.15.0/docs/Makefile 0000644 0005037 0002007 00000010745 13627764322 017076 0 ustar 00rosteen STSCI\science # Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
#This is needed with git because git doesn't create a dir if it's empty
$(shell [ -d "_static" ] || mkdir -p _static)
help:
@echo "Please use \`make ' where is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
clean:
-rm -rf $(BUILDDIR)
-rm -rf api
-rm -rf generated
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Astropy.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Astropy.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/Astropy"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Astropy"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
make -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
@echo "Run 'python setup.py test' in the root directory to run doctests " \
@echo "in the documentation."
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1714581079.590515
specutils-1.15.0/docs/_static/ 0000755 0005037 0002007 00000000000 14614467130 017047 5 ustar 00rosteen STSCI\science ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1714581051.0
specutils-1.15.0/docs/_static/logo.png 0000644 0005037 0002007 00000340677 14614467073 020544 0 ustar 00rosteen STSCI\science ‰PNG
IHDR ü Œ ©cP sRGB ®Îé pHYs .# .#x¥?v YiTXtXML:com.adobe.xmp
1
LÂ'Y @ IDATx콜%Uuï_uºçÅð˜A‘—†ÍÕ¨@O5"FoŒf¸DÌ F¯Á ŠÒ á=ƒèG“ÀCĦ_¹yÀÌñ~òPÀäo1¹1‰ÊŒ
3Ó§þkÕ®Uµk×^õ8}úôyüjæôÞµÞû{ªOw¯ªS'° € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € t@Ø… ÐmÓÓ—¸kÉÇ|`{W´|Ñ¢pÙÞ µßc;ß÷/Oý 56- [c‹ªÒFA°o¶Õúñø¾}?Þ7¶èÇ/zþ?ýøga¶Êz Á#€†ÿà=g¨xÀ œ8}ɳÛKÇŒfgŸ…Ásƒ¨ud¶Ÿá‘´4âežwêéÁ²E‹yoþíßÿoד²ÛéøT»‚(ø1àÇ¢ ü^߃è{í6Ï÷}oåžÿyÛôôîN“À@ @ @ @ @ @ @ @ @ ·Æ{›Ù@`ø œøéßX´wçŠcÆ¢ð˜v4û|jäFÁóéj{šÇì‚eA»Mâä|)i§—`–S³9%