changes made to have better control of the output directory

This commit is contained in:
sebastianp 2016-05-24 13:21:38 +02:00
parent 08df7c3304
commit 4962561d6c
3 changed files with 23 additions and 13 deletions

View File

@ -270,19 +270,20 @@ def picks_from_picksdict(picks):
return picks_list return picks_list
def reassess_pilot_db(root_dir, out_dir=None, fn_param=None, verbosity=0): def reassess_pilot_db(root_dir, db_dir, out_dir=None, fn_param=None, verbosity=0):
import glob import glob
evt_list = glob.glob1(root_dir,'e????.???.??') db_root = os.path.join(root_dir, db_dir)
evt_list = glob.glob1(db_root,'e????.???.??')
for evt in evt_list: for evt in evt_list:
if verbosity > 0: if verbosity > 0:
print('Reassessing event {0}'.format(evt)) print('Reassessing event {0}'.format(evt))
reassess_pilot_event(root_dir, evt, out_dir, fn_param, verbosity) reassess_pilot_event(root_dir, db_dir, evt, out_dir, fn_param, verbosity)
def reassess_pilot_event(root_dir, event_id, out_dir=None, fn_param=None, verbosity=0): def reassess_pilot_event(root_dir, db_dir, event_id, out_dir=None, fn_param=None, verbosity=0):
from obspy import read from obspy import read
from pylot.core.io.inputs import AutoPickParameter from pylot.core.io.inputs import AutoPickParameter
@ -294,7 +295,7 @@ def reassess_pilot_event(root_dir, event_id, out_dir=None, fn_param=None, verbos
default = AutoPickParameter(fn_param, verbosity) default = AutoPickParameter(fn_param, verbosity)
search_base = os.path.join(root_dir, event_id) search_base = os.path.join(root_dir, db_dir, event_id)
phases_file = glob.glob(os.path.join(search_base, 'PHASES.mat')) phases_file = glob.glob(os.path.join(search_base, 'PHASES.mat'))
if not phases_file: if not phases_file:
return return
@ -335,7 +336,9 @@ def reassess_pilot_event(root_dir, event_id, out_dir=None, fn_param=None, verbos
continue continue
sel_st = select_for_phase(st, phase) sel_st = select_for_phase(st, phase)
if not sel_st: if not sel_st:
warnings.warn('no waveform data found for station {station}'.format(station=station), RuntimeWarning) msg = 'no waveform data found for station {station}'.format(station=station)
warnings.warn(msg, RuntimeWarning)
continue
stime, etime = getGlobalTimes(sel_st) stime, etime = getGlobalTimes(sel_st)
rel_pick = mpp - stime rel_pick = mpp - stime
epp, lpp, spe = earllatepicker(sel_st, epp, lpp, spe = earllatepicker(sel_st,
@ -367,8 +370,11 @@ def reassess_pilot_event(root_dir, event_id, out_dir=None, fn_param=None, verbos
evt.picks = picks_from_picksdict(picks_dict) evt.picks = picks_from_picksdict(picks_dict)
# write phase information to file # write phase information to file
if not out_dir: if not out_dir:
fnout_prefix = os.path.join(root_dir, event_id, '{0}.'.format(event_id)) fnout_prefix = os.path.join(root_dir, db_dir, event_id, '{0}.'.format(event_id))
else: else:
out_dir = os.path.join(out_dir, db_dir)
if not os.path.isdir(out_dir):
os.makedirs(out_dir)
fnout_prefix = os.path.join(out_dir, '{0}.'.format(event_id)) fnout_prefix = os.path.join(out_dir, '{0}.'.format(event_id))
evt.write(fnout_prefix + 'xml', format='QUAKEML') evt.write(fnout_prefix + 'xml', format='QUAKEML')
#evt.write(fnout_prefix + 'cnv', format='VELEST') #evt.write(fnout_prefix + 'cnv', format='VELEST')

View File

@ -19,8 +19,10 @@ if __name__ == '__main__':
) )
parser.add_argument( parser.add_argument(
'dbroot', type=str, help='specifies the root directory (in ' 'root', type=str, help='specifies the root directory'
'most cases PILOT database folder)' )
parser.add_argument(
'db', type=str, help='specifies the database name'
) )
parser.add_argument( parser.add_argument(
'--output', '-o', type=str, help='path to the output directory', '--output', '-o', type=str, help='path to the output directory',
@ -36,4 +38,4 @@ if __name__ == '__main__':
) )
args = parser.parse_args() args = parser.parse_args()
reassess_pilot_db(args.dbroot, args.output, args.parfile, args.verbosity) reassess_pilot_db(args.root, args.db, args.output, args.parfile, args.verbosity)

View File

@ -19,8 +19,10 @@ if __name__ == '__main__':
) )
parser.add_argument( parser.add_argument(
'dbroot', type=str, help='specifies the root directory (in ' 'root', type=str, help='specifies the root directory'
'most cases PILOT database folder)' )
parser.add_argument(
'db', type=str, help='specifies the database name'
) )
parser.add_argument( parser.add_argument(
'id', type=str, help='PILOT event identifier' 'id', type=str, help='PILOT event identifier'
@ -33,4 +35,4 @@ if __name__ == '__main__':
) )
args = parser.parse_args() args = parser.parse_args()
reassess_pilot_event(args.dbroot, args.id, args.output, args.parfile) reassess_pilot_event(args.root, args.db, args.id, args.output, args.parfile)