Changeset 142
- Timestamp:
- 08/19/2009 06:29:41 PM (14 years ago)
- Location:
- SHX/trunk/src/SeismicHandler
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
SHX/trunk/src/SeismicHandler/core/modules/Trace.py
r139 r142 60 60 61 61 def __len__(self): 62 return self.delta * self.length 63 62 """return length of trace in milliseconds""" 63 64 return self.delta * self.length * 1000 65 64 66 def __getattr__(self, name): 65 67 """allow access to trace metadata by querying as attribute … … 125 127 return False 126 128 127 self.logger.info("updating from memory block, trace id %s " % self.id)129 self.logger.info("updating from memory block, trace id %s, address %u" % (self.id, self.address)) 128 130 129 131 mb = kwargs.get("memblc") … … 180 182 traces = [] 181 183 tracedata = {} 184 progress = 0 182 185 183 186 def __init__(self): … … 188 191 189 192 def __getitem__(self, number): 190 return self.tracedata[self.traces[number ]]193 return self.tracedata[self.traces[number-1]] 191 194 192 195 def update(self, event=None): 196 if self.progress: 197 self.logger.debug("update already running, skip!") 198 else: 199 self.progress = 1 200 193 201 # refresh root pointer 194 202 slib = self.sh … … 209 217 210 218 addresses = [] 211 old_addresses = self.traces 219 # save copy(!) of already known addresses 220 old_addresses = self.traces[:] 212 221 213 222 p = root.pm[0] … … 230 239 231 240 for addr in gone: 232 # clean up 233 self.tracedata[addr].delete() 234 # delete reference 235 del self.tracedata[addr] 241 # may we get a trigger for a already deleted traces 242 try: 243 # clean up 244 self.tracedata[addr].delete() 245 # delete reference 246 del self.tracedata[addr] 247 except KeyError: 248 pass 249 236 250 del self.traces[self.traces.index(addr)] 251 252 self.progress = 0 237 253 238 254 self.logger.debug("new traces: %s" % new) … … 250 266 # create 2 hours of synthetic data (100 Hz) 251 267 # position set by counter 252 for i in range( 2):268 for i in range(5): 253 269 Run("CREATE SHARP 0.05 100 1. %u .1 .5" % (10+i*6)) 254 270 # Run("create sharp 0.1 7200 1 %u 0.005 .05" % 5**(i+1)) -
SHX/trunk/src/SeismicHandler/tests/test_traces.py
r139 r142 12 12 Run("cresharp") 13 13 self.traces = Traces() 14 self.trace = self.traces[0] 14 # count starts from one! 15 self.trace = self.traces[1] 15 16 16 17 def tearDown(self): … … 164 165 165 166 def testInfoEntriesPyChars(self): 166 # set values via python - only one (e.g. comp missing => defaults to 167 # set values via python - only one (e.g. comp missing => defaults to 167 168 # null byte character 168 169 self.trace.chan1 = "E" … … 190 191 self.fail("non existing failure") 191 192 193 def testSumCommand(self): 194 # this test fails for some reason 195 # the summed trace has *never* a length greater 100 seconds 196 197 EventManager.block(Event(EventManager.REDRAW)) 198 199 seconds, delta = 110., 0.01 200 201 Run("del 1") 202 # create 2 identical synthetics with "seconds" length, 1/"delta" Hz 203 for i in xrange(2): 204 Run("CREATE SHARP %.2f %u 1. 15. .1 .5" % (delta, seconds)) 205 206 Run("sum all") 207 208 # Run("fili f BP_2S_10HZ_4") 209 # Run("filter f 1") 210 211 EventManager.unblock(Event(EventManager.REDRAW)) 212 213 for i in range(len(self.traces)): 214 print i 215 trc = self.traces[i+1] 216 self.assertAlmostEqual(trc.delta, delta, 6) 217 self.assertEqual(trc.length, seconds/delta) 218 self.assertAlmostEqual(len(trc)/1000., seconds, 1) 219 192 220 def suite(): 193 221 return unittest.makeSuite(eventsTestCase, 'test')
Note: See TracChangeset
for help on using the changeset viewer.