8 main(
int argc,
char **argv)
13 FILE *afosfile,*biasfile;
15 int i,
j,n,ihr,iminute,len,
len2,
k,kk;
18 char hour[3],minute[3],radar[4],chour[3],ncharrows;
19 char param[7],junk[4],t1[7],t2[7],t3[7];
20 char maxval[7],bias[7],error[7],jdate[7],jmin[7];
21 char outname[81],biasname[81],sjunk[50],lradar[4];
24 signed char data[300];
37 unsigned char cbytes1,cbytes2;
44 afosfile = fopen(argv[1],
"rb");
47 printf(
"could not open %s\n",argv[1]);
54 fread(data,
sizeof(
char),300,afosfile);
58 n=memcmp(&data[
i],
"HDP",3);
66 printf(
"could not find HDP\n");
75 strcpy(radar,&data[
i+3]);
79 n = fscanf(afosfile,
"%c",&ch);
81 if (ch ==
'1' && prevchar ==
'8')
break;
87 n = fscanf(afosfile,
"%8s%8s%6s%2s%2s%2s%2s%2s",clat,clon,
height,
year,
month,
94 n = fscanf(afosfile,
"%6s%6s%6s%6s",param,t1,t2,t3);
98 fscanf(afosfile,
"%6s",param);
100 n = fscanf(afosfile,
"%6s%6s%6s%6s%6s%6s%6s",maxval,bias,error,
101 jdate,jmin,param,param);
108 time = div(atoi(jmin),60);
112 printf(
"%s %02d:%02d max=%6s bias=%6s err=%6s\n",
113 cdate, ihr, iminute, maxval,bias,error);
117 printf(
"%s too old - aborting\n",argv[1]);
125 fread(sjunk,
sizeof(
char),11,afosfile);
129 n = fread(&ncharrows,
sizeof(
char),1,afosfile);
131 for (
i=0;
i<ncharrows;
i++)
134 n = fread(&cbytes1,
sizeof(
char),1,afosfile);
135 n = fread(&cbytes2,
sizeof(
char),1,afosfile);
138 n = fread(data,
sizeof(
signed char), nbytes-2,afosfile);
143 printf(
" unexpected EOF encoutered -- ");
144 printf(
" number of bytes expected = %d",nbytes-2);
145 printf(
" number of bytes found =%d \n",n);
149 nruns = (short)((
float)(nbytes-2)/2.);
152 for (
j=0;
j<nruns;
j++)
154 xchar = (
unsigned char)data[
j*2];
155 xrun = (short) xchar;
156 level = (short) data[1+
j*2];
158 for(
k=0;
k<xrun;
k++) {
162 value[130-
i][kk]=(char)level;
163 if(
value[130-
i][kk] > maxvalue)
164 maxvalue=
value[130-
i][kk] ;
179 len = strlen(
"st2_st1");
183 strcpy(outname,
"/home/sw1/ccp/");
185 lradar[
i]=tolower(radar[
i]);
187 strcat(outname,lradar);
188 errno=access(outname,R_OK);
191 mkdir(outname,S_IRWXU | S_IRWXG | S_IRWXO);
194 strcat(outname,
year);
195 errno=access(outname,R_OK);
197 mkdir(outname,S_IRWXU | S_IRWXG | S_IRWXO);
200 strcat(outname,
month);
201 errno=access(outname,R_OK);
203 mkdir(outname,S_IRWXU | S_IRWXG | S_IRWXO);
207 errno=access(outname,R_OK);
209 mkdir(outname,S_IRWXU | S_IRWXG | S_IRWXO);
212 strcpy(biasname,outname);
213 strcat(outname, chour);
214 strcat(outname,
"Z");
217 fpout=fopen(outname,
"wb");
220 printf(
"could not open %s\n",outname);
226 fwrite(
value,
sizeof(
char),131*131,fpout);
232 strcat(biasname,
"SP");
233 strcat(biasname, chour);
234 strcat(biasname,
"Z");
236 biasfile = fopen(biasname,
"wb");
240 printf(
"could not open %s\n",biasname);
245 fprintf(biasfile,
"%.2f\n",atof(bias));
248 printf(
"decoding of %s finished files %s and %s written\n",argv[1],outname,biasname);
250 printf(
"max value is %d\n",maxvalue);
259 int days[]={31,28,31,30,31,30,31,31,30,31,30,31} ;
260 int year,
month,ndays,date,total,nyear,leap_year;
277 if (
month==1 && leap_year==
TRUE) ndays++;
278 date=ndays - (total-jdate);
291 printf(
"Error: end of file reached on %s\n",
name);
char * convertJulianDate()
main(int argc, char **argv)
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
printf("fbuf is %s\n", fbuf)
fprintf(fp,"%d %d %d %d 1\n", iminx, iminy, maxi, maxj)