funimagerowput (3) - Linux Manuals

funimagerowput: put row(s) of an image


FunImageRowPut - put row(s) of an image


  #include <funtools.h>

  void *FunImageRowPut(Fun fun, void *buf, int rstart, int rstop,
                       int dim1, int dim2, int bitpix, char *plist)


The FunImageRowPut() routine writes one or more image rows to the specified FITS image file. The first argument is the Funtools handle returned by FunOpen(). The second buf argument is a pointer to the row data buffer, while the third and fourth arguments specify the starting and ending rows to write. Valid rows values range from 1 to dim2, i.e., row is one-valued.

The dim1and dim2 arguments that follow specify the dimensions, where dim1 corresponds to naxis1 and dim2 corresponds to naxis2. The bitpix argument data type of the image and can have the following FITS-standard values:

8 unsigned char
16 short
32 int
-32 float
-64 double

For example:

  double *drow;
  Fun fun, fun2;
  ... open files ...
  /* get section dimensions */
  FunInfoGet(fun, FUN_SECT_DIM1, &dim1, FUN_SECT_DIM2, &dim2, 0);
  /* allocate one line's worth */
  drow = malloc(dim1*sizeof(double));
  /* retrieve and process each input row (starting at 1) */
  for(i=1; i <= dim2; i++){
    if( !FunImageRowGet(fun, drow, i, i, "bitpix=-64") )
      gerror(stderr, "can't FunImageRowGet: %d %s\n", i, iname);
    ... process drow ...
    if( !FunImageRowPut(fun2, drow, i, i, 64, NULL) )
      gerror(stderr, "can't FunImageRowPut: %d %s\n", i, oname);

The data are assumed to be in the native machine format and will automatically be swapped to big-endian FITS format if necessary. This behavior can be over-ridden with the convert=[true|false] keyword in the plist param list string.

When you are finished writing the image, you should call FunFlush() to write out the FITS image padding. However, this is not necessary if you subsequently call FunClose() without doing any other I/O to the FITS file.


See funtools(n) for a list of Funtools help pages