Changeset 354
- Timestamp:
- 03/30/2011 06:18:48 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
SHX/trunk/sandbox/bc_example.py
r351 r354 2 2 3 3 import wx 4 import wx.lib.scrolledpanel as SP 5 import sys 4 6 from bufferedcanvas import * 5 7 … … 7 9 8 10 class TestCanvas(BufferedCanvas): 9 def __init__(self, parent, ID=-1): 10 self.data = -read("../SeismicHandler/tests/data/mseed/2010.284.GR.GRA1..BHN")[0].data 11 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition, size=wx.DefaultSize): 12 try: 13 fname = sys.argv[1] 14 except IndexError: 15 fname = "../SeismicHandler/tests/data/mseed/2010.284.GR.GRA1..BHN" 16 self.trace = read(fname)[0] 17 11 18 # demean 12 self.data = self.data-self.data.mean() 13 min, max = self.data.min(), self.data.max() 14 self.base = abs(max) > abs(min) and abs(max) or abs(min) 15 self.npts = len(self.data) 19 self.trace.data = self.trace.data-self.trace.data.mean() 20 21 min, max = self.trace.data.min(), self.trace.data.max() 22 self.base = abs(self.trace.max()) 23 self.npts = self.trace.stats.npts 16 24 17 25 self.overlay = wx.Overlay() 18 26 19 BufferedCanvas.__init__(self, parent,ID)27 BufferedCanvas.__init__(self, parent, ID, size=size) 20 28 21 29 self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown) 22 30 self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp) 23 31 self.Bind(wx.EVT_MOTION, self.OnMouseMove) 32 33 try: 34 parent.Bind(wx.EVT_SCROLLWIN_CHANGED, self.OnScrollDone) 35 except: 36 parent.Bind(wx.EVT_SCROLLWIN, self.OnScrollDone) 37 38 parent.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel) 39 40 def OnMouseWheel(self, evt): 41 if evt.ControlDown(): 42 print "wheel CTRL event" 43 else: 44 evt.Skip() 45 46 def OnScrollDone(self, evt): 47 print "scrolling finished" 48 # self.overlay.Reset() 49 dc = wx.ClientDC(self) 50 odc = wx.DCOverlay(self.overlay, dc) 51 odc.Clear() 52 del odc 53 evt.Skip() 24 54 25 55 def OnRightDown(self, evt): … … 77 107 78 108 w, h = self.buffer.Width-20, self.buffer.Height 109 spp = self.npts // w 110 tail = self.npts % w 111 112 print "samples per pixel: %u remains: %u" % (spp, tail) 113 114 # resample 115 if spp > 2: 116 pass 117 79 118 zoomx = float(w)/self.npts 80 119 zoomy = float(h)/self.base/2.1 81 82 120 83 121 dc.SetBackground(wx.Brush("White")) … … 88 126 lines = [] 89 127 offsetx, offsety = 10, int(h / 2.) 90 print " zoom: x=%.2f y=%.2f offset: x=%i y=%i" % (zoomx, zoomy, offsetx, offsety)128 print "x: %u y: %u zoom: x=%.2f y=%.2f offset: x=%i y=%i" % (w, h, zoomx, zoomy, offsetx, offsety) 91 129 92 for n, i in enumerate(self.data): 93 lines.append([n*zoomx, i*zoomy]) 130 oldx, oldy = offsetx, offsety 131 for n, i in enumerate(self.trace.data): 132 newx = n*zoomx+offsetx 133 newy = -i*zoomy+offsety 134 lines.append([oldx, oldy, newx, newy]) 135 oldx, oldy = newx, newy 94 136 95 137 dc.SetPen(wx.Pen('Grey', 1, wx.LONG_DASH)) … … 101 143 # pen.SetCap(wx.CAP_ROUND) 102 144 dc.SetPen(pen) 103 dc.DrawLine s(lines, xoffset=offsetx, yoffset=offsety)145 dc.DrawLineList(lines) 104 146 105 147 class TestFrame(wx.Frame): … … 113 155 114 156 wx.Frame.__init__(self, parent, ID, title, pos, size, style) 115 self.canvas = TestCanvas(self) 157 158 panel = SP.ScrolledPanel( 159 parent=self, 160 pos=pos, 161 size=(1, 1), 162 style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER, 163 name="panel" 164 ) 165 166 self.canvas = TestCanvas(panel, size=[500,200]) 167 168 sizer = wx.BoxSizer() 169 sizer.Add(self.canvas, proportion=2) 170 171 panel.SetSizer(sizer) 172 panel.SetupScrolling() 173 116 174 self.Bind(wx.EVT_CLOSE, self.onClose) 117 175 … … 122 180 def main(): 123 181 app = wx.PySimpleApp() 124 frame = TestFrame(size=[ 600,200])182 frame = TestFrame(size=[700,200]) 125 183 frame.Show(True) 126 184 app.MainLoop()
Note: See TracChangeset
for help on using the changeset viewer.