#include #include #include #include #include #include "cdf.h" #include // ------------------ // Global Variables // ------------------ // **************** // Status handler // **************** void StatusHandler (CDFstatus status,int code) { char message[CDF_ERRTEXT_LEN+1]; if (status < CDF_WARN) { printf ("%d: ",code); printf ("An error has occurred, halting...\n"); CDFerror (status, message); printf ("%s\n", message); exit (status); } else if (status < CDF_OK) { printf ("%d: ",code); printf ("Warning, function may not have completed as expected...\n"); CDFerror (status, message); printf ("%s\n", message); } else if (status > CDF_OK) { printf ("%d: ",code); printf ("Function completed successfully, but be advised that...\n"); CDFerror (status, message); printf ("%s\n", message); } return; } int main(int argc,char **argv) { static float FreqTable[700],pwr1[700],pwr2[700]; static unsigned char pwr1s[700]; static unsigned char pwr2s[700]; //static short int ipwr1[700],ipwr2[700]; int i,j,mp; char fn0[256],fn1[256]; //--- Variables for CDF -------------------------- CDFid id; long FreqVarNum,EpochVarNum; /* Variable Number */ long Rx1VarNum,ModeVarNum,GainVarNum; /* Variable Number */ long Rx2VarNum; /* Variable Number */ double EpochMin,EpochMax; long yr,mo,dy,hr,mi,se,ms; double Epoch; float Freq,Rx1,Rx2; // Frequency,Intensity CDFstatus status; /* CDF completion status. */ long indices[1]; /* Dimension indices. */ long recNum; /* Record number. */ //------------------------------------------------ long numDims = 1; // Number of dimensions, rVariables. long dimSizes[1] = {700}; // Dimension sizes, rVariables. long dimVarys[1]; // Dimension variances. long VarNum2; long AttrNum; static char buf[2048],sbuf[256]; static long dimIndices[1],dimCounts[1],dimInterval[1]; double dval; //short int fval; float fval; float ffval; unsigned char sval; int n,md,j0,j1,gn,ms1,ms2; FILE *fp; static char mnm[12][8]={"Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec"}; //--- FreqTable ----------------------------------- for (i=0;i<700;i++) { FreqTable[i]=15e6+(40e6-15e6)/699.0*i; // [Hz] } //============================================= yr=(argv[1][ 0]-'0')*1000+(argv[1][ 1]-'0')*100 +(argv[1][ 2]-'0')*10 +(argv[1][ 3]-'0'); mo=(argv[1][ 4]-'0')*10 +(argv[1][ 5]-'0'); dy=(argv[1][ 6]-'0')*10 +(argv[1][ 7]-'0'); hr=mi=se=0; //date=yr*10000+mo*100+dy; sprintf(fn0,"it_h1_hf_%04d%02d%02d_v01",yr,mo,dy); sprintf(fn1,"%s.cdf",fn0); remove(fn1); // If there is CDF file with the same name //fprintf(stderr,"aaa\n"); status = CDFcreateCDF (fn0, &id); if (status != CDF_OK) StatusHandler (status,1); status = CDFcreatezVar(id, "Epoch", // Variable name CDF_EPOCH, // Data type 1L, // Number of elements 0L, // Dimensionality dimSizes, // Dimension sizes (dim=0,ignored) VARY, // Record variance dimVarys, // Dimension variance (dim=0,ignored) &EpochVarNum); if (status != CDF_OK) StatusHandler (status,101); dimVarys[0] = VARY; dimSizes[0] = 700; status = CDFcreatezVar(id, "Frequency", // Variable name CDF_REAL4, // Data type 1L, // Number of elements 1L, // Dimensionality dimSizes, // Dimension sizes NOVARY, // Record variance dimVarys, // Dimension variance &FreqVarNum); if (status != CDF_OK) StatusHandler (status,104); dimVarys[0] = VARY; dimSizes[0] = 700; status = CDFcreatezVar(id, "RH", // Variable name CDF_UINT1, // Data type //CDF_REAL4, // Data type 1L, // Number of elements 1L, // Dimensionality dimSizes, // Dimension VARY, // Record variance dimVarys, // Dimension variance &Rx1VarNum); if (status != CDF_OK) StatusHandler (status,105); dimVarys[0] = VARY; dimSizes[0] = 700; status = CDFcreatezVar(id, "LH", // Variable name CDF_UINT1, // Data type //CDF_REAL4, // Data type 1L, // Number of elements 1L, // Dimensionality dimSizes, // Dimension VARY, // Record variance dimVarys, // Dimension variance &Rx2VarNum); if (status != CDF_OK) StatusHandler (status,106); status = CDFcreateAttr(id, "Project", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,200); status = CDFcreateAttr(id, "Source_name", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,201); status = CDFcreateAttr(id, "Discipline", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,202); status = CDFcreateAttr(id, "Data_type", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,203); status = CDFcreateAttr(id, "Descriptor", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,204); status = CDFcreateAttr(id, "Data_version", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,205); status = CDFcreateAttr(id, "Logical_file_id", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,206); status = CDFcreateAttr(id, "PI_name", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,207); status = CDFcreateAttr(id, "PI_affiliation", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,208); status = CDFcreateAttr(id, "TEXT", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,209); status = CDFcreateAttr(id, "Instrument_type", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,210); status = CDFcreateAttr(id, "Mission_group", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,211); status = CDFcreateAttr(id, "Logical_source", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,212); status = CDFcreateAttr(id, "Logical_source_description", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,213); // status = CDFcreateAttr(id, "Acknowledgement", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,214); status = CDFcreateAttr(id, "ADID_ref", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,215); status = CDFcreateAttr(id, "Generated_by", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,216); status = CDFcreateAttr(id, "Generation_date", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,217); status = CDFcreateAttr(id, "MODS", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,218); status = CDFcreateAttr(id, "Rules_of_use", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,219); status = CDFcreateAttr(id, "Time_resolution", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,220); status = CDFcreateAttr(id, "TITLE", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,221); status = CDFcreateAttr(id, "Start time", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,222); status = CDFcreateAttr(id, "End time", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,223); status = CDFcreateAttr (id, "CATDESC", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,300); status = CDFcreateAttr (id, "DEPEND_0", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,301); status = CDFcreateAttr (id, "DEPEND_1", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,302); status = CDFcreateAttr (id, "DISPLAY_TYPE", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,303); status = CDFcreateAttr (id, "FIELDNAM", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,304); status = CDFcreateAttr (id, "FILLVAL", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,305); status = CDFcreateAttr (id, "FORMAT", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,306); status = CDFcreateAttr (id, "LABLAXIS", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,307); status = CDFcreateAttr (id, "UNITS", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,308); status = CDFcreateAttr (id, "VALIDMIN", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,309); status = CDFcreateAttr (id, "VALIDMAX", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,310); status = CDFcreateAttr (id, "VAR_TYPE", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,311); status = CDFcreateAttr (id, "SCALETYP", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,312); status = CDFcreateAttr (id, "MONOTON", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,313); // status = CDFcreateAttr (id, "DICT_KEY", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,314); status = CDFcreateAttr (id, "VAR_NOTE", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,315); sprintf(buf,"ISTP>International Solar-Terrestrial Physics"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Project"), 0L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,400); sprintf(buf,"Iitate > Iitate observatory"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Source_name"), 1L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,401); sprintf(buf,"Space Physics > Magnetospheric Science"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Discipline"), 2L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,402); sprintf(buf,"H1 > High Resolution data"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Data_type"), 3L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,403); sprintf(buf,"WBS > Wideband Spectrometer"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Descriptor"), 4L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,404); sprintf(buf,"1"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Data_version"), 5L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,405); sprintf(buf,"%s",fn0); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Logical_file_id"), 6L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,406); sprintf(buf,"A. Kumamoto"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"PI_name"), 7L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,407); sprintf(buf,"Tohoku University"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"PI_affiliation"), 8L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,408); sprintf(buf," "); // References status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"TEXT"), 9L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,409); sprintf(buf,"Ground based Radio Telescope"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Instrument_type"), 10L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,410); sprintf(buf,"PPARC, Tohoku Univ."); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Mission_group"), 11L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,411); sprintf(buf,"it_h1_hf"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Logical_source"), 12L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,412); sprintf(buf,"Spectrogram from Iitate High Frequency Radio Antenna"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Logical_source_description"), 13L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,413); // sprintf(buf,"Iitate HF data were provided by PPARC, Tohoku Univ."); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Acknowledgement"), 14L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,414); sprintf(buf,"-"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"ADID_ref"), 15L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,415); sprintf(buf,"Tohoku University"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Generated_by"), 16L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,416); fp=popen("/bin/date '+%Y%m%d'","r"); fgets(sbuf,255,fp); pclose(fp); sscanf(sbuf,"%s",buf); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Generation_date"), 17L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,417); sprintf(buf," "); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"MODS"), 18L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,418); sprintf(buf," In order to confirm the reliability of the data, you are requested to contact the Iitate HF data manager, Dr. Atsushi Kumamoto at Tohoku University before using the Iitate HF data in oral/poster presentations. In the publishment, You should contact to the Iitate HF data manager, Dr. Atsushi Kumamoto at Tohoku University before the submission for the confirmation of the principle of authorship/acknowledgement. You are also requested to send reprints to Iitate HF Data manager. Iitate HF Data Manager: Dr. Atsushi Kumamoto, Tohoku University, Aoba, Aramaki, Aoba-ku, Sendai, 980-8578, Japan. E-mail: kumamoto@pparc.gp.tohoku.ac.jp. FAX: +81-22-795-6406."); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Rules_of_use"), 19L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,419); sprintf(buf,"1s"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Time_resolution"), 20L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,420); sprintf(buf,"Iitate HF data"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"TITLE"), 21L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,421); sprintf(buf,"%02d-%s-%04d 00:00:00.000",dy,mnm[mo-1],yr); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Start time"), 22L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,422); sprintf(buf,"%02d-%s-%04d 23:59:59.999",dy,mnm[mo-1],yr); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"End time"), 23L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,423); sprintf(buf,"Time (UT)"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,500); sprintf(buf," "); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,501); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,502); dval=-1e+31; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"Epoch"), CDF_REAL8,1,&dval); if (status != CDF_OK) StatusHandler (status,503); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,504); sprintf(buf,"s"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,505); dval=computeEPOCH(1989,1,1,0,0,0,0); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"Epoch"), CDF_REAL8,1,&dval); if (status != CDF_OK) StatusHandler (status,506); dval=computeEPOCH(2020,1,1,0,0,0,0); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"Epoch"), CDF_REAL8,1,&dval); if (status != CDF_OK) StatusHandler (status,507); sprintf(buf,"support_data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,508); sprintf(buf,"Linear"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,509); sprintf(buf,"INCREASE"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"MONOTON"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,510); // sprintf(buf,"time>Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DICT_KEY"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,511); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,600); sprintf(buf," "); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,601); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,602); ffval=-1e+15; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"Frequency"), CDF_REAL4,1,&ffval); if (status != CDF_OK) StatusHandler (status,603); sprintf(buf,"E9.3"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FORMAT"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,604); sprintf(buf,"frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,605); sprintf(buf,"Hz"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,606); ffval=15.0e6; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"Frequency"), CDF_REAL4,1,&ffval); if (status != CDF_OK) StatusHandler (status,607); ffval=40.0e6; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"Frequency"), CDF_REAL4,1,&ffval); if (status != CDF_OK) StatusHandler (status,608); sprintf(buf,"support_data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,609); sprintf(buf,"log"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,610); // sprintf(buf,"INCREASE"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"MONOTON"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,611); sprintf(buf,"Power Flux Density (RH)"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,700); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_0"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,701); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_1"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,702); sprintf(buf,"spectrogram"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,703); sprintf(buf,"RH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,704); //fval=-999; sval=255; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"RH"), CDF_UINT1,1,&sval); //CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,705); //sprintf(buf,"F6.1f"); //status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FORMAT"), // CDFvarNum(id,"RH"), // CDF_CHAR, strlen(buf),buf); //if (status != CDF_OK) StatusHandler (status,706); sprintf(buf,"RH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,707); if (argv[2][0]=='C') sprintf(buf,"dBW/m^2/Hz"); else sprintf(buf,"dB"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,708); //fval=-300; sval=0; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"RH"), CDF_UINT1,1,&sval); //CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,709); //fval=-100; sval=150; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"RH"), CDF_UINT1,1,&sval); //CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,710); sprintf(buf,"data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,711); sprintf(buf,"Linear"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,712); // sprintf(buf,"frequency>power_flux_density_channel"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DICT_KEY"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,713); sprintf(buf,"Power Flux Density (LH)"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,800); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_0"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,801); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_1"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,802); sprintf(buf,"spectrogram"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,803); sprintf(buf,"LH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,804); //fval=-999; sval=255; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"LH"), CDF_UINT1,1,&sval); //CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,805); //sprintf(buf,"F6.1"); //status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FORMAT"), // CDFvarNum(id,"LH"), // CDF_CHAR, strlen(buf),buf); //if (status != CDF_OK) StatusHandler (status,806); sprintf(buf,"LH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,807); if (argv[2][0]=='C') sprintf(buf,"dBW/m^2/Hz"); else sprintf(buf,"dB"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,808); //fval=-300; sval=0; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"LH"), CDF_UINT1,1,&sval); //CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,809); //fval=-100; sval=150; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"LH"), CDF_UINT1,1,&sval); //CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,810); sprintf(buf,"data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,811); sprintf(buf,"Linear"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,812); // sprintf(buf,"frequency>power_flux_density_channel"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DICT_KEY"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,813); recNum=0; while (1) { hr=fgetc(stdin);if (feof(stdin)) break; mi=fgetc(stdin); se=fgetc(stdin); ms1=fgetc(stdin); ms2=fgetc(stdin); ms=ms1*10+ms2/10; fread(pwr1,sizeof(float),700,stdin); fread(pwr2,sizeof(float),700,stdin); for (i=0;i<700;i++) { if (pwr1[i]>-900) pwr1s[i]=pwr1[i]; else pwr1s[i]=255; if (pwr2[i]>-900) pwr2s[i]=pwr2[i]; else pwr2s[i]=255; } // ----------------------------------------------------- // CDF File Write // ----------------------------------------------------- Epoch=computeEPOCH(yr,mo,dy,hr,mi,se,ms); status=CDFputzVarRecordData(id,EpochVarNum,recNum,&Epoch); if (status!=CDF_OK) StatusHandler(status,1001); if (recNum==0) { dimIndices[0] = 0; dimCounts[0] = 700; dimInterval[0] = 1; status=CDFhyperPutzVarData(id, FreqVarNum, 0L, /* record start */ 1L, /* # of records to write */ 1L, /* record interval */ dimIndices, /* dimension dimIndices */ dimCounts, /* dimension counts */ dimInterval, /* dimension interval */ FreqTable); if (status!=CDF_OK) StatusHandler(status,1003); } dimIndices[0] = 0; dimCounts[0] = 700; dimInterval[0] = 1; status=CDFhyperPutzVarData(id, Rx1VarNum, recNum, /* record start */ 1L, /* # of records to write */ 1L, /* record interval */ dimIndices, /* dimension dimIndices */ dimCounts, /* dimension counts */ dimInterval, /* dimension interval */ pwr1s); //pwr1); if (status!=CDF_OK) StatusHandler(status,1004); dimIndices[0] = 0; dimCounts[0] = 700; dimInterval[0] = 1; status=CDFhyperPutzVarData(id, Rx2VarNum, recNum, /* record start */ 1L, /* # of records to write */ 1L, /* record interval */ dimIndices, /* dimension dimIndices */ dimCounts, /* dimension counts */ dimInterval, /* dimension interval */ pwr2s); //pwr2); if (status!=CDF_OK) StatusHandler(status,1005); recNum++; } status = CDFcloseCDF(id); if (status!=CDF_OK) StatusHandler(status,1006); } // ------------------- // LRS-NPW-CDF Ver.1 // ------------------- //