Newer
Older
"--realtime",
default=False,
const=True,
help="""
Run the last N seconds.
Default 172800 (last 2 days) when interval is day,
Default 7200 (last 2 hours) when interval is hour,
Default 3600 (last hour) when interval is minute,
Default 600 (last 10 minutes) otherwise.
""",
metavar="N",
nargs="?",
type=int,
)
# conversion from bins/volts to nT
input_group.add_argument(
"--convert-voltbin",
nargs="*",
default=None,
metavar="CHANNEL",
help="""
Convert channels from bins/volts to nT.
Example: "
--inchannels U_Bin U_Volt
--interval tenhertz
--type variation
--convert-voltbin U
--outchannels U
"
# Output group
output_group = parser.add_argument_group("Output", "How data is written.")
output_type_group = output_group.add_mutually_exclusive_group(required=True)
# output arguments
output_type_group.add_argument(
"--output",
choices=(
"binlog",
"edge",
"iaga2002",
"imfjson",
"miniseed",
"pcdcp",
"plot",
"temperature",
"vbf",
"imagcdf",
),
# TODO: set default to 'iaga2002'
help="Output format",
)
output_group.add_argument(
"--outchannels",
nargs="*",
default=None,
help="Defaults to --inchannels",
metavar="CHANNEL",
)
output_group.add_argument(
"--output-file", help="Write to specified file", metavar="FILE"
)
output_group.add_argument(
"--output-host",
default="edgecwb.usgs.gov",
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
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
1139
1140
1141
1142
1143
1144
1145
help="Write to specified host",
metavar="HOST",
)
output_group.add_argument(
"--output-interval",
default=None,
choices=["day", "hour", "minute", "second", "tenhertz"],
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(
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
"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,
)