Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gpu #28

Merged
merged 199 commits into from
Jun 12, 2024
Merged

Gpu #28

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
199 commits
Select commit Hold shift + click to select a range
f81ebdc
add alma antenna layout for DSHARP
Kevin2 Oct 23, 2023
f13abc7
adjust for only torch
Kevin2 Oct 23, 2023
56a3943
update for torch only
Kevin2 Oct 23, 2023
141df76
fix header
Kevin2 Oct 23, 2023
188f635
change fft to skies
Kevin2 Oct 24, 2023
a5e79cf
add active dsharp antennas
Kevin2 Oct 26, 2023
ec3aaa3
rename keywords
Kevin2 Nov 9, 2023
76f0185
fix dsharp layout
Kevin2 Nov 9, 2023
07bc857
add meerkat layout
Kevin2 Nov 9, 2023
9079d9f
fix ra dec bug
Kevin2 Nov 9, 2023
df7a3cc
release
Kevin2 Nov 9, 2023
38287df
add observation class
Kevin2 Nov 9, 2023
48c0a5d
update observation class
Kevin2 Nov 9, 2023
68155b0
vis with obs class
Kevin2 Nov 9, 2023
0f05216
adaptions for obs class
Kevin2 Nov 9, 2023
9966843
final adjustments for obs class
Kevin2 Nov 16, 2023
2ea5736
fix baseline num
Kevin2 Nov 17, 2023
3b27c53
del _date, fix pre-commit
Kevin2 Nov 17, 2023
58212a6
initial adjustmnets to obs class
Kevin2 Nov 17, 2023
f015b1c
Merge remote-tracking branch 'origin/main' into gpu
FeGeyer Nov 19, 2023
e769ec4
Move meerkat layout
FeGeyer Nov 19, 2023
8aba230
update
Kevin2 Nov 20, 2023
166d5ce
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Nov 20, 2023
c91960c
move valiad baseline calc
Kevin2 Nov 20, 2023
369f5c0
change to list comp
Kevin2 Nov 20, 2023
2dad837
only torch
Kevin2 Nov 20, 2023
474522e
fix baseline nums
Kevin2 Nov 20, 2023
b738719
fix baseline num calc
Kevin2 Nov 20, 2023
a13f10c
Delete unused function
FeGeyer Nov 20, 2023
cdfd41f
Update names
FeGeyer Nov 20, 2023
36b1214
fix masking and dates
Kevin2 Nov 20, 2023
96a6bd0
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
FeGeyer Nov 20, 2023
dedd46b
moved to obs class
Kevin2 Nov 21, 2023
c8a431c
delete unused
Kevin2 Nov 21, 2023
eecd308
make modules
Kevin2 Nov 21, 2023
73e3a19
change to modules
Kevin2 Nov 21, 2023
008a6f0
add gpu support
Kevin2 Nov 21, 2023
28f2d28
add device option
Kevin2 Nov 21, 2023
2614e4d
add device option
Kevin2 Nov 21, 2023
c627008
add device option
Kevin2 Nov 21, 2023
0b119c0
move dublicate
Kevin2 Nov 21, 2023
2fc6046
refactor array class
Kevin2 Nov 21, 2023
b0c7814
rename to array
Kevin2 Nov 21, 2023
b12d9c4
delete uv plots
Kevin2 Nov 21, 2023
8a657d0
delete sampling masks
Kevin2 Nov 21, 2023
6f7a4c7
minor optimiyation, stepwise calculation
Kevin2 Nov 22, 2023
e884d39
Add fix for missing shape
FeGeyer Nov 22, 2023
07bc7f8
Skip empty visibilities
FeGeyer Nov 23, 2023
32f6f84
Fix for skipping visibilities
FeGeyer Nov 27, 2023
183ae3e
Delete prints and unused packages
FeGeyer Nov 27, 2023
7d8f659
Fix date
FeGeyer Dec 11, 2023
5d0b6bc
Fix calculation of K
FeGeyer Dec 11, 2023
a254b4f
Fix bug with wavelength
FeGeyer Dec 12, 2023
e0a1753
Fix empty tensor bug
FeGeyer Dec 14, 2023
beab5d5
Change numpy array to torch.tensor
FeGeyer Dec 18, 2023
1a4f672
Finally fix empty tensor bug
FeGeyer Dec 19, 2023
7ddfb63
Add keyword for saving half the image
FeGeyer Dec 19, 2023
0b39f3d
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
FeGeyer Dec 19, 2023
9f853b4
restructure baseline class, implement single baseline calculation
Kevin2 Jan 10, 2024
0778e1a
drop unused
Kevin2 Jan 10, 2024
eff4c2c
fix used baseline subset
Kevin2 Jan 11, 2024
6e166d5
delete print
Kevin2 Jan 11, 2024
d492527
split for 3k px
Kevin2 Jan 15, 2024
eb411b6
Change numpy to torch
FeGeyer Jan 15, 2024
171b42e
add valid mask
Kevin2 Jan 15, 2024
8f404ee
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
FeGeyer Jan 15, 2024
5ed6ef8
add get_timerange to baseline class
Kevin2 Jan 15, 2024
94efb39
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
FeGeyer Jan 15, 2024
929a058
Splitting only valid baselines
FeGeyer Jan 15, 2024
1a81f9c
calc one per pixel, uv for 1 timestep
Kevin2 Jan 15, 2024
c483efa
calc uv grid coordinates on whole sample
Kevin2 Jan 15, 2024
c24b49c
less chunks
Kevin2 Jan 15, 2024
96aeb24
calc spws only once
Kevin2 Jan 15, 2024
aef50e2
Add toml keyword
FeGeyer Jan 16, 2024
2cf9428
add meerkat test layout
Kevin2 Jan 16, 2024
15830eb
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Jan 16, 2024
134f3e3
drop numpy in visibility class
Kevin2 Jan 16, 2024
9f95101
simple split
Kevin2 Jan 19, 2024
0e71828
single test baseline
Kevin2 Jan 19, 2024
81fc7df
refactor sampling options
Kevin2 Jan 20, 2024
7cde545
only pass obs to vis_loop
Kevin2 Jan 20, 2024
0b1243a
add dense calculation
Kevin2 Jan 20, 2024
8ee568a
only split, no time ranges
Kevin2 Jan 22, 2024
e1710e0
tests to speed up calculations
Kevin2 Jan 26, 2024
5aef172
rename keywords
Kevin2 Feb 5, 2024
40b68d4
adjust calculation modes
Kevin2 Feb 5, 2024
638a768
move spw calculation to obs class
Kevin2 Feb 5, 2024
55efefa
add sensitivty cut to toml
Kevin2 Feb 6, 2024
092d479
read sensitivity cut from toml
Kevin2 Feb 6, 2024
8976488
adj vis class to torch tensors
Kevin2 Feb 6, 2024
7664be2
delete unused sampling checks
Kevin2 Feb 6, 2024
86edc3d
delete comments
Kevin2 Feb 6, 2024
64f523f
fix grid mode
Kevin2 Feb 6, 2024
3c54520
delete old example configs
Kevin2 Feb 6, 2024
5846e84
rename
Kevin2 Feb 6, 2024
1319fb1
rename
Kevin2 Feb 6, 2024
d3d1629
update keywords
Kevin2 Feb 6, 2024
4b7d9cd
add changes
Kevin2 Feb 6, 2024
3f9ab91
add docu
Kevin2 Feb 6, 2024
b05e3a7
fix sensitivity cut
Kevin2 Feb 6, 2024
0fa1fd1
bump version number
Kevin2 Feb 6, 2024
a82dd91
Fix data_set.py
FeGeyer Feb 6, 2024
8d7a8ab
Add elif and suppression of torch_dynamo warning
FeGeyer Feb 6, 2024
8ccf4f2
Fix mode
FeGeyer Feb 6, 2024
e6a9078
delete splitting into scans
Kevin2 Feb 6, 2024
6688227
Enable supression only if cpu
FeGeyer Feb 6, 2024
53b1a34
More fixes
FeGeyer Feb 6, 2024
15e2c89
Delete commented lines
FeGeyer Feb 7, 2024
5b31776
fix dense mode
Kevin2 Feb 9, 2024
66a2a4e
Fix gridding and histogram2d
FeGeyer Feb 9, 2024
d0aec0b
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
FeGeyer Feb 9, 2024
e0d291d
Fix typo
FeGeyer Feb 13, 2024
142bb04
Fix bins for gridding
FeGeyer Feb 13, 2024
35579c0
Add variable SEFD and put noise on gpu
FeGeyer Feb 15, 2024
0e04cb5
Add grid_fov keyword
FeGeyer Feb 15, 2024
941ed3c
Change keyword in gridder
FeGeyer Feb 15, 2024
edeb2ed
add E matrix
Kevin2 Feb 15, 2024
89310cd
fix dummy sizes
Kevin2 Feb 15, 2024
22caa17
add E matrix
Kevin2 Feb 15, 2024
b377c37
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Feb 15, 2024
4cba9bb
delete tqdm
Kevin2 Feb 16, 2024
dd2b153
fix out path
Kevin2 Feb 16, 2024
a729d93
Add another tqdm
FeGeyer Mar 4, 2024
51dd334
fix calculation of zero baselines
Kevin2 Apr 4, 2024
c7832b4
add seed
Kevin2 Apr 4, 2024
26cc077
fix dense calculation, fix lm grid
Kevin2 Apr 4, 2024
31363b9
change split
Kevin2 Apr 4, 2024
6378512
change file name search
Kevin2 Apr 4, 2024
f802a99
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Apr 4, 2024
5720764
Fix numbering of gridded train files
FeGeyer Apr 5, 2024
2b6159f
change ra dec for dense mode
Kevin2 Apr 5, 2024
37a7473
fix lm, freq and ra dec for dense
Kevin2 Apr 5, 2024
eebaaaa
add polarization
Kevin2 Apr 5, 2024
e57edec
add polarization drop sensitivity cut
Kevin2 Apr 5, 2024
efb93e0
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Apr 5, 2024
3fbc772
decrease split value
Kevin2 Apr 5, 2024
6498527
enable compile again
Kevin2 Apr 5, 2024
050cfae
smaller split chunks
Kevin2 Apr 5, 2024
9237d17
fix beam calculations
Kevin2 Apr 5, 2024
fbe4888
fix rd in beam calc
Kevin2 Apr 5, 2024
1685280
fix writer
Kevin2 Apr 5, 2024
542e5b7
better visibility
Kevin2 Apr 7, 2024
9cb6c34
fix lm grid
Kevin2 Apr 7, 2024
b2da4b3
fix lm grid, add sensitivity cut
Kevin2 Apr 7, 2024
b201b86
add sensitivity cut
Kevin2 Apr 7, 2024
a5a8073
delete unused
Kevin2 Apr 8, 2024
305c381
add comments
Kevin2 Apr 8, 2024
a08a9c1
do visibility scaling in vis loop
Kevin2 Apr 8, 2024
383f1af
delete norm
Kevin2 Apr 8, 2024
27ebd49
delete rotation after lm grid fix
Kevin2 Apr 8, 2024
521d064
add comment vis weighting
Kevin2 Apr 8, 2024
16336b9
grid real imag for stokes i
Kevin2 Apr 8, 2024
67e749d
Change einsum
FeGeyer Apr 8, 2024
cfb11b0
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
FeGeyer Apr 8, 2024
9761824
fix grid pixels
Kevin2 Apr 11, 2024
ccb62e1
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Apr 11, 2024
4e62804
update changes
Kevin2 Apr 11, 2024
97a49bb
update changelog
Kevin2 Apr 11, 2024
3360bc9
Add case for test layout and place test layout in Dortmund
aknierim May 23, 2024
39d02e5
Add compat for cuda v12.2
aknierim May 23, 2024
ea3626b
Add get_layout method and accept any whitespace as delimiter in layouts
aknierim Jun 3, 2024
06422f9
update test toml
Kevin2 Jun 10, 2024
30f2e39
Merge branch 'ngvla_sim' into gpu
Kevin2 Jun 10, 2024
a8a2c79
fix keyword
Kevin2 Jun 10, 2024
feeb51f
fix Station tests
Kevin2 Jun 10, 2024
4d13c37
update tests to reworked package structure
Kevin2 Jun 10, 2024
0048ca1
update simulation keys
Kevin2 Jun 10, 2024
948d667
fix python version <3.12
Kevin2 Jun 10, 2024
7e4bd48
cast to float instead of double
Kevin2 Jun 10, 2024
395abf8
fix typos
Kevin2 Jun 10, 2024
ff2913f
simplify delta calculation
Kevin2 Jun 10, 2024
4ecafef
pre-commit changes
FeGeyer Jun 11, 2024
ae815b2
Delete redundant function
FeGeyer Jun 11, 2024
efdea76
Fix ci version Bug and increase testes version numbers
FeGeyer Jun 11, 2024
8809380
Update action version because of deprecation
FeGeyer Jun 11, 2024
263aadb
Restore some options
FeGeyer Jun 11, 2024
6b118f8
Update codecov ci
FeGeyer Jun 11, 2024
0f0bb8c
Update changelog.yml for node20
FeGeyer Jun 11, 2024
b3427e6
Add ci care ro towncrier
FeGeyer Jun 11, 2024
a99696f
station has no attribute name anymore
Kevin2 Jun 11, 2024
1b1f7ae
add test for layout slicing
Kevin2 Jun 11, 2024
222282a
simplified stations dataclass
Kevin2 Jun 11, 2024
9803d30
simplified torch conversion
Kevin2 Jun 11, 2024
e69443a
simplify delta calculation, use astropy c
Kevin2 Jun 11, 2024
bd06670
simplify dense uv coordinate calculation
Kevin2 Jun 11, 2024
3eba966
use astropy c
Kevin2 Jun 11, 2024
f606859
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Jun 11, 2024
8afec94
Change float to double
FeGeyer Jun 12, 2024
185b510
delete old code
Kevin2 Jun 12, 2024
7fc4e12
use torch combinatiosn for delta calculations
Kevin2 Jun 12, 2024
fa9f506
delete single occurance calc
Kevin2 Jun 12, 2024
c57f9bf
use more torch combinations
Kevin2 Jun 12, 2024
c10c1dc
Rewrite antenna pair calculations
aknierim Jun 12, 2024
139de28
Rewrite baseline calculation
aknierim Jun 12, 2024
a60554d
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
Kevin2 Jun 12, 2024
e5150b3
make random seed configurable
Kevin2 Jun 12, 2024
0da6bb2
Fix function call of get_pairs in calc_relative_pos
aknierim Jun 12, 2024
8775e39
Fix tests
aknierim Jun 12, 2024
eaeb4f8
Merge branch 'gpu' of github.com:radionets-project/pyvisgen into gpu
aknierim Jun 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ jobs:
changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check for news fragment
if: ${{ ! contains( github.event.pull_request.labels.*.name, 'no-changelog-needed')}}
uses: andstor/file-existence-action@v2
uses: andstor/file-existence-action@v3
with:
files: ${{ env.FRAGMENT_NAME }}
fail: true
19 changes: 10 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ jobs:
matrix:
include:
- os: ubuntu-latest
python-version: "3.9"
python-version: "3.10"
install-method: mamba

