mirror of
https://github.com/wassname/segpy.git
synced 2026-08-12 12:30:30 +08:00
gui update
This commit is contained in:
+76
-51
@@ -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()
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user