Hello all, I have a binary I*2 format data file that I would like to extract data from. The file comes with a discription file that contains a fortran sub to extract the data. For the life of me I can't figure out how to accomplish the extraction. The following is from the description file nad includes the fortran sub:
---begin paste 2. The goes.nav is a file containing latitude/longitude data which can be used with satellite images in this directory to pinpoint geographical locations on goes-8 images. The file is binary I*2 format with the first two values being the pixel and line (x,y) size of the image. The succeeding pairs of elements are I*2 values of latitude longitude * 100. Compared to the goes image, the lat/lon pairs are stored by column first, then row; i.e. all the elements in row 1 are stored, then row 2 etc until the bottom of the image. The following is a fortran subroutine that can be used to read the goes.nav file: subroutine getnav(lat,lon) c************************************************************************ c* This routine reads goes.nav files with a maximum size of * c* 2000 pixels wide and 2000 lines/records and stores * c* latitude/longitude data into lat lon * c* the format of the goes.nav data is as follows * c* * c* i*2 i*2 * c* | | * c* V V * c* record 1 x size ysize * c* record 2 lat *100 lon*100 * c* record 3 lat *100 lon*100 * c* record 4 etc etc * c* * c************************************************************************ character file_name*80 real lat(2000,2000),lon(2000,2000) c c integer*2 tempstor(2) integer*4 buffout,record_count,xsize,ysize,yyyy,xxxx equivalence (buffout,tempstor(1)) C C C PLEASE NOTE: recl=1 in the open statment below means C that the record length is 32 bits ( 4 bytes) C not 8 bits (1 byte) open(23,file='goes.nav',access='direct',recl=1,status='old') READ(23,REC=1)buffout C C xsize=tempstor(1) C C ysize=tempstor(2) type *,' width =',xsize, ' height =',ysize C C record_count=1 do yyyy=1,ysize do xxxx=1,xsize record_count = record_count + 1 read(23,rec=record_count)buffout lat(xxxx,yyyy)=tempstor(1) * .01 lon(xxxx,yyyy)=tempstor(2) * .01 c ............................................... c NOTE: LATITUDE VALUES OFF THE EARTH ARE 99.00 C AND LONGITUDE VALUES ARE -256.35999 AT THIS C POINT IN THE SUBROUTINE C ............................................... end do end do RETURN END ----end paste Any help would be happily accepted... John -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]