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 out_format_choices = ('xml', 'yaml')
36 out_format_default = 'xml'
38 parser.add_argument(
39 '--out-format',
40 dest='out_format',
41 choices=out_format_choices,
42 default=out_format_default,
43 help='Set format of output. Choices: %s. '
44 'Default: %s.' % (
45 ldq(out_format_choices),
46 dq(out_format_default)))
49def run(parser, args):
50 squirrel = args.make_squirrel()
52 sx = squirrel.get_stationxml(**args.squirrel_query, level=args.level)
53 if args.out_format == 'xml':
54 print(sx.dump_xml())
55 elif args.out_format == 'yaml':
56 print(sx.dump())
57 else:
58 assert False