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'
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
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 = {}
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
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
def read_text_header(): buf = FH.read(3200) t = segy_h.Text() return t.parse(buf)