📄 madagascargui.py
字号:
from Tkinter import *import osCWD = os.getcwd()SOURCES=["amoco", "bpait", "marmousi", "marmousi2","sigsbee","pluto","wggom"]class Madagascar: def __init__(self, master): ############################ # ######################## ## # LABELS # ## ######################## ############################# Label(master, text="Sources",fg="blue",font=("Helvetica", 14)).grid(row=1,columnspan=3) Label(master, text="Files",fg="blue",font=("Helvetica", 14)).grid(row=1,column=4,columnspan=5) Label(master, text="Header Info",fg="blue",font=("Helvetica", 14)).grid(row=20,column=0,columnspan=3)# Label(master, text="Processing Operations",fg='blue',font=('Helvetica',14)).grid(row=28,column=0,columnspan=4) Label(master, text="Images and Plots",fg="blue",font=("Helvetica", 14)).grid(row=30,column=0,columnspan=3)################################# SF PUT FUNCTION OPTIONS ## (HEADER INFO)############################### Label(master, text="n1").grid(row=21) Label(master, text="n2").grid(row=22) Label(master, text="n3").grid(row=23) Label(master, text="o1").grid(row=21,column=2) Label(master, text="o2").grid(row=22,column=2) Label(master, text="o3").grid(row=23,column=2) Label(master, text="d1").grid(row=21,column=4) Label(master, text="d2").grid(row=22,column=4) Label(master, text="d3").grid(row=23,column=4) Label(master, text="Label 1").grid(row=21,column=6) Label(master, text="Label 2").grid(row=22,column=6) Label(master, text="Label 3").grid(row=23,column=6) Label(master, text="Units 1").grid(row=21,column=8) Label(master, text="Units 2").grid(row=22,column=8) Label(master, text="Units 3").grid(row=23,column=8)################################# SFWINDOW FUNCTION OPTIONS ## (WINDOW)############################### Label(master, text="Window Data",fg="blue",font=("Helvetica",12,'bold')).grid(row=31,column=4,columnspan=3) Label(master, text="Sampling",fg="black",font=("Helvetica",10,"underline",'bold')).grid(row=32,column=1,columnspan=1) Label(master, text="Start",fg="black",font=("Helvetica",10,"underline",'bold')).grid(row=32,column=3,columnspan=1) Label(master, text="Jump",fg="black",font=("Helvetica",10,"underline",'bold')).grid(row=32,column=5,columnspan=1) Label(master, text="Min",fg="black",font=("Helvetica",10,"underline",'bold')).grid(row=32,column=6,columnspan=1) Label(master, text="Max",fg="black",font=("Helvetica",10,"underline",'bold')).grid(row=32,column=7,columnspan=1) Label(master, text="Size",fg="black",font=("Helvetica",10,"underline",'bold')).grid(row=32,column=8,columnspan=1) Label(master, text="time:").grid(row=33,column=0,sticky=W) Label(master, text="offset:").grid(row=34,column=0,sticky=W) Label(master, text="shot:").grid(row=35,column=0,sticky=W) ################################# SF GREY FUNCTION OPTIONS ## (RASTOR PLOT)############################### Label(master, text="Raster Plot",fg="blue",font=("Helvetica",12,'bold')).grid(row=39,column=4,columnspan=3) Label(master, text="Color Scheme").grid(row=40,column=0,sticky=W) Label(master, text="Gainpanel").grid(row=40,column=2) Label(master, text="Clip (%)").grid(row=40,column=4) ############################ # ######################## ## # ENTRY CELLS # ## ######################## ########################################################### Header Entry ############################## self.n1 = Entry(master,width=5) self.n2 = Entry(master,width=5) self.n3 = Entry(master,width=5) self.n1.grid(row=21, column=1) self.n2.grid(row=22, column=1) self.n3.grid(row=23, column=1) self.o1 = Entry(master,width=5) self.o2 = Entry(master,width=5) self.o3 = Entry(master,width=5) self.o1.grid(row=21, column=3) self.o2.grid(row=22, column=3) self.o3.grid(row=23, column=3) self.d1 = Entry(master,width=5) self.d2 = Entry(master,width=5) self.d3 = Entry(master,width=5) self.d1.grid(row=21, column=5) self.d2.grid(row=22, column=5) self.d3.grid(row=23, column=5) self.label1 = Entry(master,width=9) self.label2 = Entry(master,width=9) self.label3 = Entry(master,width=9) self.label1.grid(row=21, column=7) self.label2.grid(row=22, column=7) self.label3.grid(row=23, column=7) self.unit1 = Entry(master,width=5) self.unit2 = Entry(master,width=5) self.unit3 = Entry(master,width=5) self.unit1.grid(row=21, column=9) self.unit2.grid(row=22, column=9) self.unit3.grid(row=23, column=9) ############################# WINDOW ENTRY ### ########################## self.samp1 = Entry(master,width=5) self.samp2 = Entry(master,width=5) self.samp3 = Entry(master,width=5) self.samp1.grid(row=33, column=1) self.samp2.grid(row=34, column=1) self.samp3.grid(row=35, column=1) self.start1 = Entry(master,width=5) self.start2 = Entry(master,width=5) self.start3 = Entry(master,width=5) self.start1.grid(row=33, column=3) self.start2.grid(row=34, column=3) self.start3.grid(row=35, column=3) self.jump1 = Entry(master,width=5) self.jump2 = Entry(master,width=5) self.jump3 = Entry(master,width=5) self.jump1.grid(row=33, column=5) self.jump2.grid(row=34, column=5) self.jump3.grid(row=35, column=5) self.min1 = Entry(master,width=5) self.min2 = Entry(master,width=5) self.min3 = Entry(master,width=5) self.min1.grid(row=33, column=6) self.min2.grid(row=34, column=6) self.min3.grid(row=35, column=6) self.max1 = Entry(master,width=5) self.max2 = Entry(master,width=5) self.max3 = Entry(master,width=5) self.max1.grid(row=33, column=7) self.max2.grid(row=34, column=7) self.max3.grid(row=35, column=7) self.size1 = Entry(master,width=5) self.size2 = Entry(master,width=5) self.size3 = Entry(master,width=5) self.size1.grid(row=33, column=8) self.size2.grid(row=34, column=8) self.size3.grid(row=35, column=8) self.clip = Entry(master,width=3) self.clip.grid(row=40, column=5)############################ # ######################## ## # BUTTONS # ## ######################## ############################# self.select = Button(master, text="Select File(s)", fg="black", command=self.select) self.select.grid(row=3,column=13,sticky=E+W) self.load = Button(master, text="Load Source", command=self.load) self.load.grid(row=2, column=13,sticky=E+W) self.fetch = Button(master, text="Fetch Files", command=self.fetch) self.fetch.grid(row=4, column=13,sticky=E+W) self.convert = Button(master, text="Convert Files", command=self.convert) self.convert.grid(row=5,column=13,sticky=E+W) self.convert = Button(master, text="Concatinate Files", command=self.loadCat) self.convert.grid(row=23,column=13,sticky=E+W) self.view = Button(master, text="View File Info", command=self.view) self.view.grid(row=21,column=13,sticky=E+W) self.header = Button(master, text="Update Header",command=self.header) self.header.grid(row=22, column=13,sticky=E+W) self.archive = Button(master, text="Archive", command=self.archive) self.archive.grid(row=51, column=13, sticky=E+W) self.archive = Button(master, text="Plot", command=self.plot) self.archive.grid(row=41, column=13, sticky=E+W) ############################ # ######################## ## # LIST BOXES # ## ######################## ############################################################ Source List Box ############################### self.sources = Listbox(master,selectmode=SINGLE,relief=RAISED,height=10,exportselection=0) for item in SOURCES: self.sources.insert(END, item) self.sources.grid(row=2,column=0,rowspan=5,columnspan=3)############################### Avail. File List Box ############################### self.fileScrollBar=Scrollbar(master,orient=VERTICAL) self.files = Listbox(master,yscrollcommand=self.fileScrollBar.set,selectmode=MULTIPLE, relief=RAISED,height=10,width=40,exportselection=0) for item in ['To view files','load a source']: self.files.insert(END, item) # self.fileScrollBar.config(command=self.files.yview) self.fileScrollBar.grid(column=9,row=2,rowspan=5,sticky=N+S) self.files.grid(column=4,row=2,rowspan=5,columnspan=5) self.current = None############################ Color List Box ############################ global colorOpts colorOpts = ['i','I','J','K','F','R','W','G','T' ] # self.colorScrollBar=Scrollbar(master,orient=VERTICAL) self.color = Listbox(master,selectmode=SINGLE,relief=RAISED,height=3,width=2,exportselection=0) for item in colorOpts: self.color.insert(END, item) # self.colorScrollBar.config(command=self.color.yview) # self.colorScrollBar.grid(column=2,row=40,rowspan=5,sticky=N+S) self.color.grid(column=1,row=40,rowspan=1,columnspan=1) self.current = None############################ Gain Panel List ############################ global gainpanelOpts gainpanelOpts = ['a','e'] self.gainpanel = Listbox(master,selectmode=SINGLE,relief=RAISED,height=2,width=2,exportselection=0) for item in gainpanelOpts: self.gainpanel.insert(END, item) self.gainpanel.grid(column=3,row=40,rowspan=1,columnspan=1) self.gainpanel.current = None############################################### ################# FUNCTION DEFENITIONS ################# ###################################################--------------------# Loads Files into GUI#-------------------- def load(self): global FILES source = self.sources.curselection() if source == 'other': importFileWindow = Toplevel() lengthCWD = len(CWD) lengthCWD = lengthCWD-3 location = str(CWD[0:lengthCWD]) + str(SOURCES[int(source[0])])+'/FILES' global LOCATION # Used by function fetch LOCATION=str(SOURCES[int(source[0])]) if LOCATION == "marmousi": LOCATION = "marm" if LOCATION == "amoco": LOCATION = "Amoco" if LOCATION == "marmousi2": LOCATION = "marm2" if LOCATION == "wggom": LOCATION = "gom" input = open(location,'r') FILES = input.readlines() lengthFiles = len(FILES) filesOut = [] global segyFiles, nativeFiles segyFiles = [] nativeFiles = [] for item in FILES[0:lengthFiles]: length = len(item) letterCount=0 for letter in item[0:length]: letterCount= letterCount+1 if letter is ':': fileName = item[letterCount+3:length-1] filesOut.append(fileName) for item in filesOut: length = len(item) extStart = length - 4 extStart2 = length -3 extStart3 = length -2 extStart4 = length - 1 extensionOne = item[extStart:length] extensionTwo = item[extStart2:length] extensionThree = item[extStart3:length] extensionFour = item[extStart4:length] if extensionOne == 'segy' or extensionOne == 'SEGY' or extensionTwo == 'SGY' or extensionTwo == 'sgy': segyFiles.append(item) if extensionThree == 'HH' or extensionThree == 'hh' or extensionFour == 'H' or extensionFour =='h': nativeFiles.append(item) FILES=segyFiles + nativeFiles self.files.delete(0, END) # clear Existing entries for item in FILES: self.files.insert(END,item) self.fileScrollBar.config(command=self.files.yview) self.fileScrollBar.grid(column=9,row=2,rowspan=5,sticky=N+S) self.files.grid(column=4,row=2,rowspan=5,columnspan=5) self.current = None#--------------------# Selects Files to Fetch#-------------------- def select(self): selection = self.files.curselection() global SELECTFILES SELECTFILES=[] for item in selection: selectFiles = FILES[int(item)] SELECTFILES.append(selectFiles) fileOutputWindow = Toplevel() displayRow=1 title=Label(fileOutputWindow,text='Selected File List') title.grid(row=0,column=0) for file in SELECTFILES: Label(fileOutputWindow,text=file,width=50,fg="red",font=("Helvetica",10,"italic")).grid(row=displayRow) displayRow=displayRow+1 # Label(master, text="Sources",fg="blue",font=("Helvetica", 14)).grid(row=1,columnspan=3) #--------------------# Updated Header Info #-------------------- def header(self): n1=self.n1.get() n2=self.n2.get() n3=self.n3.get()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -