- All samples in a box are given the same variance value, thus introducing the potential for steps in the weights and corresponding artifacts in the map.
- The noise in each box is found by taking the FFT of the data and finding the average power in the 2 to 10 Hz band. Using an FFT is problematic on short time streams, as any missing values (such as caused by steps, jumps, common-mode flagging, etc) have a proportionally larger effect, causing the FFT to be less representative of the data. A requirement that the time stream should have a majority of unflagged values in order to be usable means that a lot of data is often rejected because a reliable FFT cannot be obtained.
2013-10-22
How to loose fewer samples with NOI.BOX_SIZE
2013-10-08
Weighting different observations in makemake and skyloop
The weights can be specified in two ways:
- The CHUNKWEIGHT configuration parameter can be set to an arbitrary algebraic expression in which the variable names are the names of FITS keywords. The keywords must exist in the input data and have numerical values. The expression should be enclosed in double quotes. As an example, you could include this line in your configuration file:
chunkweight = "AMSTART * WVMTAUST" - A comma-separated list of explicit numerical weights can be supplied, enclosed in parentheses. If insufficient values are given in the list, the last value is replicated as often as is necessary.
chunkweight = (1.0,2.0,3.0)
The values of the FITS keywords are read from the observation header and substituted into the expression to get the weight to use for the observation.
Holes in heterodyne maps
This can create issues if you wish to integrate flux or simply improve the cosmetic appearance.
One approach is to smooth the data but this degrades all the spectra. Instead use KAPPA::FILLBAD. This replaces just the bad values with a smooth function derived from neighbouring values, derived by iterating to a solution of Laplace's equation.
Just using FILLBAD's default values will duly fill in the holes. You might prefer not to smooth in the spectral axis by setting Parameter SIZE to [s,s,0] where s is the initial scale length in pixels. The zero means do not smooth along the third axis. The scale length should have a value about half the size of the largest region of bad data to be replaced. Since the largest bad regions apart from the cube peripheries are two pixels across, a command like this
fillbad in=holey out=filled size="[1,1,0]"is appropriate. The graphic below shows the same region as before, but with the holes filled in.
FILLBAD does what it says on the tin.
There will be some smoothing, but it's not obvious. Below is a KAPPA::CLINPLOT graphic for a part of the filled cube. Each spectrum is a pixel in the image above. Can you identify the three spectra which were previously bad?
2013-07-18
Inclusion of CSO Tau Fits for Determining FCFs
In the latest version of starlink (which you can get by rsyncing from /stardev at the JAC) makemap will now first check to see if the date of the observation is one of the (somewhat sporadic) dates when the WVM was unstable. This occurs as long as the ext.tausrc parameter is set to "auto," which it is by default. If the date is one of the affected dates, makemap will look for an available fit to the CSO data in the file specified by the parameter ext.csofit, which is set up by default to refer to the collection of CSO fits produced at the JAC. If makemap cannot find a fit for an observation in the specified path it will print a warning that no fit or WVM data is available and refuse to reduce the observation, though this shouldn't ever happen in normal operation.
If you have observations taken between January 19 and May 14 of this year, using the latest version of starlink rsynced from /stardev at the JAC will help ensure that you get the best extinction data available.
The graph below shows a comparison between the FCFs derived from WVM data and those derived using the new CSO tau fits over the period of January-May 2013. The blue diamonds represent FCFs from the WVM, and the tan circles are FCFs from the CSO tau fits.
2013-07-15
Removing linear striations in maps
Well, in at least some cases, these striations seem to be due to bad bolometers that have a very different common-mode signal to the others. The map-maker has an algorithm that looks for and rejects such bolometers, but by default the rejection criteria are fairly weak, so few samples are rejected. Changing the com.corr_abstol value from its default of 0.2 to 0.8 produces the following map:
The striations are much less noticeable (both these images use the same grey scale). The down-side to this is that since more bolometer samples are rejected, there are fewer samples to form the map. For the first map, only 1.6 % of the available samples were rejected due to common-mode mis-match, leaving a total of 65.4 % available for the map. For the second map, 11.1 % were rejected due to common-mode mis-match, leaving 55.9 % available for the map.
Going even further, the following map was created with com.corr_abstol set to 0.97 and com.gain_fgood set to 0.5:
Here, 38.5% of samples were rejected due to common-mode mismatch, leaving only 28.6 % available for the map. You can see that the striations have been almost completely removed, but at the expense of higher noise.
2013-07-09
Automatic FLT masking
But a new parameter called ast.skip can get round this. This new parameter defaults to zero, but if set to a positive integer it gives the number of initial iterations for which the AST model (i.e. astronomical signal) is to be skipped. For example, if ast.skip is set to 5 then the first five iterations will not include an AST model. The map will still be created at the end of each iteration, but it willnot be used to find the expected astronomical signal, and the residuals will be left unchanged. This means that all these first five iterations will start from essentially the same time series data - the initial cleaned raw data. However, what this means is that we can now create an FLT mask automatically from the SNR values in the map, and refine that mask five times. So when we get to the sixth iteration, we have a usable FLT mask and we have not introduced any ringing into the residuals.
It's a bit like doing a separate run of five iterations to determine the FLT mask before starting again to do the main run.
In summary, to use automatic FLT masking, add the following to your config:
ast.skip=5
flt.zero_snr=5
flt.zero_snrlo=3
2013-07-04
Changes to way makemap handles control-C interupts
- abort immediately with an error status
- close the application returning the current output map
- do one more iteration to finialise the map and then close
Monitoring itermaps whilst makemap is running
But now you can get round this by using the new ITERMAPS parameter (an ADAM parameter, not a config parameter) to specify that the itermaps should be placed somewhere else. If you do this, each itermap NDF will be closed as soon as it has been written, allowing you to examine it immediately.
So in one window, you start a big makemap job running (with "itermaps=1" in the config):
% makemap in=^infiles out=out config=^conf itermaps=fred
and then in another window you can examine the itermaps as soon as they are created:
% display fred.ch00i003
If you want a list of all the available itermaps, do
% ndfecho fred
(this is a kappa command).
Re-starting makemap after an interupt or crash
- You must include "itermap=1" or "itermap=2" in yourt config.
- You must assign a value to the "ITERMAPS" ADAM parameter when running makemap. This new parameter specifies the file in which the itermaps are to be placed. Previously, there was no choice about where the itermaps went - they went into the SMURF extension of the main output NDF. Now, you can specify an alternative place using ITERMAPS - note, this is an ADAM parameter and so goes on the makemap command line, NOT a config parameter. The benefit of specifying an alternative location for itermaps is that, unlike the main output NDF, the specified file will be closed properly after writing each itermap. This means the itermaps will be usable even if makemap crashes, so long as you are not really unlucky and the crash occurs whilst it is actually writing an itermap.
- Add "initialsky=xyz" to your config, replacing "xyz" by one of the ADAM parameter names - "REF", "MASK1" or "MASK2".
- On the command line, set the chosen ADAM parameter to the path of the last itermap created by the previous run of makemap.
- In the config, add "noi.calcfirst=1"
2013-05-15
Great results from Skyloop
2013-05-03
Makemap now gives slightly different numbers
2013-04-22
Displaying images with the same scaling
% gdclear
% picdef mode=array xpic=3 ypic=1 prefix=pic
% display map1 mode=per percentiles=\[2,98\]
% picsel pic2
% display map2 mode=cur
% picsel pic3
% display map3 mode=cur
2013-04-10
Getting hard-copy graphics from Starlink apps
% kappa % gdnames The following graphics devices are available. The first column holds the GNS names, and the second the equivalent PGPLOT names (in parentheses). Either form can be used... png (/PNG) Portable Network Graphics file ... ... aps_p (/AVPS) Accumulating EPS, monochrome, portrait aps_l (/APS) Accumulating EPS, monochrome, landscape apscol_p (/AVCPS) Accumulating EPS, color, portrait apscol_l (/ACPS) Accumulating EPS, color, landscape ... ... |
These new "accumulating" devices produce a single Encapsulated PostScript file (pgplot.ps by default) by accumulating the PostScript output automatically from subsequent Starlink graphics commands - no need for you to merge them all together yourself into one file. For example:
% gdset /acps % okular pgplot.ps & % gdclear % picdef mode=array xpic=2 ypic=1 prefix=pic nooutline % display $KAPPA_DIR/m31 \ style="'colour=black,width=2,colour(ticks,border)=green'" \ mode=perc percentiles=\[2,98\] % contour $KAPPA_DIR/m31 style="'colour=red'" noclear mode=free \ heights=\[9000,11000,13000\] % picsel pic2 % linplot $KAPPA_DIR/m31'(,169)' \ style="'colour=black,width=2,colour(curve)=red'" % linplot $KAPPA_DIR/m31'(,180)' style="'+colour=blue'" noclear |
produces a single PostScript file (pgplot.ps) containing the following two pictures:
To use these new features, you will need to rsync /stardev from Hilo.
2013-04-09
Fixing instabilities in the WVM
Tau estimates during this time have been taken from the CSO's WVM. The CSO values are used by the map maker automatically when reducing SCUBA-2 data. If you have any concerns or questions regarding data collected during this time please contact your Friend of Project. Your Friend of Project can be identified using the following link:
http://www.jach.hawaii.edu/JCMT/allocations/
2013-03-27
New OMP features for projects.
Tau graph
The first thing you will notice is a new graph of tau over the course of the night. Previously, the pages had such a plot that was generated each time the page was loaded. This took a while, and the plot had automatically generated limits on the y-axis which made comparing graphs between two night effectively impossible.
The new graph is made with consistent x- and y-limits that allows for easy comparison between nights. The various weather grades are also delineated, and the value of tau from the CSO WVM is plotted as well.
The new plot of tau vs. time. Click an any picture for a larger view. |
Pie chart
The pie chart of time spent in each grade. |
ACSIS standards table
For nights on which data was taken using ACSIS, there will be an HTML table in text form like the example below with some information relating to the ACSIS standards observed.
Obs # | Time | Integ. Int. | Peak Int. |
---|---|---|---|
16 | 19:36:32 | 251.33 | 8.82 |
19 | 19:50:31 | 4775.56 | 6.88 |
27 | 20:59:30 | 4157.76 | 5.96 |
36 | 22:22:36 | 3520.79 | 5.08 |
SCUBA-2 calibrations table
Similarly, for nights where SCUBA-2 was used there will be an HTML table like the example below listing the FCFs for each observation of a calibration object.
20120822 | FCFasec | FCFpeak | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Obs # | Time (UT) | Source | 850µm | err | 450µm | err | 850µm | err | 450µm | err |
8 | 05:41:27 | CRL2688 | 2.41 | 0.01 | 4.64 | 0.03 | 572.2 | 1.5 | 542.9 | 5.7 |
37 | 10:24:23 | CRL2688 | 2.30 | 0.01 | 4.66 | 0.02 | 513.5 | 1.2 | 466.0 | 3.7 |
68 | 17:26:48 | CRL618 | 2.23 | 0.01 | 4.28 | 0.04 | 487.8 | 1.4 | 436.8 | 4.8 |
Along with the table on SCUBA-2 nights there will three additional graphs, which will be detailed below. Each of these graphs has two sub-plots, the top one being the 450 micron data and the bottom one being the 850 micron.
NEPs vs observation number graph
This graph shows the min, max, and mean for each of the eight subarrays that make up SCUBA-2, plotted by observation number. The mean is the colored line, and the shaded areas are the filled-in areas between the min and max. By following the lines you can tell which arrays changed significantly, and by watching the shaded areas you can get a feel for the spread in the NEPs. The vertical scale is fixed, and is the same as the scale for the following plot.
NEPs vs time graph
This graph, like the previous one, shows the NEPs, but plots them against time rather than observation number. Each of the eight subarrays is present once again (with the same colors as in the preceding plot). The time (in UTC) is marked along the bottom of the plot, and the observations are marked by number along the top, with vertical lines that descend to help mark when each particular observation began.
NEFDs vs time graph
The final plot is a plot of the NEFDs vs. time. The number of points depends on the night, this particular night only had a few. Like the two previous plots, the vertical axis is fixed to make comparisons between nights easier.
Hopefully these new features will prove useful to users of the OMP, and additional updates or improvements may be forthcoming in the future. Feedback on the new features is welcome.
2013-03-19
A new feature in CONFIGMELD
% configmeld ^/star/share/smurf/dimmconfig_bright_extended.lis param=flagslow
WAVEBAND - The waveband to display - 450 or 850 /850/ >
Showing 850 um values
flagslow = 30
2013-03-14
Straight lines in ZERO_SNRLO masks
2013-03-07
Getting Pipelines and Archives info by email
Checking SCUBA-2 calibrator data
A new PICARD recipe has been added called SCUBA2_CHECK_CAL
which can be used to assess the quality of the calibration by calculating flux conversion factors (FCFs) and estimating the beam size to compare with standard values.
It can be run on any processed observations of standard sources (except, obviously, focus data). The input files must be uncalibrated, either the output from running makemap
by hand or from the pipeline and then processed with the PICARD recipe UNCALIBRATE_SCUBA2_DATA
.
Run it as any other PICARD recipe:
% picard -log sf -recpars myparams.ini SCUBA2_CHECK_CAL calfiles*.sdf
The recipe trims the image, optionally removing a background before it fits the source to estimate the beam.
The next step is calculating the FCFs which are reported to the screen. The map is then calibrated using either a standard FCF or one of those just calculated (controlled by a recipe parameter). The noise in the map is calculated from this calibrated image.
The recipe writes a log file called log.checkcal
which contains various parameters. The values of interest include the total flux and uncertainty derived from the uncalibrated (input) map, the noise in the calibrated version of that map, the FCFs and associated uncertainties and the beam FWHM. In the future there will also be an estimate of the error beam. The log file can be read into Topcat so values can be plotted as a function of time, elevation or any other parameter (if there are enough of them).
The total flux is measured using aperture photometry with an aperture radius of 30 arcsec. The aperture size may be adjusted using a recipe parameter, but be aware that comparison with the standard ARCSEC FCF will require correcting for the different aperture. See the SCUBA-2 calibration paper for further details.
By default the recipe can only estimate FCFs from known calibrators. However, it also be used to estimate the FCF from non-standard sources if the flux is known to the user. Recipe parameters exist to allow this to be specified (on a per-source basis if desired). Note that the sources should still be unresolved, point sources.
The FCF calculations can be compared with the standard values (given in the calibration paper) to determine whether or not there may be particular issues with the calibration on a given night. The BEAM FCF is more sensitive to focus than the ARCSEC value, so if the former is out of spec, while the latter is not, it could indicate that the telescope was not as well focussed as it could have been. If both are far out of spec (indicated by red text in the recipe output) then it may suggest that a non-standard FCF is in order. It is also important to look at the trend in the FCFs over the night, and not just a single value.
The main recipe parameters of interest are:
- APERTURE_RADIUS - radius of photometry aperture in arcsec. Default is 30.
- USEFCF - a flag to denote whether the derived FCF should be used to calibrate the data. Default is 0 (use the standard FCF).
- FLUX_850 - total flux of a point source at 850 um. The corresponding 450 um parameter is FLUX_450. Fluxes may be specified for multiple sources by adding the source name (upper case with spaces removed) to the parameter - e.g., FLUX_850.MYSOURCE1, FLUX_850.MYSOURCE2 etc.
- REMOVE_BACKGROUND - a flag to denote whether or not a background should be removed. Default is 0 (do not remove a background). If true, then there are other parameters available to control the background fitting and removal process.
The full list of recipe parameters is described in SUN/265 and will be available in the upcoming Starlink release.
2013-03-06
Comparing MAKEMAP configurations
% configmeld map1.sdf map2.sdf
may produce a display similar to the one below...
Instead of reading the configurations to be displayed from the history of an NDF, either (or both) configuration may instead be specified "as normal" - that is, as you would do when running makemap, so if you have a set of configuration parameter values in text file myconfig.lis, you could do something like:
% configmeld ^myconfig.lis map2.sdf
to compare the configuration specified by myconfig.lis with the configuration used to create the map in map2.sdf. As for all Starlink commands, you can use the findme command to see the full list of options provided by configmeld. Type:
% findme configmeld
which should open a web page, and click on the link for configmeld.
Notes:
- If your system does not have the meld command, the first available command in the following list will be used instead: opendiff, diffmerge, kdiff3, tkdiff, diffuse.
- Configuration values that have "no value" by default (usually shown as "
") are not included in the history information stored in the map created by makemap, and so will not appear in the list shown by configmeld. The sharp ones among you may therefore notice a small lie above - the screenshot shown earlier was actually made by comparing a "normal" config file with the configuration from an NDF, not from two NDFs as suggested by the example command. Sorry! That's why one side (the normal config file) has " " values and the other side (read from an NDF) does not. - configmeld is in fact a Python script designed to run with python 2.7 or later. If you have problems using it, it may be because your Python installation is too old.
- The configmeld script just uses the configecho command from KAPPA to list the two sets of configuration parameters to two separate temporary text file and then uses meld (or your selected tool) to display the two files side-by-side.
2013-02-26
Checking the noise properties of SCUBA-2 science data
Ever wondered if there was an easy way to assess the noise properties of the data going in to your SCUBA-2 maps? Well now there is. A new recipe called ASSESS_DATA_NOISE
has been added to the SCUBA-2 pipeline and it performs standard quality-assurance analysis (as done by the quick-look pipeline at the telescope) to give you an idea of the noise properties of the sciences data.
Running ASSESS_DATA_NOISE
To run it, first put all the files you wish to process into a text file (called myfiles.lis in the example below). Create a recipe parameter file if necessary (myparams.ini below). Then initialize the pipeline as usual (not necessary if done previously):% oracdr_scuba2_XXX -cwd
where XXX is the wavelength of choice. Finally, run the pipeline, adding the name of the recipe at the end of the command line:
% oracdr -loop file -files myfiles.lis -recpars myparams.ini \
-log sf ASSESS_DATA_NOISE
The recipe displays its results in a KAPPA window, showing the focal-plane layout with the noise for each bolometer in the top left corner, a histogram of the noise in the lower left, and the focal-plane image of the noise equivalent power (NEP) in the lower right. (If you want to turn off this display, add -nodisplay
to the ORAC-DR command line above.)
By default the results are calculated for each subscan (i.e., each 30-second file) separately. As described below, options exist to just use the first subscan or to calculate the noise properties for the entire time stream.
The focal-plane mosaics for each subscan are stacked to create a 3-d cube of noise as a function of time (the third axis is MJD). The corresponding NEP images are written into this file under the .more.smurf.nep
extension. This file has the suffix _scinoistack
.
The results are written out to a log file called log.scinoiseXXX
(where XXX is the wavelength as above), which can be loaded into TOPCAT to display the number of bolometers, noise or weighted NEP as a function of time or subscan number for each subarray.
The recipe also writes out a file called log.bolonoise
, which contains more results (with the results for each subarray on a separate line), plus index.noise
and index.nep
. From these files it will be possible to determine which files failed the QA tests, and thus can be excluded from the input list to the map maker.
Of course, the down side to removing data is that it will not be possible to achieve the intended noise level, and may reduce sensitivity to extended structure (as the time series may be broken into smaller chunks). However, it should be easy to determine whether or not using some fraction of the best data gets as close as could be expected.
Customizing
Like most recipes, a number of recipe parameters are available:
NOISE_CONFIG
- the config file you wish to use when calculating the noise. It is recommended that you use the same as the one used when making maps. If not given, the standard noise config file is used.NOISE_CALC
- may be "quick", "each" or "full" which will use the first thirty-seconds of data (for a quick check), or for every thirty second data file, or use the entire time stream to calculate the overall noise properties. The default is "each".FREQRANGE
- frequency range over which to calculate the noise. Default is 2-10 Hz.FREQLO
- lower frequency at which to calculate the background. Default is 0.5 Hz.
FREQRANGE
and FREQLO
before adjusting them (SUN/258).
This is just the first release and its usefulness and output data relies on user testing and input. Please try it out and let me know.
2013-02-25
"Scuff" removal using NOI.BOX_SIZE
Left: reduction without NOI.BOX_SIZE specified. Right: reduction with NOI.BOX_SIZE=-15 specified in the config file. |
The difference map: we see these scuffs are removed from the final image. |
2013-02-21
Changes to dimmconfig files
The most important changes that you need to be aware of are:
- The dimmconfig.lis file now uses MAPTOL to specify the convergence criterion rather than CHITOL.
- The value of 850.FLT.FILT_EDGE_LARGESCALE provided by dimmconfig_bright_extended.lis has changed from 300 to 600 arc-seconds. The 450 value remains unchanged at 600 arc-seconds.
- The dimmconfig_bright_extended.lis file now inherits values from dimmconfig.lis instead of dimmconfig_bright.lis. This means that the modified values previously provided by dimmconfig_bright.lis for COM.CORR_TOL, COM.GAIN_ABSTOL, COM.GAIN_TOL, DCTHRESH and NOISECLIPHIGH are no longer inherited by dimmconfig_bright_extended.lis. Consequently the new dimmconfig_bright_extended.lis will perform more aggressive rejection of bad values than the old version.
- The descriptions of individual parameters that previously were in dimmconfig.lis have been moved into $SMURF_DIR/smurf_makemap.def. This is the file that defines the complete list of all legal parameters for makemap and their default values. These description are also included in an appendix in SUN/258.
- Parameters that are mainly intended for experimental use by makemap developers have been removed entirely from dimmconfig.lis but are still defined in the smurf_makemap.def file.
- The prologues of the main dimmconfig files have been standardised.
- Experimental dimmconfig files have been moved into a subdirectory called "experimental" within $STARLINK_DIR/share/smurf.
2013-02-15
Multiple masks revisited
Previously, multiple masks were always combined by taking the union of the source regions. Now, the intersection of the source regions may instead be used by setting the xxx.ZERO_UNION parameter to zero (i.e. false), where "xxx" is AST, FLT or COM. Note, the default is still to use to use the union.
This can be useful, for instance, if a basic SNR mask allows bright structures to develop near the edges - intersecting the SNR mask with a ZERO_LOWHITS mask will reduce the SNR mask to exclude the edge regions.
2013-02-10
Automated removal of bad-baseline spectra from ACSIS/HARP time series
Go here for the full-sized PDF. |
2013-02-05
SCUBA-2 papers on arxiv
SCUBA-2: The 10000 pixel bolometer camera on the James Clerk Maxwell Telescope
Holland et al. 2013 MNRAS
http://arxiv.org/abs/1301.3650
SCUBA-2: iterative map-making with the Sub-Millimetre User Reduction Facility
Chapin et al 2013 MNRAS
http://arxiv.org/abs/1301.3652
SCUBA-2: on-sky calibration using submillimetre standard sources
Dempsey et al 2013 MNRAS
http://arxiv.org/abs/1301.3773
2013-01-29
MAKEMAP default method
So note, if for any reason you want to use the "REBIN" method, you will now need to indicate this by adding "METHOD=REBIN" to the command line.