- Class PlotLimits
- Add 2 integers to properly set the number of digits to be printed (e.g. with
`labdig`

in DISLIN)

- Global compute_default_extinction (float lambda)
- Unify with compute_extinction. Remove call to N*G.

- Global compute_extinction (double lbda[], double kext[], int n, float lambda)
- Unify with compute_extinction. Remove call to N*G. Use static variables after initialization.

- File proc_extinct.c
- Use GSL-interpolation instead of N*G

- File apply_flux.c
- Make a full port to SNIFS standards. Use GSL in place of NAG.

- File apply_lfff.c
- Make a full port to SNIFS standards.

- Global spatial_filter_med_cube (TIGERfile *incube, TIGERfile *medcube, int ring, int iter)
- Compute norm of each spectra only once, instead of multiple times in the neighbor loop.
Clarify this spatial median filtering normalization issue when the spectrum norm si close to 0 or even <0. For the moment, the dirty trick is to consider positive values only...

- Global Nuke_cosmic (SPECTRUM *signal, SPECTRUM *noise, SPECTRUM *medspec, SPECTRUM *medvar, SPECTRUM *resspec, float sigclip, float threshold, int pixels)
- Clarify the second cosmic-detection criterion...

- File wcalib.c
- Discard calls to NAG.

- File wrebin.c
- Make a full port to SNIFS standards, use gsl_cheb_series, define IO-function to access calibration tables, add debug mode (e.g. calibration polynoms).

- Global get_lenses_col (E3D_file *frame, char *lab_col, void *zlens, int *il)
- In the E3D case, one has to specify the science table extension name in which to look to for the specified column. For the moment, look in the table associated to the cube (the data table?)

- Global read_PSFgeo_param (void *anyfile, double *geo_param[])
- Add a description.

- Global plot_set_bkgnd (IMAGE2D *bkgndima, Plot *plot, float mincut, float maxcut, int *nx, int *ny, float ***zmat)
- Set the limits so that the border spaxels are displayed completely.

- Global nllsqfit_mask (long *mode, long *nlenses, long *npar, long *ldfj, double *par, double f[], double fjac[], long *nstate, long *iuser, double user[])
- Add 0th/2nd order fit, with blaze function as weighting (no need to look for a line/max if there's nothing!).
Should we use another function than RMS(dx) in fit to max? And what about a completely diffrent way to fit the arc. E.g. one could go through a peak detection scheme, and use a more-intuitive distance criterion to the peaks, still taking into account the fact that one peak should correspond to a

*single*arc line...

- Global read_2columns (char *tablename, char *col1name, char *col2name, int fclass, double **array1, double **array2)
- Could be generalized to any number of columns if needed.

- File snifs_instrument.h
- Check the dispersions. I have some numbers giving 2.2 and 3.0 AA/px for the blue and red channels resp.

- File snifs_structures.h
- (Re)Implement the
`path`

element in`TABLE`

structureImplement a

`LocalModel`

structure to be used for dx(lambda) and sigma(lambda): -nlenses -ncoeff -**coeff -type (NAG, Fit_polynom, GSL) -domain of validity in lambda. . This could actually simply be based upon the`gsl_cheb_series`

.

- Page calib_flux
- Add spectral binning correction w.r.t. reference table.

- Page remcosmic
- The details of the algorithm have to be clarified (see TODOs in spatial_filter_med_cube and Nuke_cosmic)

- Page wcalib
- The final calibration polynomial fit should be made more robust.

- Page create_mask
- To compute the sky coordinates of the lenses, one needs to come back to the MLA level, study the distortion there,
*undistort*the observed positions, and then compute the sky coordinates.Implement the blaze option, in order to fit 0th/2nd orders weighted according to the blaze function.

Discard the need for the arc frame or for the max if they are not actually adjusted.

It is probably not a good idea to use a classical minimization scheme on such a noisy ill-conditionned problem. Maybe have a look at ``simulated annealing'' algorithm (cf.

`GSL`

), which could be however computation-time costly.Compute decent value for arc normalisation factor

`glnormmax`

(arc frame mean? 1st step value?)Use

`Fit_polynom`

(with automatic adjustment of polynomial degree) instead of`fit_poly_rej_nag_tab`

in local adjustment. Furthermore, since the sigma=f(lambda) is noisy, the sigma-clipping is not rebost enough, and one should enforce a physical selection over sigma right after pup_get_maxdata

- Page extract_spec
- Expand the domain of validity of the Chebyshev expansion for sigma (and dx?) from the useful wavelength range [lbda_inf,lbda_sup] to the total wavelength range [lbda_inf_tot,lbda_sup_tot] (requires changes in create_mask and snifs_instrument.h) (see comment "get lbda = f(yd)")
CAREFULLY CHECK THE OPTIMAL EXTRACTION (signal and variance). In particular, use the variance extension during the optimal extraction. One could also have a look at Khmil & Surdej 2002 (optimal extraction with maximum entropy).

Implement option

`-linfit`

The spatial coordinates still have to be computed.

For the two-pass multi-order optimal extraction, add an option

`-restore`

to extract pre-restore_frame (i.e. without the final wavelength-rebin and extracted on the full wavelength domain).

- Page find_max
- Read the variance of the input continuum, as the preprocess might flag the bad columns in tthe variance extension. Just a question: what is the variance of a median?

- Page find_mpup
- Test the existence and use the variance extension in the preproc images for X-disp. profile fits (see
`USE_PROFERR`

). For the moment, analytic computation of the variance from photon noise and RoN.

- Page prepare_mask
- Test the existence and use the variance extension in the preproc images.

- Page center_gauss
- Use image centroid (and not max) as first guess.
Should unify with Fit_Xpeak using an intermediate 2D-array.

- Page focus_spectro
- Test (native SNIFS format) multiple-extension input frames
Test different zones in the arc frame (size and position, but beware of 0th and 2nd orders)

Fit multiple zones in the arc frame and derive a CCD-tilt

Check out why the Y-error bars are so different between the red and blue channels. The formal error estimates derived with

`nllsqfit_bnd`

seem theoritically correct.

Generated on Thu Oct 27 00:00:24 2005 for Snifs by 1.3.5