Munipack's logo

Artificial Sky

Overview of an artificial sky phenomena.


The tool artificial creates artificial frames which looks similar as ones which has been acquired by a real telescope. The primary purpose of this tool is to test and verify processing algorithms of Munipack.

The artificial sky can be also considered as the powerful framework for education and testing purposes because provides modelling of various observational effects.

Brand Icon

All generated frames are marked by a brand icon. The icon is supposed as the very important element because the created frames can look very realistic for inexperienced peoples. In many situations, it can be very difficult to recognise, even by an objective method, between a real and an artificial frame. That why there is no way how to remove the icon without a source code modification.

The brand icon

FITS headers contains review of parameters used for generation which tags the right origin of any frame without doubts. Because frames are sometimes converted to other picture formats such as PNG or JPG, every picture has also visible watermark.

The Very First Simulation

As our very first generated frame, we'll select the open star cluster NGC 637 (see A Star Chart Tutorial). The artificial frame can be generated by the sequence of commands:

$ munipack cone -o ngc637.fits -r 0.1 -- 25.775 64.03
$ munipack artificial -c ngc637.fits --rcen 25.775 --dcen 64.03 --verbose

The result is saved as artificial.fits and displayed on figure below. Many parameters has been leaved on their default values as lists --verbose switch. The most important parameters are the telescope area 1m (cca 1.1m in diameter by default) and the exposure duration 1 second. The stars on the frame has been given by a catalogue (in this case UCAC4) so a real exposure will offer more deeper look.

Artificial frame of NGC 637

Size of the generated picture, field of view (or scale) and rotation can be adjusted. Results can be saved to a named file. The following example creates a mini picture with dimensions in golden ratio, which is rotated about 180° and saved to ngc637_mini.fits file.

$ munipack artificial -c ngc637.fits --rcen 25.775 --dcen 64.03 --verbose \
                      --width 168 --height 100 --fov 0.2 --angle 180 \
                      --mask ngc637_mini.fits
Miniature of NGC 637

Observation Planning

Artificial frames can be useful in preparing of a plan of observation. The proper choice of the exposure for an unknown object significantly influencing reliability and precision of results. The matter can be generalised also on an unknown telescope, actual observing conditions, detectors. The artificial sky tool can help to save precious observing time.

All the detector and telescope parameters can be set with --exptime, --diameter (--area), --qeff options. Their impact, using common values, in case of the field of blazar 0716+71 displays the figure. The blazar itself is at centre of the picture on pixel coordinates 256, 192.

$ munipack cone -r 0.3 -- 110.473 71.343
$ munipack artificial --qeff 0.02 --exptime 120 --area 0.3 \
                      -c cone.fits --rcen 110.473 --dcen 71.343 --fov 0.3 \
                      --width 512 --height 384 --col-mag Vmag
Artificial frame of 0716+71

Be informed the frames with different parameters can looks identical due auto-adjusting capabilities of Munipack's viewer. Observed frames taken at longer exposures will reveal more faint stars, which are not included in common catalogues, due to its limitations. To be sure, while playing with artificial sky, inspect values of single pixels inside stars, their counts are proportional to the parameters.

The quantum efficiency (--qeff) of a telescope includes products of all individual efficiencies in given spectral band of detector (CCD), filter, telescope (and possibly other optical elements down to optical path). They can be estimated from a calibrated observed frame by CTPH keyword as r (see). The frame should be take near zenith. Assuming of an extinction in the given filter on k (typical values are 0.05 for Johnson R and 0.3 for Johnson B filters), the efficiency is η = 1/r - k. The typical values η lies inside interval from 0.05 (bad) to 0.5 (very good).

Range checking The visual inspection of peak value of the blazar gives 4300 counts above background (peak at 5300, background one thousand). The value is pretty acceptable. The peak value is within expected dynamical range (65 thousands), if a 16-bit CCD detector is expected.

Result Precision More detailed analysis can be performed with help of the complete photometry calibration:

$ munipack find artificial.fits
$ munipack aphot artificial.fits
$ munipack phcal -c cone.fits --photsys-ref Johnson --area 0.3 \
                 -f V --col-mag Vmag --col-magerr e_Vmag artificial.fits

