def _console_script(argv=None): """ Console script to convert LCHEAPO data to basic SDS with drift correction Data should be in station_data_path/{STATION_NAME}/*.raw.lch """ from argparse import ArgumentParser parser = ArgumentParser(prog="obsinfo-make_LCHEAPO-park_scripts", description=__doc__) parser.add_argument("network_file", help="Network information file") parser.add_argument("input_dir", help="Base path containing station directories") parser.add_argument("output_dir", default="2_miniseed_basic", help="directory in which to put fixed data and " "SDS directory") parser.add_argument("--suffix", default="", help="suffix for script filename") parser.add_argument("-v", "--verbose", action="store_true", help="increase verbosity") parser.add_argument("-q", "--quiet", action="store_true", help="run silently") args = parser.parse_args() if not args.quiet: print("Creating LC2SDS process scripts, ", end="", flush=True) # READ IN NETWORK INFORMATION network = oi_network(args.network_file) sta_list = [name for name in network.stations.keys()] if not args.quiet: print("network {}, stations {}".format(network.network_info.code, ', '.join(sta_list))) for name, station in network.stations.items(): # station_dir = os.path.join(args.station_data_path, name) script = process_script(station, args.input_dir, args.output_dir) fname = f"process_{name}{args.suffix}.sh" if args.verbose: print(f" ... writing file {fname}", flush=True) with open(fname, "w") as f: f.write(script) f.close() if not args.verbose and not args.quiet: print("")
def _console_script(argv=None): """ Console-level processing script requires SDPCHAIN programs msdrift and ms2sds, and IRIS program msmod Currently usese 'SDS_corrected' and 'SDS_uncorrected' as default SDS directories Would be better to use ../SDS_[un]corrected so that all data are together, but ms2sds is not yet capable of putting data in an existing SDS directory """ from argparse import ArgumentParser parser = ArgumentParser( prog='obsinfo-make_process_scripts_SDPCHAIN',description=__doc__) parser.add_argument( 'network_file', help='Network information file') parser.add_argument( 'station_data_path', help='Base path containing stations data') parser.add_argument( 'sdpchain_path', help='Path to SDPCHAIN software') parser.add_argument( '-i', '--input_dir', default='2_miniseed_basic', help='subdirectory of station_data_path/{STATION}/ containing input *.mseed files') parser.add_argument( '-o', '--output_mseed_dir', default='3_miniseed_corr', help='subdirectory of station_data_path/{STATION}/ to put corrected *.mseed files') parser.add_argument( '--SDS_corr_dir', default='SDS_corrected', help='subdirectory of station_data_path/{STATION}/ for SDS structure of corrected data') parser.add_argument( '--SDS_uncorr_dir', default='SDS_uncorrected', help='subdirectory of station_data_path/{STATION}/ for SDS structure of uncorrected data') parser.add_argument( '-d', '--msdrift_dir', default='MSDRIFT', help='subdirectory of sdpchain_path/ containing msdrift program') parser.add_argument( '-s', '--ms2sds_dir', default='MS2SDS', help='subdirectory of sdpchain_path/ containing ms2sds program') parser.add_argument( '-m', '--msmod_path', default='', help='full path to msmod program') parser.add_argument( '-v', '--verbose',action="store_true", help='increase output verbosiy') parser.add_argument( '-q', '--quiet',action="store_true", help='run silently') args = parser.parse_args() # CONSTRUCT PATHS msdrift_path=os.path.join(args.sdpchain_path,args.msdrift_dir) ms2sds_path=os.path.join(args.sdpchain_path,args.ms2sds_dir) # READ IN NETWORK INFORMATION if not args.quiet: print(f"Creating SDPCHAIN process scripts, ",end="") network=oi_network(args.network_file) if not args.quiet: print(f"network {network.network_info.code}, stations ",end="") if args.verbose: print("") first_time=True for name,station in network.stations.items(): if not args.quiet: if args.verbose: print(f"\t{name}",end="") else: if first_time: print(f"{name}",end="") else: print(f", {name}", end="") station_dir=os.path.join(args.station_data_path,name) script=process_script(station,station_dir, msdrift_path, ms2sds_path, input_mseed_dir=args.input_dir, output_mseed_dir=args.output_mseed_dir, SDS_uncorr_dir=args.SDS_uncorr_dir, SDS_corr_dir=args.SDS_corr_dir, include_header=False, msmod_path=args.msmod_path) fname='process_'+name+'_SDPCHAIN.sh' if args.verbose: print(f" ... writing file {fname}") with open(fname,'w') as f: f.write(f'#!/bin/bash\n\n') f.write('#'+'='*60 + '\n') f.write(f'echo "Running SDPCHAIN processes on station {name}"\n') f.write('#'+'='*60 + '\n') f.write(script) f.write('\n') f.close() first_time=False if not args.verbose and not args.quiet: print("")
def _console_script(argv=None): """ Create a bash-script to convert LCHEAPO data to basic miniSEED Data should be in station_data_path/{STATION_NAME}/{input_dir}/*.fix.lch requires O Dewee program lc2ms, and IRIS program msmod """ from argparse import ArgumentParser parser = ArgumentParser(prog='obsinfo-make_process_scripts_LC2MS', description=__doc__) parser.add_argument('network_file', help='Network information file') parser.add_argument('station_data_path', help='Base path containing stations data') parser.add_argument('lc2ms_path', help='Path to lc2ms software') parser.add_argument( '-i', '--input_dir', default='1_proprietary', help= 'subdirectory of station_data_path/{STATION}/ containing input *.raw.lch files' ) parser.add_argument( '-o', '--output_dir', default='2_miniseed_basic', help= 'subdirectory of station_data_path/{STATION}/ to put output *.mseed files' ) parser.add_argument('-v', '--verbose', action="store_true", help='increase output verbosity') parser.add_argument('-q', '--quiet', action="store_true", help='run silently') args = parser.parse_args() if not args.quiet: print(f"Creating LC2MS process scripts, ", end="", flush=True) # READ IN NETWORK INFORMATION network = oi_network(args.network_file) if not args.quiet: print(f"network {network.network_info.code}, stations ", end="", flush=True) if args.verbose: print("") first_time = True for name, station in network.stations.items(): if not args.quiet: if args.verbose: print(f"\t{name}", end="") else: if first_time: print(f"{name}", end="", flush=True) else: print(f", {name}", end="", flush=True) station_dir = os.path.join(args.station_data_path, name) script = process_script(station, station_dir, args.lc2ms_path, lcheapo_dir=args.input_dir, input_dir=args.output_dir, include_header=False) fname = 'process_' + name + '_LC2MS.sh' if args.verbose: print(f" ... writing file {fname}", flush=True) with open(fname, 'w') as f: f.write('#!/bin/bash\n\n') f.write('#' + '=' * 60 + '\n') f.write(f'echo "Running LC2MS processes on station {name}"\n') f.write('#' + '=' * 60 + '\n') f.write(script) f.write('\n') f.close() first_time = False if not args.verbose and not args.quiet: print("")
def _console_script(argv=None): """ Create a bash-script to convert LCHEAPO data to basic miniSEED Data should be in station_data_path/{STATION_NAME}/{input_dir}/*.fix.lch requires O Dewee program lc2ms, and IRIS program msmod """ from argparse import ArgumentParser parser = ArgumentParser(prog="obsinfo-make_process_scripts_LC2MS", description=__doc__) parser.add_argument("network_file", help="Network information file") parser.add_argument("station_data_path", help="Base path containing stations data") parser.add_argument("distrib_path", help="Path to lcheapo software distribution") parser.add_argument( "-i", "--input_dir", default=".", help= "subdirectory of station_data_path/{STATION}/ containing input *.raw.lch files", ) parser.add_argument( "-o", "--output_dir", default="2_miniseed_basic", help= "subdirectory of station_data_path/{STATION}/ to put output *.mseed files", ) parser.add_argument("--suffix", default="_LC2MS", help="suffix for script filename") parser.add_argument("--append", action="store_true", help="append to existing script file") parser.add_argument("-v", "--verbose", action="store_true", help="increase output verbosity") parser.add_argument("--no_header", action="store_true", help="do not include a script header") parser.add_argument("-q", "--quiet", action="store_true", help="run silently") args = parser.parse_args() if not args.quiet: print(f"Creating LC2MS process scripts, ", end="", flush=True) # READ IN NETWORK INFORMATION network = oi_network(args.network_file) if not args.quiet: print(f"network {network.network_info.code}, stations ", end="", flush=True) if args.verbose: print("") first_time = True for name, station in network.stations.items(): if not args.quiet: if args.verbose: print(f"\t{name}", end="") else: if first_time: print(f"{name}", end="", flush=True) else: print(f", {name}", end="", flush=True) station_dir = os.path.join(args.station_data_path, name) script = process_script( station, station_dir, args.distrib_path, input_dir=args.input_dir, output_dir=args.output_dir, include_header=not args.no_header, ) fname = "process_" + name + args.suffix + ".sh" if args.verbose: print(f" ... writing file {fname}", flush=True) if args.append: write_mode = "a" else: write_mode = "w" with open(fname, write_mode) as f: # f.write('#'+'='*60 + '\n') f.write(script) f.close() first_time = False if not args.verbose and not args.quiet: print("")
def _console_script(argv=None): """ Console-level processing script requires SDPCHAIN programs msdrift and ms2sds, and IRIS program msmod Currently usese 'SDS_corrected' and 'SDS_uncorrected' as default SDS directories Would be better to use ../SDS_[un]corrected so that all data are together, but ms2sds is not yet capable of putting data in an existing SDS directory """ from argparse import ArgumentParser parser = ArgumentParser(prog="obsinfo-make_process_scripts_SDPCHAIN", description=__doc__) parser.add_argument("network_file", help="Network information file") parser.add_argument("station_data_path", help="Base path containing station data") parser.add_argument("distrib_dir", help="Path to SDPCHAIN software", default="/opt/sdpchain") parser.add_argument( "-i", "--input_dir", default="miniseed_basic", help= "subdirectory of station_data_path/{STATION}/ containing input *.mseed files", ) parser.add_argument( "-o", "--corrected_dir", default="miniseed_corrected", help= "subdirectory of station_data_path/{STATION}/ to put corrected *.mseed files", ) parser.add_argument( "--SDS_corr_dir", default="SDS_corrected", help= "subdirectory of station_data_path/{STATION}/ for SDS structure of corrected data", ) parser.add_argument( "--SDS_uncorr_dir", default="SDS_uncorrected", help= "subdirectory of station_data_path/{STATION}/ for SDS structure of uncorrected data", ) parser.add_argument("--suffix", default="_SDPCHAIN", help="suffix for script filename") parser.add_argument("--append", action="store_true", help="append to existing script file") parser.add_argument("-v", "--verbose", action="store_true", help="increase output verbosiy") parser.add_argument("--no_header", action="store_true", help="do not include file header") parser.add_argument("-q", "--quiet", action="store_true", help="run silently") args = parser.parse_args() # READ IN NETWORK INFORMATION if not args.quiet: print(f"Creating SDPCHAIN process scripts, ", end="") network = oi_network(args.network_file) if not args.quiet: print(f"network {network.network_info.code}, stations ", end="") if args.verbose: print("") first_time = True for name, station in network.stations.items(): if not args.quiet: if args.verbose: print(f"\t{name}", end="") else: if first_time: print(f"{name}", end="") else: print(f", {name}", end="") station_dir = os.path.join(args.station_data_path, name) script = process_script( station, station_dir, distrib_dir=args.distrib_dir, input_dir=args.input_dir, corrected_dir=args.corrected_dir, SDS_uncorr_dir=args.SDS_uncorr_dir, SDS_corr_dir=args.SDS_corr_dir, include_header=not args.no_header, ) fname = "process_" + name + args.suffix + ".sh" if args.verbose: print(f" ... writing file {fname}", flush=True) if args.append: write_mode = "a" else: write_mode = "w" with open(fname, write_mode) as f: f.write(script) f.close() first_time = False if not args.verbose and not args.quiet: print("")
def _console_script(argv=None): """ Console-level processing script requires SDPCHAIN programs msdrift and ms2sds, and IRIS program msmod Currently usese 'SDS_corrected' and 'SDS_uncorrected' as default SDS directories Would be better to use ../SDS_[un]corrected so that all data are together, but ms2sds is not yet capable of putting data in an existing SDS directory """ from argparse import ArgumentParser parser = ArgumentParser(prog='obsinfo-make_SDPCHAIN_scripts', description=__doc__) parser.add_argument('network_file', help='Network information file') parser.add_argument('station_data_path', help='Base path containing station data') parser.add_argument('distrib_dir', help='Path to SDPCHAIN software', default='/opt/sdpchain') parser.add_argument( '-i', '--input_dir', default='miniseed_basic', help= 'subdirectory of station_data_path/{STATION}/ containing input *.mseed files' ) parser.add_argument( '-o', '--corrected_dir', default='miniseed_corrected', help= 'subdirectory of station_data_path/{STATION}/ to put corrected *.mseed files' ) parser.add_argument( '--SDS_corr_dir', default='SDS_corrected', help= 'subdirectory of station_data_path/{STATION}/ for SDS structure of corrected data' ) parser.add_argument( '--SDS_uncorr_dir', default='SDS_uncorrected', help= 'subdirectory of station_data_path/{STATION}/ for SDS structure of uncorrected data' ) parser.add_argument('--suffix', default='_SDPCHAIN', help='suffix for script filename') parser.add_argument('--append', action="store_true", help='append to existing script file') parser.add_argument('-v', '--verbose', action="store_true", help='increase output verbosiy') parser.add_argument('--no_header', action="store_true", help='do not include file header') parser.add_argument('-q', '--quiet', action="store_true", help='run silently') args = parser.parse_args() # READ IN NETWORK INFORMATION if not args.quiet: print(f"Creating SDPCHAIN process scripts, ", end="") network = oi_network(args.network_file) if not args.quiet: print(f"network {network.network_info.code}, stations ", end="") if args.verbose: print("") first_time = True for name, station in network.stations.items(): if not args.quiet: if args.verbose: print(f"\t{name}", end="") else: if first_time: print(f"{name}", end="") else: print(f", {name}", end="") station_dir = os.path.join(args.station_data_path, name) script = process_script(station, station_dir, distrib_dir=args.distrib_dir, input_dir=args.input_dir, corrected_dir=args.corrected_dir, SDS_uncorr_dir=args.SDS_uncorr_dir, SDS_corr_dir=args.SDS_corr_dir, include_header=not args.no_header) fname = 'process_' + name + args.suffix + '.sh' if args.verbose: print(f" ... writing file {fname}", flush=True) if args.append: write_mode = 'a' else: write_mode = 'w' with open(fname, write_mode) as f: f.write(script) f.close() first_time = False if not args.verbose and not args.quiet: print("")