62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
|
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()
|