Source code for suncasa.utils.rstn

import numpy as np
from astropy.time import Time

## data format https://www.sws.bom.gov.au/World_Data_Centre/2/8/8
## data source https://www.sws.bom.gov.au/World_Data_Centre/1/9

[docs] def readchunk(chunk): rec_bytes = np.array([8, 8, 8, 8, 8, 501, 501, 501, 501]) rec_pos_ed = np.cumsum(rec_bytes) rec_pos_bg = rec_pos_ed - rec_bytes i = 0 recordhd = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 abandhd = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 bbandhd = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 cbandhd = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 dbandhd = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 abanddata = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 bbanddata = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 cbanddata = chunk[rec_pos_bg[i]:rec_pos_ed[i]] i += 1 dbanddata = chunk[rec_pos_bg[i]:rec_pos_ed[i]] yy = recordhd[0] mm = recordhd[1] dd = recordhd[2] h = recordhd[3] m = recordhd[4] s = recordhd[5] dataok = recordhd[6] unused = recordhd[7] tstr = '20{:02d}-{:02d}-{:02d}T{:02d}:{:02d}:{:02d}'.format(yy, mm, dd, h, m, s) # sfreqs = [[],[],[],[]] # efreqs = [[],[],[],[]] # fresbws = [[],[],[],[]] # reflvls = [[],[],[],[]] # ranlvls = [[],[],[],[]] # for bdidx,bandhd in enumerate([abandhd,bbandhd,cbandhd,dbandhd]): # for l in bandhd[0:2]: # sfreqs[bdidx].append(l) # for l in bandhd[2:4]: # efreqs[bdidx].append(l) # for l in bandhd[4:6]: # fresbws[bdidx].append(l) # reflvls[bdidx].append(bandhd[6]) # ranlvls[bdidx].append(bandhd[7]) spec = [[], [], [], []] for bdidx, bddata in enumerate([abanddata, bbanddata, cbanddata, dbanddata]): for l in bddata: spec[bdidx].append(l) spec = np.hstack(spec) return spec, tstr, dataok