#include #define V1(p) ((long) *(buf+p)) #define V2(p) (256L * (long) *(buf+p) + (long) *(buf+p+1)) #define V4(p) (256L * (256L * (256L * (long) *(buf+p) + (long) *(buf+p+1)) + (long) *(buf+p+2)) + (long) *(buf+p+3)) main(argc,argv) int argc; char **argv; { FILE *inf, *fopen(); unsigned char buf[3150]; int scid,isyr,isdy,ishr,ismn,issc,nscn,ieyr,iedy,iesc; int iscyr,iscday,isctim,irev; int iyr,idy,ihr,imn; if ((inf=fopen(argv[1],"r")) == NULL) { fprintf(stderr,"ERROR - Unable to open specified L1B file!\n"); exit(1); } fread(buf,1,3150,inf); scid = V2(0); isyr = V2(4); isdy = V2(6); issc = V4(8); nscn = V4(12); ieyr = V2(16); iedy = V2(18); iesc = V4(20); fread(buf,1,3150,inf); iscyr = V2(12); iscday = V2(14); isctim = V4(16); irev = V4(20); iyr = isyr - 1900; idy = isdy; ihr = issc/1000/3600; imn = (issc/1000 - ihr*3600)/60; printf("SSMI.L1B.S%1d.D%2d%3.3d.T%2.2d%2.2d.B%5.5d\n", scid,iyr,idy,ihr,imn,irev); }