{ "info": { "author": "Radio Astronomy Software Group", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Astronomy" ], "description": "# pyuvsim\n\n[![Build Status](https://travis-ci.org/RadioAstronomySoftwareGroup/pyuvsim.svg?branch=master)](https://travis-ci.org/RadioAstronomySoftwareGroup/pyuvsim)\n[![Coverage Status](https://coveralls.io/repos/github/RadioAstronomySoftwareGroup/pyuvsim/badge.svg?branch=master)](https://coveralls.io/github/RadioAstronomySoftwareGroup/pyuvsim?branch=master)\n\npyuvsim is a comprehensive simulation package for radio interferometers in python.\n\nA number of analysis tools are available to simulate the output of a radio\ninterferometer (CASA, OSKAR, FHD, PRISim, et al), however each makes numerical\napproximations to enable speed ups. pyuvsim's goal is to provide a simulated\ninstrument output which emphasizes accuracy and extensibility, and can represent the most\ngeneral simulator design.\n\nA comparison to other simulators may be found at [ReadTheDocs](https://pyuvsim.readthedocs.io/en/latest/comparison.html).\n\n# Motivation and Approach\npyuvsim's two primary goals are interferometer simulation accuracy at the level of precision necessary for 21cm cosmology science, and maximum flexibility in use cases. Key elements of this approach include:\n\n1. High level of test coverage including accuracy (design goal is 97%).\n2. Include analytic tests in unittests.\n3. Comparison with external simulations.\n4. Design for scalability across many cpus.\n5. Fully-polarized instrument response, floating-point source position accuracy, full-sky field of view, and exact antenna positions.\n6. Support for varied beam models across the array.\n7. Defining a clear, user-friendly standard for simulation design.\n\n# Installation\n* For simple installation, the latest stable release is available via pip (`pip install pyuvsim`)\n* To install the development version: Clone the repository using `git clone https://github.com/RadioAstronomySoftwareGroup/pyuvsim`, navigate into the pyuvsim directory and run\n```\npip install -r requirements.txt\npip install pyuvdata\npip install .\n```\n* `pyuvsim` is intended to run on clusters running the linux operating system.\n\n\n**Note**\nThe `mpi4py` module is installed as a wrapper around an existing installation of MPI. The easiest way to install it is to use anaconda, which will install a compatible version of MPI and configure mpi4py to use it:\n```\nconda install -c conda-forge mpi4py\n```\n\n\n## Dependencies\n* `numpy`, `astropy`, `scipy`, `mpi4py`, `pyyaml`, `six`, `pyuvdata`\n* optionally `line_profiler` if you want to do profiling (support for profiling is built in)\n* optionally, `h5py` is needed to support writing to the new `uvh5` file format.\n\n# Inputs\n\nA simulation requires sets of times, frequencies, source positions and brightnesses, antenna positions, and direction-dependent primary beam responses. pyuvsim specifies times, frequencies, and array configuration via a UVData object (from the pyuvdata package), source positions and brightnesses via Source objects, and primary beams either through UVBeam or AnalyticBeam objects.\n\n* All sources are treated as point sources, with flux specified in Stokes parameters and position in right ascension / declination in the International Celestial Reference Frame (equivalently, in J2000 epoch).\n* Primary beams are specified as full electric field components, and are interpolated in angle and frequency. This allows for an exact Jones matrix to be constructed for each desired source position.\n* Multiple beam models may be used throughout the array, allowing for more complex instrument responses to be modeled.\n\nThese input objects may be made from a data file or from a set of `yaml` configuration files. See [Running a simulation](https://pyuvsim.readthedocs.io/en/latest/usage.html).\n\n# Outputs\n\nData from a simulation run are written out to a file in any format accessible with `pyuvdata`. This includes:\n\n* uvfits\n* MIRIAD\n* uvh5\n\nWhen read into a UVData object, the `history` string will contain information on the pyuvsim and pyuvdata versions used for that run (including the latest git hash, if available), and details on the catalog used.\n\n# Quick start guide\nExample `obsparam` configuration files may be found in the `reference_simulations` directory.\n\n1. Install from github or pip.\n2. Run off of a parameter file with 20 MPI ranks:\n```\nmpirun -n 20 run_param_pyuvsim.py reference_simulations/obsparam_1.1.yaml\n```\n\n# Documentation\nDocumentation on how to run simulations and developer API documentation is hosted on [ReadTheDocs](https://pyuvsim.readthedocs.io).\n\n# Testing\n\n`pyuvsim` uses the `nose` package for unit testing. If you've cloned the source into a directory `pyuvsim/`, you may verify it as follows:\n\n1. Install `nose` from anaconda or pip.\n2. Run the nosetests from `pyuvsim/`\n```\nnosetests pyuvsim/tests/\n```\n\nYou will need to have all dependencies installed.\n\n# Where to find Support\n\nPlease feel free to submit new issues to the [issue log](https://github.com/RadioAstronomySoftwareGroup/pyuvsim/issues) to request new features, document new bugs, or ask questions.\n\n# How to contribute\nContributions to this package to add new features or address any of the\nissues in the [issue log](https://github.com/RadioAstronomySoftwareGroup/pyuvsim/issues) are very welcome.\nPlease submit improvements as pull requests against the repo after verifying that\nthe existing tests pass and any new code is well covered by unit tests.\n\nBug reports or feature requests are also very welcome, please add them to the\nissue log after verifying that the issue does not already exist.\nComments on existing issues are also welcome.\n\n# Versioning Approach\nWe use a `generation.major.minor` format.\n\n* Generation - Release combining multiple new physical effects and or major computational improvements.\nTesting: Backed by unittests, internal model validation, and significant external comparison.\n* Major - Adds new physical effect or major computational improvement. Small number of improvements with each release.\nTesting: Backed by unittests, internal model validation and limited external comparison.\n* Minor - Bug fixes and small improvements not expected to change physical model.\nTesting: Backed by unittests\n\n## Some helpful definitions\n* __Physical effects__: things like polarization effects, noise, ionospheric modeling, or nonterrestrial observing positions.\n* __Major computational improvement__: Support for new catalog types (e.g, diffuse maps), new analysis tools, changes to parallelization scheme\n* __Small improvements__: Better documentation or example code, outer framework redesign.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/RadioAstronomySoftwareGroup/pyuvsim", "keywords": "radio astronomy interferometry", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pyuvsim", "package_url": "https://pypi.org/project/pyuvsim/", "platform": "", "project_url": "https://pypi.org/project/pyuvsim/", "project_urls": { "Homepage": "https://github.com/RadioAstronomySoftwareGroup/pyuvsim" }, "release_url": "https://pypi.org/project/pyuvsim/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "A comprehensive simulation package for radio interferometers in python", "version": "1.1.0" }, "last_serial": 5458438, "releases": { "0.2.2": [ { "comment_text": "", "digests": { "md5": "1b066287d70858ea22376fb0e8745ea0", "sha256": "d0d160fe57854e2aa1cbd9e7ecf46de17c56e92a504bbcb6ab12493ec41faee7" }, "downloads": -1, "filename": "pyuvsim-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1b066287d70858ea22376fb0e8745ea0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7965675, "upload_time": "2019-02-15T18:31:30", "url": "https://files.pythonhosted.org/packages/bc/36/fb5f2f72265bd77f47fdfb0ec15b68d8c2f32083990acdb8372195042f66/pyuvsim-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6173ee01a61417abf2af9da989e80b42", "sha256": "e32e0a765e4c60b6418bb8e97a0f85bb3abb3a7a03932d67ce35922130cbbfbf" }, "downloads": -1, "filename": "pyuvsim-0.2.2.tar.gz", "has_sig": false, "md5_digest": "6173ee01a61417abf2af9da989e80b42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9229016, "upload_time": "2019-02-15T18:31:50", "url": "https://files.pythonhosted.org/packages/15/2e/4110701979170dc5cc628d13231dd2ea04128e6c733ec1f6d84fd01cef86/pyuvsim-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "34690c29eb0a02685fe7d058fab45f2b", "sha256": "785b7805c35d2c69196b01a9685f0987eea67e8dfdf537891ec99a40205a2f73" }, "downloads": -1, "filename": "pyuvsim-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "34690c29eb0a02685fe7d058fab45f2b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7965768, "upload_time": "2019-02-18T20:53:32", "url": "https://files.pythonhosted.org/packages/5a/3d/9cb823209b8ab47de2a1a0dd61dca428b823cef5e1098a9b1c58d3af50d9/pyuvsim-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "388723ec86c70ef7358f295b0d7c8c4a", "sha256": "85d54e00136d05e678a5c84cde5230edc839d0dfe3069202903eb45bd7ff8d07" }, "downloads": -1, "filename": "pyuvsim-0.2.3.tar.gz", "has_sig": false, "md5_digest": "388723ec86c70ef7358f295b0d7c8c4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8972437, "upload_time": "2019-02-18T20:53:47", "url": "https://files.pythonhosted.org/packages/96/80/692c0b3ae9340cb154882a496689baead0e0cd92515304c061763f76040a/pyuvsim-0.2.3.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "abc84816c0e5f6e4da0adf202d366236", "sha256": "2c297cec6b8aa094b96f86fcad7ffe7ea99f5984b6b46fbe00e2eab450a36edf" }, "downloads": -1, "filename": "pyuvsim-1.0.0.tar.gz", "has_sig": false, "md5_digest": "abc84816c0e5f6e4da0adf202d366236", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9019296, "upload_time": "2019-05-16T04:19:26", "url": "https://files.pythonhosted.org/packages/7a/f9/ddb2b0e2694b91c658e048e93e792b5203b3bddb0bbce8296186f56618f9/pyuvsim-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "93ca7607e33880f720fb38f58688e94e", "sha256": "6350af2b311d06f38dbc5109cc44d5c3ec8d023501f22b78b7c87313210770da" }, "downloads": -1, "filename": "pyuvsim-1.1.0.tar.gz", "has_sig": false, "md5_digest": "93ca7607e33880f720fb38f58688e94e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9630442, "upload_time": "2019-06-27T19:09:04", "url": "https://files.pythonhosted.org/packages/ae/cc/f706f812b4dcc0bcb4f25f62ca2668342e85d29e35fa41d0c91ecbdb58d4/pyuvsim-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "93ca7607e33880f720fb38f58688e94e", "sha256": "6350af2b311d06f38dbc5109cc44d5c3ec8d023501f22b78b7c87313210770da" }, "downloads": -1, "filename": "pyuvsim-1.1.0.tar.gz", "has_sig": false, "md5_digest": "93ca7607e33880f720fb38f58688e94e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9630442, "upload_time": "2019-06-27T19:09:04", "url": "https://files.pythonhosted.org/packages/ae/cc/f706f812b4dcc0bcb4f25f62ca2668342e85d29e35fa41d0c91ecbdb58d4/pyuvsim-1.1.0.tar.gz" } ] }