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]

Reply via email to