Astro-FITS-CFITSIO
view release on metacpan or search on metacpan
fitsfilePtr::get_hduaddrll = 2
CODE:
RETVAL = ffghadll(fptr,&headstart,&datastart,&dataend,&status);
if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),headstart);
if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),datastart);
if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),dataend);
OUTPUT:
status
RETVAL
int
ffghof(fptr, headstart, datastart, dataend, status)
fitsfile * fptr
OFF_T headstart = NO_INIT
OFF_T datastart = NO_INIT
OFF_T dataend = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_get_hduoff = 1
fitsfilePtr::get_hduoff = 2
CODE:
RETVAL = ffghof(fptr,&headstart,&datastart,&dataend,&status);
if (ST(1) != &PL_sv_undef) sv_setuv(ST(1),headstart);
if (ST(2) != &PL_sv_undef) sv_setuv(ST(2),datastart);
if (ST(3) != &PL_sv_undef) sv_setuv(ST(3),dataend);
OUTPUT:
status
RETVAL
int
ffgknm(card,name,len,status)
char * card
char * name = NO_INIT
int len = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_get_keyname = 1
CODE:
name = get_mortalspace(FLEN_KEYWORD,TBYTE);
RETVAL = ffgknm(card,name,&len,&status);
if (ST(2) != &PL_sv_undef)
sv_setiv(ST(2), len);
OUTPUT:
name
status
RETVAL
int
ffdtyp(value,dtype,status)
char * value
char &dtype = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_keytype = 1
OUTPUT:
dtype
status
int
ffgidt(fptr,bitpix,status)
fitsfile * fptr
int &bitpix = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_img_type = 1
fitsfilePtr::get_img_type = 2
OUTPUT:
bitpix
status
int
ffinttyp(value,inttype,neg,status)
char * value
int &inttype = NO_INIT
int &neg = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_inttype = 1
OUTPUT:
inttype
neg
status
int
ffgiet(fptr,bitpix,status)
fitsfile * fptr
int &bitpix = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_img_equivtype = 1
fitsfilePtr::get_img_equivtype = 2
OUTPUT:
bitpix
status
int
ffgidm(fptr,naxis,status)
fitsfile * fptr
int &naxis = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_img_dim = 1
fitsfilePtr::get_img_dim = 2
OUTPUT:
naxis
status
int
ffgisz(fptr,naxes,status)
FitsFile * fptr
long *naxes = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_get_img_size = 1
fitsfilePtr::get_img_size = 2
PREINIT:
int nlen;
CODE:
RETVAL = ffgidm(fptr->fptr,&nlen,&status);
if (RETVAL <= 0) {
naxes = get_mortalspace(nlen,TLONG);
RETVAL = ffgisz(fptr->fptr,nlen,naxes,&status);
/* unpack as Perl array */
unpack1D(ST(1),naxes,nlen,TLONG,1);
}
OUTPUT:
status
RETVAL
int
ffgiszll(fptr,naxes,status)
FitsFile * fptr
LONGLONG *naxes = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_get_img_sizell = 1
fitsfilePtr::get_img_sizell = 2
PREINIT:
int nlen;
CODE:
RETVAL = ffgidm(fptr->fptr,&nlen,&status);
if (RETVAL <= 0) {
naxes = get_mortalspace(nlen,TLONGLONG);
RETVAL = ffgiszll(fptr->fptr,nlen,naxes,&status);
/* unpack as Perl array */
unpack1D(ST(1),naxes,nlen,TLONGLONG,1);
}
OUTPUT:
status
RETVAL
int
fits_get_noise_bits(fptr, noisebits, status)
fitsfile *fptr
int &noisebits = NO_INIT
int &status
ALIAS:
fitsfilePtr::get_noise_bits = 1
OUTPUT:
noisebits
status
int
ffgncl(fptr,ncols,status)
fitsfile * fptr
int &ncols = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_num_cols = 1
fitsfilePtr::get_num_cols = 2
OUTPUT:
ncols
status
int
ffgmng(mfptr,nmembers,status)
fitsfile * mfptr
long &nmembers = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_num_groups = 1
fitsfilePtr::get_num_groups = 2
OUTPUT:
nmembers
status
int
ffthdu(fptr,hdunum,status)
fitsfile * fptr
int &hdunum = NO_INIT
int &status
ALIAS:
Astro::FITS::CFITSIO::fits_get_num_hdus = 1
fitsfilePtr::get_num_hdus = 2
OUTPUT:
hdunum
status
int
ffgtnm(gfptr,nmembers,status)
fitsfile * gfptr
int
ffgkey(fptr,keyname,value,comment,status)
fitsfile * fptr
char * keyname
char * value = NO_INIT
char * comment = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_keyword = 1
fitsfilePtr::read_keyword = 2
CODE:
value = get_mortalspace(FLEN_VALUE,TBYTE);
comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
RETVAL=ffgkey(fptr,keyname,value,comment,&status);
OUTPUT:
value
comment
status
RETVAL
int
ffgrec(fptr,keynum,card,status)
fitsfile * fptr
int keynum
char * card = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_record = 1
fitsfilePtr::read_record = 2
CODE:
card = get_mortalspace(FLEN_CARD,TBYTE);
RETVAL=ffgrec(fptr,keynum,card,&status);
OUTPUT:
card
status
RETVAL
int
ffgsv(fptr, dtype, blc, trc, inc, nulval, array, anynul, status)
FitsFile * fptr
int dtype
long * blc
long * trc
long * inc
SV * nulval
void * array = NO_INIT
int anynul = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_subset = 1
fitsfilePtr::read_subset = 2
PREINIT:
long ndata, *naxes;
int i, naxis, storage_dtype;
CODE:
storage_dtype = dtype;
if (dtype == TBIT)
storage_dtype = TLOGICAL;
/* get the size of the image */
RETVAL = ffgidm(fptr->fptr, &naxis, &status);
naxes = get_mortalspace(naxis, TLONG);
RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
/* determine the number of pixels to be read */
ndata = 1;
for (i=0; i<naxis; i++)
ndata *= (trc[i]-blc[i]+1)/inc[i] +
(((trc[i]-blc[i]+1) % inc[i]) ? 1 : 0);
if (!PERLYUNPACKING(fptr->perlyunpacking)) {
SvGROW(ST(6),ndata*sizeof_datatype(storage_dtype));
RETVAL=ffgsv(fptr->fptr,dtype,blc,trc,inc,(nulval!=&PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL),(void*)SvPV(ST(6),PL_na),&anynul,&status);
}
else {
array = get_mortalspace(ndata,storage_dtype);
RETVAL=ffgsv(fptr->fptr,dtype,blc,trc,inc,(nulval != &PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL),array,&anynul,&status);
unpack1D(ST(6),array,ndata,storage_dtype,fptr->perlyunpacking);
}
if (ST(7) != &PL_sv_undef)
sv_setiv(ST(7),anynul);
OUTPUT:
RETVAL
status
int
ffgsvb(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
FitsFile * fptr
int group
int naxis
long * naxes
long * fpixels
long * lpixels
long * inc
byte nulval
byte * array = NO_INIT
int anynul = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_subset_byt = 1
fitsfilePtr::read_subset_byt = 2
PREINIT:
long ndata;
int i;
CODE:
ndata = 1;
for (i=0; i<naxis; i++)
ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
(((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
if (!PERLYUNPACKING(fptr->perlyunpacking)) {
SvGROW(ST(8),ndata*sizeof_datatype(TBYTE));
RETVAL=ffgsvb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(byte*)SvPV(ST(8),PL_na),&anynul,&status);
}
else {
array = get_mortalspace(ndata,TBYTE);
RETVAL=ffgsvb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
unpack1D(ST(8),array,ndata,TBYTE,fptr->perlyunpacking);
}
if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
OUTPUT:
status
int
ffgiprll(fptr,bitbix,naxis,naxes,status)
FitsFile * fptr
int bitpix = NO_INIT
int naxis = NO_INIT
LONGLONG * naxes = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_get_img_parmll = 1
fitsfilePtr::get_img_parmll = 2
CODE:
if (ST(3)!=&PL_sv_undef) {
RETVAL = ffgiprll(fptr->fptr,0,&bitpix,&naxis,NULL,&status);
naxes = get_mortalspace(naxis,TLONGLONG);
}
else {
naxis = 0;
naxes = NULL;
}
RETVAL = ffgiprll(fptr->fptr,naxis,&bitpix,&naxis,naxes,&status);
if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),bitpix);
if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONGLONG,fptr->perlyunpacking);
OUTPUT:
status
RETVAL
int
ffgkcl(card)
char * card
ALIAS:
Astro::FITS::CFITSIO::fits_get_keyclass = 1
int
ffgpxv(fptr, dtype, fpix, nelem, nulval, array, anynul, status)
FitsFile * fptr
int dtype
long * fpix
LONGLONG nelem
SV * nulval
void * array = NO_INIT
int anynul = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_pix = 1
fitsfilePtr::read_pix = 2
PREINIT:
int naxis;
long *naxes;
OFF_T nelem_all;
int i;
CODE:
if (!PERLYUNPACKING(fptr->perlyunpacking)) {
SvGROW(ST(5),nelem*sizeof_datatype(dtype));
RETVAL = ffgpxv(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), (void*)SvPV(ST(5),PL_na), &anynul, &status);
}
else {
/* find out how many elements are in the image,
* allocate space, read, unpack
*/
RETVAL = ffgidm(fptr->fptr, &naxis, &status);
if (status == 0) {
naxes = get_mortalspace(naxis, TLONG);
RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
nelem_all = 1;
for (i=0; i<naxis; i++)
nelem_all *= naxes[i];
array=get_mortalspace(nelem_all,dtype);
RETVAL=ffgpxv(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), array, &anynul, &status);
if (status == 0) {
order_reverse(naxis, naxes);
unpackND(ST(5), array, naxis, naxes, dtype, fptr->perlyunpacking);
}
}
}
if (ST(6) != &PL_sv_undef)
sv_setiv(ST(6), anynul);
OUTPUT:
status
RETVAL
int
ffgpxvll(fptr, dtype, fpix, nelem, nulval, array, anynul, status)
FitsFile * fptr
int dtype
LONGLONG * fpix
LONGLONG nelem
SV * nulval
void * array = NO_INIT
int anynul = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_pixll = 1
fitsfilePtr::read_pixll = 2
PREINIT:
int naxis;
LONGLONG *naxes;
OFF_T nelem_all;
int i;
CODE:
if (!PERLYUNPACKING(fptr->perlyunpacking)) {
SvGROW(ST(5),nelem*sizeof_datatype(dtype));
RETVAL = ffgpxvll(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), (void*)SvPV(ST(5),PL_na), &anynul, &status);
}
else {
/* find out how many elements are in the image,
* allocate space, read, unpack
*/
RETVAL = ffgidm(fptr->fptr, &naxis, &status);
if (status == 0) {
naxes = get_mortalspace(naxis, TLONGLONG);
RETVAL = ffgiszll(fptr->fptr, naxis, naxes, &status);
nelem_all = 1;
for (i=0; i<naxis; i++)
nelem_all *= naxes[i];
array=get_mortalspace(nelem_all,dtype);
RETVAL=ffgpxvll(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), array, &anynul, &status);
if (status == 0) {
order_reversell(naxis, naxes);
unpackNDll(ST(5), array, naxis, naxes, dtype,fptr->perlyunpacking);
}
}
}
if (ST(6) != &PL_sv_undef)
sv_setiv(ST(6), anynul);
OUTPUT:
status
RETVAL
int
ffgpxf(fptr, dtype, fpix, nelem, array, nullarray, anynul, status)
FitsFile * fptr
int dtype
long * fpix
LONGLONG nelem
void * array = NO_INIT
logical * nullarray = NO_INIT
int anynul = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_pixnull = 1
fitsfilePtr::read_pixnull = 2
PREINIT:
int naxis;
long *naxes;
OFF_T nelem_all;
int i;
CODE:
if (!PERLYUNPACKING(fptr->perlyunpacking)) {
if (ST(4) != &PL_sv_undef) {
SvGROW(ST(4),nelem*sizeof_datatype(dtype));
array = (void*)SvPV(ST(4),PL_na);
}
else
array = get_mortalspace(nelem, dtype);
if (ST(5) != &PL_sv_undef) {
SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
nullarray = (logical*)SvPV(ST(5),PL_na);
}
else
nullarray = get_mortalspace(nelem,TLOGICAL);
RETVAL = ffgpxf(fptr->fptr,dtype,fpix,nelem,array,nullarray, &anynul,&status);
}
else {
/* find out how many elements are in the image,
* allocate space, read, unpack
*/
RETVAL = ffgidm(fptr->fptr, &naxis, &status);
if (status == 0) {
naxes = get_mortalspace(naxis, TLONG);
RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
nelem_all = 1;
for (i=0; i<naxis; i++)
nelem_all *= naxes[i];
array=get_mortalspace(nelem_all,dtype);
nullarray=get_mortalspace(nelem_all,TLOGICAL);
RETVAL=ffgpxf(fptr->fptr,dtype,fpix,nelem,array,nullarray,&anynul,&status);
if (status == 0) {
order_reverse(naxis, naxes);
if (ST(4)!=&PL_sv_undef)
unpackND(ST(4),array,naxis,naxes,dtype,fptr->perlyunpacking);
if (ST(5)!=&PL_sv_undef)
unpackND(ST(5),nullarray,naxis,naxes,TLOGICAL,fptr->perlyunpacking);
}
}
}
if (ST(6) != &PL_sv_undef)
sv_setiv(ST(6), anynul);
OUTPUT:
status
RETVAL
int
ffgpxfll(fptr, dtype, fpix, nelem, array, nullarray, anynul, status)
FitsFile * fptr
int dtype
LONGLONG * fpix
LONGLONG nelem
void * array = NO_INIT
logical * nullarray = NO_INIT
int anynul = NO_INIT
int status
ALIAS:
Astro::FITS::CFITSIO::fits_read_pixnullll = 1
fitsfilePtr::read_pixnullll = 2
PREINIT:
int naxis;
LONGLONG *naxes;
OFF_T nelem_all;
int i;
CODE:
if (!PERLYUNPACKING(fptr->perlyunpacking)) {
if (ST(4) != &PL_sv_undef) {
SvGROW(ST(4),nelem*sizeof_datatype(dtype));
array = (void*)SvPV(ST(4),PL_na);
}
else
array = get_mortalspace(nelem, dtype);
if (ST(5) != &PL_sv_undef) {
SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
nullarray = (logical*)SvPV(ST(5),PL_na);
}
else
nullarray = get_mortalspace(nelem,TLOGICAL);
RETVAL = ffgpxfll(fptr->fptr,dtype,fpix,nelem,array,nullarray, &anynul,&status);
}
else {
/* find out how many elements are in the image,
* allocate space, read, unpack
*/
RETVAL = ffgidm(fptr->fptr, &naxis, &status);
if (status == 0) {
naxes = get_mortalspace(naxis, TLONGLONG);
RETVAL = ffgiszll(fptr->fptr, naxis, naxes, &status);
nelem_all = 1;
for (i=0; i<naxis; i++)
nelem_all *= naxes[i];
array=get_mortalspace(nelem_all,dtype);
nullarray=get_mortalspace(nelem_all,TLOGICAL);
RETVAL=ffgpxfll(fptr->fptr,dtype,fpix,nelem,array,nullarray,&anynul,&status);
if (status == 0) {
order_reversell(naxis, naxes);
if (ST(4)!=&PL_sv_undef)
unpackNDll(ST(4),array,naxis,naxes,dtype,fptr->perlyunpacking);
if (ST(5)!=&PL_sv_undef)
unpackNDll(ST(5),nullarray,naxis,naxes,TLOGICAL,fptr->perlyunpacking);
}
}
}
if (ST(6) != &PL_sv_undef)
sv_setiv(ST(6), anynul);
OUTPUT:
status
RETVAL
int
ffppx(fptr, dtype, fpix, nelem, array, status)
fitsfile * fptr
int dtype
long * fpix
LONGLONG nelem
SV * array
int status
ALIAS:
Astro::FITS::CFITSIO::fits_write_pix = 1
fitsfilePtr::write_pix = 2
PREINIT:
int storage_dtype;
CODE:
storage_dtype = dtype;
if (dtype == TBIT)
storage_dtype = TLOGICAL;
RETVAL = ffppx(fptr,dtype,fpix,nelem,packND(array,storage_dtype),&status);
OUTPUT:
RETVAL
status
int
ffppxll(fptr, dtype, fpix, nelem, array, status)
fitsfile * fptr
int dtype
LONGLONG * fpix
LONGLONG nelem
SV * array
int status
ALIAS:
Astro::FITS::CFITSIO::fits_write_pixll = 1
fitsfilePtr::write_pixll = 2
PREINIT:
int storage_dtype;
CODE:
( run in 1.372 second using v1.01-cache-2.11-cpan-5735350b133 )