|
|
import numpy
|
|
|
import sys
|
|
|
import zmq
|
|
|
import time
|
|
|
import h5py
|
|
|
import os
|
|
|
|
|
|
path = "/home/alex/Downloads/pedestal"
|
|
|
ext = ".hdf5"
|
|
|
|
|
|
port = "5556"
|
|
|
if len(sys.argv) > 1:
|
|
|
port = sys.argv[1]
|
|
|
int(port)
|
|
|
|
|
|
if len(sys.argv) > 2:
|
|
|
port1 = sys.argv[2]
|
|
|
int(port1)
|
|
|
|
|
|
# Socket to talk to server
|
|
|
context = zmq.Context()
|
|
|
socket = context.socket(zmq.SUB)
|
|
|
|
|
|
print("Collecting updates from weather server...")
|
|
|
socket.connect("tcp://localhost:%s" % port)
|
|
|
|
|
|
if len(sys.argv) > 2:
|
|
|
socket.connect("tcp://localhost:%s" % port1)
|
|
|
|
|
|
# Subscribe to zipcode, default is NYC,10001
|
|
|
topicfilter = "10001"
|
|
|
socket.setsockopt_string(zmq.SUBSCRIBE, topicfilter)
|
|
|
# Process 5 updates
|
|
|
total_value = 0
|
|
|
count = -1
|
|
|
azi = []
|
|
|
elev = []
|
|
|
time0 = []
|
|
|
# for update_nbr in range(250):
|
|
|
while(True):
|
|
|
string = socket.recv()
|
|
|
topic, ang_elev, ang_elev_dec, ang_azi, ang_azi_dec, seconds, seconds_dec = string.split()
|
|
|
ang_azi = float(ang_azi) + 1e-3 * float(ang_azi_dec)
|
|
|
ang_elev = float(ang_elev) + 1e-3 * float(ang_elev_dec)
|
|
|
seconds = float(seconds) + 1e-6 * float(seconds_dec)
|
|
|
azi.append(ang_azi)
|
|
|
elev.append(ang_elev)
|
|
|
time0.append(seconds)
|
|
|
count += 1
|
|
|
if count == 100:
|
|
|
timetuple = time.localtime()
|
|
|
epoc = time.mktime(timetuple)
|
|
|
# print(epoc)
|
|
|
fullpath = path + ("/" if path[-1] != "/" else "")
|
|
|
|
|
|
if not os.path.exists(fullpath):
|
|
|
os.mkdir(fullpath)
|
|
|
|
|
|
azi_array = numpy.array(azi)
|
|
|
elev_array = numpy.array(elev)
|
|
|
time0_array = numpy.array(time0)
|
|
|
pedestal_array = numpy.array([azi, elev, time0])
|
|
|
count = 0
|
|
|
azi = []
|
|
|
elev = []
|
|
|
time0 = []
|
|
|
# print(pedestal_array[0])
|
|
|
# print(pedestal_array[1])
|
|
|
|
|
|
meta = 'PE'
|
|
|
filex = "%s%4.4d%3.3d%10.4d%s" % (meta, timetuple.tm_year, timetuple.tm_yday, epoc, ext)
|
|
|
filename = os.path.join(fullpath, filex)
|
|
|
fp = h5py.File(filename, 'w')
|
|
|
# print("Escribiendo HDF5...",epoc)
|
|
|
# ·················· Data·....······································
|
|
|
grp = fp.create_group("Data")
|
|
|
dset = grp.create_dataset("azimuth" , data=pedestal_array[0])
|
|
|
dset = grp.create_dataset("elevacion", data=pedestal_array[1])
|
|
|
dset = grp.create_dataset("utc" , data=pedestal_array[2])
|
|
|
# ·················· Metadata·······································
|
|
|
grp = fp.create_group("Metadata")
|
|
|
dset = grp.create_dataset("utctimeInit", data=pedestal_array[2][0])
|
|
|
timeInterval = pedestal_array[2][1] - pedestal_array[2][0]
|
|
|
dset = grp.create_dataset("timeInterval", data=timeInterval)
|
|
|
fp.close()
|
|
|
|
|
|
# print ("Average messagedata value for topic '%s' was %dF" % ( topicfilter,total_value / update_nbr))
|
|
|
|