# include "astro.h"

int biassub		    PROTO((int, char **));
int cgrid		    PROTO((int, char **));
int coords		    PROTO((int, char **));
int cplot		    PROTO((int, char **));
int csystem		    PROTO((int, char **));
int ctimes		    PROTO((int, char **));
int cval		    PROTO((int, char **));
int czplot		    PROTO((int, char **));
int drizzle		    PROTO((int, char **));
int flux		    PROTO((int, char **));
int fixwrap		    PROTO((int, char **));
int gauss		    PROTO((int, char **));
int gaussfit		    PROTO((int, char **));
int getvel		    PROTO((int, char **));
int getlst		    PROTO((int, char **));
int imfit		    PROTO((int, char **));
int imsub		    PROTO((int, char **));
int medianmap		    PROTO((int, char **));
int mkgauss		    PROTO((int, char **));
int multifit		    PROTO((int, char **));
int objload		    PROTO((int, char **));
int outline		    PROTO((int, char **));
int polar		    PROTO((int, char **));
int precess		    PROTO((int, char **));
int profile		    PROTO((int, char **));
int region		    PROTO((int, char **));
int rotcurve		    PROTO((int, char **));
int scale		    PROTO((int, char **));
int sexigesimal		    PROTO((int, char **));
int spec		    PROTO((int, char **));
int star		    PROTO((int, char **));
int times		    PROTO((int, char **));
int transform		    PROTO((int, char **));

static Command cmds[] = {  
  {"biassub", 	  biassub,      "subtract medianed overscan row or column"},
  {"cgrid",       cgrid,        "plot sky coordinate grid"},
  {"coords",  	  coords,       "load coordinates for buffer from file"},
  {"cplot",       cplot,        "plot vectors in sky coordinates"},
  {"csystem", 	  csystem,      "convert between coordinate systems"},
  {"ctimes",  	  ctimes,       "convert between time formats"},
  {"cval",        cval,         "cosmic ray flux?"},
  {"czplot",  	  czplot,       "plot scaled vectors in sky coordinates"},
  {"drizzle", 	  drizzle,      "transform image to image"},
  {"flux",    	  flux,         "flux in a convex contour"},
  {"fixwrap",  	  fixwrap,      "fix megacam over-wrapped pixels"},
  {"gauss",   	  gauss,        "get statistics on a star, assuming gaussian profile"},
  {"getvel",      getvel,       "rotcurve to velocities"},
  {"getlst",      getlst,       "return LST given time and longitude"},
  {"imfit",   	  imfit,        "fit function"},
  {"imsub",   	  imsub,        "subtract function"},
  {"medianmap",   medianmap,    "small median image"},
  {"mkgauss",     mkgauss,      "generate a 2-D gaussian centered in image"},
  {"multifit",    multifit,     "fit multi-order spectrum"},
  {"objload",     objload,      "plot obj data on Ximage "},
  {"outline",     outline,      "fit outline region"},
  {"polar",       polar,        "convert polar image to cartesian"},
  {"precess",     precess,      "precess coordinates"},
  {"profile",     profile,      "radial profile at X, Y"},
  {"region",      region,       "define sky region for plot"},
  {"rotcurve",    rotcurve,     "convert CO images to polar coords"},
  {"scale",       scale,        "get / set real bzero / bscale values"},
  {"sexigesimal", sexigesimal,  "convert to/from sexigesimal/decimal"},
  {"spec",    	  spec,         "extract a spectrum"},
  {"star",    	  star,         "star stats at rough coords"},
  {"transform",   transform,    "geometric transformation of image"},
}; 

/* not currently implemented 
  {"gaussfit",    gaussfit,     "fit a gaussian to pixels in a region"},
  {"testfit",     testfit, ""},
  {"times", , ""},
*/

void InitAstro () {
  
  int i;

  for (i = 0; i < sizeof (cmds) / sizeof (Command); i++) {
    AddCommand (&cmds[i]);
  }

}