- os: ubuntu-latest
python-version: "3.10"
python-version: "3.11"
install-method: mamba
extra-args: ["codecov"]

Expand All @@ -34,7 +34,7 @@ jobs:
shell: bash -leo pipefail {0}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0

Expand All @@ -44,11 +44,11 @@ jobs:
PYTHON_VERSION: ${{ matrix.python-version }}
run: |
# setup correct python version
sed -i -e "s/- python=.*/- python=$PYTHON_VERSION/g" environment.yml
sed -i -e "s/- python.*/- python=$PYTHON_VERSION/g" environment.yml
- name: mamba setup
if: matrix.install-method == 'mamba'
uses: mamba-org/provision-with-micromamba@v14
uses: mamba-org/setup-micromamba@v1

- name: Install dependencies
run: |
Expand All @@ -66,18 +66,19 @@ jobs:
py.test --cov --cov-report=xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
if: contains(matrix.extra-args, 'codecov')
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"

Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ repos:
rev: 4.0.1
hooks:
- id: flake8
args: [--max-line-length=88, "--extend-ignore=E203"]
args: [--max-line-length=88, "--extend-ignore=E203,E741"]
88 changes: 88 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
Pyvisgen v0.2.0 (2024-04-11)
============================


API Changes
-----------


Bug Fixes
---------

