Skip to main content

pyoof

PyPI tag License

pyoof is a Python package that contains all needed tools to perform out-of-focus (OOF) holography on astronomical beam maps for single-dish radio telescopes. It is based on the original OOF holography papers,

and software developed by Bojan Nikolic.

The pyoof package calculates the aperture phase distribution map from a set of beam maps (telescope observations), at a relatively good signal-to-noise as described by B. Nikolic. By using a nonlinear least squares minimization, a convenient set of polynomials coefficients can be found to represent the aperture distribution. Once this is calculated the aberrations on the primary dish are known.

We are currently testing the pyoof package at the Effelsberg radio telescope :satellite:.

Project Status

Pyoof's Travis CI Status Pyoof's Coveralls Status

pyoof is still in the early-development stage. While much of the functionality is already working as intended, the API is not yet stable. Nevertheless, we kindly invite you to use and test the library and we are grateful for feedback. Note, that work on the documentation is still ongoing.

Installation

The easiest and more convenient way to install the pyoof package is via pip

pip install pyoof

The installation is also possible from the source. Clone the GitHub repository and execute!

python setup.py install

From the source you can install developer versions, be aware of that. I believe in the future :smile:, so please install Python 3. Unfortunately, a windows version of the package is currently not available.

Dependencies

So far the pyoof package uses the common Python packages, it is recommended to install the anaconda distribution first, although using pip is also fine.

pyoof has the following strict requirements:

For future versions dependencies will be reduced.

Usage

To use the pyoof package is straight forward. First define your observational data in the established fits file format and then execute!

import pyoof
from pyoof import aperture, telgeometry

# Extracting observation data and important information
oofh_data = 'path/to/file.fits'  # fits file with special format
data_info, data_obs = pyoof.extract_data_pyoof(oofh_data)

# Effelsberg telescope definition
effelsberg = [
    telgeometry.block_effelsberg,  # Blockage distribution
    telgeometry.opd_effelsberg,    # OPD function
    50.,                           # Primary dish radius
    'effelsberg'                   # Telescope name
    ]

pyoof.fit_beam(
    data_info=data_info,                   # information
    data_obs=[beam_data, u_data, v_data],  # observed beam
    method='trf',                          # opt. algorithm 'trf', 'lm' or 'dogbox'
    order_max=5,                           # it will fit from 1 to order_max
    illum_func=aperture.illum_pedestal,    # or illum_gauss
    telescope=effelsberg,                  # telescope properties
    resolution=2 ** 8,                     # standard is 2 ** 8
    box_factor=5,                          # box_size = 5 * pr, pixel resolution
    )

For the impatient :hushed: , see the Jupyter notebook example, oof_holography.ipynb.

License

pyoof is licensed under a 3-clause BSD style license - see the LICENSE.rst file.

Contact

If you have any questions about the code or theory sections, do not hesitate and raise an issue. You can also send me an email directly:

  • tcassanelli _at_ gmail.com

Metadata

Release files for pyoof 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyoof 0.2.3
File Size Uploaded Provenance Actions
pyoof-0.2.3.tar.gz 56.6 MB Without provenance Details for pyoof-0.2.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyoof 0.2.3
File Interpreter ABI Platform Actions
pyoof-0.2.3-py3-none-any.whl Python 3 none any Details for pyoof-0.2.3-py3-none-any.whl

Total release size: 113.0 MB

Release files / pyoof-0.2.3.tar.gz

Download URL pyoof-0.2.3.tar.gz
Size 56.6 MB
Tags Source
SHA-256 checksum
How to use checksums
c11c106dd32f69bd0a44f4f731ea2e1a0f171cca4a39be315c59a1eb1f8b0eac
BLAKE2b-256 checksum
How to use checksums
ade5f2fd007e3eda252e16a5381e725f94312a05307bda82cf2ff0cc25a60176
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pyoof-0.2.3-py3-none-any.whl

Download URL pyoof-0.2.3-py3-none-any.whl
Size 56.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8d77c8314570f7612b6e607d8815145fdcccdbde8e1bec281a56711568260559
BLAKE2b-256 checksum
How to use checksums
1328f2509be1a2a6f9ca661a0f21f031eb633fea52a0c3caef0b8e8122d25d4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for pyoof 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page