Skip to content

Commit 605a0ff

Browse files
committed
- applied a change in MT54.9 message.
1 parent 8b33b36 commit 605a0ff

File tree

1 file changed

+30
-24
lines changed

1 file changed

+30
-24
lines changed

src/cssrlib/rtcm.py

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1466,16 +1466,16 @@ def out_log(self, obs=None, eph=None, geph=None, seph=None):
14661466
self.fh.write(f" Number of Area Points: {self.integ.narea:}\n")
14671467
self.fh.write(" Number of Azimuth Slices: " +
14681468
f"{self.integ.naz:}\n")
1469-
self.fh.write(" Area Points (lat, long, alt):\n")
1469+
self.fh.write(" Area Points (lat, long, alt), naz:\n")
14701470
for k in range(self.integ.narea):
1471-
self.fh.write(" {:2d}\t{:12.9f}\t{:12.9f}\t{:4.0f}\n".format
1471+
self.fh.write(" {:2d}\t{:12.9f}\t{:12.9f}\t{:4.0f}\t{:2d}\n".format
14721472
(k+1, self.integ.pos[k, 0], self.integ.pos[k, 1],
1473-
self.integ.pos[k, 2]))
1473+
self.integ.pos[k, 2], self.integ.naz[k]))
14741474

1475-
self.fh.write(" Visibility mask (az, el):\n")
1476-
for k in range(self.integ.naz):
1477-
self.fh.write(" {:3.0f}\t{:3.0f}\n".format
1478-
(self.integ.azel[k][0], self.integ.azel[k][1]))
1475+
self.fh.write(" Visibility mask (az, el):\n")
1476+
for j in range(self.integ.naz[k]):
1477+
self.fh.write(" {:3.0f}\t{:3.0f}\n".format
1478+
(self.integ.azel[k][j][0], self.integ.azel[k][j][1]))
14791479
elif self.subtype == 10:
14801480
self.fh.write(f" TOF (s): {self.integ.tow:9.3f}\n")
14811481
self.fh.write(f" Number of Area Points: {self.integ.narea:}\n")
@@ -2477,7 +2477,7 @@ def decode_ssr_trop(self, msg, i, inet=0):
24772477
trop.gnh = gnh*0.01e-3 # south-north gradient [m/deg]
24782478
# wet
24792479
trop.ofstw = ofstw*0.1e-3+0.252 # offset [m]
2480-
trop.gew = gew*0.1e-3 # west-east gradient [m/deg]
2480+
trop.gew = gew*0.01e-3 # west-east gradient [m/deg]
24812481
trop.gnw = gnw*0.01e-3 # south-north gradient [m/deg]
24822482

24832483
if rmi: # residual information part
@@ -2544,6 +2544,9 @@ def decode_ssr_iono(self, msg, i, inet=0):
25442544
# Resolution Scale Factor Exponent
25452545
sf = bs.unpack_from('u3', msg, i)[0] # DF+073
25462546
i += 3
2547+
scl = 1e-3*(2**sf)
2548+
else:
2549+
scl = 1.0
25472550

25482551
self.lc[inet].stec = {}
25492552
fmt = 's'+str(rlen)
@@ -2554,7 +2557,6 @@ def decode_ssr_iono(self, msg, i, inet=0):
25542557
for j in range(ofst, ofst+ng):
25552558
res = bs.unpack_from(fmt, msg, i)[0] # DF+062
25562559
i += rlen
2557-
scl = 1e-3*(2**sf)
25582560
self.lc[inet].stec[sat_][j] = self.sval(res, rlen, scl)
25592561

25602562
self.gid = gid
@@ -3088,40 +3090,44 @@ def decode_integrity_vmap(self, msg, i):
30883090

30893091
# GPS Epoch Time (TOW) DFi008
30903092
# number of area points DFi201
3091-
# Number of Azimuth Slices DFi205
30923093
# Message Continuation Flag DFi021
30933094

3094-
tow, narea, naz, mi = bs.unpack_from('u30u8u6u1', msg, i)
3095-
i += 45
3095+
tow, narea, mi = bs.unpack_from('u30u8u1', msg, i)
3096+
i += 39
30963097
# Multiple Message Sequence Number DFi079
30973098
self.integ.seq = bs.unpack_from('u5', msg, i)[0]
30983099
i += 5
30993100

31003101
self.integ.tow = tow*1e-3
31013102
self.integ.narea = narea
3102-
self.integ.naz = naz
31033103
self.mi = mi
31043104
self.integ.pos = np.zeros((narea, 3))
3105+
self.integ.naz = np.zeros(narea, dtype=int)
3106+
self.integ.azel = {}
31053107

31063108
for k in range(narea):
31073109
# Area Point - Lat DFi202
31083110
# Area Point - Lon DFi203
31093111
# Area Point - Height DFi204
3110-
lat, lon, alt = bs.unpack_from('s34s35s14', msg, i)
3111-
i += 83
3112+
# Number of Azimuth Slices DFi205
3113+
lat, lon, alt, naz = bs.unpack_from('s34s35s14u6', msg, i)
3114+
i += 89
31123115

31133116
self.integ.pos[k, :] = [lat*1.1e-8, lon*1.1e-8, alt]
3117+
self.integ.naz[k] = naz
31143118

3115-
self.integ.azel = np.zeros((naz, 2))
3119+
azel = np.zeros((naz, 2))
31163120

3117-
# Azimuth DFi206
3118-
# Elevation Mask DFi208
3119-
az = 0
3120-
for k in range(naz):
3121-
daz, mask_el = bs.unpack_from('u9u7', msg, i)
3122-
i += 16
3123-
az += daz
3124-
self.integ.azel[k, :] = [az, mask_el]
3121+
# Azimuth DFi206
3122+
# Elevation Mask DFi208
3123+
az = 0
3124+
for j in range(naz):
3125+
daz, mask_el = bs.unpack_from('u9u7', msg, i)
3126+
i += 16
3127+
az += daz
3128+
azel[j, :] = [az, mask_el]
3129+
3130+
self.integ.azel[k] = azel
31253131

31263132
return i
31273133

0 commit comments

Comments
 (0)