⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 madagascargui.py

📁 国外免费地震资料处理软件包
💻 PY
📖 第 1 页 / 共 2 页
字号:
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 + -