Update: 2024/11/03:

1.  KNZ_GeoTrackLab: Fix some bug, Modify some UI logic.
2.  KNZ_GeoTrackLab: Remove 3D plot function.
3.  KNZ_GeoTrackLab: Merge some functions and concentrated.
4.  KNZ_GeoTrackLab: New added:
                                Sat track projection ui(not ok on function).
This commit is contained in:
KenanZhu111 committed 2024-11-03 22:38:54 +08:00
1 parent d4db845cb3
commit a3fb64a657
20 files changed
+860 -1986

No files matched your search

+1 -1
View File
@@ -49,7 +49,7 @@ class Configinit:
# -------------------------------------------------------------------------------
### Config for software info
self.config.add_section('INFO')
self.config.set('INFO', 'Version','1.5.4.1')
self.config.set('INFO', 'Version','1.5.5.0')
self.config.add_section('Options_Calc')
### Config for calculate param
self.config.set('Options_Calc', 'Iono_model', '0')
+18 -8
View File
@@ -8,7 +8,6 @@
#
#
#-----------------------------------------------------------------#
### Std
import threading
@@ -58,6 +57,10 @@ class CALLBACK:
for i in self.outdir:
if self.outdir.get(i):
self.outvar += (self.outdir.get(i),)
### Const value
global blank, C_V
blank = ' '
C_V = 299792458
@staticmethod
def Move_center(hwnd, win_x, win_y):
@@ -158,7 +161,8 @@ class CALLBACK:
self.cfg_get.set('Options_Draw', 'U_Line', str(entry2.get()))
self.cfg.save_config()
def Dir_or_name_get(self, path, mode):
@staticmethod
def Dir_or_name_get(path, mode):
# -------------------------------------------------------------------------------
# >
# Method:
@@ -259,8 +263,8 @@ class CALLBACK:
path + '/*.sp')
self.cfg.save_config()
def AskOrNotCheck(self,
AskOrNotCheckVar,
@staticmethod
def AskOrNotCheck(AskOrNotCheckVar,
AskDirectorySelectBox,
AskDirectorySelectButton):
# -------------------------------------------------------------------------------
@@ -316,7 +320,7 @@ class CALLBACK:
directory = self.Dir_or_name_get(directory, 1)
syssign = self.system.get(int(self.cfg_get['Options_Calc']['sat_system']))
resname = syssign + '-' + self.Dir_or_name_get(obspath,0) + 'sp'
resname = syssign + '-' + self.Dir_or_name_get(obspath,0) + 'ksln'
respath = (directory + resname)
ExecuteState.config(text='Processing...... file : %s' %resname)
@@ -327,8 +331,10 @@ class CALLBACK:
navpath.encode(),
obspath.encode(),
respath.encode(),
int(self.cfg_get['Options_Calc']['sat_system']),
int(self.cfg_get['Options_Calc']['elev_angle'])
int(self.cfg_get['Options_Calc']['Sat_system']),
int(self.cfg_get['Options_Calc']['Elev_angle']),
int(self.cfg_get['Options_Calc']['Iono_Model']),
int(self.cfg_get['Options_Calc']['Trop_Model'])
):
case 0.0:
ExecuteState.config(text='Generated successfully ! file : %s' %resname)
@@ -356,4 +362,8 @@ class CALLBACK:
NavSelectBoxVar,
AskOrNotCheckVar,
DirectorySelectBoxVar))
T.start()
T.start()
-1601
View File
File diff suppressed because it is too large. Load diff
-36
View File
@@ -1,36 +0,0 @@
##Tro correct-Hopfield
import math
def Hop_tro_cor(H, ma):
global e
P0 = 1013.25
e0 = 11.69
T0 = 288.15
p = P0 * pow((1.0 - 0.0068 / T0 / H) , 5)
T = 288.15 - 0.0068 * H
if H > 11000:
e = 0
if H <= 11000:
e = e0 * pow( (1.0 - 0.0068 * H / T0) , 4)
deltaSd = 1.552e-5 * p * (40136 + 148.72 * (T - 273.16) - H) / T
deltaSw = 1.552e-5 * 4810 * e * (11000 - H) / pow(T , 2)
#Dry
dtropd = deltaSd / math.sqrt( math.sin( math.radians( math.degrees( pow(math.radians(ma) , 2) ) + 6.25) ) )
#Wet
dtropw = deltaSw / math.sqrt( math.sin( math.radians( math.degrees( pow(math.radians(ma) , 2) ) + 6.25) ) )
dtrop = dtropw + dtropd
return dtrop
#Tro corrct-Saastamoinen
def Sas_tro_cor(B, H, ma):
global e
P0 = 1013.25 * pow( (1 - 2.2557 * 10e-5 * H), 5.2568)
e0 = 11.69
T0 = 15 - 6.5 * 10e-3 * H + 273.15
deltaSd = 2.2768e-3 * P0 / (1 - 2.66e-3 * math.cos(2 * B) - 2.8e-4 * H * 1e3)
deltaSw = 2.2768e-3 * (1255 / T0 + 0.05) * e0
# Dry
dtropd = deltaSd / math.sqrt( math.sin( math.radians( math.degrees( pow(math.radians(ma), 2) ) + 6.25) ) )
# Wet
dtropw = deltaSw / math.sqrt( math.sin( math.radians( math.degrees( pow(math.radians(ma), 2) ) + 6.25) ) )
dtrop = dtropw + dtropd
return dtrop
+2 -1
View File
@@ -13,9 +13,10 @@
import tkinter as tk
class ABODUI:
def __init__(self, hwndparent, cfg_get):
def __init__(self, hwndparent, cfg_get, func):
# init
# -------------------------------------------------------------------------------
self.func = func
self.cfg_get = cfg_get
self.hwndparent = hwndparent
+23 -3
View File
@@ -18,6 +18,8 @@ import Config_file as config
import Func_callback as func
### Std
import threading
from tkinter import ttk
from PIL import ImageTk
from base64 import b64decode
@@ -39,9 +41,27 @@ def instancePRO(hwndparent, cfg_get_, func_):
def instanceVIE(hwndparent, func_):
vie.VIEWGUI(hwndparent, func_)
def instanceABO(hwndparemt, cfg_get_):
abo.ABODUI(hwndparemt, cfg_get_)
def instanceABO(hwndparemt, cfg_get_, func_):
abo.ABODUI(hwndparemt, cfg_get_, func_)
def _instanceOPT(hwndparemt, cfg_get_, func_):
T = threading.Thread(target=lambda :instanceOPT(hwndparemt, cfg_get_, func_))
T.start()
def _instancePRO(hwndparemt, cfg_get_, func_):
T = threading.Thread(target=lambda :instancePRO(hwndparemt, cfg_get_, func_))
T.start()
def _instanceVIE(hwndparemt, func_):
T = threading.Thread(target=lambda :instanceVIE(hwndparemt, func_))
T.start()
def _instanceABO(hwndparemt, cfg_get_, func_):
T = threading.Thread(target=lambda :instanceABO(hwndparemt, cfg_get_, func_))
T.start()
# noinspection PyUnusedLocal,PyProtectedMember
class MAINGUI:
def __init__(self, hwnd_, func_):
# init
@@ -230,7 +250,7 @@ class MAINGUI:
### Help > About
helpmenu.add_command(
label="About",
command=lambda :instanceABO(self.hwnd, cfg_get)
command=lambda :instanceABO(self.hwnd, cfg_get, self.func)
)
topmenu.add_cascade(label="Help", menu=helpmenu)
+2
View File
@@ -16,6 +16,8 @@ from base64 import b64decode
import tkinter as tk
# noinspection PyProtectedMember
class OPTGUI:
def __init__(
self,
+1
View File
@@ -17,6 +17,7 @@ from base64 import b64decode
import tkinter as tk
# noinspection PyProtectedMember
class EXECUDUI:
def __init__(self, hwndparent, cfg_get, func):
# init
+2
View File
@@ -16,6 +16,8 @@ from tkinter import filedialog
import tkinter as tk
# noinspection PyProtectedMember
class VIEWGUI:
def __init__(self, hwndparent, func):
# init