Changeset 1065


Ignore:
Timestamp:
12/30/15 15:57:55 (5 years ago)
Author:
klaus
Message:

nice numbers on time axis

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

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/modules/parse.py

    r1062 r1065  
    2424from copy import copy 
    2525import SeismicHandler.commands as commands 
    26 from SeismicHandler.basics import AttribDict, timeit, timestore 
     26from SeismicHandler.basics import AttribDict, timeit 
    2727from SeismicHandler.basics.error import ShxError 
    2828from SeismicHandler.config import Settings 
     
    106106    re_file = " (/\w+)+ ?" 
    107107 
    108     @timeit 
     108    #@timeit 
    109109    def __init__(self, input_string, switches=None): 
    110110        "--PA-- init id string for timeit." 
     
    311311        self.feed(stream) 
    312312 
    313     @timeit 
     313    #@timeit 
    314314    def feed(self, stream): 
    315315        """ 
     
    367367            log_message("error.traceback", msg) 
    368368 
    369     @timeit 
     369    #@timeit 
    370370    def run(self): 
    371371        self.__recent = None 
     
    437437                    self.traceBack(e, msg) 
    438438 
    439     @timeit 
     439    # timeit of 'next' produces >500 lock entries and slows down execution 
     440    #--@timeit 
    440441    def next(self): 
    441         """ 
     442        """--SC-- 
    442443        Iterate over commands. 
    443444        """ 
     
    461462        self.pointer = len(self.content) 
    462463 
    463     @timeit 
     464    #@timeit 
    464465    def commandDefault(self, *args): 
    465466        """ 
     
    505506                self.parameters["shx_parameter"].append(default) 
    506507 
    507     @timeit 
     508    #@timeit 
    508509    def commandGoto(self, target, **kwargs): 
    509510        if kwargs.get("FORWARD", False): 
     
    518519            raise ShxError("GOTO target not found: %s" % target.upper()) 
    519520 
    520     @timeit 
     521    #@timeit 
    521522    def commandQuit(self, *args): 
    522523        if not args: 
     
    529530            quit() 
    530531 
    531     @timeit 
     532    #@timeit 
    532533    def commandIf(self, *args, **kwargs): 
    533534        # cast format 
     
    676677    } 
    677678 
    678     @timeit 
     679    #@timeit 
    679680    def __init__(self, cmd=None, script=None, switches=None): 
    680681        "--TR-- init id string for timeit." 
     
    722723        ]) 
    723724 
    724     @timeit 
     725    #@timeit 
    725726    def _translate(self, value): 
    726727        if not value: 
     
    758759            raise ShxError("'%s' could not be translated!" % value, 1716) 
    759760     
    760     @timeit 
     761    #@timeit 
    761762    def _systemfct( self, fctname ): 
    762         # should word independent of the locale 
     763        # should work independently of the locale 
    763764        mndict = {1:'Jan',2:'Feb',3:'Mar',4:'Apr',5:'May',6:'Jun', 
    764765            7:'Jul',8:'Aug',9:'Sep',10:'Oct',11:'Nov',12:'Dec'} 
     
    776777        return None 
    777778 
    778     @timeit 
     779    #@timeit 
    779780    def __handleSystem(self, name): 
    780781        name = self._translate(name) 
     
    812813                return x * count 
    813814 
    814     @timeit 
     815    #@timeit 
    815816    def __handleSymbol(self, name): 
    816817        name = self._translate(name) 
     
    820821            raise ShxError("Symbol '%s' not found!" % name) 
    821822 
    822     @timeit 
     823    #@timeit 
    823824    def __handleTrace(self, name): 
    824825        try: 
     
    846847            log_message("error.trace", "undefined info entry name '%s'" % name) 
    847848 
    848     @timeit 
     849    #@timeit 
    849850    def __handleOption(self, name): 
    850851        """ 
     
    866867            return self.script.parameters['shx_qualifiers'][name] 
    867868 
    868     @timeit 
     869    #@timeit 
    869870    def __handleFile(self, name): 
    870871        # split line count (if any) 
     
    994995        self.deleteGlobal(name) 
    995996 
    996     @timeit 
     997    #@timeit 
    997998    def set(self, name, value): 
    998999        """ 
     
    10081009            raise ShxError("undefined symbol %s" % name, status=2303) 
    10091010 
    1010     @timeit 
     1011    #@timeit 
    10111012    def setGlobal(self, name, value=None): 
    10121013        self._globals[name.upper()] = value 
    10131014 
    1014     @timeit 
     1015    #@timeit 
    10151016    def deleteGlobal(self, name): 
    10161017        try: 
     
    10961097 
    10971098 
    1098 @timeit 
     1099#@timeit 
    10991100def get_var(name, symbolset=None, switches=None): 
    11001101    """ 
  • SHX/trunk/SeismicHandler/modules/screen.py

    r887 r1065  
    1111import wx 
    1212from SeismicHandler.basics import Singleton 
    13 from SeismicHandler.basics.messages import set_runtime, log_message, \ 
    14                                                    get_runtime, subscribe_event 
     13from SeismicHandler.basics.messages import subscribe_event, log_message #, \ 
     14from SeismicHandler.config import get_runtime, set_runtime 
    1515from SeismicHandler.core import Traces 
    1616from SeismicHandler.basics.error import ShxError 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1053 r1065  
    1010import math 
    1111from SeismicHandler.basics.messages import msgs, subscribe_ui_event, \ 
    12                                             log_message, get_runtime, get_style 
     12                                            log_message, get_style#, get_runtime 
     13from SeismicHandler.config import get_runtime 
    1314from SeismicHandler.core import Traces 
    1415from SeismicHandler.basics.codes import NAME, VERSION 
     
    864865 
    865866        chunk = length / PARTS 
     867        chunk_t = (end - start) / PARTS 
     868        chunk_t, chunk, labeloffset, pixoffset, PARTS \ 
     869            = self.niceNumbers( start, end, length, PARTS ) 
    866870        chunk2 = chunk / 5. 
    867         chunk_t = (end - start) / PARTS 
    868871 
    869872        # basic time axis line 
     
    881884        for i in range(int(PARTS)): 
    882885            if isinstance(start, UTCDateTime): 
    883                 timecode = start + i * chunk_t 
     886                timecode = labeloffset + start + i * chunk_t 
    884887                txt = timecode.strftime("%H:%M:%S.") + \ 
    885888                                             str(timecode.microsecond//1000) 
    886889            else: 
    887                 txt = mask % (start + i * chunk_t) 
     890                txt = mask % (labeloffset + start + i * chunk_t) 
    888891 
    889892            tw = canvas.GetFullTextExtent(txt)[0] 
    890893 
    891894            if self.traceOrder in [0, 1]: 
    892                 varpos_current = varpos_start + i * chunk 
     895                varpos_current = pixoffset + varpos_start + i * chunk 
    893896                # time string 
    894897                canvas.DrawText(txt, varpos_current - tw / 2, 
     
    950953        img.SaveFile(self.do_screenshot, wx.BITMAP_TYPE_PNG) 
    951954        log_message("info", "screen dump saved in: %s" % self.do_screenshot) 
     955     
     956    def niceNumbers( self, start, end, pixwidth, parts ): 
     957        "2150 surf min" 
     958        num = (end - start) / parts 
     959        pixscaling = pixwidth / (end-start) 
     960        tmp = 10**int(math.log10(num))  # integer power of 10 
     961        nn = tmp   # best nice number is either this number or *2, *5, *10 
     962        dist = abs(tmp-num) 
     963        for i in (2,5,10): 
     964            ndist = abs(num - i*tmp) 
     965            if ndist < dist: 
     966                nn = i*tmp 
     967                dist = ndist 
     968        labelstart = nn*int(start/nn) 
     969        if (labelstart-start) < -1.e-5: 
     970            labelstart += nn 
     971        repeat = int((end-labelstart)/nn) + 1 
     972        pixspan = nn * pixscaling 
     973        pixoffset = (labelstart-start) * pixscaling 
     974        labeloffset = labelstart - start 
     975        #print nn, labelstart, pixoffset, repeat, '--', num, '.', start, end 
     976        return (nn, pixspan, labeloffset, pixoffset, repeat) 
    952977 
    953978    @staticmethod 
Note: See TracChangeset for help on using the changeset viewer.