From 9a0c017121334e6dbfceece1f17f11b269ba733f Mon Sep 17 00:00:00 2001 From: Auke Klazema <klazema@astron.nl> Date: Tue, 5 Mar 2019 13:44:06 +0000 Subject: [PATCH] SW-598: Add username, password, port options to make_antenna_list.py --- .../data/Coordinates/make_antenna_list.py | 98 ++++++++++++++----- 1 file changed, 73 insertions(+), 25 deletions(-) diff --git a/MAC/Deployment/data/Coordinates/make_antenna_list.py b/MAC/Deployment/data/Coordinates/make_antenna_list.py index 2b01dcf4401..35f666aa124 100755 --- a/MAC/Deployment/data/Coordinates/make_antenna_list.py +++ b/MAC/Deployment/data/Coordinates/make_antenna_list.py @@ -1,54 +1,102 @@ #!/usr/bin/env python -#coding: iso-8859-15 -import re,sys,pgdb -from copy import deepcopy -from math import * +# coding: iso-8859-15 +import re +import sys +import pgdb +from optparse import OptionParser +import getpass -INTRO=""" +INTRO = """ Created a file containing all antenna coordinates for the online software. -""" +""" -def print_help(): - print "Usage: make_antenna_list [<stationname>]" # # findStationInfo(stationName) # -def findStationInfo(stationName): +def find_station_info(station_name): """ Return all basic station info (eg. nr RSPboards) from a station. """ - pattern=re.compile("^"+stationName+"[ \t].*", re.IGNORECASE | re.MULTILINE) + pattern = re.compile("^"+station_name+"[ \t].*", re.IGNORECASE | re.MULTILINE) match = pattern.search(open("../StaticMetaData/StationInfo.dat").read()) if not match: - raise "\nFatal error: "+stationName+" is not defined in file 'StationInfo.dat'" + raise "\nFatal error: "+station_name+" is not defined in file 'StationInfo.dat'" return match.group().split() + # # MAIN # if __name__ == '__main__': - if len(sys.argv) != 2: - print_help() - sys.exit(0) + parser = OptionParser("Usage: %prog [options] datafile") + + parser.add_option("-D", "--database", + dest="dbName", + type="string", + default="coordtest", + help="Name of StationCoordinates database to use") + + parser.add_option("-H", "--host", + dest="dbHost", + type="string", + default="dop50", + help="Hostname of StationCoordinates database") + + parser.add_option("-P", "--port", + dest="dbPort", + type="int", + default="5432", + help="Port of StationCoordinates database") + + parser.add_option("-U", "--user", + dest="dbUser", + type="string", + default="postgres", + help="Username of StationCoordinates database") + + # parse arguments + + (options, args) = parser.parse_args() - (name, stationID, stnType, long, lat, height, nrRSP, nrTBB, nrLBA, nrHBA, HBAsplit, LBAcal ) = findStationInfo(sys.argv[1]) - db = pgdb.connect(user="postgres", host="dop50", database="coordtest") + dbName = options.dbName + dbHost = options.dbHost + dbPort = options.dbPort + dbUser = options.dbUser + + if len(args) != 1: + parser.print_help() + sys.exit(1) + + filename = str(args[0]) + + dbPassword = getpass.getpass() + + host = "{}:{}".format(dbHost, dbPort) + + db = pgdb.connect(user=dbUser, host=host, database=dbName, password=dbPassword) + cursor = db.cursor() + + (name, stationID, stnType, long, lat, height, nrRSP, + nrTBB, nrLBA, nrHBA, HBAsplit, LBAcal) = find_station_info(filename) print "#Stn ID Type RSP RCU Pol Position Orientation" - print "%s %s %s %d %d -1 [%s,%s,%s] [0,0,0]" % (name, stationID, "center", -1, -1, long, lat, height) - for infoType in [ 'marker', 'lba', 'hba' ]: - cursor = db.cursor() - cursor.execute("select * from get_ref_objects(%s, %s)", (sys.argv[1], infoType)) + print "%s %s %s %d %d -1 [%s,%s,%s] [0,0,0]" % \ + (name, stationID, "center", -1, -1, long, lat, height) + for infoType in ['marker', 'lba', 'hba']: + cursor.execute("select * from get_ref_objects(%s, %s)", (filename, infoType)) counter = 0 while (1): record = cursor.fetchone() - if record == None: + if record is None: break - RSPnr = int(record[2]%100/4) - print "%s %s %s%d %d %d x [%s,%s,%s] [0,0,0]" % (name, stationID, infoType, int(record[2])%100, RSPnr, counter, record[3], record[4], record[5]) - print "%s %s %s%d %d %d y [%s,%s,%s] [0,0,0]" % (name, stationID, infoType, int(record[2])%100, RSPnr, counter+1, record[3], record[4], record[5]) + RSPnr = int(record[2] % 100/4) + print "%s %s %s%d %d %d x [%s,%s,%s] [0,0,0]" % \ + (name, stationID, infoType, int(record[2]) % 100, RSPnr, counter, + record[3], record[4], record[5]) + print "%s %s %s%d %d %d y [%s,%s,%s] [0,0,0]" % \ + (name, stationID, infoType, int(record[2]) % 100, RSPnr, counter+1, + record[3], record[4], record[5]) counter = counter + 2 db.close() sys.exit(1) - -- GitLab