- fix baseline num calculation
- fix wavelength scaling
- fix lm grid calculation
- fix gridding so that it fits the numpy fft gridding [`#28 <https://github.com/radionets-project/pyvisgen/pull/28>`__]


New Features
------------

- implement GPU support for visibility calculations
- new grid mode:
- when more than one visibility falls into the same pixel, only the first is calculated
- define grid before calculation
- new dense mode:
- calculate visibilities for a dense uv grid
- simulate ideal interferometer response
- add sensitivity cut in image space:
- avoid calculation of pixel values below detection threshold
- significantly speed-up simulations
- add torch compile to RIME functions [`#28 <https://github.com/radionets-project/pyvisgen/pull/28>`__]


Maintenance
-----------

- delete unused code and relicts
- change from numpy arrays to torch tensors
- change some of the keywords to more common phrases inside the toml config
- update default data_set.toml
- delete old config examples
- avoid torch einsum for better readability of the code [`#28 <https://github.com/radionets-project/pyvisgen/pull/28>`__]


Refactoring and Optimization
----------------------------

- refactor data classes (Visibilities, Baselines)
- add observation class, which holds all relevant information
- drop scan-wise splitting in visibilities calculations, but split all valid baselines equally
- refactor RIME components (currently only uncorrupted available) [`#28 <https://github.com/radionets-project/pyvisgen/pull/28>`__]


