Text Size:
Smaller Text Normal Text Larger Text


Follow us on Twitter

As you know, the Quality Control software parts have been (or are in the process to be) migrated from IDL to Python. In doing that, we've splitted each task in functionally independent subtasks, which make them easy to be reused for other purposes.

What is available? And where?

We've created a Python package to organize the objects and functions that can be interesting for general use. A package is just a way to organize software in a hierarchical way. From Python's programmer point of view, you don't need special syntax to access them: they behave exactly as normal modules. As the software group is the one creating and maintaining them, you shouldn't worry (a lot) about it.

The package we've created is called, not surprisingly, NOT, and it's the access point for a number of modules providing you some functionality. You can find here the official reference documentation (under the IntraNOT). Please, be aware that it is not a "User's Guide" to the software, but just a reference, but we try our best to provide information enough and even small examples where it makes sense.

At the moment, the package is only available in the designed postprocessing computer (elena), but it may be installed somewhere else (eg. instrument computers) if a case is made for it...

As for what can you find in there, you can read it in the reference, but there are modules named after each instrument (which contain the QC functionality itself), as well as other ones that may be useful for you, but we're only discussing the QC parts in here. Of course, as this package is growing up out of the old QC control, you'll probably find (at the beginning) that everything in there is interesting for you ;)

How to use the software? And the reference?

As you were told a few paragraphs before, the functionality has been splitted in different functions/methods/classes. Mainly, we've divided the tasks into: calculations, printing results, and database updating.

The database updating is still there, but deprecated and should not be used. Printing the results has been modelled upon the old scripts so that the new ones keep the look and feel, but you may have other idea on how to print them (and if you decided to use the provided ones, they're documented with small examples in the reference)

So, let's check the QC functions and related utils. First, at the moment we've made available only the betalight tests for ALFOSC, StanCam and MOSCA. Please, open up a browser window/tab with the reference manual so that you can check it along with this page.

  • At the main page of the reference, you can see on the top left corner a Table of Contents that will remain there all the time. Just below it there's an Everything list that will change to a module's content the moment you dive into its info.
  • Both the Table of Contents and Everything show the hierarchy of the package contents, so that you know how access things in there. The module pages show things relative to the module itself.
  • Interesting for the Python geeks among you, is that you can browse the full code for those modules. Just follow the source code links you'll find over the documentation

So, let's say you want to analize some ALFOSC betalight images. To start with, the module we're interesed in is NOT.alfosc, and inside it, the function we're looking for is betalight. We could import it, for example, in this way:

>>> from NOT.alfosc import betalight

Then you just provide the function with the name of the intended

>>> res, stats = betalight(["ALqa130005.fits", "ALqa130006.fits", "ALqa130007.fits", "ALqa130008.fits"])
>>> res.count, res.counterr
(13056.2, 8.22285)

NB: names and results just made up...

In the NOT.utils package you may find something useful, but at the moment the only evident ones are stdev, which provides a σ-clipped standard deviation function, and image_range, which returns a list of image names starting from the one you provide, that can be used for example to feed the betalight functions, like in this example:

>>> from NOT.alfosc import betalight
>>> from NOT.utils import image_range
>>> image_range("ALqa130005.fits", 3)
["ALqa130005.fits", "ALqa130006.fits", "ALqa130007.fits"]
>>> res, stat = betalight(image_range("ALqa130005.fits", 4))

I miss XXXXX functionality!!

Please... approach the software group if you think there's something else you could use in there (and that may be reused later). You can discuss it with us and, if it's found to be useful, we'll incorporate to the general package (we'd be grateful if you have developed it before asking for it to be included)

Back to top Last modified: 16-Feb-2009