def GetStnGaps(cnn, stnlist, ignore_val, start_date, end_date):
for stn in stnlist:
NetworkCode = stn['NetworkCode']
StationCode = stn['StationCode']
rs = cnn.query(
'SELECT * FROM rinex WHERE "NetworkCode" = \'%s\' AND "StationCode" = \'%s\' AND "ObservationSTime" BETWEEN \'%s\' AND \'%s\' ORDER BY "ObservationSTime"' % (NetworkCode, StationCode, start_date.yyyymmdd(), end_date.yyyymmdd()))
rnxtbl = rs.dictresult()
gap_begin = None
gaps = []
for i, rnx in enumerate(rnxtbl):
if i > 0:
d1 = pyDate.Date(year=rnx['ObservationYear'],doy=rnx['ObservationDOY'])
d2 = pyDate.Date(year=rnxtbl[i-1]['ObservationYear'],doy=rnxtbl[i-1]['ObservationDOY'])
if d1 != d2 + 1 and not gap_begin:
gap_begin = d2 + 1
if d1 == d2 + 1 and gap_begin:
days = ((d2-1).mjd - gap_begin.mjd)+1
if days > ignore_val:
gaps.append('%s.%s gap in data found %s -> %s (%i days)' % (NetworkCode,StationCode,gap_begin.yyyyddd(),(d2-1).yyyyddd(), days))
gap_begin = None
if gaps:
sys.stdout.write('\nData gaps in %s.%s follow:\n' % (NetworkCode, StationCode))
sys.stdout.write('\n'.join(gaps) + '\n')
else:
sys.stdout.write('\nNo data gaps found for %s.%s\n' % (NetworkCode, StationCode))
评论列表
文章目录