Changeset 1149


Ignore:
Timestamp:
30.01.2016 01:52:23 (4 years ago)
Author:
klaus
Message:

bugfixes; small improvements

Location:
SHX/trunk/SeismicHandler
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/basics/analysispar.py

    r1148 r1149  
    329329        'source_depth'    : ( 50, 'floatN',    None, 1), 
    330330        'depth_type'      : ( 51, 'string',    'unknown', 1), 
    331         'origin_time'     : ( 52, 'datetime', None, 1), 
     331        'origin_time'     : ( 52, 'datetimeN', None, 1), 
    332332        # trace read parameters 
    333333        'read_time'       : ( 60, 'datetime',  toUTCDateTime('7-AUG-2015_00:16:30'), 2), 
     
    372372            raise ShxError( "unknown analysis parameter '%s'" % parname ) 
    373373        partype = self.pardef[parname][PIDX_TYPE] 
    374         if partype == 'datetime': 
     374        if partype in ('datetime','datetimeN'): 
     375            if partype == 'datetimeN' and value == "": 
     376                self._setValue( parname, None ) 
     377                return 
    375378            try: 
    376379                self._setValue( parname, toUTCDateTime(value) ) 
     
    430433            raise ShxError( "unknown analysis parameter '%s'" % parname ) 
    431434        partype = self.pardef[parname][PIDX_TYPE] 
    432         if partype == 'datetime': 
     435        if partype in ('datetime','datetimeN'): 
    433436            try: 
    434437                return fromUTCDateTime( self.getValue(parname) ) 
  • SHX/trunk/SeismicHandler/cmdscripts/UI.SHC

    r1142 r1149  
    77 
    88switch/global history on 
     9#switch/global uniquechannel on 
    910 
    1011# Brazil 
  • SHX/trunk/SeismicHandler/commands/magnitude.py

    r1148 r1149  
    129129        elif subcmd == 'plot': 
    130130            magtype = self.getMagtype( self.parameters[1] ) 
    131             title = "Magnitudes (%s) vs Distance" % magtype 
     131            meanmag = maglist.meanMagnitude( magtype ) 
     132            if meanmag == None: 
     133                title = "Magnitudes (%s) vs Distance (no mean)" % magtype 
     134            else: 
     135                title = "Magnitudes (%s) vs Distance (mean %4.2f)" % (magtype, 
     136                    meanmag) 
    132137            fig = plt.figure( facecolor='white' ) 
    133138            #fig.suptitle( title ) 
     
    298303                continue 
    299304            dist = self.getDistance( trc, epilat, epilon ) 
     305            if dist == None: 
     306                continue 
    300307            if magtype == 'ml': 
    301308                dist *= DEG_TO_KM 
  • SHX/trunk/SeismicHandler/config/runtime.py

    r1142 r1149  
    7878        # persistent command history (produces memory leak) 
    7979        "History": False, 
     80        # Reject traces which are already read in 
     81        "Uniquechannel": False, 
    8082    }) 
    8183 
  • SHX/trunk/SeismicHandler/modules/stations.py

    r1143 r1149  
    335335        if meta is None: 
    336336            # try for entries starting with given string: 
     337            metalist = [] 
    337338            for k in self.channels.keys(): 
    338339                if k.startswith(code): 
    339                     meta = self.channels[k] 
    340                     break 
    341             else: 
     340                    metalist.append( self.channels[k] ) 
     341            if metalist == []: 
    342342                raise KeyError("no meta data found at all for '%s'" % code) 
     343        else: 
     344            metalist = [meta] 
    343345 
    344346        match = None 
    345         for m in meta: 
    346             if m._start > date: 
    347                 continue 
    348  
    349             # None == open end 
    350             if m._end is not None and m._end <= date: 
    351                 continue 
    352  
    353             match = m 
    354             break 
     347        for meta in metalist: 
     348            for m in meta: 
     349                if m._start > date: 
     350                    continue 
     351 
     352                # None == open end 
     353                if m._end is not None and m._end <= date: 
     354                    continue 
     355 
     356                match = m 
     357                break 
     358            if match: 
     359                break 
    355360 
    356361        if match: 
  • SHX/trunk/SeismicHandler/modules/traces.py

    r1142 r1149  
    6161 
    6262        for t in stream: 
     63            if Settings.swUniquechannel and self.alreadyReadIn(t): 
     64                print "dbg: dropping trace", t.stats.station, t.stats.channel 
     65                stream.remove(t) 
     66                continue 
    6367            t.establish() 
    6468            t.invalidate_cache() 
     
    170174            else: 
    171175                return META_STATUS_LOCATION 
    172          
     176     
     177    def alreadyReadIn( self, trc ): 
     178        """ 
     179        Returns true if this channel is already read in (independent of 
     180        time window) 
     181        """ 
     182        sname = "%s.%s.%s.%s" % (trc.stats.network,trc.stats.station, 
     183            trc.stats.location,trc.stats.channel) 
     184        for t in self.traces.visible: 
     185            tname = "%s.%s.%s.%s" % (t.stats.network,t.stats.station, 
     186                t.stats.location,t.stats.channel) 
     187            if tname == sname: 
     188                return True 
     189        return False 
    173190 
    174191 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1148 r1149  
    211211     
    212212    def _drawMagnifyTrace( self, clear=True, othertrace=None, yoffset=0., 
    213         color=(0,0,0) ):         
     213        color=(0,0,0), norm=None ): 
    214214        "magnifyCanvas: does the drawing work." 
    215215        # Bitmap holding the final figure, canvas->DC drawing to this bitmap. 
     
    217217            self.clearWindow() 
    218218            return 
    219         try: 
    220             norm = max( abs(max(self.trc.data)), abs(min(self.trc.data)) ) 
    221         except: 
    222             self.clearWindow() 
    223             return 
     219        if norm == None: 
     220            try: 
     221                norm = max( abs(max(self.trc.data)), abs(min(self.trc.data)) ) 
     222            except: 
     223                self.clearWindow() 
     224                return 
    224225        if othertrace == None: 
    225226            drawtrc = self.trc 
     
    345346                boxend -= torig 
    346347            ta = boxend - boxwidth 
    347             self.trc = trc.slice( ta, boxend ) 
     348            if ta > boxend: 
     349                self.trc = trc.slice( boxend, ta ) 
     350            else: 
     351                self.trc = trc.slice( ta, boxend ) 
    348352        else: 
    349353            self.trc = trc 
    350354        clearwdw = True 
    351355        if self._s3_showalltraces and len(self._s3_othertraces) > 0: 
    352             self._s3_showOtherTraces() 
     356            try: 
     357                norm = max( abs(max(self.trc.data)), abs(min(self.trc.data)) ) 
     358            except: 
     359                return 
     360            self._s3_showOtherTraces( norm ) 
    353361            clearwdw = False 
    354362        self._drawMagnifyTrace( clearwdw ) 
     
    398406        return tlist 
    399407     
    400     def _s3_showOtherTraces( self ): 
     408    def _s3_showOtherTraces( self, norm ): 
    401409        """ 
    402410        magnifyCanvas: 
     
    416424                print "dbg: s3: other trace stange start time" 
    417425                continue 
    418             self._drawMagnifyTrace( clearwdw, otrc, yoffset, color=(200,200,200) ) 
     426            self._drawMagnifyTrace( clearwdw, otrc, yoffset, 
     427                color=(200,200,200), norm=norm ) 
    419428            yoffset += ystep 
    420429            clearwdw = False 
Note: See TracChangeset for help on using the changeset viewer.