This section gives a complete list of the functions available via the C interface to the NDF_ library, in the form of ANSI C function prototypes. For details of each function, see the Fortran routine description in Appendix D.
For general information about the C interface, see Appendix E.
void
ndfAcget(
int
indf,
const
char
∗comp,
int
iaxis,
char
∗value,
int
value_length,
int
∗status
); Obtain the value of an NDF axis character component
void
ndfAclen(
int
indf,
const
char
∗comp,
int
iaxis,
int
∗length,
int
∗status
); Determine the length of an NDF axis character component
void
ndfAcmsg(
const
char
∗token,
int
indf,
const
char
∗comp,
int
iaxis,
int
∗status
); Assign the value of an NDF axis character component to a message
token
void
ndfAcput(
const
char
∗value,
int
indf,
const
char
∗comp,
int
iaxis,
int
∗status
); Assign a value to an NDF axis character component
void
ndfAcre(
int
indf,
int
∗status
); Ensure that an axis coordinate system exists for an NDF
void
ndfAform(
int
indf,
const
char
∗comp,
int
iaxis,
char
∗form,
int
form_length,
int
∗status
); Obtain the storage form of an NDF axis array
void
ndfAmap(
int
indf,
const
char
∗comp,
int
iaxis,
const
char
∗type,
const
char
∗mmod,
void
∗pntr[ ],
int
∗el,
int
∗status
); Obtain mapped access to an NDF axis array
void
ndfAnnul(
int
∗indf,
int
∗status
); Annul an NDF identifier
void
ndfAnorm(
int
indf,
int
iaxis,
int
∗norm,
int
∗status
); Obtain the logical value of an NDF axis normalisation
flag
void
ndfArest(
int
indf,
const
char
∗comp,
int
iaxis,
int
∗status
); Reset an NDF axis component to an undefined state
void
ndfAsnrm(
int
norm,
int
indf,
int
iaxis,
int
∗status
); Set a new value for an NDF axis normalisation flag
void
ndfAssoc(
const
char
∗param,
const
char
∗mode,
int
∗indf,
int
∗status
); Associate an existing NDF with an ADAM parameter
void
ndfAstat(
int
indf,
const
char
∗comp,
int
iaxis,
int
∗state,
int
∗status
); Determine the state of an NDF axis component (defined or
undefined)
void
ndfAstyp(
const
char
∗type,
int
indf,
const
char
∗comp,
int
iaxis,
int
∗status
); Set a new numeric type for an NDF axis array
void
ndfAtype(
int
indf,
const
char
∗comp,
int
iaxis,
char
∗type,
int
type_length,
int
∗status
); Obtain the numeric type of an NDF axis array
void
ndfAunmp(
int
indf,
const
char
∗comp,
int
iaxis,
int
∗status
); Unmap an NDF axis array component
void
ndfBad(
int
indf,
const
char
∗comp,
int
check,
int
∗bad,
int
∗status
); Determine if an NDF array component may contain bad pixels
void
ndfBase(
int
indf1,
int
∗indf2,
int
∗status
); Obtain an identifier for a base NDF
void
ndfBb(
int
indf,
unsigned
char
∗badbit,
int
∗status
); Obtain the bad-bits mask value for the quality component of an
NDF
void
ndfBegin(
void
); Begin a new NDF context
void
ndfBlock(
int
indf1,
int
ndim,
const
int
mxdim[ ],
int
iblock,
int
∗indf2,
int
∗status
); Obtain an NDF section containing a block of adjacent pixels
void
ndfBound(
int
indf,
int
ndimx,
int
lbnd[ ],
int
ubnd[ ],
int
∗ndim,
int
∗status
); Enquire the pixel-index bounds of an NDF
void
ndfCancl(
const
char
∗param,
int
∗status
); Cancel the association of an NDF with an ADAM parameter
void
ndfCget(
int
indf,
const
char
∗comp,
char
∗value,
int
value_length,
int
∗status
); Obtain the value of an NDF character component
void
ndfChunk(
int
indf1,
int
mxpix,
int
ichunk,
int
∗indf2,
int
∗status
); Obtain an NDF section containing a chunk of contiguous
pixels
void
ndfCinp(
const
char
∗param,
int
indf,
const
char
∗comp,
int
∗status
); Obtain an NDF character component value via the ADAM parameter
system
void
ndfClen(
int
indf,
const
char
∗comp,
int
∗length,
int
∗status
); Determine the length of an NDF character component
void
ndfClone(
int
indf1,
int
∗indf2,
int
∗status
); Clone an NDF identifier
void
ndfCmplx(
int
indf,
const
char
∗comp,
int
∗cmplx,
int
∗status
); Determine whether an NDF array component holds complex
values
void
ndfCmsg(
const
char
∗token,
int
indf,
const
char
∗comp,
int
∗status
); Assign the value of an NDF character component to a message
token
void
ndfCopy(
int
indf1,
int
∗place,
int
∗indf2,
int
∗status
); Copy an NDF to a new location
void
ndfCput(
const
char
∗value,
int
indf,
const
char
∗comp,
int
∗status
); Assign a value to an NDF character component
void
ndfCreat(
const
char
∗param,
const
char
∗ftype,
int
ndim,
const
int
lbnd[ ],
const
int
ubnd[ ],
int
∗indf,
int
∗status
); Create a new simple NDF via the ADAM parameter system
void
ndfCrep(
const
char
∗param,
const
char
∗ftype,
int
ndim,
const
int
ubnd[ ],
int
∗indf,
int
∗status
); Create a new primitive NDF via the ADAM parameter system
void
ndfCrepl(
const
char
∗param,
int
∗place,
int
∗status
); Create a new NDF placeholder via the ADAM parameter system
void
ndfDelet(
int
∗indf,
int
∗status
); Delete an NDF
void
ndfDim(
int
indf,
int
ndimx,
int
dim[ ],
int
∗ndim,
int
∗status
); Enquire the dimension sizes of an NDF
void
ndfEnd(
int
∗status
); End the current NDF context
void
ndfExist(
const
char
∗param,
const
char
∗mode,
int
∗indf,
int
∗status
); See if an existing NDF is associated with an ADAM parameter.
void
ndfFind(
const
char
loc[
DAT__SZLOC
],
const
char
∗name,
int
∗indf,
int
∗status
); Find an NDF in an HDS structure and import it into the NDF_
system
void
ndfForm(
int
indf,
const
char
∗comp,
char
∗form,
int
form_length,
int
∗status
); Obtain the storage form of an NDF array component
void
ndfFtype(
int
indf,
const
char
∗comp,
char
∗ftype,
int
ftype_length,
int
∗status
); Obtain the full type of an NDF array component
void ndfGtdlt( int ndf, const char ∗comp,
int ∗zaxis, char
∗ztype, int ztype_length,
float ∗zratio,
int ∗status
);
Get compression details for a DELTA compressed NDF array component
void
ndfGtszd(
int
indf,
const
char
∗comp,
double
∗scale,
double
∗zero,
int
∗status
); Get scale and zero factors for a scaled array in an NDF
void
ndfGtszi(
int
indf,
const
char
∗comp,
int
∗scale,
int
∗zero,
int
∗status
); Get scale and zero factors for a scaled array in an NDF
void
ndfGtszr(
int
indf,
const
char
∗comp,
float
∗scale,
float
∗zero,
int
∗status
); Get scale and zero factors for a scaled array in an NDF
void
ndfGtune(
const
char
∗tpar,
int
∗value,
int
∗status
); Obtain the value of an NDF_ system tuning parameter
void
ndfGtwcs(
int
indf,
AstFrameSet
∗∗iwcs,
int
∗status
); Obtain world coordinate system information from an NDF
void
ndfHappn(
const
char
∗appn,
int
∗status
); Declare a new application name for NDF history recording
void
ndfHcopy(
int
indf1,
int
indf2,
int
∗status
); Copy history information from one NDF to another
void
ndfHcre(
int
indf,
int
∗status
); Ensure that a history component exists for an NDF
void
ndfHdef(
int
indf,
const
char
∗appn,
int
∗status
); Write default history information to an NDF
void
ndfHecho(
int
nlines,
char
∗const
text[ ],
int
∗status
); Write out lines of history text
void
ndfHend(
int
∗status
); End NDF history recording for the current application
void
ndfHfind(
int
indf,
const
int
ymdhm[
5
],
float
sec,
int
eq,
int
∗irec,
int
∗status
); Find an NDF history record by date and time
void
ndfHgmod(
int
indf,
char
∗hmode,
int
∗status
); Get the history update mode for an NDF
void
ndfHinfo(
int
indf,
const
char
∗item,
int
irec,
char
∗value,
int
value_length,
int
∗status
); Obtain information about an NDF’s history component
void
ndfHnrec(
int
indf,
int
∗nrec,
int
∗status
); Determine the number of NDF history records present
void
ndfHout(
int
indf,
int
irec,
void
(
∗routin
)(
int,
char
∗const
[ ],
int
∗
),
int
∗status
); Display text from an NDF history record
void
ndfHpurg(
int
indf,
int
irec1,
int
irec2,
int
∗status
); Delete a range of records from an NDF history component
void
ndfHput(
const
char
∗hmode,
const
char
∗appn,
int
repl,
int
nlines,
char
∗const
text[ ],
int
trans,
int
wrap,
int
rjust,
int
indf,
int
∗status
); Write history information to an NDF
void
ndfHsmod(
const
char
∗hmode,
int
indf,
int
∗status
); Set the history update mode for an NDF
void
ndfHsdat(const
char
∗datee,
int
indf,
int
∗status
); Set the date and time for the next history record in an NDF
void
ndfIsacc(
int
indf,
const
char
∗access,
int
∗isacc,
int
∗status
); Determine whether a specified type of NDF access is available
void
ndfIsbas(
int
indf,
int
∗isbas,
int
∗status
); Enquire if an NDF is a base NDF
void
ndfIsin(
int
indf1,
int
indf2,
int
*isin,
int
∗status
); Enquire if one NDF is contained within another NDF
void
ndfIstmp(
int
indf,
int
∗istmp,
int
∗status
); Determine if an NDF is temporary
void
ndfLoc(
int
indf,
const
char
∗mode,
char
loc[
DAT__SZLOC
],
int
∗status
); Obtain an HDS locator for an NDF
void
ndfMap(
int
indf,
const
char
∗comp,
const
char
∗type,
const
char
∗mmod,
void
∗pntr[ ],
int
∗el,
int
∗status
); Obtain mapped access to an array component of an NDF
void
ndfMapql(
int
indf,
int
∗∗pntr,
int
∗el,
int
∗bad,
int
∗status
); Map the quality component of an NDF as an array of logical
values
void
ndfMapz(
int
indf,
const
char
∗comp,
const
char
∗type,
const
char
∗mmod,
void
∗rpntr[ ],
void
∗ipntr[ ],
int
∗el,
int
∗status
); Obtain complex mapped access to an array component of an
NDF
void
ndfMbad(
int
badok,
int
indf1,
int
indf2,
const
char
∗comp,
int
check,
int
∗bad,
int
∗status
); Merge the bad-pixel flags of the array components of a pair of
NDFs
void
ndfMbadn(
int
badok,
int
n,
const
int
ndfs[ ],
const
char
∗comp,
int
check,
int
∗bad,
int
∗status
); Merge the bad-pixel flags of the array components of a number of
NDFs
void
ndfMbnd(
const
char
∗option,
int
∗indf1,
int
∗indf2,
int
∗status
); Match the pixel-index bounds of a pair of NDFs
void
ndfMbndn(
const
char
∗option,
int
n,
int
ndfs[ ],
int
∗status
); Match the pixel-index bounds of a number of NDFs
void
ndfMsg(
const
char
∗token,
int
indf
); Assign the name of an NDF to a message token
void
ndfMtype(
const
char
∗typlst,
int
indf1,
int
indf2,
const
char
∗comp,
char
∗itype,
int
itype_length,
char
∗dtype,
int
dtype_length,
int
∗status
); Match the types of the array components of a pair of NDFs
void
ndfMtypn(
const
char
∗typlst,
int
n,
const
int
ndfs[ ],
const
char
∗comp,
char
∗itype,
int
itype_length,
char
∗dtype,
int
dtype_length,
int
∗status
); Match the types of the array components of a number of NDFs
void
ndfNbloc(
int
indf,
int
ndim,
const
int
mxdim[ ],
int
∗nblock,
int
∗status
); Determine the number of blocks of adjacent pixels in an
NDF
void
ndfNchnk(
int
indf,
int
mxpix,
int
∗nchunk,
int
∗status
); Determine the number of chunks of contiguous pixels in an
NDF
void
ndfNew(
const
char
∗ftype,
int
ndim,
const
int
lbnd[ ],
const
int
ubnd[ ],
int
∗place,
int
∗indf,
int
∗status
); Create a new simple NDF
void
ndfNewp(
const
char
∗ftype,
int
ndim,
const
int
ubnd[ ],
int
∗place,
int
∗indf,
int
∗status
); Create a new primitive NDF
void
ndfNoacc(
const
char
∗access,
int
indf,
int
∗status
); Disable a specified type of access to an NDF
void
ndfOpen(
const
char
loc[
DAT__SZLOC
],
const
char
∗name,
const
char
∗mode,
const
char
∗stat,
int
∗indf,
int
∗place,
int
∗status
); Open an existing or new NDF
void
ndfPlace(
const
char
loc[
DAT__SZLOC
],
const
char
∗name,
int
∗place,
int
∗status
); Obtain an NDF placeholder
void
ndfProp(
int
indf1,
const
char
∗clist,
const
char
∗param,
int
∗indf2,
int
∗status
); Propagate NDF information to create a new NDF via the ADAM
parameter system
void
ndfPtszd(
double
scale,
double
zero,
int
indf,
const
char
∗comp,
int
∗status
); Store new scale and zero factors for a scaled array in an
NDF
void
ndfPtszi(
int
scale,
int
zero,
int
indf,
const
char
∗comp,
int
∗status
); Store new scale and zero factors for a scaled array in an NDF
void
ndfPtszr(
float
scale,
float
zero,
int
indf,
const
char
∗comp,
int
∗status
); Store new scale and zero factors for a scaled array in an
NDF
void
ndfPtwcs(
AstFrameSet
∗iwcs,
int
indf,
int
∗status
); Store world coordinate system information in an NDF
int
ndfQmask(
unsigned
char
qual,
unsigned
char
badbit
); Combine an NDF quality value with a bad-bits mask to give a logical
result
void
ndfQmf(
int
indf,
int
∗qmf,
int
∗status
); Obtain the value of an NDF’s quality masking flag
void
ndfReset(
int
indf,
const
char
∗comp,
int
∗status
); Reset an NDF component to an undefined state
void
ndfSame(
int
indf1,
int
indf2,
int
∗same,
int
∗isect,
int
∗status
); Enquire if two NDFs are part of the same base NDF
void
ndfSbad(
int
bad,
int
indf,
const
char
∗comp,
int
∗status
); Set the bad-pixel flag for an NDF array component
void
ndfSbb(
signed
char
badbit,
int
indf,
int
∗status
); Set a bad-bits mask value for the quality component of an
NDF
void
ndfSbnd(
int
ndim,
const
int
lbnd[ ],
const
int
ubnd[ ],
int
indf,
int
∗status
); Set new pixel-index bounds for an NDF
void
ndfScopy(
int
indf1,
const
char
∗clist,
int
∗place,
int
∗indf2,
int
∗status
); Selectively copy NDF components to a new location
void
ndfSctyp(
int
indf,
const
char
∗comp,
char
∗type,
int
type_length,
int
∗status
); Obtain the numeric type of a scaled NDF array component
void
ndfSect(
int
indf1,
int
ndim,
const
int
lbnd[ ],
const
int
ubnd[ ],
int
∗indf2,
int
∗status
); Create an NDF section
void
ndfShift(
int
nshift,
const
int
shift[ ],
int
indf,
int
∗status
); Apply pixel-index shifts to an NDF
void
ndfSize(
int
indf,
int
∗npix,
int
∗status
); Determine the size of an NDF
void
ndfSqmf(
int
qmf,
int
indf,
int
∗status
); Set a new logical value for an NDF’s quality masking flag
void
ndfSsary(
int
iary1,
int
indf,
int
∗iary2,
int
∗status
); Create an array section, using an NDF section as a template
void
ndfState(
int
indf,
const
char
∗comp,
int
∗state,
int
∗status
); Determine the state of an NDF component (defined or undefined)
void
ndfStype(
const
char
∗ftype,
int
indf,
const
char
∗comp,
int
∗status
); Set a new type for an NDF array component
void
ndfTemp(
int
∗place,
int
∗status
); Obtain a placeholder for a temporary NDF
void
ndfTune(
int
value,
const
char
∗tpar,
int
∗status
); Set an NDF_ system tuning parameter
void
ndfType(
int
indf,
const
char
∗comp,
char
∗type,
int
type_length,
int
∗status
); Obtain the numeric type of an NDF array component
void
ndfUnmap(
int
indf,
const
char
∗comp,
int
∗status
); Unmap an NDF or a mapped NDF array
void
ndfValid(
int
indf,
int
∗valid,
int
∗status
); Determine whether an NDF identifier is valid
void
ndfXdel(
int
indf,
const
char
∗xname,
int
∗status
); Delete a specified NDF extension
void
ndfXgt0c(
int
indf,
const
char
∗xname,
const
char
∗cmpt,
char
∗value,
int
value_length,
int
∗status
); Read a scalar character string from a component within a named NDF
extension
void
ndfXgt0d(
int
indf,
const
char
∗xname,
const
char
∗cmpt,
double
∗value,
int
∗status
); Read a scalar double precision value from a component within a named
NDF extension
void
ndfXgt0i(
int
indf,
const
char
∗xname,
const
char
∗cmpt,
int
∗value,
int
∗status
); Read a scalar integer value from a component within a named NDF
extension
void
ndfXgt0l(
int
indf,
const
char
∗xname,
const
char
∗cmpt,
int
∗value,
int
∗status
); Read a scalar logical value from a component within a named NDF
extension
void
ndfXgt0r(
int
indf,
const
char
∗xname,
const
char
∗cmpt,
float
∗value,
int
∗status
); Read a scalar single precision value from a component within a named
NDF extension
void
ndfXiary(
int
indf,
const
char
∗xname,
const
char
∗cmpt,
const
char
∗mode,
int
∗iary,
int
∗status
); Obtain access to an array stored in an NDF extension
void
ndfXloc(
int
indf,
const
char
∗xname,
const
char
∗mode,
char
loc[
DAT__SZLOC
],
int
∗status
); Obtain access to a named NDF extension via an HDS locator
void
ndfXname(
int
indf,
int
n,
char
∗xname,
int
xname_length,
int
∗status
); Obtain the name of the N’th extension in an NDF
void
ndfXnew(
int
indf,
const
char
∗xname,
const
char
∗type,
int
ndim,
const
int
dim[ ],
char
loc[
DAT__SZLOC
],
int
∗status
); Create a new extension in an NDF
void
ndfXnumb(
int
indf,
int
∗nextn,
int
∗status
); Determine the number of extensions in an NDF
void
ndfXpt0c(
const
char
∗value,
int
indf,
const
char
∗xname,
const
char
∗cmpt,
int
∗status
); Write a scalar character string to a component within a named NDF
extension
void
ndfXpt0d(
double
value,
int
indf,
const
char
∗xname,
const
char
∗cmpt,
int
∗status
); Write a scalar double precision value to a component within a named
NDF extension
void
ndfXpt0i(
int
value,
int
indf,
const
char
∗xname,
const
char
∗cmpt,
int
∗status
); Write a scalar integer value to a component within a named NDF
extension
void
ndfXpt0l(
int
value,
int
indf,
const
char
∗xname,
const
char
∗cmpt,
int
∗status
); Write a scalar logical value to a component within a named NDF
extension
void
ndfXpt0r(
float
value,
int
indf,
const
char
∗xname,
const
char
∗cmpt,
int
∗status
); Write a scalar single precision value to a component within a named
NDF extension
void
ndfXstat(
int
indf,
const
char
∗xname,
int
∗there,
int
∗status
); Determine if a named NDF extension exists
void
ndfZscal(
int
indf1,const
char
∗type,
double
scale[
2
],
double
zero[
2
],
int
∗place,
int
∗indf2,
int
*status
); Create a compressed copy of an NDF using SCALE compression