The result in artificial_cal.fits gives for magnitude of the blazar 14.23 ± 0.01 with good agreement with catalogue value 14.2 ± 0.4 (note use of parameter --col-mag which is important here). The error due to photon noise is relative high and longer exposure duration can be recommend. Moreover, the used quantum efficiency only 2% (!) is extremely low and an technical improvement in apparatus looks like a very good idea.

Atmospheric Effect Modelling

Light rays passing Earth's atmosphere are scattered, reflected and attenuated proportionally to the length its optical path. The modelled effects includes atmospheric extinction and seeing. The atmospheric refraction is excluded.

The effects are considered just if --atmosphere switch is presented. Only the extinction parameter (--extk) is available for adjusting (see manual page). The proper set up of observation station and time (--long, --lat, --date, --time ) should be specified.

We will prepare of a sequence of seven frames, each 1 s, separated by one hour interval and modelling BL Lac blazar field during its down somewhere in central Europe. The figure below shows selected resulting frames.

$ munipack cone -r 0.2 -- 330.68 42.27
$ munipack artificial --verbose --fov 0.3 -c cone.fits --rcen 330.68 --dcen 42.27 \
                      --mask 'art_?.fits' --lat 50 --long -15 --date 2016-08-29 \
                      --time 00:00:00.000 --count 7 --timestep 3600 --exptime 1 \
                      --atmosphere --extk 0.1 --width 315 --height 510
BL Lac field near zenith
BL Lac field 20° above horizon

The actual value of the radius of seeing core is determined from --hwhm option. The radius represents spreading of a star image by turbulent motions in Earth atmosphere. The turbulence is very unpredictable. The fact is known to observers at moments when "focusing is impossible".

Light Curves

The light curve pattern can be included in a table with twines: time, magnitude (detailed description by Times series document). The table is used to create a required light curve. Points located out of tabulated values are interpolated by smooth spline.

As the model data, I selected a light curve extracted from article New planet -- Kepler-21b -- discovered ( The weighted original data (the plus or star symbol in blue by the paper) are used but I changed significantly the deep of the occultation. Therefore only the shape of light curve is similar to original. Everything else is my personal choice (period,...).

The first step is preparation of the data to form (FITS file) required by the utility. The easy way is modification of Kepler-21b.lst file. The table is included near the end:

0 1.00714
0.0245776 1.00714
0.0506912 0.953571
0.0768049 1.03393

The data can be replaced any another set. The number of rows must be corresponds with NAXIS2 keyword. When the file is prepared create FITS table (note that FITS table can be created also any any other way):

$ munipack fits --restore Kepler-21b.lst

No catalogue is used here with contrast to previous examples of modelling. The background field stars are random in both positions and brightness. The picture looks artificially because stars are limited by 13 magnitude. The frame is not the actual field of Kepler 21b in any case!

Light curve related parameters starts with --lc- and defines equatorial coordinates --lc-ra, --lc-dec of a variable object (there exactly in the centre of frame), magnitude --lc-mag and the light elements --lc-jd0, --lc-per (the created sequence of frames covers the full period).

$ munipack artificial --verbose --mask 'art_??.fits' --fov 0.3 --rcen 150 --dcen 50 \
         --date 2017-07-14 --time 00:00:00 --count 48 --timestep 180 --exptime 60 \
  	 --lc-table Kepler-21b.fits --lc-mag 12 --lc-jd0 2457948.5 --lc-per 0.1 \
         --lc-ra 150 --lc-dec 50
Artificial frame of Kepler-21b.

The artificial frames can be processed by the same way how frames which has been taken on the real sky. The processing steps skips photometric corrections (like bias frames) and the astrometry calibration which is already included. There is no photometry catalogue, so I referenced all frames onto the first (by random choice) frame in sequence. There is the processing sequence:

$ munipack find art_??.fits
$ munipack aphot art_??.fits
$ munipack phcal -C 1 --photsys-ref Johnson -f V -O --mask '\!\1_man.\2' art_01.fits
$ ls art_??.fits | xargs -L 1 munipack phcal --photsys-ref Johnson -f V -r art_01_man.fits
$ munipack timeseries -c MAG,MAGERR --stdout 150,50 art_*_cal.fits >
Artificial light curve and model of Kepler-21b.

The graph shows small visible offset between model and data curve. The slight difference due to some improper normalisation in model data is a potential trap.

Tip. It is very instructive to play with shorter or longer exposures to discover a noise contribution.

See Also

Manuals: Artificial frames. Artificial Sky … (seminary talk)