gui update

This commit is contained in:
cultpenguin
2005-10-17 10:10:05 +00:00
parent 9bf2afa3da
commit 6b67bb64ba
5 changed files with 160 additions and 57 deletions
+76 -51
View File
@@ -42,67 +42,51 @@ def insert_row(model,parent,firstcolumn,secondcolumn,thirdcolumn):
# print secondcolumn
# return myiter
class SimpleTest:
def __init__(self):
# xml = gtk.glade.XML('test2.glade')
# self.xml = gtk.glade.XML('test/test.glade')
self.xml = gtk.glade.XML('segygui/segygui.glade')
self.xml.signal_autoconnect(self)
def on_new1_activate(self, button):
print 'foo'
self.segy = segypy.readSegy('../data_4byteINT.segy')
print 'foo2'
self.figure = Figure(figsize=(6,4), dpi=72)
def update_segyplot(self):
self.figure = Figure(figsize=(6,4), dpi=72)
self.axis = self.figure.add_subplot(111)
self.axis.set_xlabel('Trace Header')
self.axis.set_ylabel('Time [s]')
self.axis.set_title('An Empty Graph')
self.axis.set_title(self.segy[1]['filename'])
self.axis.grid(True)
self.axis.imshow(self.segy[0])
self.canvas = FigureCanvasGTK(self.figure) # a gtk.DrawingArea
self.canvas.show()
# self.graphview = self.wTree.get_widget("vbox1")
# self.graphview.pack_start(self.canvas, True, True)
self.graphview = self.xml.get_widget("vbox4")
self.graphview.pack_start(self.canvas, True, True)
print 'PLOTTED'
self.graphview = self.xml.get_widget("vbox4")
self.graphview.pack_start(self.canvas, True, True)
def update_segyheader(self):
import gobject
self.treeview = self.xml.get_widget("treeview1")
self.treemodel = gtk.TreeStore(gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING)
self.treeview.set_model(self.treemodel)
self.treeview.set_headers_visible(True)
# renderer=gtk.CellRendererText()
# column=gtk.TreeViewColumn("Name1",renderer, text=0)
# column.set_resizable(True)
# self.treeview.append_column(column)
# COLUMN 1
renderer= gtk.CellRendererText()
self.tvcolumn1 = gtk.TreeViewColumn('Name', renderer, text=0)
self.tvcolumn1.set_resizable(True)
self.treeview.append_column(self.tvcolumn1)
# COLUMN 2
renderer= gtk.CellRendererText()
self.tvcolumn2 = gtk.TreeViewColumn('Meaning', renderer, text=1)
self.tvcolumn2.set_resizable(True)
self.treeview.append_column(self.tvcolumn2)
# COLUMN 3
renderer= gtk.CellRendererText()
self.tvcolumn3 = gtk.TreeViewColumn('Value', renderer, text=2)
self.tvcolumn3.set_resizable(True)
self.treeview.append_column(self.tvcolumn3)
self.treeview.show()
# treeSTH = insert_row(self.treemodel,None,'HEJ','')
# INSERT INTO TREEMODEL
self.SHtree= {"init": 1}
for key in segypy.SH_def.keys():
SHkey=segypy.SH_def[key]
@@ -112,8 +96,60 @@ class SimpleTest:
descr = ''
insert_row(self.treemodel,None,key,descr,self.segy[1][key])
self.treeview.show()
class app:
def update_segytraceheader(self,itrace=1):
import gobject
self.treeview = self.xml.get_widget("treeview2")
self.treemodel = gtk.TreeStore(gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING)
self.treeview.set_model(self.treemodel)
self.treeview.set_headers_visible(True)
# COLUMN 1
renderer= gtk.CellRendererText()
self.tvcolumn1 = gtk.TreeViewColumn('Name', renderer, text=0)
self.tvcolumn1.set_resizable(True)
self.treeview.append_column(self.tvcolumn1)
# COLUMN 2
renderer= gtk.CellRendererText()
self.tvcolumn2 = gtk.TreeViewColumn('Meaning', renderer, text=1)
self.tvcolumn2.set_resizable(True)
self.treeview.append_column(self.tvcolumn2)
# COLUMN 3
renderer= gtk.CellRendererText()
self.tvcolumn3 = gtk.TreeViewColumn('Value', renderer, text=2)
self.tvcolumn3.set_resizable(True)
self.treeview.append_column(self.tvcolumn3)
# INSERT INTO TREEMODEL
self.STHtree= {"init": 1}
for key in segypy.STH_def.keys():
STHkey=segypy.STH_def[key]
if (STHkey.has_key('descr')):
try:
descr = segypy.STH_def[key]['descr'][0][self.segy[2][key][itrace-1]]
except:
descr='Not Defined'
else:
descr = ''
insert_row(self.treemodel,None,key,descr,self.segy[2][key][itrace-1])
self.treeview.show()
class SimpleTest:
def __init__(self):
# xml = gtk.glade.XML('test2.glade')
# self.xml = gtk.glade.XML('test/test.glade')
self.xml = gtk.glade.XML('segygui/segygui.glade')
self.xml.signal_autoconnect(self)
def on_open1_activate(self, button):
dialog = gtk.FileChooserDialog("Open..",
@@ -145,27 +181,16 @@ class app:
dialog.destroy()
self.segy = segypy.readSegy(filename)
self.figure = Figure(figsize=(6,4), dpi=72)
self.axis = self.figure.add_subplot(111)
self.axis.set_xlabel('Yepper')
self.axis.set_ylabel('Flabber')
self.axis.set_title('An Empty Graph')
self.axis.grid(True)
self.axis.imshow(self.segy[0])
self.canvas = FigureCanvasGTK(self.figure) # a gtk.DrawingArea
self.canvas.show()
self.graphview = self.xml.get_widget_widget("vbox1")
print self.graphview
self.graphview.pack_start(self.canvas, True, True)
# self.graphview = self.xml.get_widget("hbox2")
# self.graphview.pack_start(self.canvas, True, True)
print 'PLOTTED'
elif response == gtk.RESPONSE_CANCEL:
print 'Closed, no files selected'
dialog.destroy()
update_segyheader(self)
update_segytraceheader(self)
update_segyplot(self)
def on_new1_activate(self, button):
self.segy = segypy.readSegy('../data_4byteINT.segy')
update_segyheader(self)
update_segytraceheader(self,1)
update_segyplot(self)
test = SimpleTest()
+52
View File
@@ -299,6 +299,58 @@
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTreeView" id="treeview2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">True</property>
<property name="rules_hint">False</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
<property name="fixed_height_mode">False</property>
<property name="hover_selection">False</property>
<property name="hover_expand">False</property>
</widget>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">Trace</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
Executable
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh
VERSION=0.3
DIR=segypy-$VERSION
mkdir $DIR
cp segypy.py $DIR/.
cp testsegy.py $DIR/.
cp LICENSE $DIR/.
cp README $DIR/.
zip -r $DIR.zip $DIR
tar cvfz $DIR.tgz $DIR
rm -fr $DIR
+13 -4
View File
@@ -45,7 +45,7 @@ else:
# SOME GLOBAL PARAMETERS
version=0.2
verbose=3;
verbose=1;
endian='>' # Big Endian
#endian='<' # Little Endian
@@ -479,8 +479,19 @@ def getAllSegyTraceHeaders(SH,data='none'):
if (data=='none'):
data = open(SH["filename"]).read()
for key in STH_def.keys():
sth = getSegyTraceHeader(SH,key,data)
SegyTraceHeaders[key]=sth
txt = "getAllSegyTraceHeaders : " + key
printverbose(txt,10)
return SegyTraceHeaders
def readSegy(filename) :
"""
Data,SegyHeader,SegyTraceHeaders=getSegyHeader(filename)
@@ -609,10 +620,7 @@ def getSegyHeader(filename):
txt = str(pos) + " " + str(format) + " Reading " + key +"="+str(SegyHeader[key])
printverbose(txt,10)
# SET NUMBER OF BYTES PER DATA SAMPLE
bps=getBytePerSample(SegyHeader)
@@ -889,6 +897,7 @@ def getBytePerSample(SH):
revision=1
dsf=SH["DataSampleFormat"]
bps=SH_def["DataSampleFormat"]["bps"][revision][dsf]
printverbose("getBytePerSample : bps="+str(bps),21);
+4 -2
View File
@@ -22,6 +22,10 @@ segypy.verbose=1;
Data,SH,STH=segypy.readSegy(filename);
exit
filename_out='testout.segy';
SH['DataSampleFormat']=5;
SH['SegyFormatRevisionNumber']=100;
@@ -29,8 +33,6 @@ segypy.writeSegyStructure(filename_out,Data,SH,STH);
segypy.wiggle(Data,SH,2,.1,.1)
exit
f_ieee='data_IEEE.segy';
f_ibm='data_IBM_REV1.segy';
d_ieee,SH,STH=segypy.readSegy(f_ieee);