Esempio n. 1
0
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
Esempio n. 2
0
    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)
Esempio n. 3
0
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