##// END OF EJS Templates
Fixing plots
Fixing plots

File last commit:

r0:b84e1135c2c4
r7:4e0b343b0c61
Show More
testParmArray.c
124 lines | 3.1 KiB | text/x-c | CLexer
/* $Id: testParmArray.c 3304 2011-01-17 15:25:59Z brideout $ */
/*
modification history
--------------------
00a,22Apr00 original
*/
/*
* USAGE: testParmArray cedarFile fileType
* e.f.: testParmArray mil991102g.001 3
* This program is a simple example illustrating the use of the madrec
* library. It is hardwired to open and process
* $MADROOT/experiments/1998/mlh/20jan98/mil980120g.002.
*
* Supported formats:
*
* Open Cedar file for sequential reading:
* 1 - Determine file type automatically
* 10 - Madrigal
* 11 - Blocked Binary
* 12 - Cbf
* 13 - Unblocked Binary
* 14 - Ascii
*
* Open Cedar file for random reading using memory image of file;
* 3 - Determine file type automatically
* 30 - Madrigal file
* 31 - Blocked Binary file
* 32 - Cbf file
* 33 - Unblocked Binary file
* 34 - Ascii file
*/
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <cedarIO.h>
#include <madrec.h>
#include <cedar.h>
int
main (argc, argv)
int argc;
char *argv[];
{
Madrec *madrecp;
char madfile[128];
int iotype, i, j, k, nlines, nrecs, ind;
double *parp;
Ffspec fspec;
int pparms[7] = {34, 120, 132, 142, 550, 10, 160};
int fparms[4] = {34, 120, 142, 110};
double fmin[4] = { 2.0, 200.0, 80.0, 300.0};
double fmax[4] = { 2.5, 600.0, 89.0, 400.0};
/* Get the name of the madrigal file */
if (argc != 3) {
cedarGetMadroot(madfile);
strcat(madfile, "/experiments/1998/mlh/20jan98/mil980120g.002");
iotype = 1;
} else {
strcpy(madfile, argv[1]);
iotype = atoi(argv[2]);
}
/* Create a madrec object */
madrecp = madrecCreate();
printf("create: %s\n", madrecGetError(madrecp));
/* Connect the madrec object to a madrigal file */
madrecOpen(madrecp, iotype, madfile);
printf("open: %s\n", madrecGetError(madrecp));
/* Specify cedarGetParmArray arguments */
fspec.nparms = 7;
fspec.pparms = pparms;
fspec.nfilters = 4;
fspec.fparms = fparms;
fspec.fmin = fmin;
fspec.fmax = fmax;
/* Read the file */
nrecs = 999999;
for (j=0; j<nrecs; j++) {
ind = madrecGetNextRec(madrecp);
if (ind != 0) {
if (ind == -1)
break;
printf("Error reading cedar file\n");
return(0);
}
parp = cedarGetParmArray(madrecp->recordp, &fspec, &nlines);
for (i=0; i<nlines; i++) {
for (k=0; k<fspec.nparms; k++) {
printf("%12.5e", parp[i+nlines*k]);
}
printf("\n");
}
free(parp);
}
/* Print the record */
/*
cedarPrintRecord(madrecp->recordp);
printf("printRecord: %s\n", madrecGetError(madrecp));
*/
/* Disconnect the madrigal file */
madrecClose(madrecp);
printf("close: %s\n", madrecGetError(madrecp));
/* Destroy the madrec object */
madrecDestroy(madrecp);
return(0);
}