У меня есть код Python:
import gdal
import numpy
from skimage.filters import threshold_otsu
ds = gdal.Open('A:\\algo\\f2.tif')
band = ds.GetRasterBand(1)
arr = band.ReadAsArray()
thresh = threshold_otsu(arr,16)
binary = arr > thresh
driver = gdal.GetDriverByName("GTiff")
outdata = driver.Create("A:\\algo\\test11.tif", 14823, 9985, 1, gdal.GDT_UInt16)
outdata.SetGeoTransform(ds.GetGeoTransform())
outdata.SetProjection(ds.GetProjection())
outdata.GetRasterBand(1).WriteArray(binary)
outdata.GetRasterBand(1).SetNoDataValue(10000)
outdata.FlushCache() ##saves to disk!!
outdata = None
band=None
ds=None
В этом коде в строке 4 указывается местоположение / путь к «входному файлу», а в строке 10 указывается местоположение «выходного файла».
Я хочу создать пользовательский интерфейс, чтобы указать это местоположение в самом пользовательском интерфейсе, и запустить код из самого пользовательского интерфейса.
Я попытался создать пользовательский интерфейс с помощью модуля "tkinter":
from tkinter import *
from tkinter import filedialog
def input():
file1 = filedialog.askopenfile()
label = Label(text=file1).pack()
def input2():
file2 = filedialog.asksaveasfile(mode="w", defaultextension=".tif")
label = Label(text=file2).pack()
w = Tk()
w.geometry("500x500")
w.title("FLOOD_MAPPER")
h = Label(text = "S1A FLOOD MAPPER", bg = "yellow", fg = "black", height = "3", width = "500")
h.pack()
i1 = Label(text = "Input*")
i1.place(x=10, y=70)
i1b = Button(w, text = "Select File", command =input)
i1b.place(x=250, y=70)
i2 = Label(text = "Intermediate Product*")
i2.place(x=10, y=140)
i2b = Button(w, text = "Save as", command =input2)
i2b.place(x=250, y=140)
button = Button(w, text="Generate Map", bg = "red", fg = "black", height = "2", width="30")
button.place(x=150, y=400)
w.mainloop()
Но я не понял, как связать эти два кода.
В тот момент, когда я нажимаю кнопку «Создать карту» в пользовательском интерфейсе, я хочу, чтобы местоположение / путь ввода и вывода, заданные в окне пользовательского интерфейса, переместились в соответствующие места в 1-м коде, а затем выполнили тот же код в автоматическом режиме. ,
Пожалуйста, помогите мне выполнить мое требование.