diff --git a/GUI/gui.py b/GUI/gui.py
index 4b85a97..9ea2e27 100644
--- a/GUI/gui.py
+++ b/GUI/gui.py
@@ -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()
diff --git a/GUI/segygui/segygui.glade b/GUI/segygui/segygui.glade
index 02ba960..3d3d24a 100644
--- a/GUI/segygui/segygui.glade
+++ b/GUI/segygui/segygui.glade
@@ -299,6 +299,58 @@
tab
+
+
+
+ True
+ True
+ GTK_POLICY_ALWAYS
+ GTK_POLICY_ALWAYS
+ GTK_SHADOW_IN
+ GTK_CORNER_TOP_LEFT
+
+
+
+ True
+ True
+ True
+ False
+ False
+ True
+ False
+ False
+ False
+
+
+
+
+ False
+ True
+
+
+
+
+
+ True
+ Trace
+ False
+ False
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0.5
+ 0.5
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ tab
+
+
0
diff --git a/makerelease.sh b/makerelease.sh
new file mode 100755
index 0000000..dcf37d9
--- /dev/null
+++ b/makerelease.sh
@@ -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
\ No newline at end of file
diff --git a/segypy.py b/segypy.py
index 54a037c..d7ca811 100644
--- a/segypy.py
+++ b/segypy.py
@@ -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);
diff --git a/testsegy.py b/testsegy.py
index 0e2dabf..08eea22 100644
--- a/testsegy.py
+++ b/testsegy.py
@@ -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);