Changeset 1072


Ignore:
Timestamp:
01/01/16 17:15:49 (4 years ago)
Author:
klaus
Message:

overlay command now working

Location:
SHX/trunk/SeismicHandler
Files:
3 edited

Legend:

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

    r1071 r1072  
    2020    numberOfParameters = [0,1] 
    2121    parameterQueries = [ 
    22         { 
    23             "text": "trace list", 
    24             "type": "str", 
    25             "question": False, 
    26         }, 
    2722    ] 
    2823    known_qualifiers = [ 
     
    3631    #@timeit 
    3732    def run(self): 
     33        # handle /del qualifier (without parameters) 
    3834        if self.qualifiers["DEL"]: 
    3935            Traces().traces.overlays.clearOverlays() 
     36            return 
     37        # standard command needs 1 parameter 
     38        queries = [{ 
     39            "text": "trace list", 
     40            "type": "str", 
     41            "question": False, 
     42        }] 
     43        parameters = [] 
     44        try: 
     45            self.extendParameters(self.parameters, 0, queries, parameters) 
     46        except IndexError: 
     47            raise ShxError("not enough arguments", status=1106) 
     48        except ValueError: 
     49            raise ShxError("value conversion error", status=1108) 
     50        # execute command 
     51        numtraces = len(Traces().visible) 
     52        if self.parameters[0].lower() == 'all': 
     53            Traces().traces.overlays.addOverlay( range(1,numtraces+1) ) 
     54            self.redraw = True 
    4055            return 
    4156        lst = [] 
     
    4863                        "illegal trace list '%s' specified" % self.parameters[0], 
    4964                        status=1111 ) 
    50                 lst += range(sa,sb+1) 
     65                # add only indices of existing traces 
     66                if sa <= numtraces: 
     67                    if sb <= numtraces: 
     68                        et = sb 
     69                    else: 
     70                        et = numtraces 
     71                    lst += range(sa,et+1) 
    5172            else: 
    5273                try: 
    53                     lst.append( int(word) ) 
     74                    newidx = int(word) 
    5475                except: 
    5576                    ShxError( 
    5677                        "illegal trace list '%s' specified" % self.parameters[0], 
    5778                        status=1111 ) 
    58         Traces().traces.overlays.addOverlay( lst ) 
     79                if newidx <= numtraces: 
     80                    lst.append( newidx ) 
     81        if len(lst) > 1: 
     82            Traces().traces.overlays.addOverlay( lst ) 
     83        else: 
     84            ShxError( "short overlay list" ) 
    5985        self.redraw = True 
    6086 
  • SHX/trunk/SeismicHandler/modules/traces.py

    r1071 r1072  
    134134        self.nextname = chr(ord(self.nextname)+1) 
    135135        self.allidx += idxlist 
    136         self.dump() 
     136        #self.dump() 
    137137     
    138138    def clearOverlays( self ): 
     
    140140        self.allidx = [] 
    141141        self.nextname = 'A' 
    142         self.initPlot() 
    143      
    144     def initPlot( self ): 
     142        self.initPlot(0,0) 
     143     
     144    def initPlot( self, numtraces, traceorder ): 
     145        "Reset plot parameters before each redraw." 
    145146        self.posdict = {} 
    146147        self.posstore = [] 
    147148        self.posidx = -1 
     149        self.numtraces = numtraces 
     150        self.traceorder = traceorder 
    148151     
    149152    def plotPos( self, trcidx, ypos ): 
     153        "Change plot positions of traces according to overlays." 
    150154        if len(self.overlaydict.keys()) == 0: 
    151155            return ypos 
     156        if self.traceorder == 0: 
     157            # traces always plotted top-down 
     158            trcidx = self.numtraces + 1 - trcidx 
    152159        self.posstore.append( ypos ) 
    153160        for ovk in self.overlaydict.keys(): 
     
    156163                    return self.posdict[ovk] 
    157164                else: 
    158                     self.posdict[ovk] = ypos 
    159165                    self.posidx += 1 
     166                    self.posdict[ovk] = self.posstore[self.posidx] 
    160167                    return self.posstore[self.posidx] 
    161168        self.posidx += 1 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1071 r1072  
    730730 
    731731        # init overlays positions 
    732         Overlays.initPlot() 
     732        Overlays.initPlot( len(self.traces), self.traceOrder ) 
    733733 
    734734        # plot every trace 
Note: See TracChangeset for help on using the changeset viewer.