3 import unittest, sys, os
4 sys.path.insert(0, os.path.abspath(
".."))
5 from gnsstk.test_utils
import args,run_unit_tests
10 tropMissing =
'Trop Model is missing'
12 self.assertTrue(hasattr(gnsstk,
'GCATTropModel'), tropMissing)
13 self.assertTrue(hasattr(gnsstk,
'GGHeightTropModel'), tropMissing)
14 self.assertTrue(hasattr(gnsstk,
'GGTropModel'), tropMissing)
15 self.assertTrue(hasattr(gnsstk,
'MOPSTropModel'), tropMissing)
16 self.assertTrue(hasattr(gnsstk,
'NBTropModel'), tropMissing)
17 self.assertTrue(hasattr(gnsstk,
'NeillTropModel'), tropMissing)
18 self.assertTrue(hasattr(gnsstk,
'SaasTropModel'), tropMissing)
19 self.assertTrue(hasattr(gnsstk,
'SimpleTropModel'), tropMissing)
20 self.assertTrue(hasattr(gnsstk,
'ZeroTropModel'), tropMissing)
25 trop_list = [
'GCAT',
'GG',
'GGHeight',
'MOPS',
'NB',
'Saas',
'Simple',
'Zero']
26 for tropName
in trop_list:
29 self.
fname = os.path.join(os.path.dirname(__file__),
'../../data/TropModel_'+tropName+
'.exp')
30 self.assertTrue(os.path.exists(self.
fname),
'data path not found')
33 trop_data, pt_dryz, pt_wetz = self.
run_test(tropName)
34 data_list, dry_zenith, wet_zenith = self.
read_data(tropName)
35 self.assertEqual(trop_data, data_list)
36 self.assertEqual(pt_dryz, dry_zenith)
37 self.assertEqual(pt_wetz, wet_zenith)
55 print(
" Warning - unknown trop model: " + tropName+
"; use Simple")
74 refPosstr_x = -740376.5046
75 refPosstr_y = -5457019.3545
76 refPosstr_z = 3207315.7299
81 pTrop.setWeather(Temp,Press,Humid)
85 refPos.setECEF(refPosstr_x, refPosstr_y, refPosstr_z)
86 pTrop.setReceiverHeight(refPos.getHeight())
87 pTrop.setReceiverLatitude(refPos.getGeodeticLatitude())
88 pTrop.setReceiverLongitude(refPos.getLongitude())
91 pTrop.setDayOfYear(doy)
93 return pTrop, elevmin, elevmax, delev
99 pTrop, elevmin, elevmax, delev = self.
set_defaults(pTrop)
101 header = [
"Name",
"elev",
"drymap",
"drytotal",
"wetmap",
"wettotal",
"total(m)"]
106 while elev <= elevmax:
107 pt_name = pTrop.name()
108 pt_elev =
'{:2.2f}'.format(elev)
109 pt_drym =
'{:2.4f}'.format(pTrop.dry_mapping_function(elev))
110 pt_dryt =
'{:2.4f}'.format(pTrop.dry_zenith_delay()*pTrop.dry_mapping_function(elev))
111 pt_wetm =
'{:2.4f}'.format(pTrop.wet_mapping_function(elev))
112 pt_wett =
'{:2.4f}'.format(pTrop.wet_zenith_delay()*pTrop.wet_mapping_function(elev))
113 pt_totm =
'{:2.4f}'.format(pTrop.correction(elev))
115 pt_data = [pt_name, pt_elev, pt_drym, pt_dryt, pt_wetm, pt_wett, pt_totm]
116 data_dict = dict(zip(header, pt_data))
117 trop_data.append(data_dict)
121 pt_dryz =
'{:2.4f}'.format(pTrop.dry_zenith_delay())
122 pt_wetz =
'{:2.4f}'.format(pTrop.wet_zenith_delay())
124 return trop_data, pt_dryz, pt_wetz
130 header = [
"Name",
"elev",
"drymap",
"drytotal",
"wetmap",
"wettotal",
"total(m)"]
131 dry_zenith = float(
'nan')
132 wet_zenith = float(
'nan')
134 with open(self.
fname,
'r')
as datafile:
135 data = datafile.readlines()
138 if line[0] != tropName:
continue
139 if 'zenith' in dline:
141 wet_zenith = line[11]
143 data_dict = dict(zip(header, line))
144 data_list.append(data_dict)
145 return data_list, dry_zenith, wet_zenith
148 if __name__ ==
'__main__':