1.KNZ_Calculate: modified some mistake and
optimize the use experience.
2.KNZ_Plot: more selective options and more united
style of GUI
This commit is contained in:
KenanZhu111 committed 2024-10-09 11:15:22 +08:00
1 parent c6d0e5bb48
commit f29614d834
7 files changed
+375 -82

No files matched your search

+9 -4
View File
@@ -43,7 +43,7 @@ static int trooption = 0;
char obs_f[MAX_PATH] = { 0 }; char obs_f[MAX_PATH] = { 0 };
char nav_f[MAX_PATH] = { 0 }; char nav_f[MAX_PATH] = { 0 };
char path[MAX_PATH]; char path[MAX_PATH];
const wchar_t wpath[MAX_PATH];//PROGRAM'S FOLDER const wchar_t wpath[MAX_PATH];//PROGRAM'S FOLDER
static void ProgressBar(HWND hwnd, int BEG, int DES) static void ProgressBar(HWND hwnd, int BEG, int DES)
@@ -52,8 +52,9 @@ static void ProgressBar(HWND hwnd, int BEG, int DES)
SendMessage(hwnd, PBM_SETRANGE, (WPARAM)FALSE, (LPARAM)(MAKELPARAM(0, 100))); SendMessage(hwnd, PBM_SETRANGE, (WPARAM)FALSE, (LPARAM)(MAKELPARAM(0, 100)));
SendMessage(hwnd, PBM_GETRANGE, (WPARAM)TRUE, (LPARAM)&range); SendMessage(hwnd, PBM_GETRANGE, (WPARAM)TRUE, (LPARAM)&range);
SendMessage(hwnd, PBM_SETPOS, (WPARAM)BEG, (LPARAM)0); SendMessage(hwnd, PBM_SETPOS, (WPARAM)BEG, (LPARAM)0);
for (int i = BEG; i < DES; i++) { for (int i = 0; i < DES - BEG; i += fabs(DES - BEG)/(DES - BEG))
SendMessage(hwnd, PBM_SETPOS, (WPARAM)(int)( i / 10), (LPARAM)0); {
SendMessage(hwnd, PBM_SETPOS, (WPARAM)(int)( i + BEG / 10), (LPARAM)0);
if (SendMessage(hwnd, PBM_GETPOS, (WPARAM)0, (LPARAM)0) == range.iHigh * DES/PBSTATEFULL) if (SendMessage(hwnd, PBM_GETPOS, (WPARAM)0, (LPARAM)0) == range.iHigh * DES/PBSTATEFULL)
{ {
break; break;
@@ -353,6 +354,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
{ {
free(obs_h); free(obs_e); free(obs_b); free(obs_h); free(obs_e); free(obs_b);
fp_obs = NULL; obs_e = NULL; obs_b = NULL; fp_obs = NULL; obs_e = NULL; obs_b = NULL;
ProgressBar(hwndPB, PBSTATEFULL, PBSTATENONE);
while (MessageBox(hwnd, TEXT("File of Obs has been cleared."), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK) == IDOK) while (MessageBox(hwnd, TEXT("File of Obs has been cleared."), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK) == IDOK)
{ {
break; break;
@@ -364,8 +366,9 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
case OBSRELOD: case OBSRELOD:
if (fp_obs != NULL) if (fp_obs != NULL)
{ {
if (o_epochnum > 0) if (o_epochnum > 100)
{ {
ProgressBar(hwndPB, PBSTATENONE, PBSTATEFULL);
MessageBox(hwnd, TEXT("File of Obs Reload complete !"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK); MessageBox(hwnd, TEXT("File of Obs Reload complete !"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK);
break; break;
} }
@@ -378,6 +381,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
{ {
free(nav_h); free(nav_b); free(nav_h); free(nav_b);
fp_nav = NULL;nav_h = NULL; nav_b = NULL; fp_nav = NULL;nav_h = NULL; nav_b = NULL;
ProgressBar(hwndPB, PBSTATEFULL, PBSTATENONE);
while (MessageBox(hwnd, TEXT("File of Nav has been cleared."), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK) == IDOK) while (MessageBox(hwnd, TEXT("File of Nav has been cleared."), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK) == IDOK)
{ {
break; break;
@@ -391,6 +395,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
{ {
if (satnum > 100) if (satnum > 100)
{ {
ProgressBar(hwndPB, PBSTATENONE, PBSTATEFULL);
MessageBox(hwnd, TEXT("File of Nav Reload complete !"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK); MessageBox(hwnd, TEXT("File of Nav Reload complete !"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK);
break; break;
} }
+16 -5
View File
@@ -93,6 +93,10 @@ void sat_gps_pos_clac(FILE* result_file,HWND hwndPB,
fprintf(result_file, "@ GENERATE TIME : %s", ctime(&gen_time)); fprintf(result_file, "@ GENERATE TIME : %s", ctime(&gen_time));
fprintf(result_file, "@ OBS FILE PATH : %s\n", obs_file); fprintf(result_file, "@ OBS FILE PATH : %s\n", obs_file);
fprintf(result_file, "@ NAV FILE PATH : %s\n", nav_file); fprintf(result_file, "@ NAV FILE PATH : %s\n", nav_file);
fprintf(result_file, "@ TIME OF FIRST OBS : %4d %02d %02d %02d %02d %07.4f\n"
, obs_h->f_y, obs_h->f_m, obs_h->f_d, obs_h->f_h, obs_h->f_min, obs_h->f_sec);
fprintf(result_file, "@ TIME OF LAST OBS : %4d %02d %02d %02d %02d %07.4f\n"
, obs_h->l_y, obs_h->l_m, obs_h->l_d, obs_h->l_h, obs_h->l_min, obs_h->l_sec);
fprintf(result_file, "@ APPROX POSITION XYZ: %13.04f%13.04f%13.04f\n@ APPROX POSITION BLH: %12.07f %12.07f %12.07f\n" fprintf(result_file, "@ APPROX POSITION XYZ: %13.04f%13.04f%13.04f\n@ APPROX POSITION BLH: %12.07f %12.07f %12.07f\n"
, obs_h->apX, obs_h->apY, obs_h->apZ , obs_h->apX, obs_h->apY, obs_h->apZ
, station.B, station.L, station.H); , station.B, station.L, station.H);
@@ -102,12 +106,11 @@ void sat_gps_pos_clac(FILE* result_file,HWND hwndPB,
if (trooption == 1) { fprintf(result_file, "@ TROPO OPT : DEFAULT\n@\n\n"); } if (trooption == 1) { fprintf(result_file, "@ TROPO OPT : DEFAULT\n@\n\n"); }
fclose(result_file); fclose(result_file);
double beginsec = Time2GPSsec(obs_h->f_y, obs_h->f_m, obs_h->f_d, obs_h->f_h, obs_h->f_min, obs_h->f_sec);
double endinsec = Time2GPSsec(obs_h->l_y, obs_h->l_m, obs_h->l_d, obs_h->l_h, obs_h->l_min, obs_h->l_sec);
for (int i = 0; i < o_epochnum; i++) for (int i = 0; i < o_epochnum; i++)
{ {
result_file = fopen(res_file, "a+");
fprintf(result_file, "\n>%04d %04d %02d %02d %02d %02d %07.04f", i + 1, obs_e[i].y, obs_e[i].m, obs_e[i].d, obs_e[i].h, obs_e[i].min, obs_e[i].sec);
fclose(result_file);
int y = obs_e[i].y; int y = obs_e[i].y;
int m = obs_e[i].m; int m = obs_e[i].m;
int d = obs_e[i].d; int d = obs_e[i].d;
@@ -125,9 +128,17 @@ void sat_gps_pos_clac(FILE* result_file,HWND hwndPB,
enus enu = { 0 }; enus enu = { 0 };
rahs rah = { 0 }; rahs rah = { 0 };
pos_ts pos_t = { 0 }; pos_ts pos_t = { 0 };
double GPSsec = Time2GPSsec(y, m, d, h, min, sec);//转换为GPS周内秒
int epochsignal = round((GPSsec - beginsec) / obs_h->interval) + 1;
result_file = fopen(res_file, "a+");
fprintf(result_file, "\n>%04d %04d %02d %02d %02d %02d %07.04f"
, epochsignal, obs_e[i].y, obs_e[i].m, obs_e[i].d, obs_e[i].h, obs_e[i].min, obs_e[i].sec);
fclose(result_file);
for (int j = 0; j < obs_e[i].gps_num; j++)//第j颗GPS卫星 for (int j = 0; j < obs_e[i].gps_num; j++)//第j颗GPS卫星
{ {
double GPSsec = Time2GPSsec(y, m, d, h, min, sec);//转换为GPS周内秒
int sPRN = obs_e[i].sPRN_GPS[j]; int sPRN = obs_e[i].sPRN_GPS[j];
int best_epoch = select_epoch(GPSsec, sPRN, nav_b, satnum, GPS); //遍历N文件GPS卫星数据块,寻找最佳历元 int best_epoch = select_epoch(GPSsec, sPRN, nav_b, satnum, GPS); //遍历N文件GPS卫星数据块,寻找最佳历元
double detat_toc = GPSsec - nav_b[best_epoch].TOE;//观测时刻 - 参考时刻 double detat_toc = GPSsec - nav_b[best_epoch].TOE;//观测时刻 - 参考时刻
+8
View File
@@ -84,6 +84,8 @@
/* ------------------------------ FOR CALMOD.H ------------------------------ */ /* ------------------------------ FOR CALMOD.H ------------------------------ */
#define MAXRINEX 1000 #define MAXRINEX 1000
#define DAYSEC 86400
//卫星位置结构体 //卫星位置结构体
typedef struct typedef struct
{ {
@@ -232,6 +234,12 @@ typedef struct obs_head
int f_h; int f_h;
int f_min; int f_min;
double f_sec; double f_sec;
int l_y;
int l_m;
int l_d;
int l_h;
int l_min;
double l_sec;
char tsys[5];//时间系统 char tsys[5];//时间系统
}obs_head,*pobs_head; }obs_head,*pobs_head;
+13
View File
@@ -57,6 +57,9 @@ extern int get_epochnum(FILE* fp_obs)
/* -------------------------------- 读取O文件数据头 -------------------------------- */ /* -------------------------------- 读取O文件数据头 -------------------------------- */
extern void read_o_h(FILE* fp_obs, pobs_head obs_h) extern void read_o_h(FILE* fp_obs, pobs_head obs_h)
{ {
obs_h->f_y = obs_h->f_m = obs_h->f_d = obs_h->f_h = obs_h->f_min = obs_h->f_sec = 0;
obs_h->l_y = obs_h->l_m = obs_h->l_d = obs_h->l_h = obs_h->l_min = obs_h->l_sec = 0;
obs_h->interval = 30;
memset(obs_h->obscode_gps, 0, sizeof(obs_h->obscode_gps)); memset(obs_h->obscode_gps, 0, sizeof(obs_h->obscode_gps));
memset(obs_h->obscode_bds, 0, sizeof(obs_h->obscode_bds)); memset(obs_h->obscode_bds, 0, sizeof(obs_h->obscode_bds));
char buff[MAXRINEX] = { 0 }; char buff[MAXRINEX] = { 0 };
@@ -155,6 +158,16 @@ extern void read_o_h(FILE* fp_obs, pobs_head obs_h)
strncpy(obs_h->tsys, buff + 6 + 6 + 6 + 6 + 6 + 18, 3); strncpy(obs_h->tsys, buff + 6 + 6 + 6 + 6 + 6 + 18, 3);
continue; continue;
} }
else if (strstr(lable, "TIME OF LAST OBS"))
{
obs_h->l_y = (int)strtonum(buff, 2, 4);
obs_h->l_m = (int)strtonum(buff, 2 + 6, 4);
obs_h->l_d = (int)strtonum(buff, 2 + 6 + 6, 4);
obs_h->l_h = (int)strtonum(buff, 2 + 6 + 6 + 6, 4);
obs_h->l_min = (int)strtonum(buff, 2 + 6 + 6 + 6 + 6, 4);
obs_h->l_sec = strtonum(buff, 2 + 6 + 6 + 6 + 6 + 6, 9);
continue;
}
else if (strstr(lable, "END OF HEADER")) else if (strstr(lable, "END OF HEADER"))
break; break;
} }
+328 -72
View File
@@ -3,9 +3,10 @@ import time
import Trocor import Trocor
from base64 import b64decode from base64 import b64decode
from tkinter import colorchooser from tkinter import colorchooser
from tkinter import messagebox
from tkinter import filedialog from tkinter import filedialog
from tkinter import ttk from tkinter import ttk
from PIL import Image, ImageTk from PIL import ImageTk
import tkinter.font as tkFont import tkinter.font as tkFont
import tkinter as tk import tkinter as tk
import matplotlib as mpl import matplotlib as mpl
@@ -15,81 +16,221 @@ import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import ( from matplotlib.backends.backend_tkagg import (
FigureCanvasTkAgg, NavigationToolbar2Tk) FigureCanvasTkAgg, NavigationToolbar2Tk)
ecolor = "#0080FF" enucolor = ["#0080FF","#0080FF","#0080FF"]
ncolor = "#0080FF" enulinew = [ "2.0", "2.0", "2.0"]
ucolor = "#0080FF"
def eColorchoose(): def Colorchoose(i, label, mode):
global ecolor global enucolor
colorvalue = tk.colorchooser.askcolor() if mode == 0:
ecolor = str(colorvalue[1]) enucolor = ["#0080FF", "#0080FF", "#0080FF"]
label.config(bg=enucolor[0])
elif mode == 1:
colorvalue = tk.colorchooser.askcolor()
enucolor[i] = str(colorvalue[1])
label.config(bg=enucolor[i])
def nColorchoose(): def Linewchoose(entry0, entry1, entry2, mode):
global ncolor global enulinew
colorvalue = tk.colorchooser.askcolor() if mode == 0:
ncolor = str(colorvalue[1]) enulinew = ["2.0", "2.0", "2.0"]
entry0.delete(0, "end")
entry0.insert(0, enulinew[0])
entry1.delete(0, "end")
entry1.insert(0, enulinew[1])
entry2.delete(0, "end")
entry2.insert(0, enulinew[2])
def uColorchoose(): elif mode == 1:
global ucolor if (0 < float(entry0.get()) <= 5 and
colorvalue = tk.colorchooser.askcolor() 0 < float(entry1.get()) <= 5 and
ucolor = str(colorvalue[1]) 0 < float(entry2.get()) <= 5 ):
enulinew[0] = entry0.get()
enulinew[1] = entry1.get()
enulinew[2] = entry2.get()
elif(float(entry0.get()) <= 0 or
float(entry1.get()) <= 0 or
float(entry2.get()) <= 0 ):
while not messagebox.showerror("ERROR !", "The line width value is invalid !"):
break
enulinew = ["2.0", "2.0", "2.0"]
entry0.delete(0, "end")
entry0.insert(0, enulinew[0])
entry1.delete(0, "end")
entry1.insert(0, enulinew[1])
entry2.delete(0, "end")
entry2.insert(0, enulinew[2])
elif(5 < float(entry0.get())or
5 < float(entry1.get())or
5 < float(entry2.get()) ):
msg = messagebox.askyesno("NOTICE", "The width of the line is too large\n"
"affecting the mapping.\n"
"Are you sure to continue ?")
if msg == False:
enulinew = ["2.0", "2.0", "2.0"]
entry0.delete(0, "end")
entry0.insert(0, enulinew[0])
entry1.delete(0, "end")
entry1.insert(0, enulinew[1])
entry2.delete(0, "end")
entry2.insert(0, enulinew[2])
pass
elif msg == True:
enulinew[0] = entry0.get()
enulinew[1] = entry1.get()
enulinew[2] = entry2.get()
def Opt_windows(): def Opt_windows():
opt = tk.Toplevel(root) opt = tk.Toplevel(root)
opt.title("Options") opt.title("Options")
opt.attributes("-toolwindow", 2) opt.geometry('350x200+250+200')
opt.geometry('200x200+200+200') opt.minsize(350,230)
opt.minsize(100,250) opt.maxsize(350,230)
opt.maxsize(100,250)
enucolopt = tk.Button(opt,text='E Color',width=10, height=1,command=eColorchoose)
enucolopt.pack(side=tk.TOP, expand=tk.YES)
enucollab = tk.Label(opt, width=11 , height=1 ,bg=ecolor)
enucollab.pack(side=tk.TOP, expand=tk.YES)
enucolopt = tk.Button(opt, text='N Color', width=10, height=1, command=nColorchoose)
enucolopt.pack(side=tk.TOP, expand=tk.YES)
enucollab = tk.Label(opt, width=11, height=1, bg=ncolor)
enucollab.pack(side=tk.TOP, expand=tk.YES)
enucolopt = tk.Button(opt, text='U Color', width=10, height=1, command=uColorchoose)
enucolopt.pack(side=tk.TOP, expand=tk.YES)
enucollab = tk.Label(opt, width=11, height=1, bg=ucolor)
enucollab.pack(side=tk.TOP, expand=tk.YES)
enuconfirm = tk.Button(opt, text='Confirm', width=10, height=1, command=opt.destroy)
enuconfirm.pack(side=tk.TOP, expand=tk.YES)
global icon_img2
icon_img2 = (b'AAABAAEAICAAAAAAIACoEAAAFgAAA'
b'CgAAAAgAAAAQAAAAAEAIAAAAAAAABAAADjsAAA47AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAACQAAABIAAAASAAAACQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABwAAAJAAAADqAAAA7gAAAO4AAADqAAAAkQAAAAcAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACQAAAA/wAAAPwAAAD/AAAA/wAAAPwAAAD/AAAAkAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAADAAAAAQAAAAEAAAAAAAAACwAAAOMAAAD/AAAA/AAAAP4AAAD+AAAA/AAAAP8AAADjAAAACgAAAAAAAAABAAAAAQAAAAMAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAABAAAABQAAAAAAAAATAAAA7QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO0AAAATAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAABTAAAAUQAAAA8AAAAAAAAAAAAAAEQAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAEQAAAAAAAAAAAAAAA8AAABRAAAAUwAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAwAAAA5QAAAP8AAAD/AAAA4QAAAHYAAAB2AAAA6QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA6QAAAHYAAAB1AAAA4QAAAP8AAAD/AAAA5QAAADAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAMoAAAD/AAAA+gAAAPwAAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAPoAAAD/AAAAywAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAABrAAAA/wAAAPoAAAD/AAAA/wAAAP0AAAD7AAAA+wAAAP4AAAD/AAAA/AAAAP0AAAD/AAAA/wAAAP0AAAD8AAAA/wAAAP4AAAD7AAAA+wAAAP0AAAD/AAAA/wAAAPoAAAD/AAAAawAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAwAAANUAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA/wAAAPIAAADyAAAA/wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADVAAAAAwAAAAAAAAABAAAAAQAAAAAAAAATAAAA7AAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAK8AAAA8AAAAFQAAABUAAAA8AAAArgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAOwAAAATAAAAAAAAAAEAAAAAAAAAAQAAAAAAAADBAAAA/wAAAPoAAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAAB3AAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAdwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPoAAAD/AAAAwQAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAADEAAADmAAAA/wAAAP0AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAAEAAAAAwAAAAEAAAABAAAABAAAAAQAAAAAAAAArAAAAP8AAAD8AAAA/wAAAP8AAAD9AAAA/wAAAOYAAAAwAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA0AAACuAAAA/wAAAP0AAAD/AAAA/QAAAP8AAABCAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/wAAAP0AAAD/AAAA/QAAAP8AAACvAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAD4AAAA/wAAAP0AAAD/AAAA8gAAABgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABgAAADyAAAA/wAAAP0AAAD/AAAA+AAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAIAAAAPgAAAD/AAAA/QAAAP8AAADyAAAAGAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAPIAAAD/AAAA/QAAAP8AAAD4AAAAIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA0AAACuAAAA/wAAAP0AAAD/AAAA/QAAAP8AAABCAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/wAAAP0AAAD/AAAA/QAAAP8AAACuAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAxAAAA5gAAAP8AAAD9AAAA/wAAAP8AAAD8AAAA/wAAAKsAAAAAAAAABAAAAAMAAAABAAAAAQAAAAMAAAAEAAAAAAAAAKsAAAD/AAAA/AAAAP8AAAD/AAAA/QAAAP8AAADmAAAAMAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAMEAAAD/AAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAHcAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAB3AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA+gAAAP8AAADBAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAATAAAA7AAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAK4AAAA8AAAAFQAAABUAAAA8AAAArgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAOwAAAATAAAAAAAAAAEAAAABAAAAAAAAAAMAAADWAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAP8AAADyAAAA8gAAAP8AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1QAAAAMAAAAAAAAAAQAAAAAAAAADAAAAAAAAAGsAAAD/AAAA+gAAAP8AAAD/AAAA/QAAAPsAAAD7AAAA/gAAAP8AAAD8AAAA/QAAAP8AAAD/AAAA/QAAAPwAAAD/AAAA/gAAAPsAAAD7AAAA/QAAAP8AAAD/AAAA+gAAAP8AAABrAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAMsAAAD/AAAA+gAAAPwAAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAPoAAAD/AAAAywAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMQAAAOYAAAD/AAAA/wAAAOEAAAB2AAAAdgAAAOkAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAOkAAAB2AAAAdgAAAOEAAAD/AAAA/wAAAOYAAAAxAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAFQAAABRAAAADwAAAAAAAAAAAAAARAAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAARAAAAAAAAAAAAAAADwAAAFEAAABUAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAABAAAABQAAAAAAAAATAAAA7QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO0AAAATAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAABAAAAAEAAAABAAAAAAAAAAsAAADjAAAA/wAAAPwAAAD+AAAA/gAAAPwAAAD/AAAA4wAAAAoAAAAAAAAAAQAAAAEAAAAEAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJAAAAD/AAAA/AAAAP8AAAD/AAAA/AAAAP8AAACQAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALine truncated
icon_img2 = b64decode(icon_img2)
icon_img2 = ImageTk.PhotoImage(data=icon_img2)
opt.tk.call('wm', 'iconphoto', opt._w, icon_img2)
MainFrame0 = tk.Frame(opt)
MainFrame0.pack()
#Line's colors options-------------------------------------------------------------#
LeftFrame1 = ttk.LabelFrame(MainFrame0, text='ENU colors', labelanchor='nw')
LeftFrame1.pack(side=tk.LEFT, expand=tk.YES, padx='2px', pady='0px', fill=tk.Y)
EFrameL2 = tk.Frame(LeftFrame1)
EFrameL2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
ecolopt = ttk.Button(EFrameL2, text='E Color', width=10, command=lambda: Colorchoose(0, ecollab, 1))
ecolopt.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
ecollab = tk.Label(EFrameL2, width=5, height=1, bg=enucolor[0])
ecollab.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
NFrameL2 = tk.Frame(LeftFrame1)
NFrameL2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
ncolopt = ttk.Button(NFrameL2, text='N Color', width=10, command=lambda: Colorchoose(1, ncollab,1))
ncolopt.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
ncollab = tk.Label(NFrameL2, width=5, height=1, bg=enucolor[1])
ncollab.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
UFrameL2 = tk.Frame(LeftFrame1)
UFrameL2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
ucolopt = ttk.Button(UFrameL2, text='U Color', width=10, command=lambda: Colorchoose(2, ucollab,1))
ucolopt.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
ucollab = tk.Label(UFrameL2, width=5, height=1, bg=enucolor[2])
ucollab.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
ColorConL2 = tk.Frame(LeftFrame1)
ColorConL2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
colorcon = ttk.Button(ColorConL2, text='Undo', width=10,
command=lambda: [Colorchoose(0, ecollab,0),Colorchoose(0, ncollab,0),Colorchoose(0, ucollab,0)])
colorcon.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
ColorConL2 = tk.Frame(LeftFrame1)
ColorConL2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
colorcon = ttk.Button(ColorConL2, text='Confirm', width=10)
colorcon.pack(side=tk.LEFT, expand=tk.YES, padx='5px', pady='2px')
# ---------------------------------------------------------------------------------#
#Line's weight options-------------------------------------------------------------#
RightFrame1 = ttk.LabelFrame(MainFrame0, text='Draw configs', labelanchor='nw')
RightFrame1.pack(side=tk.RIGHT, expand=tk.YES , padx='2px', pady='0px', fill=tk.Y)
EFrameR2 = tk.Frame(RightFrame1)
EFrameR2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
elinewopt = tk.Label(EFrameR2, text='Eline:', width=5, height=1)
elinewopt.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='4px')
elinewidth = ttk.Entry(EFrameR2, width=10)
elinewidth.delete(0, "end")
elinewidth.insert(0, enulinew[0])
elinewidth.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='2px')
NFrameR2 = tk.Frame(RightFrame1)
NFrameR2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
nlinewopt = tk.Label(NFrameR2, text='Nline:', width=5, height=1)
nlinewopt.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='4px')
nlinewidth = ttk.Entry(NFrameR2, width=10)
nlinewidth.delete(0, "end")
nlinewidth.insert(0, enulinew[1])
nlinewidth.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='2px')
UFrameR2 = tk.Frame(RightFrame1)
UFrameR2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
ulinewopt = tk.Label(UFrameR2, text='Uline:', width=5, height=1)
ulinewopt.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='4px')
ulinewidth = ttk.Entry(UFrameR2, width=10)
ulinewidth.delete(0, "end")
ulinewidth.insert(0, enulinew[2])
ulinewidth.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='2px')
LineReR2 = tk.Frame(RightFrame1)
LineReR2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
linewre = ttk.Button(LineReR2, text='Undo', width=10, command=lambda: Linewchoose(elinewidth, nlinewidth, ulinewidth, 0))
linewre.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='2px')
LineConR2 = tk.Frame(RightFrame1)
LineConR2.pack(side=tk.TOP, expand=tk.YES, padx='5px', pady='2px')
linewcon = ttk.Button(LineConR2, text='Confirm', width=10, command=lambda: Linewchoose(elinewidth,nlinewidth,ulinewidth,1))
linewcon.pack(side=tk.LEFT, expand=tk.YES, padx='1px', pady='2px')
#---------------------------------------------------------------------------------#
def Abo_windows(): def Abo_windows():
abo = tk.Toplevel(root) abo = tk.Toplevel(root)
abo.title("About") abo.title("About")
abo.attributes("-toolwindow", 2) abo.attributes('-toolwindow', 2)
abo.geometry('200x200+200+200') abo.geometry('200x200+200+200')
abo.minsize(200, 190) abo.minsize(200, 100)
abo.maxsize(200, 190) abo.maxsize(200, 100)
global photo About = tk.Label(abo, text="\\( ̄︶ ̄*\\))\n\nKNZ_plot ver 0.5.1\nCopyright (c) 2024 by KenanZhu\nAll Right Reserved.")
photo = ImageTk.PhotoImage(Image.open('Plot.ico'))
label = tk.Label(abo, image=photo)
label.pack(side=tk.TOP, expand=tk.YES)
About = tk.Label(abo, text='\nSPP_plot ver 0.1.4\nCopyright (c) 2024 by KenanZhu\nAll Right Reserved.')
About.pack(side=tk.TOP, expand=tk.YES) About.pack(side=tk.TOP, expand=tk.YES)
def View_windows(): def View_windows():
f_path = filedialog.askopenfilename() f_path = ""
view = tk.Toplevel() view = tk.Toplevel()
view.title('Viewing: %s'%(f_path)) view.title("KNZ_View")
view.attributes("-toolwindow", 2)
view.geometry('900x600') view.geometry('900x600')
view.minsize(1000, 600) view.minsize(1000, 600)
global icon_img1
icon_img1 = (b'AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQA'
b'APY6AQD2OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAABAAAADQAAABIAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAASAAAADQAAAAEAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAACQAAAHEAAADMAAAA6wAAAO8AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA6wAAAMwAAAByAAAACQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAdAAAAzwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA0AAAAB0AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAgAAADMAAAA/wAAAPoAAAD6AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPoAAAD6AAAA/wAAAMwAAAAIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAHIAAAD/AAAA+QAAAP8AAAD/AAAA9wAAAO0AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADtAAAA9wAAAP8AAAD/AAAA+QAAAP8AAABxAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMcAAAD/AAAA+gAAAP8AAACtAAAAGQAAABEAAAASAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAAUAAAAFgAAABUAAAARAAAAGQAAAK0AAAD/AAAA+gAAAP8AAADHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADQAAAOgAAAD/AAAA/wAAAPkAAAAjAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAACMAAAD5AAAA/wAAAP8AAADnAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO0AAAATAAAAAAAAAAIAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAABQAAAAAAAAA/AAAAkwAAAE0AAAAAAAAAAAAAABQAAADtAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO0AAAD/AAAA/wAAAO4AAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAEAAAABAAAAAIAAAAFAAAAAAAAAFsAAAD/AAAA/gAAAP8AAABNAAAAAAAAABUAAADuAAAA/wAAAP8AAADtAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAXAAAAP8AAAD9AAAA9QAAAP8AAACIAAAAAAAAABUAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAKgAAAGcAAAB7AAAAaAAAAB0AAABaAAAA/wAAAP0AAAD8AAAA/QAAAP8AAAA/AAAAAAAAABQAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAABYAAACrAAAA/gAAAP8AAAD+AAAA/wAAAPcAAAD4AAAA/gAAAP0AAAD9AAAA/wAAAFwAAAAAAAAAAAAAABEAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAGAAAANgAAAD/AAAA/QAAAPkAAAD2AAAA+QAAAP8AAAD9AAAA/gAAAP8AAAD/AAAAXAAAAAAAAAAFAAAAAAAAABEAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAArAAAAP8AAAD5AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD+AAAA/wAAAP8AAABbAAAAAAAAAAUAAAABAAAAAAAAABEAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAwAAAA/gAAAP0AAAD+AAAA/wAAAMYAAACAAAAAygAAAP8AAAD9AAAA/wAAAPoAAAAmAAAAAAAAAAIAAAABAAAAAAAAABEAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAABAAAAAAAAABqAAAA/wAAAPkAAAD/AAAAxQAAAAMAAAAAAAAABgAAAMsAAAD/AAAA+QAAAP8AAABkAAAAAAAAAAQAAAABAAAAAAAAABEAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAABAAAAAAAAAB/AAAA/wAAAPcAAAD/AAAAggAAAAAAAAASAAAAAAAAAIoAAAD/AAAA9wAAAP8AAAB4AAAAAAAAAAQAAAABAAAAAAAAABEAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAABAAAAAAAAABrAAAA/wAAAPkAAAD/AAAAwQAAAAAAAAAAAAAAAwAAAMcAAAD/AAAA+QAAAP8AAABkAAAAAAAAAAQAAAABAAAAAAAAABEAAADuAAAA/wAAAP8AAADtAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEgAAAO0AAAD/AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAgAALine truncated
icon_img1 = b64decode(icon_img1)
icon_img1 = ImageTk.PhotoImage(data=icon_img1)
view.tk.call('wm', 'iconphoto', view._w, icon_img1)
#View window's menu
topmenu = tk.Menu(view)
filemenu = tk.Menu(topmenu, tearoff=False)
filemenu.add_command(label="Open File", command=lambda: View_windowshow(text, view), accelerator='Ctrl+F')
filemenu.add_command(label="Exit", command=view.destroy, accelerator='Ctrl+E')
topmenu.add_cascade(label="File", menu=filemenu)
view.config(menu=topmenu)
ybar = tk.Scrollbar(view) ybar = tk.Scrollbar(view)
ybar.pack(side=tk.RIGHT, fill=tk.Y) ybar.pack(side=tk.RIGHT, fill=tk.Y)
text = tk.Text(view, height=500, undo=True, autoseparators=False) xbar = tk.Scrollbar(view, orient=tk.HORIZONTAL)
text.pack(fill=tk.BOTH) xbar.pack(side=tk.BOTTOM, fill=tk.X)
text = tk.Text(view, xscrollcommand=xbar.set, yscrollcommand=ybar.set, height=500, width=1000, undo=True, autoseparators=False, wrap='none')
text.pack(side=tk.TOP, fill=tk.BOTH)
ybar.config(command=text.yview)
xbar.config(command=text.xview)
def View_windowshow(text, view):
f_path = filedialog.askopenfilename()
text.delete('1.0', 'end')
with open(f_path, 'r') as f: with open(f_path, 'r') as f:
lines = f.readlines() lines = f.readlines()
for line in lines: for line in lines:
text.insert("insert", line) text.insert('insert', line)
text.config()
text.config(state=tk.DISABLED)
ybar.config(command=text.yview)
def PO_openfile(): def PO_openfile():
ENU_O = np.empty((3, 0)) ENU_O = np.empty((3, 0))
@@ -109,13 +250,13 @@ def PO_openfile():
ex.clear() ex.clear()
nx.clear() nx.clear()
ux.clear() ux.clear()
ex.plot(ENU_O[0, :], color=ecolor) ex.plot(ENU_O[0, :], color=enucolor[0], linewidth=enulinew[0])
ex.set_title('E-W(m)', loc='left', fontsize=8) ex.set_title('E-W(m)', loc='left', fontsize=8)
ex.grid(True, linestyle='--', alpha=0.7) ex.grid(True, linestyle='--', alpha=0.7)
nx.plot(ENU_O[1, :], color=ncolor) nx.plot(ENU_O[1, :], color=enucolor[1], linewidth=enulinew[1])
nx.set_title('N-S(m)', loc='left', fontsize=8) nx.set_title('N-S(m)', loc='left', fontsize=8)
nx.grid(True, linestyle='--', alpha=0.7) nx.grid(True, linestyle='--', alpha=0.7)
ux.plot(ENU_O[2, :], color=ucolor) ux.plot(ENU_O[2, :], color=enucolor[2], linewidth=enulinew[2])
ux.set_title('U-D(m)', loc='left', fontsize=8) ux.set_title('U-D(m)', loc='left', fontsize=8)
ux.set_xlabel('Epochs') ux.set_xlabel('Epochs')
ux.grid(True, linestyle='--', alpha=0.7) ux.grid(True, linestyle='--', alpha=0.7)
@@ -173,12 +314,12 @@ def SPP_calculat():
with open(o_path, 'w+') as of:# Initialize-------# with open(o_path, 'w+') as of:# Initialize-------#
of.close() of.close()
with open(o_path, 'a+') as of: with open(o_path, 'a+') as of:
print("@ GENGRATE PROGRAM : PySPP v0.1.1\n" print("@ GENERATE PROGRAM : KNZ_Plot v0.5.1\n"
"@ GENERATE TYPE : Receiver Station Position\n" "@ GENERATE TYPE : Receiver Station Position\n"
"@ GENGRATE TIME : %s\n" "@ GENERATE TIME : %s\n"
"@ IONOS OPT : %s" "@ IONOS OPT : %s"
"@ TROPO OPT : %s" "@ TROPO OPT : %s"
"@\n\n" % (time.asctime(time.localtime()),ION,TRO), file=of) "@\n\n" % (time.asctime(time.localtime()),ION,TRO), file=of)
print("GPST X-rec(m) Y-rec(m) Z-rec(m) Sn(n) dE(m) dN(m) dU(m) ", file=of) print("GPST X-rec(m) Y-rec(m) Z-rec(m) Sn(n) dE(m) dN(m) dU(m) ", file=of)
of.close() of.close()
#Coordinate transformation matrix---------------# #Coordinate transformation matrix---------------#
@@ -210,7 +351,6 @@ def SPP_calculat():
flag = line[0:1] flag = line[0:1]
if flag == "G": if flag == "G":
satnum += 1 satnum += 1
sPEN = int(line[1:3])
satX = float(line[6:21]) satX = float(line[6:21])
satY = float(line[22:37]) satY = float(line[22:37])
satZ = float(line[38:53]) satZ = float(line[38:53])
@@ -252,13 +392,13 @@ def SPP_calculat():
ex.clear() ex.clear()
nx.clear() nx.clear()
ux.clear() ux.clear()
ex.plot(ENU_O[0, :], color=ecolor) ex.plot(ENU_O[0, :], color=enucolor[0], linewidth=enulinew[0])
ex.set_title('E-W(m)', loc='left', fontsize=8) ex.set_title('E-W(m)', loc='left', fontsize=8)
ex.grid(True, linestyle='--', alpha=0.7) ex.grid(True, linestyle='--', alpha=0.7)
nx.plot(ENU_O[1, :], color=ncolor) nx.plot(ENU_O[1, :], color=enucolor[1], linewidth=enulinew[1])
nx.set_title('N-S(m)', loc='left', fontsize=8) nx.set_title('N-S(m)', loc='left', fontsize=8)
nx.grid(True, linestyle='--', alpha=0.7) nx.grid(True, linestyle='--', alpha=0.7)
ux.plot(ENU_O[2, :], color=ucolor) ux.plot(ENU_O[2, :], color=enucolor[2], linewidth=enulinew[2])
ux.set_title('U-D(m)', loc='left', fontsize=8) ux.set_title('U-D(m)', loc='left', fontsize=8)
ux.set_xlabel('Epochs') ux.set_xlabel('Epochs')
ux.grid(True, linestyle='--', alpha=0.7) ux.grid(True, linestyle='--', alpha=0.7)
@@ -267,30 +407,146 @@ def SPP_calculat():
break break
root = tk.Tk() root = tk.Tk()
root.title("SPP_plot") root.title("KNZ_Plot")
root.geometry('900x450') root.geometry('900x450')
root.minsize(300,500) root.minsize(300,500)
icon_img = b'AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAANIAAADSAAAAAAAAAAAAAAAEAQOcBAEDtQQBA6UEAQN6BAEDPgQBAwgEAQMABAEDAQQBAwMEAQMBBAEDAAQBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBA60EAQP/BAED/QQBA/8EAQP+BAED3AQBA4cEAQMeBAEDAAQBAwMEAQMCBAEDAAQBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDBwQBA8wEAQP/BAED+gQBA/4EAQP+BAED/wQBA/cEAQOCBAEDBgQCAwAEAQMBBAEDAAQBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMABAEDVQQBA/8EAQP8BAED/wQBA/0EAQP7BAED/AQBA/8EAQPEBAEDFAQBAwAEAQMBBAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMOBAED5wQBA/8EAQP+BAED/wQBA/8EAQP+BAED+QQBA/8EAQO7BAEDAAQBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAgQBAwAEAQO5BAED/wQBA/wEAQP/BAED/wQBA/8EAQP/BAED/AQBA/8EAQMzBAEDAAQBAwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMEBAEDAAQBA5MEAQP/BAED+wQBA/8EAQP/BAED/wQBA/8EAQP9BAED/wQBAz8EAQMABAEDBQQBAwAEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwQEAQMABAEDaAQBA/8EAQP7BAED/wQBA/8EAQP/BAED/gQBA/8EAQPqBAEDFAQBAwAEAQMBBAEDAwQBAwAEAQMABAEDAAYAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAgQBAwAEAQMnBAED+QQBA/4EAQP8BAED/gQBA/wEAQP5BAED/wQBA38EAQMABAEDOgQBAzsEAQMABAEDBAQBAwEEAQMABAEDAAMBAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMABAEDAwQBAwAEAQOIBAED/wQBA/wEAQP/BAED/QQBA/8EAQOhBAIDAAMBBAEEAQPIBAED/wQBA2UEAQMABAEDAwQBAwEEAQMABAEDAAQBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAQUAAgAEAQN8BAED6QQBA/QEAQPVBAEDZgQBAwMEAQMABAEDkAQBA/8EAQP5BAED/wQBA5QEAwUABAEDAgQBAwEEAQMABAEDAAQBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAAQBAwAEAQMABAEDAgQBAwAEAQMLBAEDGAQBAwQEAQMABAEDBAQBA5QEAQP/BAED/AQBA/4EAQP6BAED/wQBA6oEAQMDBAEDAQQBAwEEAQMABAEDAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAAQBAwAEAQMBBAEDAwQBAwAEAQMCBAEDAAQBAz8EAQPVBAED/wQBA/wEAQP/BAED/wQBA/8EAQP6BAED/wQBA64EAQMDBAEDAQQBAwEEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAAQBAgAEAQIABAEDAQQBAwQEAQMABAEDRQQBA/8EAQP6BAED/gQBA/8EAQP/BAED/wQBA/8EAQP6BAED/wQBA6YEAQQABAEDAgQBAwEEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAAQBAwMEAQMABAEDbAQBA/8EAQP7BAED/wQBA/8EAQP/BAED/wQBA/8EAQP6BAED/wQBA5UEAQMABAEDAwQBAwAEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAAQBAwMEAQMABAEDkQQBA/8EAQP6BAED/wQBA/8EAQP/BAED/wQBA/8EAQP7BAED/wQBA38EAQMABAEDBAQAAAAEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAQQBAwIEAQMABAEDnwQBA/8EAQP6BAED/wQBA/8EAQP/BAED/wQBA/8EAQP8BAED/wQBA2QEAQMABAEDBAQBAwAEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAQQBAwIHAQQABAEDnQQBA/8EAQP6BAED/gQBA/8EAQP/BAED/wQBA/4EAQP+BAED/QQBA0cEAQMABAEDBAQBAwAEAQMABAECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBAAQBAwAEAQMABAEDAQQBAwMEAQMABAEDjAQBA/8EAQP7BAED/gQBA/8EAQP/BAED/wQBA/0EAQP/BAED7gQBAysEAQMABAEDAwQBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgECAAQBAwAEAQMABAEDAQQBAwQEAQMABAEDcwQBA/8EAQP9BAED/QQBA/8EAQP/BAED/wQBA/wEAQP/BAED1gQBAxIEAQMABAEDAgQBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwECAAQBAwAEAQMABAEDAQQBAwQEAQMABAEDVQQBA/cEAQP/BAED/AQBA/8EAQP/BAED/wQBA/sEAQP/BAEDtQAAAAAEAQMCBAEDAQQBBAAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAAQBAwQEAQMABAEDNgQBA+QEAQP/BAED+wQBA/8EAQP/BAED/wQBA/sEAQP/BAEDjAQBAwAEAQMEBAEEAAQBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAADAAQBAwQEAQMABAEDGgQBA8cEAQP/BAED+wQBA/4EAQP/BAED/wQBA/wEAQP/BAEDXgQBAwAEAQMEBAEDAAQBAwAEAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAAQBAwMEAwIABAEDBQQBA54EAQP/BAED/AQBA/0EAQP/BAED/gQBA/8EAQP0BAEDMQQBAwAEAQMDBAEDAAQBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAAQBAwIEAQMDBAEDAAQBA20EAQP8BAED/wQBA/wEAQP/BAED/AQBA/8EAQPTBAEDDQQBAwAEAQMBBAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAAQBAwEEAQMEBAEDAAQBAz0EAQPkBAED/wQBA/sEAQP+BAED+wQBA/8EAQOgBAEDAAQBAwMEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBAgAEAQMABAEDAAQBAwAEAQMEBAEDAAQBAxUEAQO4BAED/wQBA/sEAQP9BAED/AQBA/8EAQNhBAEDAAQBAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMABAEDAAQBAwAEAQMDBAEDAQQBBAAEAQN6BAED/QQBA/8EAQP6BAED/wQBA+8EAQMiBAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMABAEDAAQBAwAEAQMCBALine truncated icon_img = (b'AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAI'
b'AAAAAAAABAAANIAAADSAAAAAAAAAAAAAAAEAQOcBAEDtQQBA6'
b'UEAQN6BAEDPgQBAwgEAQMABAEDAQQBAwMEAQMBBAEDAAQBAwA'
b'EAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAQBA60EAQP/BAED/QQBA/8EAQP+BAED3AQBA4cEAQ'
b'MeBAEDAAQBAwMEAQMCBAEDAAQBAwAEAQMAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDBwQBA8wEAQP/B'
b'AED+gQBA/4EAQP+BAED/wQBA/cEAQOCBAEDBgQCAwAEAQMBBA'
b'EDAAQBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAEAQMABAEDVQQBA/8EAQP8BAED/wQBA/0EAQP7BAED/'
b'AQBA/8EAQPEBAEDFAQBAwAEAQMBBAEDAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMOBAED5wQB'
b'A/8EAQP+BAED/wQBA/8EAQP+BAED+QQBA/8EAQO7BAEDAAQBA'
b'wAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAABAEDAgQBAwAEAQO5BAED/wQBA/wEAQP/BAED/wQBA/8E'
b'AQP/BAED/AQBA/8EAQMzBAEDAAQBAwIAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMEBAEDAAQBA5MEAQP'
b'/BAED+wQBA/8EAQP/BAED/wQBA/8EAQP9BAED/wQBAz8EAQMA'
b'BAEDBQQBAwAEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAQBAwQEAQMABAEDaAQBA/8EAQP7BAED/wQBA/8EAQP/BAE'
b'D/gQBA/8EAQPqBAEDFAQBAwAEAQMBBAEDAwQBAwAEAQMABAED'
b'AAYAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAgQBAwAEAQMnBAED+Q'
b'QBA/4EAQP8BAED/gQBA/wEAQP5BAED/wQBA38EAQMABAEDOgQ'
b'BAzsEAQMABAEDBAQBAwEEAQMABAEDAAMBAgAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAEAQMABAEDAwQBAwAEAQOIBAED/wQBA/wEAQP/BAED/QQBA/'
b'8EAQOhBAIDAAMBBAEEAQPIBAED/wQBA2UEAQMABAEDAwQBAwE'
b'EAQMABAEDAAQBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAQUAAgAEA'
b'QN8BAED6QQBA/QEAQPVBAEDZgQBAwMEAQMABAEDkAQBA/8EAQ'
b'P5BAED/wQBA5QEAwUABAEDAgQBAwEEAQMABAEDAAQBAwAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'BAEDAAQBAwAEAQMABAEDAgQBAwAEAQMLBAEDGAQBAwQEAQMAB'
b'AEDBAQBA5QEAQP/BAED/AQBA/4EAQP6BAED/wQBA6oEAQMDBA'
b'EDAQQBAwEEAQMABAEDAAQABAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAAQBAwAEAQMBBAED'
b'AwQBAwAEAQMCBAEDAAQBAz8EAQPVBAED/wQBA/wEAQP/BAED/'
b'wQBA/8EAQP6BAED/wQBA64EAQMDBAEDAQQBAwEEAQMABAEDAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAABAEDAAQBAgAEAQIABAEDAQQBAwQEAQMABAEDRQQB'
b'A/8EAQP6BAED/gQBA/8EAQP/BAED/wQBA/8EAQP6BAED/wQBA'
b'6YEAQQABAEDAgQBAwEEAQMABAEDAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAABAEDAAQBAwMEAQMABAEDbAQBA/8EAQP7BAED/wQBA/8E'
b'AQP/BAED/wQBA/8EAQP6BAED/wQBA5UEAQMABAEDAwQBAwAEA'
b'QMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAAQBAwMEAQM'
b'ABAEDkQQBA/8EAQP6BAED/wQBA/8EAQP/BAED/wQBA/8EAQP7'
b'BAED/wQBA38EAQMABAEDBAQAAAAEAQMABAEDAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAQBAwAEAQMABAEDAQQBAwIEAQMABAEDnwQBA/8EAQP6BAE'
b'D/wQBA/8EAQP/BAED/wQBA/8EAQP8BAED/wQBA2QEAQMABAED'
b'BAQBAwAEAQMABAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAQ'
b'QBAwIHAQQABAEDnQQBA/8EAQP6BAED/gQBA/8EAQP/BAED/wQ'
b'BA/4EAQP+BAED/QQBA0cEAQMABAEDBAQBAwAEAQMABAECAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAgEBAAQBAwAEAQMABAEDAQQBAwMEAQMABAEDjAQBA/'
b'8EAQP7BAED/gQBA/8EAQP/BAED/wQBA/0EAQP/BAED7gQBAys'
b'EAQMABAEDAwQBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgECAAQBAwAEA'
b'QMABAEDAQQBAwQEAQMABAEDcwQBA/8EAQP9BAED/QQBA/8EAQ'
b'P/BAED/wQBA/wEAQP/BAED1gQBAxIEAQMABAEDAgQBAwAEAQM'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAwECAAQBAwAEAQMABAEDAQQBAwQEAQMAB'
b'AEDVQQBA/cEAQP/BAED/AQBA/8EAQP/BAED/wQBA/sEAQP/BA'
b'EDtQAAAAAEAQMCBAEDAQQBBAAEAQMAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAQBAwAEAQMABAEDAAQBAwQEAQMABAEDNgQBA+QEAQP/BAED+'
b'wQBA/8EAQP/BAED/wQBA/sEAQP/BAEDjAQBAwAEAQMEBAEEAA'
b'QBAwAEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAADAAQB'
b'AwQEAQMABAEDGgQBA8cEAQP/BAED+wQBA/4EAQP/BAED/wQBA'
b'/wEAQP/BAEDXgQBAwAEAQMEBAEDAAQBAwAEAAMAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAQBAwAEAQMABAEDAAQBAwMEAwIABAEDBQQBA54E'
b'AQP/BAED/AQBA/0EAQP/BAED/gQBA/8EAQP0BAEDMQQBAwAEA'
b'QMDBAEDAAQBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAwAEAQM'
b'ABAEDAAQBAwIEAQMDBAEDAAQBA20EAQP8BAED/wQBA/wEAQP/'
b'BAED/AQBA/8EAQPTBAEDDQQBAwAEAQMBBAEDAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAQBAwAEAQMABAEDAAQBAwEEAQMEBAE'
b'DAAQBAz0EAQPkBAED/wQBA/sEAQP+BAED+wQBA/8EAQOgBAED'
b'AAQBAwMEAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'MBAgAEAQMABAEDAAQBAwAEAQMEBAEDAAQBAxUEAQO4BAED/wQ'
b'BA/sEAQP9BAED/AQBA/8EAQNhBAEDAAQBAwQAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMABAEDAAQBAw'
b'AEAQMDBAEDAQQBBAAEAQN6BAED/QQBA/8EAQP6BAED/wQBA+8'
b'EAQMiBAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAEAQMABAEDAAQBAwAEAQMCBAEDBAQBAwAEAQ'
b'M6BAED2wQBA/8EAQP4BAED/wQBA60EAQMAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQMAB'
b'AEDAAQBAwAEAQMBBAEDBAQBAwAEAQMMBAEDlgQBA/8EAQP+BA'
b'ED/wQBA1UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAABAEDAAQBAwAEAQMABAEDA'
b'wQBAwMEAQMABAEDPAQBA8kEAQP/BAED1wAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
b'AAAAAAAABAEDAAQBAwAEAQMABAEDAQQBAwQEAQMABAEDAwQBA'
b'18EAQOvAi///wCX//8AC///gBP//4AT//9AC///QAp//0AIv/'
b'9AEl//ICEv/wAgl/9IgAv/oQAF/9kAEv/8gAl//EAEf/0gAr/'
b'+kAFf/0gAr/+kAFf/0gAD/+kAK//0gBX/+QAK//6QBP//SAT/'
b'/6QC///JAf//9IH///pA///8kP///0g=')
icon_img = b64decode(icon_img) icon_img = b64decode(icon_img)
icon_img = ImageTk.PhotoImage(data=icon_img) icon_img = ImageTk.PhotoImage(data=icon_img)
root.tk.call('wm', 'iconphoto', root._w, icon_img) root.tk.call('wm', 'iconphoto', root._w, icon_img)
default_font = tkFont.nametofont("TkDefaultFont") default_font = tkFont.nametofont("TkDefaultFont")
default_font.configure(family="Segoe UI", size=9) default_font.configure(family="Segoe UI", size=10)
frmFigure = tk.Frame(root) frmFigure = tk.Frame(root)
frmFigure.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=tk.YES) frmFigure.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=tk.YES)
inter = tk.Label(root,text=' Interval:') inter = ttk.Label(root,text=' Interval:')
inter.pack(side=tk.LEFT, anchor='e') inter.pack(side=tk.LEFT, anchor='e')
cboxi = ttk.Combobox(root, width=8, height=10) cboxi = ttk.Combobox(root, width=8, height=10)
cboxi['value'] = ('0','0.05','0.1','0.2','0.25','0.5','1','5','10','15','30','60') cboxi['value'] = ('0','0.05','0.1','0.2','0.25','0.5','1','5','10','15','30','60')
cboxi.current(0) cboxi.current(10)
cboxi.pack(side=tk.LEFT, anchor='e') cboxi.pack(side=tk.LEFT, anchor='e')
plottype = tk.Label(root,text=' Plot types:') plottype = ttk.Label(root,text=' Plot types:')
plottype.pack(side=tk.LEFT, anchor='e') plottype.pack(side=tk.LEFT, anchor='e')
cboxe = ttk.Combobox(root, width=8) cboxe = ttk.Combobox(root, width=8)
@@ -310,7 +566,7 @@ filemenu.add_command(label="Exit", command=root.quit, accelerator='Ctrl+E')
topmenu.add_cascade(label="File", menu=filemenu) topmenu.add_cascade(label="File", menu=filemenu)
optmenu = tk.Menu(topmenu, tearoff=False) optmenu = tk.Menu(topmenu, tearoff=False)
optmenu.add_cascade(label="Color options...", command=Opt_windows) optmenu.add_cascade(label="Draw options...", command=Opt_windows)
topmenu.add_cascade(label="Options", menu=optmenu) topmenu.add_cascade(label="Options", menu=optmenu)
helpmenu = tk.Menu(topmenu, tearoff=False) helpmenu = tk.Menu(topmenu, tearoff=False)
+1 -1
View File
@@ -1,4 +1,4 @@
##Tro correct ##Tro correct-Hopfield
import math import math
def def_tro_cor(H, ma): def def_tro_cor(H, ma):
P0 = 1013.25 P0 = 1013.25
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB