Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
help="Default same as --interval",
metavar="INTERVAL",
)
output_group.add_argument(
"--output-observatory",
default=None,
help="Defaults to value of --observatory argument.",
metavar="OBS",
nargs="*",
type=str,
)
output_group.add_argument(
"--output-port",
default=7981,
help="Write to specified port",
metavar="PORT",
type=int,
)
output_group.add_argument(
"--output-read-port",
default=2060,
help="Read from specified port",
metavar="PORT",
type=int,
)
output_group.add_argument(
"--output-stdout",
action="store_true",
default=False,
help="Write to standard output",
)
output_group.add_argument(
"--output-url", help="Write to a file:// url pattern", metavar="URL"
)
output_group.add_argument(
"--output-url-interval",
default=86400,
help="Output interval in seconds",
metavar="INTERVAL",
type=int,
)
output_group.add_argument(
"--rename-output-channel",
action="append",
help="Rename an output channel before it is written",
metavar=("FROM", "TO"),
nargs=2,
)
output_group.add_argument(
"--outlocationcode",
help="Defaults to --locationcode",
metavar="CODE",
type=edge.LocationCode,
)
output_group.add_argument(
"--output-edge-forceout",
action="store_true",
default=False,
help="Used when writing to EDGE, to close miniseed immediately.",
)
output_group.add_argument(
"--output-edge-tag",
default="GEOMAG",
help="Used when writing to EDGE, to identify source of data.",
metavar="TAG",
)
# Processing group
processing_group = parser.add_argument_group("Processing", "How data is processed.")
processing_group.add_argument(
"--algorithm",
choices=[k for k in algorithms],
default="identity",
help='Default is "identity", which skips processing',
)
for k in algorithms:
algorithms[k].add_arguments(processing_group)
processing_group.add_argument(
"--update",
action="store_true",
default=False,
help="""
Check for gaps in output,
and merge new data into existing.
""",
)
processing_group.add_argument(
"--update-limit",
type=int,
Update mode checks for gaps and will step backwards
to gap fill, if the start of the current interval is a gap,
when limit is set to more than 0.
""",
metavar="N",
)
processing_group.add_argument(
"--no-trim",
action="store_true",
default=False,
help="Ensures output data will not be trimmed down",
)
# GOES parameters
goes_group = parser.add_argument_group(
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
"GOES parameters", 'Used to configure "--input goes"'
)
goes_group.add_argument(
"--input-goes-directory",
default=".",
help="Directory for support files for goes input of imfv283 data",
metavar="PATH",
)
goes_group.add_argument(
"--input-goes-getdcpmessages",
default="",
help="Location of getDcpMessages.",
metavar="PATH",
)
goes_group.add_argument(
"--input-goes-password",
default="",
help="Password for goes user",
metavar="PASSWORD",
)
goes_group.add_argument(
"--input-goes-server",
nargs="*",
help="The server name(s) to retrieve the GOES data from",
metavar="HOST",
)
goes_group.add_argument(
"--input-goes-user",
default="GEOMAG",
help="The user name to use to retrieve data from GOES",
metavar="USER",
)
# still allow deprecated arguments for now, but hide behind opt in flag
deprecated = parser.add_argument_group("Deprecated")
deprecated.add_argument(
"--enable-deprecated-arguments",
action="store_true",
default=False,
help="enable support for deprecated arguments",
)
# check for this argument before adding deprecated args to usage
if "--enable-deprecated-arguments" in args:
add_deprecated_args(deprecated, input_type_group, output_type_group)
deprecated.add_argument(
"--volt-conversion",
default=100.0,
metavar="NT",
help="(Deprecated, Unused) Conversion factor (nT/V) for volts",
)
deprecated.add_argument(
"--bin-conversion",
default=500.0,
metavar="NT",
help="(Deprecated, Unused) Conversion factor (nT/bin) for bins",
)

Jeremy M Fee
committed
return parser.parse_args(args)
def add_deprecated_args(parser, input_group, output_group):
print(
"WARNING: you are enabling deprecated arguments," + " please update your usage",
file=sys.stderr,
)
# argument options for inputs and outputs,
# replaced with less TYPE specific options
parser.add_argument(
"--input-edge-port",
type=int,
default=2060,
help='(Deprecated) \
Use "--input-port".',
metavar="PORT",
)
parser.add_argument(
"--output-edge-port",
type=int,
dest="edge_write_port",
default=7981,
help='(Deprecated) \
Use "--output-port".',
metavar="PORT",
)
parser.add_argument(
"--output-edge-cwb-port",
type=int,
dest="edge_write_port",
default=7981,
help='(Deprecated) \
Use "--output miniseed" and "--output-port PORT".',
metavar="PORT",
)
parser.add_argument(
"--output-edge-read-port",
type=int,
default=2060,
help='(Deprecated) \
Use "--output-read-port".',
# input arguments (generally use "--input TYPE")
input_group.add_argument(
"--input-edge",
help='(Deprecated) \
Use "--input edge" and "--input-host HOST".',
metavar="HOST",
)
input_group.add_argument(
"--input-iaga-file",
help='(Deprecated) \
Use "--input iaga2002" and "--input-file FILE".',
metavar="FILE",
)
input_group.add_argument(
"--input-iaga-stdin",
action="store_true",
default=False,
help='(Deprecated) \
Use "--input iaga2002" and "--input-stdin".',
)
input_group.add_argument(
"--input-iaga-url",
help='(Deprecated) \
Use "--input iaga2002" and "--input-url URL".',
metavar="URL",
)
input_group.add_argument(
"--input-imfv283-file",
help='(Deprecated) \
Use "--input imfv283" and "--input-file FILE".',
metavar="FILE",
)
input_group.add_argument(
"--input-imfv283-stdin",
action="store_true",
default=False,
help='(Deprecated) \
Use "--input imfv283" and "--input-stdin"',
)
input_group.add_argument(
"--input-imfv283-url",
help='(Deprecated) \
Use "--input iaga2002" and "--input-url URL".',
metavar="URL",
)
input_group.add_argument(
"--input-imfv283-goes",
action="store_true",
default=False,
help='(Deprecated) \
Use "--input goes".',
)
input_group.add_argument(
"--input-pcdcp-file",
help='(Deprecated) \
Use "--input pcdcp" and "--input-file FILE".',
metavar="FILE",
)
input_group.add_argument(
"--input-pcdcp-stdin",
action="store_true",
default=False,
help='(Deprecated) \
Use "--input pcddp" and "--input-stdin".',
)
input_group.add_argument(
"--input-pcdcp-url",
help='(Deprecated) \
Use "--input pcdcp" and "--input-url URL".',
# output arguments (generally use "--output TYPE")
output_group.add_argument(
"--output-iaga-file",
help='(Deprecated) \
Use "--output iaga2002" and "--output-file FILE".',
metavar="FILE",
)
output_group.add_argument(
"--output-iaga-stdout",
action="store_true",
default=False,
help='(Deprecated) \
Use "--output iaga2002" and "--output-stdout".',
)
output_group.add_argument(
"--output-iaga-url",
help='(Deprecated) \
Use "--output iaga2002" and "--output-url URL".',
metavar="URL",
)
output_group.add_argument(
"--output-pcdcp-file",
help='(Deprecated) \
Use "--output pcdcp" and "--output-file FILE".',
metavar="FILE",
)
output_group.add_argument(
"--output-pcdcp-stdout",
action="store_true",
default=False,
help='(Deprecated) \
Use "--output pcdcp" and "--output-stdout".',
)
output_group.add_argument(
"--output-pcdcp-url",
help='(Deprecated) \
Use "--output pcdcp" and "--output-url URL".',
metavar="URL",
)
output_group.add_argument(
"--output-edge",
help='(Deprecated) \
Use "--output edge" and "--output-host HOST".',
metavar="HOST",
)
output_group.add_argument(
"--output-plot",
action="store_true",
default=False,
help='(Deprecated) \
Use "--output plot".',
)
def parse_deprecated_arguments(args):
# TODO: remove argument mapping in future version
# map legacy input arguments
usingDeprecated = False
if args.input_edge is not None:
args.input_host = args.input_edge
args.input_port = args.input_edge_port
usingDeprecated = True
elif args.input_iaga_file is not None:
args.input_file = args.input_iaga_file
usingDeprecated = True
elif args.input_iaga_stdin:
args.input_stdin = True
usingDeprecated = True
elif args.input_iaga_url is not None:
args.input_url = args.input_iaga_url
usingDeprecated = True
elif args.input_imfv283_file is not None:
args.input_file = args.input_imfv283_file
usingDeprecated = True
elif args.input_imfv283_url is not None:
args.input_url = args.input_imfv283_url
usingDeprecated = True
elif args.input_imfv283_goes:
usingDeprecated = True
# map legacy output arguments
if args.output_edge is not None:
args.output_host = args.output_edge
args.output_port = args.edge_write_port
usingDeprecated = True
elif args.output_iaga_file is not None:
args.output_file = args.output_iaga_file
usingDeprecated = True
elif args.output_iaga_stdout:
args.output_stdout = True
usingDeprecated = True
elif args.output_iaga_url is not None:
args.output_url = args.output_iaga_url
usingDeprecated = True
elif args.output_pcdcp_file is not None:
args.output_file = args.output_pcdcp_file
usingDeprecated = True
elif args.output_pcdcp_stdout:
args.output_stdout = True
usingDeprecated = True
elif args.output_pcdcp_url is not None:
args.output_url = args.output_pcdcp_url
usingDeprecated = True
elif args.output_plot:
usingDeprecated = True
if usingDeprecated:
print(
"WARNING: you are using deprecated arguments,"
+ " please update your usage",
file=sys.stderr,
)