|
34 | 34 | # bool=track.isContinuous()
|
35 | 35 | # track.save(FILEHANDLE)
|
36 | 36 | # array=track.getNonzeroRegions() # returns array of Interval
|
| 37 | +# array=track.getZeroRegions() # returns array of Interval |
37 | 38 | # bool=track.anyZeroValues() # only for continuous tracks
|
38 | 39 | # array=track.getContiguousRegions() # returns an array of Interval with
|
39 | 40 | # "value" attribute added
|
@@ -97,19 +98,35 @@ def getContiguousRegions(self):
|
97 | 98 | intervals.append(interval)
|
98 | 99 | return intervals
|
99 | 100 |
|
100 |
| - def getNonzeroRegions(self): |
| 101 | + def getZeroRegions(self): |
101 | 102 | """getNonzeroRegions() returns array of Intervals"""
|
102 | 103 | data=self.data
|
103 | 104 | if(self.isDiscrete()): raise Exception("track is not continuous")
|
104 | 105 | L=len(data)
|
105 | 106 | intervals=[]
|
106 | 107 | begin=None
|
| 108 | + for i in range(L): |
| 109 | + x=data[i] |
| 110 | + if(x==0 and (i==0 or data[i-1]!=0)): begin=i |
| 111 | + elif(x!=0 and i>0 and data[i-1]==0): |
| 112 | + intervals.append(Interval(begin,i)) |
| 113 | + if(L>0 and data[L-1]==0): |
| 114 | + intervals.append(Interval(begin,L)) |
| 115 | + return intervals |
| 116 | + |
| 117 | + def getNonzeroRegions(self): |
| 118 | + """getZeroRegions() returns array of Intervals""" |
| 119 | + data=self.data |
| 120 | + if(self.isDiscrete()): raise Exception("track is not continuous") |
| 121 | + L=len(data) |
| 122 | + intervals=[] |
| 123 | + begin=None |
107 | 124 | for i in range(0,L):
|
108 | 125 | x=data[i]
|
109 |
| - if(x>0 and (i==0 or data[i-1]==0)): begin=i |
110 |
| - elif(x==0 and i>0 and data[i-1]>0): |
| 126 | + if(x!=0 and (i==0 or data[i-1]==0)): begin=i |
| 127 | + elif(x==0 and i>0 and data[i-1]!=0): |
111 | 128 | intervals.append(Interval(begin,i))
|
112 |
| - if(L>0 and data[L-1]>0): |
| 129 | + if(L>0 and data[L-1]!=0): |
113 | 130 | intervals.append(Interval(begin,L))
|
114 | 131 | return intervals
|
115 | 132 |
|
|
0 commit comments