TARDIS-Spectrum-Filtering 1.0__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.

Potentially problematic release.


This version of TARDIS-Spectrum-Filtering might be problematic. Click here for more details.

Files changed (42) hide show
  1. tardis_spectrum_filtering-1.0.0/.editorconfig +21 -0
  2. tardis_spectrum_filtering-1.0.0/.github/ISSUE_TEMPLATE/bug_report.md +25 -0
  3. tardis_spectrum_filtering-1.0.0/.github/ISSUE_TEMPLATE/config.yml +10 -0
  4. tardis_spectrum_filtering-1.0.0/.github/ISSUE_TEMPLATE/feature_request.md +18 -0
  5. tardis_spectrum_filtering-1.0.0/.github/workflows/docs-build.yml +55 -0
  6. tardis_spectrum_filtering-1.0.0/.github/workflows/docs.yml +31 -0
  7. tardis_spectrum_filtering-1.0.0/.github/workflows/installation.yml +31 -0
  8. tardis_spectrum_filtering-1.0.0/.github/workflows/macos.yml +42 -0
  9. tardis_spectrum_filtering-1.0.0/.github/workflows/pypi.yml +30 -0
  10. tardis_spectrum_filtering-1.0.0/.github/workflows/ubuntu.yml +47 -0
  11. tardis_spectrum_filtering-1.0.0/.github/workflows/windows.yml +34 -0
  12. tardis_spectrum_filtering-1.0.0/.gitignore +107 -0
  13. tardis_spectrum_filtering-1.0.0/LICENSE +22 -0
  14. tardis_spectrum_filtering-1.0.0/MANIFEST.in +7 -0
  15. tardis_spectrum_filtering-1.0.0/PKG-INFO +37 -0
  16. tardis_spectrum_filtering-1.0.0/README.md +11 -0
  17. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering/TARDIS_Spectrum_Filtering.py +134 -0
  18. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering/__init__.py +5 -0
  19. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering/common.py +7 -0
  20. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering.egg-info/PKG-INFO +37 -0
  21. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering.egg-info/SOURCES.txt +40 -0
  22. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering.egg-info/dependency_links.txt +1 -0
  23. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering.egg-info/entry_points.txt +2 -0
  24. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering.egg-info/requires.txt +7 -0
  25. tardis_spectrum_filtering-1.0.0/TARDIS_Spectrum_Filtering.egg-info/top_level.txt +1 -0
  26. tardis_spectrum_filtering-1.0.0/docs/TARDIS_Spectrum_Filtering.md +4 -0
  27. tardis_spectrum_filtering-1.0.0/docs/changelog.md +11 -0
  28. tardis_spectrum_filtering-1.0.0/docs/common.md +3 -0
  29. tardis_spectrum_filtering-1.0.0/docs/contributing.md +108 -0
  30. tardis_spectrum_filtering-1.0.0/docs/examples/intro.ipynb +21 -0
  31. tardis_spectrum_filtering-1.0.0/docs/faq.md +1 -0
  32. tardis_spectrum_filtering-1.0.0/docs/index.md +16 -0
  33. tardis_spectrum_filtering-1.0.0/docs/installation.md +21 -0
  34. tardis_spectrum_filtering-1.0.0/docs/overrides/main.html +11 -0
  35. tardis_spectrum_filtering-1.0.0/docs/usage.md +7 -0
  36. tardis_spectrum_filtering-1.0.0/mkdocs.yml +86 -0
  37. tardis_spectrum_filtering-1.0.0/pyproject.toml +82 -0
  38. tardis_spectrum_filtering-1.0.0/requirements.txt +1 -0
  39. tardis_spectrum_filtering-1.0.0/requirements_dev.txt +29 -0
  40. tardis_spectrum_filtering-1.0.0/setup.cfg +4 -0
  41. tardis_spectrum_filtering-1.0.0/tests/__init__.py +1 -0
  42. tardis_spectrum_filtering-1.0.0/tests/test_TARDIS_Spectrum_Filtering.py +21 -0
