def configure(): parser=MyParser() parser.add_argument("-db", action = "store", dest = "dbname", help = "Input database") parser.add_argument("-p", action = "store", dest = "pf", help = "Parameter file") parser.add_argument("-tstart", action = "store", dest = "ts", help = "Starting time", default = "now") parser.add_argument("-twin", action = "store", dest = "twin", help = "Time window (s)", default = 600) parser.add_argument ("-v", action = "store_true", dest = "verbose", help = "Verbose") input = parser.parse_args() if not input.pf: pfs_tuple = list(stock.pffiles('gmv.pf')) pfs_tuple.reverse() # Reverse order to search local pf dir first for p in pfs_tuple: if os.path.isfile(p): pfname = p break else: if not os.path.isfile(input.pf): print "Command line defined parameter file '%s' does not exist. Exiting" % input.pf sys.exit(-1) else: pfname = input.pf return input, pfname
def _parse_pf(self, pfname): """Parse parameter file.""" pf_file = stock.pffiles(pfname)[-1] if not os.path.isfile(pf_file): self.logger.critical("Cannot find parameter file [%s]" % pfname) return -1 pf = stock.pfread(pfname) self.pf = pf # matlab inversion parameters self.loaddatafile = float(safe_pf_get(pf, "loaddatafile")) self.domeas = float(safe_pf_get(pf, "domeasurement")) self.doinversion = float(safe_pf_get(pf, "doinversion")) self.dojackknife = float(safe_pf_get(pf, "dojackknife")) self.azband = float(safe_pf_get(pf, "azband")) self.dobootstrap = float(safe_pf_get(pf, "dobootstrap")) self.nb = float(safe_pf_get(pf, "nb")) self.bconf = float(safe_pf_get(pf, "bconf")) self.niter = float(safe_pf_get(pf, "niter")) self.testfault = float(safe_pf_get(pf, "testfault")) # folder and path params self.image_dir = os.path.relpath( safe_pf_get(pf, "image_dir", "second_moment_images")) self.temp_dir = os.path.relpath( safe_pf_get(pf, "temp_dir", ".second_moment")) self.model_path = safe_pf_get(pf, "model_path") if not self.options.model: self.options.model = safe_pf_get(pf, "velocity_model") # on/off for features self.auto_arrival = safe_pf_get(pf, "auto_arrival") # egf selection criteria self.loc_margin = float(safe_pf_get(pf, "location_margin")) self.dep_margin = float(safe_pf_get(pf, "depth_margin")) self.time_margin = float(safe_pf_get(pf, "time_margin")) # filter and time window if not self.options.filter: self.options.filter = safe_pf_get(pf, "filter") if not self.options.tw: self.options.tw = safe_pf_get(pf, "time_window") # L-curve time duration maximum self.stf_duration_criteria = float(safe_pf_get(pf, "misfit_criteria")) self.matlab_code_path = safe_pf_get(pf, "matlab_code_path") self.matlab_path = safe_pf_get(pf, "matlab_path") self.matlab_flags = safe_pf_get(pf, "matlab_flags") self.xvfb_path = safe_pf_get(pf, "xvfb_path") # Get model information self.model = get_model_pf(self.options.model, self.model_path)
def setup_event2qml(options, database): """ Parameters ---------- options: OptionParser object Returns ------- ev: instance of Event class qml: instance of QualeMl class logging: logging.getLogger object """ log.info("database [%s]" % database) # Pull values from ParameterFile options.pf = stock.pffiles(options.pf)[-1] log.info("Parameter file to use [%s]" % options.pf) pf_object = open_verify_pf(options.pf, 1472083200) uri_prefix = safe_pf_get(pf_object, 'uri_prefix', 'quakeml') agency_uri = safe_pf_get(pf_object, 'agency_uri', 'local') agency_id = safe_pf_get(pf_object, 'agency_id', 'xx') author = safe_pf_get(pf_object, 'author', 'antelope.event2qml') etype_map = safe_pf_get(pf_object, 'etype_map', {}) preferred_magtypes = safe_pf_get(pf_object, 'preferred_magtypes', []) Q_NAMESPACE = safe_pf_get(pf_object, 'Q_NAMESPACE', 'http://quakeml.org/xmlns/quakeml/1.2') CATALOG_NAMESPACE = safe_pf_get(pf_object, 'CATALOG_NAMESPACE', 'http://anss.org/xmlns/catalog/0.1') BED_NAMESPACE = safe_pf_get(pf_object, 'BED_NAMESPACE', 'http://quakeml.org/xmlns/bed/1.2') BEDRT_NAMESPACE = safe_pf_get(pf_object, 'BEDRT_NAMESPACE', 'http://quakeml.org/xmlns/bed-rt/1.2') review_flags = safe_pf_get(pf_object, 'review_flags', ['r', 'y']) magnitude_type_subset = safe_pf_get(pf_object, 'magnitude_type_subset', ['.*']) info_description = safe_pf_get(pf_object, 'event_info_description', '') info_comment = safe_pf_get(pf_object, 'event_info_comment', '') append_to_output_file = stock.yesno( safe_pf_get(pf_object, 'append_to_output_file', 'true')) add_mt = stock.yesno(safe_pf_get(pf_object, 'add_mt', 'true')) add_origin = stock.yesno(safe_pf_get(pf_object, 'add_origin', 'true')) add_fplane = stock.yesno(safe_pf_get(pf_object, 'add_fplane', 'true')) add_stamag = stock.yesno(safe_pf_get(pf_object, 'add_stamag', 'true')) add_arrival = stock.yesno(safe_pf_get(pf_object, 'add_arrival', 'true')) add_detection = stock.yesno(safe_pf_get(pf_object, 'add_detection', 'true')) add_magnitude = stock.yesno(safe_pf_get(pf_object, 'add_magnitude', 'true')) mt_auth_select = filter(None, safe_pf_get(pf_object, 'mt_auth_select', [])) mt_auth_reject = filter(None, safe_pf_get(pf_object, 'mt_auth_reject', [])) event_auth_select = filter(None, safe_pf_get(pf_object, 'event_auth_select', [])) event_auth_reject = filter(None, safe_pf_get(pf_object, 'event_auth_reject', [])) netmag_auth_select = filter(None, safe_pf_get(pf_object, 'netmag_auth_select', [])) netmag_auth_reject = filter(None, safe_pf_get(pf_object, 'netmag_auth_reject', [])) fplane_auth_select = filter(None, safe_pf_get(pf_object, 'fplane_auth_select', [])) fplane_auth_reject = filter(None, safe_pf_get(pf_object, 'fplane_auth_reject', [])) origin_auth_select = filter(None, safe_pf_get(pf_object, 'origin_auth_select', [])) origin_auth_reject = filter(None, safe_pf_get(pf_object, 'origin_auth_reject', [])) arrival_auth_select = filter( None, safe_pf_get(pf_object, 'arrival_auth_select', [])) arrival_auth_reject = filter( None, safe_pf_get(pf_object, 'arrival_auth_reject', [])) detection_state_select = filter( None, safe_pf_get(pf_object, 'detection_state_select', [])) detection_state_reject = filter( None, safe_pf_get(pf_object, 'detection_state_reject', [])) # New event object log.info('Init Event()') ev = Event(database=database, magnitude_type_subset=magnitude_type_subset, event_auth_select=event_auth_select, event_auth_reject=event_auth_reject, origin_auth_select=origin_auth_select, origin_auth_reject=origin_auth_reject, arrival_auth_select=arrival_auth_select, arrival_auth_reject=arrival_auth_reject, netmag_auth_select=netmag_auth_select, netmag_auth_reject=netmag_auth_reject, detection_state_select=detection_state_select, detection_state_reject=detection_state_reject, mt_auth_select=mt_auth_select, mt_auth_reject=mt_auth_reject, fplane_auth_select=fplane_auth_select, fplane_auth_reject=fplane_auth_reject) # This is the primary object for the conversion. Initialize and # configure for all events that we want to process. log.info('Init QuakeML object') qml = css2qml(review_flags=review_flags, etype_map=etype_map, uri_prefix=uri_prefix, agency_uri=agency_uri, agency_id=agency_id, author=author, q=Q_NAMESPACE, catalog=CATALOG_NAMESPACE, bed=BED_NAMESPACE, bedrt=BEDRT_NAMESPACE, info_description=info_description, info_comment=info_comment, add_origin=add_origin, add_magnitude=add_magnitude, add_fplane=add_fplane, add_mt=add_mt, add_stamag=add_stamag, add_arrival=add_arrival) return ev, qml