#include #include #include int main(int argc,char **argv) { int i,j,k; int hr,mi,se; int ms; static float pwr1[900]; // RH static float pwr2[900]; // LH static float dum[900]; FILE *fp; static char buf[256]; int c0,c1,c2,c3; int year,mon,day; float f; year=(argv[1][0]-'0')*1000+(argv[1][1]-'0')*100+ (argv[1][2]-'0')*10+(argv[1][3]-'0'); mon=(argv[1][4]-'0')*10+(argv[1][5]-'0'); day=(argv[1][6]-'0')*10+(argv[1][7]-'0'); for (i=0;i<900;i++) dum[i]=-999; //ms1=ms2=0; for (i=0;i<144;i++) { sprintf(buf,"/home/jupiter/wdp5a/10min/%s/%s%02d%02d00.10min", argv[1],argv[1],i/6,(i%6)*10); if (NULL==(fp=fopen(buf,"r"))) { hr=i/6; mi=(i%6)*10; se=0; fputc(hr,stdout); fputc(mi,stdout); fputc(se,stdout); fputc(0,stdout); fwrite(dum,sizeof(float),900,stdout); fwrite(dum,sizeof(float),900,stdout); } else { //fprintf(stderr,"%d\n",i); for (j=0;j<1200;j++) { hr=i/6; mi=(i%6)*10+j/120; se=(j%120)/2; ms=(j%2)*50; for (k=0;k<900;k++) { f=(452+k)/4096.0*125; // [MHz] c0=fgetc(fp);c1=fgetc(fp); c2=fgetc(fp);c3=fgetc(fp); pwr1[k]=(c0+256*c1)/100.0+20*log10(f)-270+260; // Ch1 -> dBJy pwr2[k]=(c2+256*c3)/100.0+20*log10(f)-270+260; // Ch2 -> dBJy } fputc(hr,stdout); fputc(mi,stdout); fputc(se,stdout); fputc(ms,stdout); fwrite(pwr1,sizeof(float),900,stdout); fwrite(pwr2,sizeof(float),900,stdout); } fclose(fp); } } exit(0); }