Pyvisgen v0.1.4 (2023-11-09)
============================


API Changes
-----------


Bug Fixes
---------

- - fix shape of `num_ifs`
- delete additional bin in masking
- fix ra dec bug [`#25 <https://github.com/radionets-project/pyvisgen/pull/25>`__]


New Features
------------

- update ci:
- change conda to mamba
- install towncrier [`#24 <https://github.com/radionets-project/pyvisgen/pull/24>`__]


Maintenance
-----------

- - update readme [`#26 <https://github.com/radionets-project/pyvisgen/pull/26>`__]

- - add docstrings
- delete unused files [`#27 <https://github.com/radionets-project/pyvisgen/pull/27>`__]


Refactoring and Optimization
----------------------------
10 changes: 0 additions & 10 deletions config/astar.toml

This file was deleted.

10 changes: 0 additions & 10 deletions config/default.toml

This file was deleted.

23 changes: 14 additions & 9 deletions config/data_set.toml → config/default_data_set.toml
Original file line number Diff line number Diff line change
@@ -1,26 +1,31 @@
[sampling_options]
mode = "basic"
mode = "full"
device = "cpu"
seed = 1337
layout = "vla"
img_size = 128
fov_center_ra = [100, 110]
fov_center_dec = [30, 40]
fov_size = 100 # max res 0.1
fov_size = 100
corr_int_time = 30.0
scan_start = ["16-01-2020 00:04:01", "16-01-2020 08:59:59"]
scan_duration = [60, 90]
scans = [1, 2]
interval_length = 360
base_freq = 15.21e9
frequsel = [0e8, 0.8e8, 1.44e8, 2.08e8]
num_scans = [1, 2]
scan_separation = 360
ref_frequency = 15.21e9
frequency_offsets = [0e8, 0.8e8, 1.44e8, 2.08e8]
bandwidths = [6.4e7, 6.4e7, 6.4e7, 6.4e7]
corrupted = true
noisy = 0
corrupted = false
sensitivity_cut = 1e-6

