38 return "unsigned char";
40 return "unsigned int_2";
42 return "unsigned int_4";
44 return "unsigned int_8";
52 return "double complex";
64 return sizeof(
char );
66 return sizeof( short );
70 return sizeof( FRLONG );
72 return sizeof(
unsigned char );
74 return sizeof(
unsigned short );
76 return sizeof(
unsigned int );
78 return sizeof( FRULONG );
80 return sizeof(
float );
82 return sizeof( double );
84 return 2 *
sizeof(
float );
86 return 2 *
sizeof( double );
94 size_t nobj,
int type )
100 for (
i = 0;
i < nobj; ++
i )
110 for (
i = 0;
i < nobj; ++
i )
117 for (
i = 0;
i < nobj; ++
i )
124 for (
i = 0;
i < nobj; ++
i )
127 fprintf(
fp,
"%e\t%ld\n", x0 +
i * dx, (
long)val[
i] );
131 for (
i = 0;
i < nobj; ++
i )
133 unsigned char *val =
data;
138 for (
i = 0;
i < nobj; ++
i )
140 unsigned short *val =
data;
145 for (
i = 0;
i < nobj; ++
i )
147 unsigned int *val =
data;
151 return sizeof(
unsigned int );
153 for (
i = 0;
i < nobj; ++
i )
156 fprintf(
fp,
"%e\t%lu\n", x0 +
i * dx, (
unsigned long)val[
i] );
160 for (
i = 0;
i < nobj; ++
i )
167 for (
i = 0;
i < nobj; ++
i )
174 for (
i = 0;
i < nobj; ++
i )
177 fprintf(
fp,
"%e\t%e\t%e\n", x0 +
i * dx, val[2*
i], val[2*
i+1] );
181 for (
i = 0;
i < nobj; ++
i )
184 fprintf(
fp,
"%e\t%e\t%e\n", x0 +
i * dx, val[2*
i], val[2*
i+1] );
198 fprintf(
fp,
"# name = %s\n", v->name ? v->name :
"" );
200 fprintf(
fp,
"# nData = %ld\n", (
long)v->nData );
202 fprintf(
fp,
"# dims = %ld", (
long)v->nx[0] );
203 for ( dim = 1; dim < v->nDim; ++dim )
204 fprintf(
fp,
", %ld", (
long)v->nx[dim] );
206 fprintf(
fp,
"# unitX = %s", v->unitX[0] ? v->unitX[0] :
"" );
207 for ( dim = 1; dim < v->nDim; ++dim )
208 fprintf(
fp,
", %s", v->unitX[dim] ? v->unitX[dim] :
"" );
210 fprintf(
fp,
"# unitY = %s\n", v->unitY ? v->unitY :
"" );
215 for ( dim = 1; dim < v->nDim; ++dim )
225int main(
int argc,
char *argv[] )
227 struct FrFile *frfile;
228 struct FrameH *frame;
236 fprintf( stderr,
"usage: %s infilename channels\n", argv[0] );
242 nchannels = argc - 2;
244 FrLibIni( NULL, stderr, 0 );
246 if ( ! ( frfile = FrFileINew(
fname ) ) )
247 return fputs(
"file not found!\n", stderr ), 1;
249 while ( ( frame = FrameRead( frfile ) ) )
252 for ( chan = 0; chan < nchannels; ++chan )
254 struct FrAdcData *adc;
255 struct FrProcData *
proc;
256 struct FrSimData *sim;
259 if ( ( adc = FrAdcDataFind( frame, channels[chan] ) ) )
262 sprintf( ofname,
"%s-%03u.dat", channels[chan], frame->frame );
264 sprintf( ofname,
"%s-%u.dat", channels[chan], frame->GTimeS );
265 if ( ! (
fp = fopen( ofname,
"w" ) ) )
266 return fprintf( stderr,
"could not open output file %s!",
fname ), 1;
267 fprintf( stderr,
"writing to file %s\n", ofname );
268 fprintf(
fp,
"## name = %s\n", adc->name ? adc->name :
"" );
269 fprintf(
fp,
"## comment = %s\n", adc->comment?adc->comment:
"" );
270 fprintf(
fp,
"## crate = %u\n", adc->channelGroup );
271 fprintf(
fp,
"## channel = %u\n", adc->channelNumber );
272 fprintf(
fp,
"## bias = %f\n", adc->bias );
273 fprintf(
fp,
"## slope = %f\n", adc->slope );
274 fprintf(
fp,
"## units = %s\n", adc->units ? adc->units :
"" );
275 fprintf(
fp,
"## sample rate (Hz) = %f\n", adc->sampleRate );
276 fprintf(
fp,
"## GPS time (s) = %u.%09u\n", frame->GTimeS,
280 fprintf(
fp,
"## freq shift (Hz) = %f\n", adc->fShift );
282 adc->dataValid ?
"no" :
"yes" );
290 else if ( (
proc = FrProcDataFind( frame, channels[chan] ) ) )
293 sprintf( ofname,
"%s-%03u.dat", channels[chan], frame->frame );
295 sprintf( ofname,
"%s-%u.dat", channels[chan], frame->GTimeS );
296 if ( ! (
fp = fopen( ofname,
"w" ) ) )
297 return fprintf( stderr,
"could not open output file %s!",
fname ), 1;
298 fprintf( stderr,
"writing to file %s\n", ofname );
302 proc->comment ?
proc->comment :
"" );
303 fprintf(
fp,
"## GPS time (s) = %u.%09u\n", frame->GTimeS,
313 else if ( ( sim = FrSimDataFind( frame, channels[chan] ) ) )
316 sprintf( ofname,
"%s-%03u.dat", channels[chan], frame->frame );
318 sprintf( ofname,
"%s-%u.dat", channels[chan], frame->GTimeS );
319 if ( ! (
fp = fopen( ofname,
"w" ) ) )
320 return fprintf( stderr,
"could not open output file %s!",
fname ), 1;
321 fprintf( stderr,
"writing to file %s\n", ofname );
323 sim->name ? sim->name :
"" );
325 sim->comment ? sim->comment :
"" );
326 fprintf(
fp,
"## GPS time (s) = %u.%09u\n", frame->GTimeS,
328 fprintf(
fp,
"## freq shift (Hz) = %f\n", sim->fShift );
338 fprintf( stderr,
"warning: channel %s not found in frame %d\n", channels[chan], frame->frame );
344 FrFileIEnd( frfile );
int main(int argc, char *argv[])
static int writeFrVect(FILE *fp, struct FrVect *v)
static int writeFrVectData(FILE *fp, double x0, double dx, void *data, size_t nobj, int type)
static size_t typesize(int type)
static const char * typestr(int type)
CHAR type[LIGOMETA_TYPE_MAX]