Archived
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:
1 parent
d4db845cb3
commit
a3fb64a657
20 files changed
+860
-1986
No files matched your search
+1
-1
@@ -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
@@ -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
File diff suppressed because it is too large.
Load diff
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@ from base64 import b64decode
|
||||
|
||||
import tkinter as tk
|
||||
|
||||
|
||||
# noinspection PyProtectedMember
|
||||
class OPTGUI:
|
||||
def __init__(
|
||||
self,
|
||||
|
||||
@@ -17,6 +17,7 @@ from base64 import b64decode
|
||||
import tkinter as tk
|
||||
|
||||
|
||||
# noinspection PyProtectedMember
|
||||
class EXECUDUI:
|
||||
def __init__(self, hwndparent, cfg_get, func):
|
||||
# init
|
||||
|
||||
@@ -16,6 +16,8 @@ from tkinter import filedialog
|
||||
|
||||
import tkinter as tk
|
||||
|
||||
|
||||
# noinspection PyProtectedMember
|
||||
class VIEWGUI:
|
||||
def __init__(self, hwndparent, func):
|
||||
# init
|
||||
|
||||
Reference in new issue
Block a user