@@ -0,0 +1,21 @@
1
+ # http://editorconfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ indent_style = space
7
+ indent_size = 4
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+ charset = utf-8
11
+ end_of_line = lf
12
+
13
+ [*.bat]
14
+ indent_style = tab
15
+ end_of_line = crlf
16
+
17
+ [LICENSE]
18
+ insert_final_newline = false
19
+
20
+ [Makefile]
21
+ indent_style = tab
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Create a bug report to help us improve
4
+ labels: bug
5
+ ---
6
+
7
+ <!-- Please search existing issues to avoid creating duplicates. -->
8
+
9
+ ### Environment Information
10
+
11
+ - TARDIS_Spectrum_Filtering version:
12
+ - Python version:
13
+ - Operating System:
14
+
15
+ ### Description
16
+
17
+ Describe what you were trying to get done.
18
+ Tell us what happened, what went wrong, and what you expected to happen.
19
+
20
+ ### What I Did
21
+
22
+ ```
23
+ Paste the command(s) you ran and the output.
24
+ If there was a crash, please include the traceback here.
25
+ ```
@@ -0,0 +1,10 @@
1
+ contact_links:
2
+ - name: Ask questions
3
+ url: https://github.com/ClydeME/spectra-filtering/discussions/categories/q-a
4
+ about: Please ask and answer questions here.
5
+ - name: Ideas
6
+ url: https://github.com/ClydeME/spectra-filtering/discussions/categories/ideas
7
+ about: Please share your ideas here.
8
+ - name: Ask questions from the GIS community
9
+ url: https://gis.stackexchange.com
10
+ about: To get answers from questions in the GIS community, please ask and answer questions here.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Submit a feature request to help us improve
4
+ labels: Feature Request
5
+ ---
6
+
7
+ <!-- Please search existing issues to avoid creating duplicates. -->
8
+
9
+ ### Description
10
+
11
+ Describe the feature (e.g., new functions/tutorials) you would like to propose.
12
+ Tell us what can be achieved with this new feature and what's the expected outcome.
13
+
14
+ ### Source code
15
+
16
+ ```
17
+ Paste your source code here if have sample code to share.
18
+ ```
@@ -0,0 +1,55 @@
1
+ name: docs-build
2
+ on:
3
+ pull_request:
4
+ branches:
5
+ - main
6
+ - master
7
+
8
+ jobs:
9
+ deploy:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ with:
14
+ fetch-depth: 0
15
+ - uses: actions/setup-python@v5
16
+ with:
17
+ python-version: "3.11"
18
+
19
+ - name: Install GDAL
20
+ run: |
21
+ python -m pip install --upgrade pip
22
+ pip install --find-links=https://girder.github.io/large_image_wheels --no-cache GDAL pyproj
23
+ - name: Test GDAL installation
24
+ run: |
25
+ python -c "from osgeo import gdal"
26
+ gdalinfo --version
27
+ - name: Install dependencies
28
+ run: |
29
+ pip install --no-cache-dir Cython
30
+ pip install -r requirements.txt -r requirements_dev.txt
31
+ pip install .
32
+ - name: Discover typos with codespell
33
+ run: codespell --skip="*.csv,*.geojson,*.json,*.js,*.html,*cff,*.pdf,./.git" --ignore-words-list="aci,acount,hist"
34
+ - name: PKG-TEST
35
+ run: |
36
+ python -m unittest discover tests/
37
+ - name: Build docs
38
+ run: |
39
+ mkdocs build
40
+ # - name: Deploy to Netlify
41
+ # uses: nwtgck/actions-netlify@v2.0
42
+ # with:
43
+ # publish-dir: "./site"
44
+ # production-branch: main
45
+
46
+ # github-token: ${{ secrets.GITHUB_TOKEN }}
47
+ # deploy-message: "Deploy from GitHub Actions"
48
+ # enable-pull-request-comment: true
49
+ # enable-commit-comment: false
50
+ # overwrites-pull-request-comment: true
51
+ # env:
52
+ # NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
53
+ # NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
54
+ # timeout-minutes: 10
55
+
@@ -0,0 +1,31 @@
1
+ name: docs
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ - master
7
+ jobs:
8
+ deploy:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ with:
13
+ fetch-depth: 0
14
+ - uses: actions/setup-python@v5
15
+ with:
16
+ python-version: "3.11"
17
+
18
+ - name: Install dependencies
19
+ run: |
20
+ python -m pip install --upgrade pip
21
+ pip install --user --no-cache-dir Cython
22
+ pip install --user -r requirements.txt -r requirements_dev.txt
23
+ pip install .
24
+ - name: Discover typos with codespell
25
+ run: |
26
+ codespell --skip="*.csv,*.geojson,*.json,*.js,*.html,*cff,./.git" --ignore-words-list="aci,hist"
27
+ - name: PKG-TEST
28
+ run: |
29
+ python -m unittest discover tests/
30
+ - run: mkdocs gh-deploy --force
31
+
@@ -0,0 +1,31 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+
12
+ name: Linux installation
13
+ jobs:
14
+ test-ubuntu:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ python-version: ["3.11"]
20
+
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+
28
+ - name: Install package
29
+ run: pip install .
30
+ - name: Test import
31
+ run: python -c "import TARDIS_Spectrum_Filtering; print('TARDIS_Spectrum_Filtering import successful')"
@@ -0,0 +1,42 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+ name: macOS build
12
+ jobs:
13
+ test-macOS:
14
+ runs-on: ${{ matrix.os }}
15
+ name: ${{ matrix.os }} (${{ matrix.python-version}})
16
+
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ os: ["macOS-latest"]
21
+ python-version: ["3.11"]
22
+
23
+ steps:
24
+ - name: Checkout code
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{ matrix.python-version}}
31
+ - name: Install GDAL
32
+ run: |
33
+ brew install gdal
34
+ - name: Test GDAL installation
35
+ run: |
36
+ gdalinfo --version
37
+ - name: Install dependencies
38
+ run: |
39
+ python -m pip install --upgrade pip
40
+ pip install --no-cache-dir Cython
41
+ pip install -r requirements.txt
42
+ pip install .
@@ -0,0 +1,30 @@
1
+ # This workflows will upload a Python Package using Twine when a release is created
2
+ # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
3
+
4
+ name: pypi
5
+
6
+ on:
7
+ release:
8
+ types: [created]
9
+
10
+ jobs:
11
+ deploy:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.x"
20
+ - name: Install dependencies
21
+ run: |
22
+ python -m pip install --upgrade pip
23
+ pip install setuptools wheel twine build
24
+ - name: Build and publish
25
+ env:
26
+ TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
27
+ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
28
+ run: |
29
+ python -m build
30
+ twine upload dist/*
@@ -0,0 +1,47 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+ name: Linux build
12
+ jobs:
13
+ py-check:
14
+ runs-on: ${{ matrix.config.os }}
15
+ name: ${{ matrix.config.os }} (${{ matrix.config.py }})
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ config:
20
+ - { os: ubuntu-latest, py: "3.9" }
21
+ - { os: ubuntu-latest, py: "3.10" }
22
+ - { os: ubuntu-latest, py: "3.11" }
23
+ - { os: ubuntu-latest, py: "3.12" }
24
+ steps:
25
+ - name: Checkout Code
26
+ uses: actions/checkout@v4
27
+ - name: Setup Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{ matrix.config.py }}
31
+ - name: Install GDAL
32
+ run: |
33
+ python -m pip install --upgrade pip
34
+ pip install --no-cache-dir Cython
35
+ pip install --find-links=https://girder.github.io/large_image_wheels --no-cache GDAL
36
+ - name: Test GDAL installation
37
+ run: |
38
+ python -c "from osgeo import gdal"
39
+ gdalinfo --version
40
+ - name: Install dependencies
41
+ run: |
42
+ pip install --user -r requirements.txt
43
+ pip install .
44
+ - name: PKG-TEST
45
+ run: |
46
+ python -m unittest discover tests/
47
+
@@ -0,0 +1,34 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+ name: Windows build
12
+ jobs:
13
+ test-windows:
14
+ runs-on: windows-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - name: Install miniconda
18
+ uses: conda-incubator/setup-miniconda@v2
19
+ with:
20
+ auto-activate-base: true
21
+ python-version: "3.11"
22
+
23
+ - name: Install GDAL
24
+ run: conda install -c conda-forge gdal --yes
25
+ - name: Test GDAL installation
26
+ run: |
27
+ python -c "from osgeo import gdal"
28
+ gdalinfo --version
29
+ - name: Install dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install --no-cache-dir Cython
33
+ pip install -r requirements.txt
34
+ pip install .
@@ -0,0 +1,107 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ private/
4
+ *.py[cod]
5
+ *$py.class
6
+
7
+ # C extensions
8
+ *.so
9
+
10
+ # Distribution / packaging
11
+ .Python
12
+ env/
13
+ build/
14
+ develop-eggs/
15
+ dist/
16
+ downloads/
17
+ private/
18
+ eggs/
19
+ .eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ .hypothesis/
50
+ .pytest_cache/
51
+
52
+ # Translations
53
+ *.mo
54
+ *.pot
55
+
56
+ # Django stuff:
57
+ *.log
58
+ local_settings.py
59
+
60
+ # Flask stuff:
61
+ instance/
62
+ .webassets-cache
63
+
64
+ # Scrapy stuff:
65
+ .scrapy
66
+
67
+ # Sphinx documentation
68
+ docs/_build/
69
+
70
+ # PyBuilder
71
+ target/
72
+
73
+ # Jupyter Notebook
74
+ .ipynb_checkpoints
75
+
76
+ # pyenv
77
+ .python-version
78
+
79
+ # celery beat schedule file
80
+ celerybeat-schedule
81
+
82
+ # SageMath parsed files
83
+ *.sage.py
84
+
85
+ # dotenv
86
+ .env
87
+
88
+ # virtualenv
89
+ .venv
90
+ venv/
91
+ ENV/
92
+
93
+ # Spyder project settings
94
+ .spyderproject
95
+ .spyproject
96
+
97
+ # Rope project settings
98
+ .ropeproject
99
+
100
+ # mkdocs documentation
101
+ /site
102
+
103
+ # mypy
104
+ .mypy_cache/
105
+
106
+ # IDE settings
107
+ .vscode/
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026, Clyde Watson
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,7 @@
1
+ include LICENSE
2
+ include README.md
3
+ include requirements.txt
4
+
5
+ recursive-exclude * __pycache__
6
+ recursive-exclude * *.py[co]
7
+
@@ -0,0 +1,37 @@
1
+ Metadata-Version: 2.4
2
+ Name: TARDIS_Spectrum_Filtering
3
+ Version: 1.0.0
4
+ Summary: Package used to apply telescope filters to spectra from Stars or Supernovae
5
+ Author-email: Clyde Watson <clyde.n.watson@gmail.com>
6
+ License: MIT License
7
+ Project-URL: Homepage, https://github.com/ClydeME/TARDIS_Spectrum_Filtering
8
+ Keywords: TARDIS_Spectrum_Filtering
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Natural Language :: English
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Requires-Python: >=3.8
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: numpy
21
+ Provides-Extra: all
22
+ Requires-Dist: spectra-filtering[extra]; extra == "all"
23
+ Provides-Extra: extra
24
+ Requires-Dist: pandas; extra == "extra"
25
+ Dynamic: license-file
26
+
27
+ # spectra-filtering
28
+
29
+
30
+ [![image](https://img.shields.io/pypi/v/spectra-filtering.svg)](https://pypi.python.org/pypi/spectra-filtering)
31
+ [![image](https://img.shields.io/conda/vn/conda-forge/spectra-filtering.svg)](https://anaconda.org/conda-forge/spectra-filtering)
32
+
33
+
34
+ **Package used to apply telescope filters to spectra from Stars or Supernovae**
35
+
36
+
37
+ - Free software: MIT License
@@ -0,0 +1,11 @@
1
+ # spectra-filtering
2
+
3
+
4
+ [![image](https://img.shields.io/pypi/v/spectra-filtering.svg)](https://pypi.python.org/pypi/spectra-filtering)
5
+ [![image](https://img.shields.io/conda/vn/conda-forge/spectra-filtering.svg)](https://anaconda.org/conda-forge/spectra-filtering)
6
+
7
+
8
+ **Package used to apply telescope filters to spectra from Stars or Supernovae**
9
+
10
+
11
+ - Free software: MIT License
@@ -0,0 +1,134 @@
1
+ """Main module."""
2
+ import os
3
+ import xml.etree.ElementTree as et
4
+ import matplotlib.pyplot as plt
5
+ import numpy as np
6
+ import requests
7
+ import yaml
8
+ from astropy import units as u
9
+
10
+ # Function to get Filter URL from TARDIS config file
11
+ def get_url_from_config(config_file_path):
12
+
13
+ with open(config_file_path, 'r') as f:
14
+ config = yaml.safe_load(f)
15
+ telescope = config['filter']['Telescope_Name']
16
+ instrument = config['filter']['Instrument']
17
+ filter_id = config['filter']['Filter_ID']
18
+
19
+
20
+ name = f"{telescope}/{instrument}.{filter_id}"
21
+ safe_name = name.replace('/', '.')
22
+ url = f"https://svo2.cab.inta-csic.es/theory/fps/fps.php?ID={name}"
23
+
24
+ return url, safe_name
25
+
26
+
27
+ # Function to check if the filter file is valid
28
+ def check_filter(filter_name):
29
+
30
+ root = et.parse(f"Filters/{filter_name}.xml")
31
+
32
+ info = root.find('INFO')
33
+
34
+ check = info.get('value')
35
+
36
+ if check == 'ERROR':
37
+ return False
38
+ elif info is None:
39
+ return False
40
+ else:
41
+ return True
42
+
43
+
44
+ # Function to download the filter file
45
+ def download_filter(url, filename):
46
+ req = requests.get(url, timeout = 10)
47
+
48
+ with open((f'Filters/{filename}.xml'), 'wb') as f:
49
+
50
+ # Chunking to avoid large memory consumption
51
+ for chunk in req.iter_content(chunk_size=8192):
52
+ if chunk:
53
+ f.write(chunk)
54
+
55
+ if check_filter(filename) == True:
56
+ print("Filter URL is valid.")
57
+ return filename
58
+ elif check_filter(filename) == False:
59
+ print("Filter URL is not valid. Removing invalid filter file.")
60
+ os.remove(f'Filters/{filename}.xml')
61
+ raise ValueError("Invalid Filter URL. The filter file has been removed.")
62
+
63
+
64
+ # Function to get wavelength and transmission values from filter file
65
+ def get_filter(filter_name):
66
+
67
+ # Parse XML File from Filters Directory
68
+ root = et.parse(f"Filters/{filter_name}.xml")
69
+
70
+ # Get wavelength and transmission values in one array (Will be in aleternating order)
71
+ all_vals = np.array([float(x.text) for x in root.findall('.//TD')])
72
+
73
+ # Separate wavelength and transmission values
74
+ wl = all_vals[0::2] * u.AA
75
+ tr = all_vals[1::2]
76
+ return wl, tr
77
+
78
+
79
+ # Function to interpolate filter to match TARDIS Spectrum
80
+ def interp_filter(spectrum_to_filter, filter_name):
81
+ #Interpolate filter transmission values to match TARDIS Spectrum
82
+ wl, tr = get_filter(filter_name)
83
+ return np.interp(spectrum_to_filter, wl, tr)
84
+
85
+ # Function to apply filter to TARDIS Spectrum
86
+ def apply_filter(spectrum, spectrum_virtual, spectrum_integrated, chosen_filter):
87
+
88
+ # Interpolate filter transmission values to match TARDIS Spectrum
89
+ prepared_filter = interp_filter(spectrum.wavelength, chosen_filter)
90
+
91
+ # Apply filter to TARDIS Spectrum
92
+ filtered_spectrum = spectrum.luminosity_density_lambda * prepared_filter
93
+ filtered_spectrum_virt = spectrum_virtual.luminosity_density_lambda * prepared_filter
94
+ filtered_spec_integ = spectrum_integrated.luminosity_density_lambda * prepared_filter
95
+ return filtered_spectrum, filtered_spectrum_virt, filtered_spec_integ
96
+
97
+
98
+ # Function to plot original TARDIS Spectrum
99
+ def plot_original_spectrum(spectrum, spectrum_virtual, spectrum_integrated):
100
+ # Plot TARDIS Spectrum before filtering
101
+ plt.figure()
102
+ plt.plot(spectrum.wavelength, spectrum.luminosity_density_lambda)
103
+ plt.plot(spectrum.wavelength, spectrum_virtual.luminosity_density_lambda)
104
+ plt.plot(spectrum.wavelength, spectrum_integrated.luminosity_density_lambda)
105
+ plt.xlabel("Wavelength (Angstrom)")
106
+ plt.ylabel("Luminosity Density (erg/s/Angstrom)")
107
+ plt.title("Unfiltered TARDIS Spectrum")
108
+
109
+
110
+ # Function to plot filter transmission curve
111
+ def plot_filter(spectrum, chosen_filter):
112
+
113
+ # Interpolate filter transmission values to match TARDIS Spectrum
114
+ prepared_filter = interp_filter(spectrum.wavelength, chosen_filter)
115
+
116
+ # Plot the filter transmission curve
117
+ plt.figure()
118
+ plt.plot(spectrum.wavelength, prepared_filter)
119
+ plt.title("Filter Transmission Curve")
120
+ plt.xlabel("Wavelength (Angstrom)")
121
+ plt.ylabel("Transmission")
122
+
123
+
124
+ # Function to plot the filtered spectrum
125
+ def plot_filtered_spectrum(spectrum, spectrum_virtual, spectrum_integrated, chosen_filter):
126
+
127
+ plt.figure()
128
+ plt.plot(spectrum.wavelength, apply_filter(spectrum, spectrum_virtual, spectrum_integrated, chosen_filter)[0])
129
+ plt.plot(spectrum.wavelength, apply_filter(spectrum, spectrum_virtual, spectrum_integrated, chosen_filter)[1])
130
+ plt.plot(spectrum.wavelength, apply_filter(spectrum, spectrum_virtual, spectrum_integrated, chosen_filter)[2])
131
+ plt.xlabel("Wavelength (Angstrom)")
132
+ plt.ylabel("Luminosity Density (erg/s/Angstrom)")
133
+ plt.title("Filtered TARDIS Example Model Spectrum")
134
+ plt.show()
@@ -0,0 +1,5 @@
1
+ """Top-level package for TARDIS-Spectrum-Filtering."""
2
+
3
+ __author__ = """Clyde Watson"""
4
+ __email__ = "clyde.n.watson@gmail.com"
5
+ __version__ = "0.0.1"
@@ -0,0 +1,7 @@
1
+ """The common module contains common functions and classes used by the other modules.
2
+ """
3
+
4
+ def hello_world():
5
+ """Prints "Hello World!" to the console.
6
+ """
7
+ print("Hello World!")
@@ -0,0 +1,37 @@
1
+ Metadata-Version: 2.4
2
+ Name: TARDIS_Spectrum_Filtering
3
+ Version: 1.0.0
4
+ Summary: Package used to apply telescope filters to spectra from Stars or Supernovae
5
+ Author-email: Clyde Watson <clyde.n.watson@gmail.com>
6
+ License: MIT License
7
+ Project-URL: Homepage, https://github.com/ClydeME/TARDIS_Spectrum_Filtering
8
+ Keywords: TARDIS_Spectrum_Filtering
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Natural Language :: English
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Requires-Python: >=3.8
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: numpy
21
+ Provides-Extra: all
22
+ Requires-Dist: spectra-filtering[extra]; extra == "all"
23
+ Provides-Extra: extra
24
+ Requires-Dist: pandas; extra == "extra"
25
+ Dynamic: license-file
26
+
27
+ # spectra-filtering
28
+
29
+
30
+ [![image](https://img.shields.io/pypi/v/spectra-filtering.svg)](https://pypi.python.org/pypi/spectra-filtering)
31
+ [![image](https://img.shields.io/conda/vn/conda-forge/spectra-filtering.svg)](https://anaconda.org/conda-forge/spectra-filtering)
32
+
33
+
34
+ **Package used to apply telescope filters to spectra from Stars or Supernovae**
35
+
36
+
37
+ - Free software: MIT License
@@ -0,0 +1,40 @@
1
+ .editorconfig
2
+ .gitignore
3
+ LICENSE
4
+ MANIFEST.in
5
+ README.md
6
+ mkdocs.yml
7
+ pyproject.toml
8
+ requirements.txt
9
+ requirements_dev.txt
10
+ .github/ISSUE_TEMPLATE/bug_report.md
11
+ .github/ISSUE_TEMPLATE/config.yml
12
+ .github/ISSUE_TEMPLATE/feature_request.md
13
+ .github/workflows/docs-build.yml
14
+ .github/workflows/docs.yml
15
+ .github/workflows/installation.yml
16
+ .github/workflows/macos.yml
17
+ .github/workflows/pypi.yml
18
+ .github/workflows/ubuntu.yml
19
+ .github/workflows/windows.yml
20
+ TARDIS_Spectrum_Filtering/TARDIS_Spectrum_Filtering.py
21
+ TARDIS_Spectrum_Filtering/__init__.py
22
+ TARDIS_Spectrum_Filtering/common.py
23
+ TARDIS_Spectrum_Filtering.egg-info/PKG-INFO
24
+ TARDIS_Spectrum_Filtering.egg-info/SOURCES.txt
25
+ TARDIS_Spectrum_Filtering.egg-info/dependency_links.txt
26
+ TARDIS_Spectrum_Filtering.egg-info/entry_points.txt
27
+ TARDIS_Spectrum_Filtering.egg-info/requires.txt
28
+ TARDIS_Spectrum_Filtering.egg-info/top_level.txt
29
+ docs/TARDIS_Spectrum_Filtering.md
30
+ docs/changelog.md
31
+ docs/common.md
32
+ docs/contributing.md
33
+ docs/faq.md
34
+ docs/index.md
35
+ docs/installation.md
36
+ docs/usage.md
37
+ docs/examples/intro.ipynb
38
+ docs/overrides/main.html
39
+ tests/__init__.py
40
+ tests/test_TARDIS_Spectrum_Filtering.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ TARDIS_Spectrum_Filtering = TARDIS_Spectrum_Filtering.cli:main
@@ -0,0 +1,7 @@
1
+ numpy
2
+
3
+ [all]
4
+ spectra-filtering[extra]
5
+
6
+ [extra]
7
+ pandas
@@ -0,0 +1 @@
1
+ TARDIS_Spectrum_Filtering
@@ -0,0 +1,4 @@
1
+
2
+ # TARDIS_Spectrum_Filtering module
3
+
4
+ ::: TARDIS_Spectrum_Filtering.TARDIS_Spectrum_Filtering
@@ -0,0 +1,11 @@
1
+ # Changelog
2
+
3
+ ## v0.0.1 - Date
4
+
5
+ **Improvement**:
6
+
7
+ - TBD
8
+
9
+ **New Features**:
10
+
11
+ - TBD
@@ -0,0 +1,3 @@
1
+ # common module
2
+
3
+ ::: TARDIS_Spectrum_Filtering.common
@@ -0,0 +1,108 @@
1
+ # Contributing
2
+
3
+ Contributions are welcome, and they are greatly appreciated! Every
4
+ little bit helps, and credit will always be given.
5
+
6
+ You can contribute in many ways:
7
+
8
+ ## Types of Contributions
9
+
10
+ ### Report Bugs
11
+
12
+ Report bugs at <https://github.com/ClydeME/spectra-filtering/issues>.
13
+
14
+ If you are reporting a bug, please include:
15
+
16
+ - Your operating system name and version.
17
+ - Any details about your local setup that might be helpful in troubleshooting.
18
+ - Detailed steps to reproduce the bug.
19
+
20
+ ### Fix Bugs
21
+
22
+ Look through the GitHub issues for bugs. Anything tagged with `bug` and
23
+ `help wanted` is open to whoever wants to implement it.
24
+
25
+ ### Implement Features
26
+
27
+ Look through the GitHub issues for features. Anything tagged with
28
+ `enhancement` and `help wanted` is open to whoever wants to implement it.
29
+
30
+ ### Write Documentation
31
+
32
+ TARDIS-Spectrum-Filtering could always use more documentation,
33
+ whether as part of the official TARDIS-Spectrum-Filtering docs,
34
+ in docstrings, or even on the web in blog posts, articles, and such.
35
+
36
+ ### Submit Feedback
37
+
38
+ The best way to send feedback is to file an issue at
39
+ <https://github.com/ClydeME/spectra-filtering/issues>.
40
+
41
+ If you are proposing a feature:
42
+
43
+ - Explain in detail how it would work.
44
+ - Keep the scope as narrow as possible, to make it easier to implement.
45
+ - Remember that this is a volunteer-driven project, and that contributions are welcome :)
46
+
47
+ ## Get Started!
48
+
49
+ Ready to contribute? Here's how to set up spectra-filtering for local development.
50
+
51
+ 1. Fork the spectra-filtering repo on GitHub.
52
+
53
+ 2. Clone your fork locally:
54
+
55
+ ```shell
56
+ $ git clone git@github.com:your_name_here/spectra-filtering.git
57
+ ```
58
+
59
+ 3. Install your local copy into a virtualenv. Assuming you have
60
+ virtualenvwrapper installed, this is how you set up your fork for
61
+ local development:
62
+
63
+ ```shell
64
+ $ mkvirtualenv spectra-filtering
65
+ $ cd spectra-filtering/
66
+ $ python setup.py develop
67
+ ```
68
+
69
+ 4. Create a branch for local development:
70
+
71
+ ```shell
72
+ $ git checkout -b name-of-your-bugfix-or-feature
73
+ ```
74
+
75
+ Now you can make your changes locally.
76
+
77
+ 5. When you're done making changes, check that your changes pass flake8
78
+ and the tests, including testing other Python versions with tox:
79
+
80
+ ```shell
81
+ $ flake8 spectra-filtering tests
82
+ $ python setup.py test or pytest
83
+ $ tox
84
+ ```
85
+
86
+ To get flake8 and tox, just pip install them into your virtualenv.
87
+
88
+ 6. Commit your changes and push your branch to GitHub:
89
+
90
+ ```shell
91
+ $ git add .
92
+ $ git commit -m "Your detailed description of your changes."
93
+ $ git push origin name-of-your-bugfix-or-feature
94
+ ```
95
+
96
+ 7. Submit a pull request through the GitHub website.
97
+
98
+ ## Pull Request Guidelines
99
+
100
+ Before you submit a pull request, check that it meets these guidelines:
101
+
102
+ 1. The pull request should include tests.
103
+ 2. If the pull request adds functionality, the docs should be updated.
104
+ Put your new functionality into a function with a docstring, and add
105
+ the feature to the list in README.rst.
106
+ 3. The pull request should work for Python 3.8 and later, and
107
+ for PyPy. Check <https://github.com/ClydeME/spectra-filtering/pull_requests> and make sure that the tests pass for all
108
+ supported Python versions.
@@ -0,0 +1,21 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "print('Hello World!')"
10
+ ]
11
+ }
12
+ ],
13
+ "metadata": {
14
+ "language_info": {
15
+ "name": "python"
16
+ },
17
+ "orig_nbformat": 4
18
+ },
19
+ "nbformat": 4,
20
+ "nbformat_minor": 2
21
+ }
@@ -0,0 +1 @@
1
+ # FAQ
@@ -0,0 +1,16 @@
1
+ # Welcome to TARDIS_Spectrum_Filtering
2
+
3
+
4
+ [![image](https://img.shields.io/pypi/v/TARDIS_Spectrum_Filtering.svg)](https://pypi.python.org/pypi/TARDIS_Spectrum_Filtering)
5
+
6
+
7
+ **Package used to apply telescope filters to spectra from Stars or Supernovae**
8
+
9
+
10
+ - Free software: MIT License
11
+ - Documentation: <https://ClydeME.github.io/TARDIS_Spectrum_Filtering>
12
+
13
+
14
+ ## Features
15
+
16
+ - TODO
@@ -0,0 +1,21 @@
1
+ # Installation
2
+
3
+ ## Stable release
4
+
5
+ To install TARDIS-Spectrum-Filtering, run this command in your terminal:
6
+
7
+ ```
8
+ pip install spectra-filtering
9
+ ```
10
+
11
+ This is the preferred method to install TARDIS-Spectrum-Filtering, as it will always install the most recent stable release.
12
+
13
+ If you don't have [pip](https://pip.pypa.io) installed, this [Python installation guide](http://docs.python-guide.org/en/latest/starting/installation/) can guide you through the process.
14
+
15
+ ## From sources
16
+
17
+ To install TARDIS-Spectrum-Filtering from sources, run this command in your terminal:
18
+
19
+ ```
20
+ pip install git+https://github.com/ClydeME/spectra-filtering
21
+ ```
@@ -0,0 +1,11 @@
1
+ {% extends "base.html" %}
2
+
3
+ {% block content %}
4
+ {% if page.nb_url %}
5
+ <a href="{{ page.nb_url }}" title="Download Notebook" class="md-content__button md-icon">
6
+ {% include ".icons/material/download.svg" %}
7
+ </a>
8
+ {% endif %}
9
+
10
+ {{ super() }}
11
+ {% endblock content %}
@@ -0,0 +1,7 @@
1
+ # Usage
2
+
3
+ To use TARDIS-Spectrum-Filtering in a project:
4
+
5
+ ```
6
+ import TARDIS_Spectrum_Filtering
7
+ ```
@@ -0,0 +1,86 @@
1
+ site_name: spectra-filtering
2
+ site_description: Package used to apply telescope filters to spectra from Stars or Supernovae
3
+ site_author: ClydeME
4
+ site_url: https://ClydeME.github.io/spectra-filtering
5
+ repo_url: https://github.com/ClydeME/spectra-filtering
6
+
7
+ copyright: "Copyright &copy; 2024 - 2024 Clyde Watson"
8
+
9
+ theme:
10
+ palette:
11
+ - scheme: default
12
+ # primary: blue
13
+ # accent: indigo
14
+ toggle:
15
+ icon: material/toggle-switch-off-outline
16
+ name: Switch to dark mode
17
+ - scheme: slate
18
+ primary: indigo
19
+ accent: indigo
20
+ toggle:
21
+ icon: material/toggle-switch
22
+ name: Switch to light mode
23
+ name: material
24
+ icon:
25
+ repo: fontawesome/brands/github
26
+ # logo: assets/logo.png
27
+ # favicon: assets/favicon.png
28
+ features:
29
+ - navigation.instant
30
+ - navigation.tracking
31
+ - navigation.top
32
+ - search.highlight
33
+ - search.share
34
+ custom_dir: "docs/overrides"
35
+ font:
36
+ text: Google Sans
37
+ code: Regular
38
+
39
+ plugins:
40
+ - search
41
+ - mkdocstrings
42
+ - git-revision-date
43
+ - git-revision-date-localized:
44
+ enable_creation_date: true
45
+ type: timeago
46
+ # - pdf-export
47
+ - mkdocs-jupyter:
48
+ include_source: True
49
+ ignore_h1_titles: True
50
+ execute: True
51
+ allow_errors: false
52
+ ignore: ["conf.py"]
53
+ execute_ignore: ["*ignore.ipynb"]
54
+
55
+ markdown_extensions:
56
+ - admonition
57
+ - abbr
58
+ - attr_list
59
+ - def_list
60
+ - footnotes
61
+ - meta
62
+ - md_in_html
63
+ - pymdownx.superfences
64
+ - pymdownx.highlight:
65
+ linenums: true
66
+ - toc:
67
+ permalink: true
68
+
69
+ # extra:
70
+ # analytics:
71
+ # provider: google
72
+ # property: UA-XXXXXXXXX-X
73
+
74
+ nav:
75
+ - Home: index.md
76
+ - Installation: installation.md
77
+ - Usage: usage.md
78
+ - Contributing: contributing.md
79
+ - FAQ: faq.md
80
+ - Changelog: changelog.md
81
+ - Report Issues: https://github.com/ClydeME/spectra-filtering/issues
82
+ - Examples:
83
+ - examples/intro.ipynb
84
+ - API Reference:
85
+ - TARDIS_Spectrum_Filtering module: TARDIS_Spectrum_Filtering.md
86
+ - common module: common.md
@@ -0,0 +1,82 @@
1
+ [project]
2
+ name = "TARDIS_Spectrum_Filtering"
3
+ version = "1.0.0"
4
+ dynamic = [
5
+ "dependencies",
6
+ ]
7
+ description = "Package used to apply telescope filters to spectra from Stars or Supernovae"
8
+ readme = "README.md"
9
+ requires-python = ">=3.8"
10
+ keywords = [
11
+ "TARDIS_Spectrum_Filtering",
12
+ ]
13
+ license = {text = "MIT License"}
14
+ authors = [
15
+ {name = "Clyde Watson", email = "clyde.n.watson@gmail.com"},
16
+ ]
17
+ classifiers = [
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Natural Language :: English",
21
+ "Programming Language :: Python :: 3.8",
22
+ "Programming Language :: Python :: 3.9",
23
+ "Programming Language :: Python :: 3.10",
24
+ "Programming Language :: Python :: 3.11",
25
+ "Programming Language :: Python :: 3.12",
26
+ ]
27
+
28
+ [project.entry-points."console_scripts"]
29
+ TARDIS_Spectrum_Filtering = "TARDIS_Spectrum_Filtering.cli:main"
30
+
31
+ [project.optional-dependencies]
32
+ all = [
33
+ "spectra-filtering[extra]",
34
+ ]
35
+
36
+ extra = [
37
+ "pandas",
38
+ ]
39
+
40
+
41
+ [tool]
42
+ [tool.setuptools.packages.find]
43
+ include = ["TARDIS_Spectrum_Filtering*"]
44
+ exclude = ["docs*"]
45
+
46
+ [tool.setuptools.dynamic]
47
+ dependencies = {file = ["requirements.txt"]}
48
+
49
+
50
+ [tool.distutils.bdist_wheel]
51
+ universal = true
52
+
53
+
54
+ [tool.bumpversion]
55
+ current_version = "0.0.1"
56
+ commit = true
57
+ tag = true
58
+
59
+ [[tool.bumpversion.files]]
60
+ filename = "pyproject.toml"
61
+ search = 'version = "{current_version}"'
62
+ replace = 'version = "{new_version}"'
63
+
64
+ [[tool.bumpversion.files]]
65
+ filename = "TARDIS_Spectrum_Filtering/__init__.py"
66
+ search = '__version__ = "{current_version}"'
67
+ replace = '__version__ = "{new_version}"'
68
+
69
+
70
+ [tool.flake8]
71
+ exclude = [
72
+ "docs",
73
+ ]
74
+ max-line-length = 88
75
+
76
+
77
+ [project.urls]
78
+ Homepage = "https://github.com/ClydeME/TARDIS_Spectrum_Filtering"
79
+
80
+ [build-system]
81
+ requires = ["setuptools>=64", "setuptools_scm>=8"]
82
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1 @@
1
+ numpy
@@ -0,0 +1,29 @@
1
+ black
2
+ black[jupyter]
3
+ build
4
+ bump-my-version
5
+ click
6
+ codespell
7
+ flake8
8
+
9
+ ipykernel
10
+ livereload
11
+ mkdocs
12
+ mkdocs-git-revision-date-localized-plugin
13
+ mkdocs-git-revision-date-plugin
14
+ mkdocs-jupyter>=0.24.0
15
+ mkdocs-material>=9.1.3
16
+ mkdocs-pdf-export-plugin
17
+ mkdocstrings==0.28.2
18
+ mkdocstrings-crystal
19
+ mkdocstrings-python-legacy
20
+ nbconvert
21
+ nbformat
22
+ pygments
23
+ pymdown-extensions
24
+ pytest
25
+ pytest-runner
26
+ sphinx
27
+ twine
28
+ watchdog
29
+ wheel
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ """Unit test package for TARDIS_Spectrum_Filtering."""
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env python
2
+
3
+ """Tests for `TARDIS_Spectrum_Filtering` package."""
4
+
5
+
6
+ import unittest
7
+
8
+ from TARDIS_Spectrum_Filtering import TARDIS_Spectrum_Filtering
9
+
10
+
11
+ class TestTardis_spectrum_filtering(unittest.TestCase):
12
+ """Tests for `TARDIS_Spectrum_Filtering` package."""
13
+
14
+ def setUp(self):
15
+ """Set up test fixtures, if any."""
16
+
17
+ def tearDown(self):
18
+ """Tear down test fixtures, if any."""
19
+
20
+ def test_000_something(self):
21
+ """Test something."""