Ignore:
Timestamp:
02/02/2012 05:51:18 PM (11 years ago)
Author:
marcus
Message:
  • ...
  • method for expanding trace lists
File:
1 edited

Legend:

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

    r258 r531  
    99def Property(func): 
    1010    return property(**func()) 
     11 
    1112 
    1213class Singleton(type): 
     
    2425 
    2526        return cls.instance 
     27 
     28 
     29def expandTraceList(trcs, selection): 
     30    """ 
     31    Expand comma separated list of traces into sorted internal trace numbers 
     32    (reverse order). 
     33    """ 
     34 
     35    if not len(trcs): 
     36        return None 
     37 
     38    selection = [i.lower() for i in selection.split(",")] 
     39 
     40    if "all" in selection: 
     41        selected = range(0, len(trcs)) 
     42        selected.reverse() 
     43        return selected 
     44 
     45    selected = [] 
     46    for s in selection: 
     47        # range 
     48        if "-" in s: 
     49            try: 
     50                start, stop = map(int, s.split("-")) 
     51            except: 
     52                print "  skipping '%s'" % s 
     53                continue 
     54 
     55            if stop < start: 
     56                start, stop = stop, start 
     57 
     58            selected.extend(range(start - 1, stop)) 
     59 
     60        else: 
     61            if s.isdigit(): 
     62                selected.append(int(s) - 1) 
     63            else: 
     64                print "  skipping '%s'" % s 
     65 
     66    # unique 
     67    selected = list(set(selected)) 
     68    selected.sort() 
     69    selected.reverse() 
     70 
     71    return selected 
Note: See TracChangeset for help on using the changeset viewer.