Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timstaley/pyds9_ex
Extensions to the pyds9 package, providing easy scripting of the ds9 fits file viewer from python.
https://github.com/timstaley/pyds9_ex
Last synced: about 11 hours ago
JSON representation
Extensions to the pyds9 package, providing easy scripting of the ds9 fits file viewer from python.
- Host: GitHub
- URL: https://github.com/timstaley/pyds9_ex
- Owner: timstaley
- Created: 2012-03-14T14:58:18.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2012-03-14T19:01:09.000Z (over 12 years ago)
- Last Synced: 2023-03-22T11:11:30.285Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 93.8 KB
- Stars: 5
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
pyds9_ex
======================A lightweight wrapper class and associated functions,
adding extended functionality and ease of use to the pyds9 package.---------------------------------------------------------------------
The main aims are:
- To provide python bindings for common actions, in order to avoid frequent use of error prone ``ds9.set(some_command_string)``, etc.
- To make complex interactions with multiple frames more streamlined.Prerequisites: ds9, xpa, pyds9
Note that this mini-project is very much in the alpha stage - essentially I threw it together during an afternoon, and I'm currently adding functionality as and when I need it. As such, there is not yet any packaging or testing, let alone suggestion of reliability.
*(Note a quick and dirty method of installation is to symlink the ds9_ex folder from ~/.local/python2.7/site-packages )*I've decided to publish the code anyway as
- It might attract the attention of collaborators / perhaps this sort of functionality could be integrated into the original pyds9 package.
- It might save somebody some time by functioning as a template.
- I'm trying to move towards a practice of 'publish everything when possible' , and this seemed like a good place to start.I'm also quietly pleased with the ``@per_frame`` function decorator.
This takes a function and binds in an additional wrapped version with the prefix ``all_``
that will apply the action to all frames,
so for example implementing a zoom function:``foo.zoom_to(4) # zoom active frame to 4x``
trivially provides the same functionality for all frames:
``foo.all_zoom_to(4) # zoom all frames to 4x``
Applying the same action to all frames is particularly useful when say, panning around filtered and original versions of an image, in tandem.
Comments and collaborators very welcome!