Function Arguments
/*-***********************************************************************/
/* */
/* mProject */
/* */
/* Montage is a set of general reprojection / coordinate-transform / */
/* mosaicking programs. Any number of input images can be merged into */
/* an output FITS file. The attributes of the input are read from the */
/* input files; the attributes of the output are read a combination of */
/* the command line and a FITS header template file. */
/* */
/* This module, mProject, processes a single input image and */
/* projects it onto the output space. It's output is actually a pair */
/* of FITS files, one for the sky flux the other for the fractional */
/* pixel coverage. Once this has been done for all input images, */
/* mAdd can be used to coadd them into a composite output. */
/* */
/* Each input pixel is projected onto the output pixel space and the */
/* exact area of overlap is computed. Both the total "flux" and the */
/* total sky area of input pixels added to each output pixel is */
/* tracked, and the flux is appropriately normalized before writing to */
/* the final output file. This automatically corrects for any multiple */
/* coverages that may occur. */
/* */
/* The input can come from from arbitrarily disparate sources. It is */
/* assumed that the flux scales in the input images match, but this is */
/* not required (leading to some interesting combinations). */
/* */
/* char *input_file FITS file to reproject */
/* int hdu Optional HDU offset for input file */
/* char *output_file Reprojected FITS file */
/* char *template_file FITS header file used to define the desired */
/* output */
/* */
/* char *weight_file Optional pixel weight FITS file (must match */
/* input) */
/* */
/* double fixedWeight A weight value used for all pixels */
/* double threshold Pixels with weights below this level treated */
/* as blank */
/* */
/* char *borderstr Optional string that contains either a border */
/* width or comma-separated "x1,y1,x2,y2, ..." */
/* pairs defining a pixel region polygon where */
/* we keep only the data inside. */
/* */
/* double drizzle Optional pixel area "drizzle" factor */
/* double fluxScale Scale factor applied to all pixels */
/* int energyMode Pixel values are total energy rather than */
/* energy density */
/* int expand Expand output image area to include all of */
/* the input pixels */
/* int fullRegion Do not "shrink-wrap" output area to non-blank */
/* pixels */
/* int debug Debugging output level */
/* */
/*************************************************************************/
struct mProjectReturn *mProject(char *input_file, int hduin, char *ofile, char *template_file,
char *weight_file, double fixedWeight, double threshold, char *borderstr,
double drizzle, double fluxScale, int energyMode, int expand, int fullRegion,
int debugin)
Return Structure
struct mProjectReturn
{
int status; // Return status (0: OK, 1:ERROR)
char msg [1024]; // Return message (for error return)
char json[4096]; // Return parameters as JSON string
double time; // Run time (sec)
};