Releases: radionets-project/pyvisgen
pyvisgen v0.7.2
pyvisgen v0.7.1
pyvisgen v0.7.0
What's Changed
- Update symmetry by @Kevin2 in #107
- Set rich traceback
show_localstoFalseby @aknierim in #109 - Bugfix: Pass RA/Dec as NumPy array to Astropy SkyCoord by @aknierim in #110
- Remove unnecessary line in CI by @aknierim in #115
- Add plugin support to pyvisgen by @aknierim in #108
- Update ruff settings by @aknierim in #116
- Pydantic config by @aknierim in #117
- Codecarbon by @aknierim in #119
- Correct citation order 🔢 by @StFroese in #125
- Add pickle writer to dataset creation by @tgross03 in #118
- [CI]: Reduce envs to fix CI failing during env setup by @aknierim in #124
- WebDataset by @aknierim in #122
- Refactor CLI by @aknierim in #123
- Radioft dft by @Kevin2 in #101
Full Changelog: v0.6.0...v0.7.0
pyvisgen v0.6.0
What's Changed
- Remove gridding and replace with pyvisgrid methods by @tgross03 in #105
- Logging hotfix by @aknierim in #106
Full Changelog: v0.5.1...v0.6.0
pyvisgen v0.5.1
pyvisgen v0.5.0
Pyvisgen v0.4.1
What's Changed
Full Changelog: v0.4.0...v0.4.1
Pyvisgen v0.4.0
What's Changed
- Create dependabot.yml by @aknierim in #79
- Add no-changelog-needed label on dependabot PR by @aknierim in #82
- Bump the actions group with 2 updates by @dependabot[bot] in #81
- Create semi-transparent navbar by @aknierim in #83
- Use uv instead of pip in CI by @aknierim in #85
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #86
- Check if documentation-only label is set before starting test job setup by @aknierim in #84
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #88
- Use
src/pyvisgen/instead ofpyvisgenby @aknierim in #87 - Use uv to speed up docs build on rtd by @aknierim in #91
- Add version switcher to docs navbar by @aknierim in #90
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #92
- Fix
CHANGES.rstand update docs by @aknierim in #89 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #93
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #97
- Update docs by @aknierim in #96
- Test analytics by @aknierim in #99
- Logging by @aknierim in #98
New Contributors
- @dependabot[bot] made their first contribution in #81
- @pre-commit-ci[bot] made their first contribution in #86
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Pyvisgen v0.3.0 (2025-07-02)
API Changes
Bug Fixes
-
Fix shape of
num_ifs- Delete additional bin in masking
- Fix ra dec bug #25
-
Fix baseline num calculation
- Fix wavelength scaling
- Fix lm grid calculation
- Fix gridding so that it fits the numpy fft gridding #28
-
Fix a numerical issue in the lm grid calculation, caused by adding a big number to small values in the lm grid
- Use torch.float64 for rd grid and lm grid calculation #32
-
Fix gridding in
pyvisgen.simulation.observation.Observationmethodscreate_rd_gridandcreate_lm_grid
methods resulting in rotated images- Fix
pyvisgen.simulation.observation.ValidBaselineSubsetdataclass field order - Fix tests failing because of api change #39
- Fix
-
Fix image rotation caused by bug in rd/lm grid computation in
pyvisgen.simulation.observation.Obseravtion- Fix field order in
pyvisgen.simulation.observation.ValidBaselineSubsetdata class - Flip input image at the beginning of
pyvisgen.simulation.visibility.vis_loopto ensure correct indexing, e.g. for plotting #40
- Fix field order in
-
Fixed random number drawing in tests by changing the location of the seed override #44
-
Update the order of simulated bandwidths in the fits writer to the standard found from converted MeerKat observations
- Tried to fix polarisation infos antenna hdu #49
-
Fix bug in feed rotation/parallactic angle computation in RIME #57
-
Fix observation dec not on same device as r #62
-
examples/ideal_interferometer.ipynb: Added a new code cell to create anlm_gridwith used fov parameters.- Fixed missing images for the
lm_gridin the docs. #63
- Fixed missing images for the
-
Add quick fix of the annoying import warning when using
tqdm.autonotbook: Usetqdm.autoinstead. This does not create any warnings, as written in thetqdmdocumentation (https://tqdm.github.io/docs/shortcuts/#tqdmauto). #65
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
- New grid mode:
-
Changes to
vis_loopfunction invisibility.py:- Add a an optional tqdm progress bar to get a visual confirmation the calculation is still running
- Add optional
batch_sizeparameter to control memory consumption #33
-
Add class
Polarisationtopyvisgen.simulation.visibilitythat is called invis_loop- Added linear, circular, and no polarisation options
- Update
pyvisgen.simulation.visibility.Visibilitiesdataclass to also store polarisation degree tensors - Add keyword arguments for polarisation simulation to
pyvisgen.simulation.observation.Observationclass - Add parallactic angle computation #39
-
pyvisgen.layouts.get_array_layoutnow also accepts custom layouts stored in apd.DataFrame#46 -
Add docs #47
-
Added optional auto scaling for batchsize in vis_loop #48
-
Add new gridder that can handle vis data returned by the
vis_loop#53 -
Add ideal interferometer simulation guide to documentation (in
User Guide)- Add example notebook
ideal_interferometer.ipynbcontaining full code for the user guide entry - Change primary and primary highlight colors for light theme in
_static/pyvisgen.cssto darker greens to be more visible - Change maintainers in
pyproject.toml#58
- Add example notebook
-
Add DSA-2000 layouts #61
-
Add new quickstart CLI tool that creates a copy of the default configuration at the specified path #73
Maintenance
-
Update readme #26
-
Add docstrings
- Delete unused files #27
-
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.ymlandworkflow.ymlfor node20 #28
-
Use observation class to pass sampling options to the fits writer
- Include writer in tests #31
-
Use c from scipy in scan.py #32
-
Switch from setup.py to pyproject.toml #35
-
Fix package name and url in pyproject.toml
- remove obsolete setup.py
- fix setuptools find packages path in pyproject.toml
- fix formatting of pyproject.toml #36
-
Create new dev environment file that contains pytorch-gpu and pytorch-cuda #37
-
Change pyvisgen.simulation.visibility.Visibilities dataclass component names from stokes components (I , Q, U, and V)
to visibilities constructed from the stokes components (V_11,V_22,V_12,V_21)- Change indices for stokes components according to AIPS Memo 114
- Indices will be set automatically depending on simulated polarisation
- Update comment strings in FITS files
- Update docstrings accordingly in
pyvisgen.simulation.visibility.vis_loopandpyvisgen.simulation.observation.Observation#39
- Change indices for stokes components according to AIPS Memo 114
-
Switch README to reStructuredText
- Add Codecov badge #45
-
Drop integration time in fits writer (also missing fits files which are converted from ms files)
- Update saving of visibility dates to modern standards
- Use infos from observation class #49
-
Increase verbosity of tests in CI #50
-
Complete rewrite of dataset creation routine
pyvisgen.simulation.data_set.SimulateDataSet- Accessible using a classmethod to load a config file
- Add optional multithreading support
- Draw and fully test parameters before simulation loop. Previously this was done in the loop and tests were only performed for two time steps
- Support for polarization
- Add new default config file for new dataset creation routine
- Update CLI tool for dataset creation routine
- Allow passing HDF5 key in
pyvisgen.utils.data.open_bundles - Restructure
pyvisgen.griddingmodule by adding autilssubmodule that contains all utility functions that previously were in thegriddersubmodule- Also fix parts of the utility functions
- Update and fix tests #53
-
Add/update docstrings throughout the codebase #54
-
Remove
torch.flipcall invisibility.py- Change dense UV grid creation to use
numpy.float128and convert totorch.float64afterwards to fix numerical instabilities - Change integration in
scan.pyto returnint_finstead ofint_t, removed time integration - Exclude dense calculations from code coverage due to lack of GPU computations in GitHub actions #56
- Change dense UV grid creation to use
-
Fix docs index and readme text #60
-
Add linting CI job
- Fix attribute error in
pyvisgen.simulation#67
- Fix attribute error in
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)
- Refactor baseline calculations by replacing loops with pytorch built-in methods #28
-
Improve hour angle calculation via array-wise operations #30
-
Use
obs.layoutinstead of passing the layout name separately inpyvisgen.fits.writer.create_vis_hdu#38 -
Added optional
normalizeparameter topyvisgen.visibility.vis_loopto decide whether to apply a normalization multiplier of0.5(default: True) #43 -
Remove reading of layout files relative to :mod:
pyvisgen.layouts.layout- Move layout files to external resources directory that is shipped with
the distribution - Ship default config with distribution #73
- Move layout files to external resources directory that is shipped with
v0.2.0
Pyvisgen v0.2.0 (2024-06-12)
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
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
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
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)
- refactor baseline calculations by replacing loops with pytorch built-in methods #28