[bundle_options]
in_path = "build/skies/"
in_path = "skies/"
out_path_fits = "build/uvfits"
out_path_gridded = "build/gridded"
num_test_images = 500
bundle_size = 100
train_valid_split = 0.2
grid_size = 128
amp_phase = true
grid_fov = 100
amp_phase = false
10 changes: 0 additions & 10 deletions config/test.toml

This file was deleted.

10 changes: 0 additions & 10 deletions config/vlba.toml

This file was deleted.

3 changes: 0 additions & 3 deletions docs/changes/24.feature.rst

This file was deleted.

4 changes: 4 additions & 0 deletions docs/changes/28.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- fix baseline num calculation
- fix wavelength scaling
- fix lm grid calculation
- fix gridding so that it fits the numpy fft gridding
11 changes: 11 additions & 0 deletions docs/changes/28.feature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
- implement GPU support for visibility calculations
- new grid mode:
- when more than one visibility falls into the same pixel, only the first is calculated
- define grid before calculation
- new dense mode:
- calculate visibilities for a dense uv grid
- simulate ideal interferometer response
- add sensitivity cut in image space:
- avoid calculation of pixel values below detection threshold
- significantly speed-up simulations
- add torch compile to RIME functions
7 changes: 7 additions & 0 deletions docs/changes/28.maintenance.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- delete unused code and relicts
- change from numpy arrays to torch tensors
- change some of the keywords to more common phrases inside the toml config
- update default data_set.toml
- delete old config examples
- avoid torch einsum for better readability of the code
- update `ci.yml` and `workflow.yml` for node20
4 changes: 4 additions & 0 deletions docs/changes/28.optimization.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- refactor data classes (Visibilities, Baselines)
- add observation class, which holds all relevant information
- drop scan-wise splitting in visibilities calculations, but split all valid baselines equally
- refactor RIME components (currently only uncorrupted available)
3 changes: 2 additions & 1 deletion pyvisgen/fits/data.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from pathlib import Path

import numpy as np
from astropy.io import fits
from pathlib import Path


class fits_data:
Expand Down
Loading