1# http://pyrocko.org - GPLv3
2#
3# The Pyrocko Developers, 21st Century
4# ---|P------/S----------~Lg----------
6from __future__ import absolute_import, print_function
8from pyrocko.squirrel.tool.common import ldq, dq
10headline = 'Export station metadata as StationXML.'
13def make_subparser(subparsers):
14 return subparsers.add_parser(
15 'stationxml',
16 help=headline,
17 description=headline)
20def setup(parser):
21 parser.add_squirrel_selection_arguments()
22 parser.add_squirrel_query_arguments()
24 level_choices = ('network', 'station', 'channel', 'response')
25 level_default = 'response'
27 parser.add_argument(
28 '--level',
29 dest='level',
30 choices=level_choices,
31 default=level_default,
32 help='Set level of detail to be returned. Choices: %s. '
33 'Default: %s.' % (
34 ldq(level_choices),
35 dq(level_default)))
37 out_format_choices = ('xml', 'yaml')
38 out_format_default = 'xml'
40 parser.add_argument(
41 '--out-format',
42 dest='out_format',
43 choices=out_format_choices,
44 default=out_format_default,
45 help='Set format of output. Choices: %s. '
46 'Default: %s.' % (
47 ldq(out_format_choices),
48 dq(out_format_default)))
51def run(parser, args):
52 squirrel = args.make_squirrel()
54 sx = squirrel.get_stationxml(**args.squirrel_query, level=args.level)
55 if args.out_format == 'xml':
56 print(sx.dump_xml())
57 elif args.out_format == 'yaml':
58 print(sx.dump())
59 else:
60 assert False