Changeset 1198 for SHX


Ignore:
Timestamp:
19.10.2016 17:24:52 (3 years ago)
Author:
klaus
Message:

mplplot: trace labels on subset of traces; read: qual IGNOREEXIST; fftcorr bugfixes and bit norm

Location:
SHX/trunk/SeismicHandler/commands
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/commands/fftcorr.py

    r1197 r1198  
    4747     * /norm[[br]] 
    4848       Normalize input traces. 
     49        
     50     * /signnorm[[br]] 
     51       Use only sign of input samples. 
     52        
     53     * /noerror[[br]] 
     54       Dont create exception on error condition. 
    4955 
    5056    === example === 
     
    7379    ] 
    7480    known_qualifiers = [ 
    75         "NORM" 
     81        "NORM", 
     82        "SIGNNORM", 
     83        "NOERROR", 
    7684    ] 
    7785 
     
    8391    def run(self): 
    8492        norm = self.qualifiers["NORM"] 
     93        signnorm = self.qualifiers["SIGNNORM"] 
     94        noerror = self.qualifiers["NOERROR"] 
    8595 
    8696        first, second = traces_from_list(",".join([self.parameters[0], \ 
    8797                                                          self.parameters[1]])) 
    8898 
     99        # check for NaNs 
     100        if np.NaN in first.data or np.NaN in second.data: 
     101            print "ignore data traces due to NaNs" 
     102            return 
     103        # check for constant traces 
     104        if (min(first.data) == max(first.data))\ 
     105            or (min(second.data) == max(second.data)): 
     106            print "constant trace ignored" 
     107            return 
     108 
    89109        if first.stats.delta != second.stats.delta: 
    90             raise ShxError( 
    91                 "operation not allowed for different sample rates", 
    92                 status=1731 
    93             ) 
     110            errstr = "operation not allowed for different sample rates "\ 
     111                +"(%g and %g)" % (first.stats.delta,second.stats.delta) 
     112            if noerror: 
     113                print errstr 
     114                return 
     115            else: 
     116                raise ShxError( errstr, status=1731) 
    94117         
    95118        seclength = float( self.parameters[2] ) 
     
    99122 
    100123        new = first.copy() 
    101         new.data = xcorr( first.data, second.data, idxlength, normalize=norm ) 
     124        if signnorm: 
     125            new.data = xcorr( np.sign(first.data), np.sign(second.data), 
     126                idxlength, normalize=norm ) 
     127        else: 
     128            new.data = xcorr( first.data, second.data, idxlength, 
     129                normalize=norm ) 
     130        if np.NaN in new.data: 
     131            del( new.data ) 
     132            return 
    102133        new.set_info("t-origin", 0.) 
    103134        new.verify() 
  • SHX/trunk/SeismicHandler/commands/mplplot.py

    r1195 r1198  
    6363       "/TRACELABELSIZE=5". 
    6464 
    65      * /LABELSPEC=<pointsize>[[br]] 
     65     * /LABELSPEC=<textkey>[[br]] 
    6666       Changes label text to the left of the traces. Possible values are 
    6767       "STATION-COMP" (default), "TIME_HH:MM" (begin time of each trace, 
     
    102102        "TRACELABELSIZE", 
    103103        "LABELSPEC", 
     104        "LABELMOD", 
    104105    ] 
    105106 
     
    132133            except: 
    133134                trclabsize = None 
     135        labelmod = None 
     136        if self.qualifiers["LABELMOD"]: 
     137            try: 
     138                labelmod = int( self.qualifiers["LABELMOD"] ) 
     139            except: 
     140                labelmod = None 
    134141        labelspec = None 
    135142        if self.qualifiers["LABELSPEC"]: 
     
    160167 
    161168        # loop all traces, determine normalization and store data 
    162         for t in traces_from_list('all'): 
     169        for trccnt,t in enumerate(traces_from_list('all')): 
    163170 
    164171            # time origin and zoom value for each trace 
     
    166173            zoom = t.get_info("zoom") 
    167174            # get label text 
    168             label = self.getTraceLabel( t, labelspec ) 
     175            if labelmod: 
     176                if trccnt % labelmod == 0: 
     177                    label = self.getTraceLabel( t, labelspec ) 
     178                else: 
     179                    label = "" 
     180            else: 
     181                label = self.getTraceLabel( t, labelspec ) 
    169182            # create x data from sampling distance and time origin 
    170183            xdata = t_origin + \ 
     
    246259        TIME_HH:MM:SS           :  hour, minute, sec of trace start 
    247260        DAY                     :  date of trace start 
     261        MONTH                   :  month and year of trace start 
    248262        """ 
    249263        if labelspec == None or labelspec == 'STATION-COMP': 
     
    262276        elif labelspec == 'DAY': 
    263277            return trc.stats.starttime.strftime( "%d-%h-%Y" ) 
     278        elif labelspec == 'MONTH': 
     279            return trc.stats.starttime.strftime( "%h-%Y" ) 
    264280        else: 
    265281            return "**ILLSPEC**" 
  • SHX/trunk/SeismicHandler/commands/read.py

    r1172 r1198  
    7979        "POS", 
    8080        "VEL", 
     81        "IGNOREEXIST", 
    8182    ] 
    8283    expectFilename = 0 
     
    119120            zoom = get_runtime("zoom", 1) 
    120121            set_runtime("zoom", 0) 
     122         
     123        if self.qualifiers["IGNOREEXIST"]: 
     124            # just return on non existing file 
     125            header_file = os.extsep.join([os.path.splitext(filename)[0], "QHD"]) 
     126            if not os.path.exists(header_file): 
     127                return 
    121128 
    122129        self.load(filename, trclist, start, stop, byteorder) 
Note: See TracChangeset for help on using the changeset viewer.