1# http://pyrocko.org - GPLv3
2#
3# The Pyrocko Developers, 21st Century
4# ---|P------/S----------~Lg----------
6from pyrocko.squirrel.tool.common import ldq, dq
8headline = 'Export station metadata as StationXML.'
11def make_subparser(subparsers):
12 return subparsers.add_parser(
13 'stationxml',
14 help=headline,
15 description=headline)
18def setup(parser):
19 parser.add_squirrel_selection_arguments()
20 parser.add_squirrel_query_arguments()
22 level_choices = ('network', 'station', 'channel', 'response')
23 level_default = 'response'
25 parser.add_argument(
26 '--level',
27 dest='level',
28 choices=level_choices,
29 default=level_default,
30 help='Set level of detail to be returned. Choices: %s. '
31 'Default: %s.' % (
32 ldq(level_choices),
33 dq(level_default)))
35 on_error_choices = ('raise', 'warn', 'ignore')
36 on_error_default = 'raise'
38 parser.add_argument(
39 '--on-error',
40 dest='on_error',
41 choices=on_error_choices,
42 default=on_error_default,
43 help='How to handle metadata errors. Choices: %s. '
44 'Default: %s.' % (
45 ldq(on_error_choices),
46 dq(on_error_default)))
48 out_format_choices = ('xml', 'yaml')
49 out_format_default = 'xml'
51 parser.add_argument(
52 '--out-format',
53 dest='out_format',
54 choices=out_format_choices,
55 default=out_format_default,
56 help='Set format of output. Choices: %s. '
57 'Default: %s.' % (
58 ldq(out_format_choices),
59 dq(out_format_default)))
62def run(parser, args):
63 squirrel = args.make_squirrel()
65 sx = squirrel.get_stationxml(
66 **args.squirrel_query,
67 level=args.level,
68 on_error=args.on_error)
70 if args.out_format == 'xml':
71 print(sx.dump_xml())
72 elif args.out_format == 'yaml':
73 print(sx.dump())
74 else:
75 assert False