**************** Gunagala **************** Introduction ============ Gungala is a Python package for modelling the performance of astronomical instruments, including SNR/ETC/sensitivity limit calculations and generation of simulated data. This package is not intended for rigorous, end-to-end simulations of telescope and instrument systems. Instead gunagala implements parameterised models of instrument components in order to enable rapid, efficient evaluation of instrument performance. Anticipated uses include exposure time calculators, selection of commercial off the shelf components and exploration of the design parameter space for custom components. Gunagala includes a library of performance parameters for a number of existing commercial off the shelf instrument components (e.g. CCD cameras, optical filters, telescopes and camera lenses) and the user can easily add new/custom components either through YAML based config files or programmatically in Python. Gunagala is named as a gesture of respect to the traditional custodians of the land on which Siding Spring Observatory sits, the Kamilaroi people of northern New South Wales. Gunagala is 'sky' in the Kamilaroi/Gamilaraay language (ref: `www.dnathan.com `_). Aboriginal Australians have studied the night skies above Australia for at least 50000 years. To learn more about Aboriginal astronomy please visit http://www.aboriginalastronomy.com.au/. Installation ============ Installing with pip ------------------- .. highlight:: console To install using the Python package manager `pip` use the following command:: $ pip install git+https://github.com/AstroHuntsman/gunagala.git Alternatively to install in 'editable mode' use:: $ pip install -e git+https://github.com/AstroHuntsman/gunagala.git Depending on the configuration of your system you may want to use `pip`'s ``--user`` or ``--root`` options to change the install location. See the pip documentation for details. `Pip` will automatically install the Python packages required by Gunagala (`numpy`, `scipy`, `astropy`, `PyYAML`, `matplotlib` and their dependencies) if they are not already installed. If you want to install specific versions of the required packages from other sources do this before installing Gunagala. Installing from source ---------------------- The project source is in a GitHub repository at https://github.com/AstroHuntsman/gunagala. To install using git on the command line:: $ cd ~/Build $ git clone https://github.com/AstroHuntsman/gunagala.git $ cd gunagala $ python setup.py install Alternatively if you expect to make changes to the Gunagala code install with the ``develop`` command instead:: $ python setup.py develop Setuptools will automatically install the Python packages required by Gunagala (`numpy`, `scipy`, `astropy`, `PyYAML`, `matplotlib` and their dependencies) if they are not already installed. If you want to install specific versions of the required packages from other sources do this before installing Gunagala. Running the test suite ---------------------- After installing Gunagala it is recommended that you run the suite of units tests. This can be done at the command line using:: $ python setup.py test .. highlight:: python3 or from within a Python interpreter with:: >> import gunagala >> gunagala.test() Examples ======== The Gunagala package includes several examples in the form of `Jupyter `_ notebooks. These can be found in the `gungala/examples` directory after installing Gunagala, or they can be viewed directly in the GitHub repository by going to https://github.com/AstroHuntsman/gunagala/tree/master/examples and clicking on the ``.ipynb`` files. Contributing ============ Please submit bug reports or feature requests in the form of GitHub Issues at https://github.com/AstroHuntsman/gunagala/issues. For code contributions please fork and clone the repository, create a feature branch and submit a Pull Request. We recommend the `astropy Developer Documentation `_ for a description of suitable workflows. Changelog ========= .. include:: ../CHANGES.rst Reference/API ============= .. automodapi:: gunagala :no-main-docstr: .. automodapi:: gunagala.imager :skip: ensure_unit :skip: load_config :skip: Filter :skip: Optic :skip: Camera :skip: PSF :skip: Sky :skip: Simple :skip: Table :skip: MoffatPSF :skip: ZodiacalLight :skip: WCS :skip: interp1d :no-inheritance-diagram: .. automodapi:: gunagala.optic :skip: Table :skip: ensure_unit :skip: get_table_data :skip: array_sequence_equal :no-inheritance-diagram: .. automodapi:: gunagala.optical_filter :skip: Table :skip: interp1d :skip: brentq :skip: ensure_unit :skip: get_table_data :skip: minimize_scalar :skip: eval_chebyt :no-inheritance-diagram: .. automodapi:: gunagala.camera :skip: Table :skip: ensure_unit :no-inheritance-diagram: .. automodapi:: gunagala.psf :skip: discretize_model :skip: Fittable2DModel :skip: Moffat2D .. automodapi:: gunagala.sky :skip: interp1d :skip: RectSphereBivariateSpline :skip: SmoothBivariateSpline :skip: SkyCoord :skip: GeocentricTrueEcliptic :skip: get_sun :skip: Angle :skip: Time :skip: ensure_unit .. automodapi:: gunagala.utils :skip: get_pkg_data_filename