<< Description of Akebono VLF-ELF in Science Database Format >>> Sep. 15, 1996 (Version 3.01) The ELF which is one of subsystems of VLF instrument onboard Akebono is operated in either 4 channel mode (narrow mode) or 2 channel mode (wide mode), selectable by command. In the narrow mode, waves in a frequency range less than 80Hz are observed. The four channels are composed of Ch.1; Ex or Ey (selectable by command), Ch.2; sBx, Ch.3; sBy and Ch.4; sBz (the characters 's' for B components stand for search coil). In the wide mode, the upper limit frequency is increased up to 160Hz, but only two components, 1-electric and 1-magnetic field can be observed. In the present science database, we provide one component of E field and one component of B field vector with frequency less than 80Hz with a frequency resolution of 2.5Hz. The file name of VLF-ELF is given as 'yymmddhh.elf'. The file is composed of a series of blocks, each of which consists of 976bytes. The first block is for the header whose format is : 0----+----1----+----2----+----3----+----4---(...)---- yymmddhhmmss YYMMDDHHMMSS VLF-ELF Ver.3.01 yymmddhhmmss: Start date and time (UT) at the 1st record of the 2nd block (ASCII) YYMMDDHHMMSS: End date and time (UT) at the last record of the last block (ASCII) Ver.3.01 : Version Number The blocks following the 1st block are the ELF wave data. One block datum consists of block number (1byte) and 15 records (1record = 65bytes), each of which is corresponding to every 8sec interval (1block = 1 + 65*15 = 976bytes). Therefore each data block is constructed as follows: byte | contents | Elapsed time(*) ---------------------------------------------------------------- 1 | block number | (NO) 2 - 66 | 1st record | yymmddhhmmss + NO*120(sec) 67 - 131 | 2st record | yymmddhhmmss + NO*120(sec) + 8sec 132 - 196 | 3rd record | yymmddhhmmss + NO*120(sec) + 16sec : | : | 912 - 976 | 15th record | yymmddhhmmss + NO*120(sec) + 112sec Each record consists E and B field intensities of 8sec average at 32 frequency points (from 1st to 64th byte) given by FFT processing and flags (65th byte) for observation status. The 8sec average is taken for an interval from 4sec before to 4sec after the elapsed time. E and B intensity data and flags are represented by 1byte integer (I) with no sign bit as follows: byte | contents ---------------------------------------------------------------- 1 - 32 | E-field 33 - 64 | B-field lags for observation status The intensities are described in [dB] (0 #include FILE *fp; unsigned char buf[976]; opnrelf_(file, l) char *file; int l; { register unsigned char *p = buf; register int i; if ((fp = fopen(fs2cs(file, l), "r")) == NULL) { perror(file); exit(1); } } clsrelf_() { fclose(fp); } gtelhd_(head, ver, stm, etm) double *stm; double *etm; char head[10], ver[10]; { char astm[15], aetm[15]; fseek(fp, 0L, 0); fread(buf, sizeof(*buf), sizeof(buf), fp); sscanf(buf, "%s %s %s %s", astm, aetm, head, ver); *stm=atof(astm); *etm=atof(aetm); } int irdblke_(iblock) long *iblock; { register unsigned char *p = buf; register int i; if (fread(buf, sizeof(*buf), sizeof(buf), fp) == 0) return(-1); for (i = 0; i < 976; i++) { *iblock++ = *p++; } return(0); } ---(Part 2 : FORTRAN language)--- implicit real*4(a-h,o-z),integer*4(i-n) character*20 file character*10 head, ver real*8 stm, etm narg = iargc(0) if(narg.le.0) then write(0,1000) 1000 format('Usage: rdelf filename(yymmddhh.elf)') call exit(1) end if call getarg(1,file) call opnrelf(file) call gtelhd(head, ver, stm, etm) print*, 'head=', head, ' ', ver, stm, etm call readelf call clsrelf stop end ************************************************************************ subroutine readelf ************************************************************************ implicit real*4(a-h,o-z),integer*4(i-n) parameter (nwrd = 976) parameter (nblk = 90) common /elfdata/ iblock(nwrd,nblk), num num = 1 1 continue irc = irdblke(iblock(1,num)) if (irc.ne.0) goto 999 num = num + 1 goto 1 999 continue num = num - 1 return end