Skip to content

Commit 5f91e8a

Browse files
committed
- added merge_cssr to support multiple channel for QZSS CLAS.
1 parent 979e203 commit 5f91e8a

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

src/cssrlib/cssrlib.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,6 +1343,61 @@ def decode_l6msg(self, msg, ofst):
13431343
copy_buff(msg, self.buff, i, 1695*self.fcnt, 1695)
13441344
self.fcnt = self.fcnt + 1
13451345

1346+
def merge_cssr(self, cs_):
1347+
""" merge additional correction """
1348+
if self.facility != cs_.facility:
1349+
return False
1350+
1351+
# merge sis corrections
1352+
sat_t = [x for x in cs_.sat_n if x not in self.sat_n]
1353+
for sat in sat_t:
1354+
sys, _ = sat2prn(sat)
1355+
self.sat_n.append(sat)
1356+
self.gnss_n.append(sys)
1357+
self.nsat_n += 1
1358+
self.nsat_g[sys] += 1
1359+
self.sig_n[sat] = cs_.sig_n[sat]
1360+
1361+
if sat in self.dclk:
1362+
self.dclk[sat] = cs_.dclk[sat]
1363+
if sat in self.dorb:
1364+
self.iode[sat] = cs_.iode[sat]
1365+
self.dorb[sat] = cs_.dorb[sat]
1366+
if sat in self.cbias:
1367+
self.cbias[sat] = cs_.cbias[sat]
1368+
self.nsig_n.append(len(self.cbias[sat]))
1369+
if sat in self.pbias:
1370+
self.pbias[sat] = cs_.pbias[sat]
1371+
if sat in self.ura:
1372+
self.ura[sat] = cs_.ura[sat]
1373+
1374+
# merge local corrections
1375+
for inet in range(0, self.MAXNET+1):
1376+
sat_t = [x for x in cs_.lc[inet].sat_n
1377+
if x not in self.lc[inet].sat_n]
1378+
for sat in sat_t:
1379+
self.lc[inet].sat_n.append(sat)
1380+
self.lc[inet].nsat_n += 1
1381+
if sat in cs_.lc[inet].dclk:
1382+
self.lc[inet].dclk[sat] = cs_.lc[inet].dclk[sat]
1383+
if sat in cs_.lc[inet].dorb:
1384+
self.lc[inet].iode[sat] = cs_.lc[inet].iode[sat]
1385+
self.lc[inet].dorb[sat] = cs_.lc[inet].dorb[sat]
1386+
if sat in cs_.lc[inet].ura:
1387+
self.lc[inet].ura[sat] = cs_.lc[inet].ura[sat]
1388+
if sat in cs_.lc[inet].cbias:
1389+
self.lc[inet].cbias[sat] = cs_.lc[inet].cbias[sat]
1390+
if sat in cs_.lc[inet].pbias:
1391+
self.lc[inet].pbias[sat] = cs_.lc[inet].pbias[sat]
1392+
1393+
if sat in cs_.lc[inet].stec_quality:
1394+
self.lc[inet].stec_quality[sat] = \
1395+
cs_.lc[inet].stec_quality[sat]
1396+
self.lc[inet].ci[sat] = cs_.lc[inet].ci[sat]
1397+
self.lc[inet].dstec[sat] = cs_.lc[inet].dstec[sat]
1398+
1399+
return True
1400+
13461401

13471402
class cssre():
13481403
""" Class to encode the Compact SSR messages (experimental) """

0 commit comments

Comments
 (0)