Exemple #1
0
def print_text_header(container):
    global TYPE
    keys = segy_h.Text().__keys__
    print "--------------- Textural Header ---------------"
    for k in keys:
        what = "container.{0}".format(k)
        if EBCDIC:
            print "{0}\t-\t{1:s}".format(k, ebcdic.EbcdicToAscii(eval(what)))
        else:
            print "{0}\t-\t{1:s}".format(k, eval(what))

        if TYPE == None:
            if k == '_38_':
                try:
                    if EBCDIC:
                        s = ebcdic.EbcdicToAscii(eval(what))
                    else:
                        s = eval(what)

                    try:
                        flds = s.split()
                        if flds[1] == 'MENLO':
                            TYPE = 'U'
                        elif flds[1] == 'PASSCAL':
                            TYPE = 'P'
                        elif flds[1] == 'SEG':
                            TYPE = 'S'
                        elif flds[1] == 'SIOSEIS':
                            TYPE = 'I'
                        else:
                            TYPE = 'S'
                    except:
                        pass
                except:
                    TYPE = 'P'
Exemple #2
0
 def last_extended_header (self, txt_hdr) :
     '''   Return True if this contains an EndText stanza?   '''
     import re
     lastRE = re.compile (".*\(\(.*SEG\:.*[Ee][Nn][Dd][Tt][Ee][Xx][Tt].*\)\).*")
     
     keys = segy_h.Text ().__keys__
     for k in keys :
         t = txt_hdr[k]
             
         if lastRE.match (t) : return True
         
     return False
Exemple #3
0
    def __init__(
        self,
        #start_point,     #   Starting point integer
        #length_points,   #   Number of points
        #das_t,           #   Das_t row
        sort_t,  #   Sort_t row
        #array_t,         #   Array_t row
        #time_t,          #   Time_t row
        event_t,  #   Event_t row
        #response_t,      #   Response_t row
        #receiver_t,      #   Receiver_t row (orientation)
        #offset_t,        #   Offset_t
        pas='******',  #   'P' -> PASSCAL extended header
        #   'S' -> SEG extended header
        #   'U' -> Menlo USGS extended header
        #   'I' -> SIOSEIS
        #   'N' -> iNova firefly
        length_points=0,
        seq=1,  #   Line sequence number
        user=False,  #   Populate trace header with user coordinates
        utm=False):  #   Populate trace header with UTM coordinates

        self.start_point = 0
        self.length_points = length_points
        if length_points == 0:
            self.length_points_all = 0
        else:
            self.length_points_all = length_points

        self.das_t = None
        self.sample_rate = None
        self.channel_number = 1
        self.sort_t = sort_t
        #self.array_t = array_t
        self.time_t = None
        self.event_t = event_t
        self.response_t = None
        self.offset_t = None
        self.pas = pas
        self.utm = utm
        self.user = user
        self.seq = seq
        self.text_header = segy_h.Text()
        self.reel_header = segy_h.Reel()
        #   Allow non-standard SEG-Y
        self.break_standard = False
        self.trace_type = None  #   Current data trace type (int, float)
        self.trace_byteorder = None  #   Current data trace byteorder
        #   *XXX*   Appear to not be used
        #self.tra = {}
        self.ext = {}
Exemple #4
0
 def read_text_header (self) :
     ret = {}
     buf = self.read_buf (3200)    
     t = segy_h.Text ()
     
     container = t.parse (buf)
     
     keys = segy_h.Text ().__keys__
     
     for k in keys :
         what = "container.{0}".format (k)
         if self.txt_hdr_type == 'E' :
             txt = ebcdic.EbcdicToAscii (eval (what))
         else :
             txt = eval (what)
             
         ret[k] = txt
         
         if k == '_38_' :
             flds = txt.split ()
             try :
                 if flds[1] == 'MENLO' :
                     self.set_ext_hdr_type ('U')
                 elif flds[1] == 'PASSCAL' :
                     self.set_ext_hdr_type ('P')
                 elif flds[1] == 'SIOSEIS' :
                     self.set_ext_hdr_type ('I')
                 elif flds[1] == 'SEG' :
                     self.set_ext_hdr_type ('S')
                 elif flds[1] == 'INOVA' :
                     self.set_ext_hdr_type ('N')
                 else :
                     pass;#raise InputsError ("S => SEG, U => MENLO, P => PASSCAL, I => SIOSEIS, N => INOVA")
             except IndexError :
                 pass
             
     return ret
Exemple #5
0
def last_extended_header(container):
    '''   Return True if this contains an EndText stanza?   '''
    import re
    lastRE = re.compile(".*\(\(.*SEG\:.*[Ee][Nn][Dd][Tt][Ee][Xx][Tt].*\)\).*")
    keys = segy_h.Text().__keys__
    for k in keys:
        what = "container.{0}".format(k)
        if EBCDIC:
            t = ebcdic.EbcdicToAscii(eval(what))
        else:
            t = eval(what)

        if lastRE.match(t): return True

    return False
Exemple #6
0
def read_text_header():
    buf = FH.read(3200)
    t = segy_h.Text()

    return t.parse(buf)