qfits/qfits/html/struct_qfitsloader.html

568 lines
16 KiB
HTML

<html>
<head>
<meta name="keywords" content="eso, FITS format, C library">
<link href="doxygen.css" rel="stylesheet" type="text/css">
<title>qfits 4.3.3</title>
</head>
<body text="#000000" bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Wed Nov 5 16:04:35 2003 -->
<h1>qfitsloader Struct Reference</h1>qfits loader control object.
<a href="#_details">More...</a>
<p>
<code>#include &lt;qfits.h&gt;</code>
<p>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m0">_init</a></td></tr>
<tr><td nowrap align=right valign=top>char*&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m1">filename</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m2">xtnum</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m3">pnum</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m4">ptype</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m5">map</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m6">exts</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m7">lx</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m8">ly</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m9">np</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m10">bitpix</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m11">seg_start</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m12">seg_size</a></td></tr>
<tr><td nowrap align=right valign=top>double&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m13">bscale</a></td></tr>
<tr><td nowrap align=right valign=top>double&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m14">bzero</a></td></tr>
<tr><td nowrap align=right valign=top>int*&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m15">ibuf</a></td></tr>
<tr><td nowrap align=right valign=top>float*&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m16">fbuf</a></td></tr>
<tr><td nowrap align=right valign=top>double*&nbsp;</td><td valign=bottom><a class="el" href="struct_qfitsloader.html#m17">dbuf</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
qfits loader control object.
<p>
<p>
This structure serves two purposes: input and output for the qfits pixel loading facility. To request pixels from a FITS file, you need to allocate (statically or dynamically) such a structure and fill up the input fields (filename, xtension number, etc.) to specify the pixels you want from the file.
<p>
Before performing the actual load, you must pass the initialized structure to <a class="el" href="qfits_h.html#a64">qfitsloader_init</a>() which will check whether the operation is feasible or not (check its returned value).
<p>
If the operation was deemed feasible, you can proceed to load the pixels, passing the same structure to <a class="el" href="qfits_h.html#a65">qfits_loadpix</a>() which will fill up the output fields of the struct. Notice that a pixel buffer will have been allocated (through malloc or mmap) and placed into the structure. You need to call free() on this pointer when you are done with it, typically in the image or cube destructor.
<p>
The <a class="el" href="qfits_h.html#a64">qfitsloader_init</a>() function is also useful to probe a FITS file for useful informations, like getting the size of images in the file, the pixel depth, or data offset.
<p>
Example of a code that prints out various informations about a plane to load, without actually loading it:
<p>
<div class="fragment"><pre><font class="keywordtype">int</font> main(<font class="keywordtype">int</font> argc, <font class="keywordtype">char</font> * argv[])<font class="keyword"></font>
<font class="keyword"></font>{
<a class="code" href="struct_qfitsloader.html">qfitsloader</a> ql ;
ql.filename = argv[1] ;
ql.xtnum = 0 ;
ql.pnum = 0 ;
<font class="keywordflow">if</font> (<a class="code" href="qfits_h.html#a64">qfitsloader_init</a>(&amp;ql)!=0) {
printf(<font class="stringliteral">"cannot read info about %s\n"</font>, argv[1]);
<font class="keywordflow">return</font> -1 ;
}
printf( <font class="stringliteral">"file : %s\n"</font>
<font class="stringliteral">"xtnum : %d\n"</font>
<font class="stringliteral">"pnum : %d\n"</font>
<font class="stringliteral">"# xtensions : %d\n"</font>
<font class="stringliteral">"size X : %d\n"</font>
<font class="stringliteral">"size Y : %d\n"</font>
<font class="stringliteral">"planes : %d\n"</font>
<font class="stringliteral">"bitpix : %d\n"</font>
<font class="stringliteral">"datastart : %d\n"</font>
<font class="stringliteral">"datasize : %d\n"</font>
<font class="stringliteral">"bscale : %g\n"</font>
<font class="stringliteral">"bzero : %g\n"</font>,
ql.filename,
ql.xtnum,
ql.pnum,
ql.exts,
ql.lx,
ql.ly,
ql.np,
ql.bitpix,
ql.seg_start,
ql.seg_size,
ql.bscale,
ql.bzero);
<font class="keywordflow">return</font> 0 ;
}</div></pre>
<p>
<hr><h2>Field Documentation</h2>
<a name="m0" doxytag="qfitsloader::_init"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::_init
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Private field to see if structure has been initialized </td>
</tr>
</table>
<a name="m10" doxytag="qfitsloader::bitpix"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::bitpix
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: BITPIX for this extension </td>
</tr>
</table>
<a name="m13" doxytag="qfitsloader::bscale"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
double qfitsloader::bscale
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: BSCALE found for this extension </td>
</tr>
</table>
<a name="m14" doxytag="qfitsloader::bzero"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
double qfitsloader::bzero
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: BZERO found for this extension </td>
</tr>
</table>
<a name="m17" doxytag="qfitsloader::dbuf"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
double * qfitsloader::dbuf
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Pointer to pixel buffer loaded as double values </td>
</tr>
</table>
<a name="m6" doxytag="qfitsloader::exts"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::exts
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Total number of extensions found in file </td>
</tr>
</table>
<a name="m16" doxytag="qfitsloader::fbuf"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
float * qfitsloader::fbuf
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Pointer to pixel buffer loaded as float values </td>
</tr>
</table>
<a name="m1" doxytag="qfitsloader::filename"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
char * qfitsloader::filename
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
input: Name of the file you want to read pixels from </td>
</tr>
</table>
<a name="m15" doxytag="qfitsloader::ibuf"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int * qfitsloader::ibuf
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Pointer to pixel buffer loaded as integer values </td>
</tr>
</table>
<a name="m7" doxytag="qfitsloader::lx"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::lx
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Size in X of the requested plane </td>
</tr>
</table>
<a name="m8" doxytag="qfitsloader::ly"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::ly
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Size in Y of the requested plane </td>
</tr>
</table>
<a name="m5" doxytag="qfitsloader::map"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::map
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
input: Guarantee file copy or allow file mapping </td>
</tr>
</table>
<a name="m9" doxytag="qfitsloader::np"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::np
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Number of planes present in this extension </td>
</tr>
</table>
<a name="m3" doxytag="qfitsloader::pnum"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::pnum
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
input: Index of the plane you want, from 0 to np-1 </td>
</tr>
</table>
<a name="m4" doxytag="qfitsloader::ptype"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::ptype
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
input: Pixel type you want (PTYPE_FLOAT, PTYPE_INT or PTYPE_DOUBLE) </td>
</tr>
</table>
<a name="m12" doxytag="qfitsloader::seg_size"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::seg_size
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Size of the data segment (in bytes) for your request </td>
</tr>
</table>
<a name="m11" doxytag="qfitsloader::seg_start"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::seg_start
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
output: Start of the data segment (in bytes) for your request </td>
</tr>
</table>
<a name="m2" doxytag="qfitsloader::xtnum"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
int qfitsloader::xtnum
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
input: xtension number you want to read </td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="qfits_h.html">qfits.h</a></ul>
</body>
</html>