import os import argparse from obspy import read_inventory def convert_inventory(input_file, output_format, output_dir="."): """ Function to read Inventory from provided file and convert it to FDSN Station XML format. The supported input file formats are: INVENTORYXML, RESP, SC3ML, SEED, STATIONTXT, STATIONXML, XSEED :type input_file: str :param input_file: File name or path to the input inventory file. :type output_format: str :param output_format: Format of the output inventory file. Supported formats: CSS, KML, SACPZ, SHAPEFILE, STATIONTXT, STATIONXML. :type output_dir: str, optional :param output_dir: Directory to which output files are written. Defaults to current directory. """ inv = read_inventory(input_file) result_filename = os.path.splitext(os.path.basename(input_file))[0] + "." + _get_extension(output_format) inv.write(output_dir + "/" + result_filename, format=output_format) return result_filename def _get_extension(output_format): format = output_format.upper() if format == 'STATIONXML': return "xml" elif format == 'STATIONTXT': return "txt" elif format == 'SHAPEFILE': return "shp" else: return format.lower() def main(): parser = argparse.ArgumentParser(description="Convert provided inventory file" " to another inventory format.") parser.add_argument("input_file", help="Provide inventory file to convert." "The supported input file formats are: INVENTORYXML, RESP, SC3ML, " "SEED, STATIONTXT, STATIONXML, XSEED") parser.add_argument("--output_format", help="Format of the output inventory file. " "Supported formats: CSS, KML, SACPZ, SHAPEFILE, STATIONTXT, STATIONXML.", type=str, default=None, required=True) parser.add_argument("--output_dir", help="Directory to which output files are written. " "Defaults to current directory.", type=str, default=".", required=False) args = parser.parse_args() filename = convert_inventory(**vars(args)) print('Created file:') print(filename) return if __name__ == "__main__": main()