示例#1
0
def big_array(elements, dtype=float):

    # set up the logging
    log_filename = os.path.join(DIRPATH,
                                'log-0-' + str(elements) + '.txt')
    log.log_filename = log_filename
    log.remove_log_file()
    log.set_log_level('DEBUG')
    log.resource_usage(tag=log.INITIAL_J)
    array_mem = numpy.zeros([elements], dtype=dtype)
    log.resource_usage(tag=log.FINAL_J)
    dic = {"actual_mem MB": array_mem.nbytes / estimator.MB2B,
           "elements": elements}
    log.log_json(dic, log.DEBUG)
def big_array(elements, dtype=float):

    # set up the logging
    log_filename = os.path.join(DIRPATH, 'log-0-' + str(elements) + '.txt')
    log.log_filename = log_filename
    log.remove_log_file()
    log.set_log_level('DEBUG')
    log.resource_usage(tag=log.INITIAL_J)
    array_mem = numpy.zeros([elements], dtype=dtype)
    log.resource_usage(tag=log.FINAL_J)
    dic = {
        "actual_mem MB": array_mem.nbytes / estimator.MB2B,
        "elements": elements
    }
    log.log_json(dic, log.DEBUG)
示例#3
0
        events = Event_Set.generate_synthetic_events(
            file_name,
            fault_width,
            azi,
            dazi,
            fault_dip,
            prob_min_mag_cutoff,
            override_xml,
            prob_number_of_events_in_zones)
#        print "events.trace_start_lat", events.trace_start_lat
#         print " events.trace_start_lon", events.trace_start_lon
#         print "events.trace_end_lat", events.trace_end_lat
#         print "events.trace_end_lon", events.trace_end_lon
#         print "events.rupture_centroid_lat", events.rupture_centroid_lat
#         print "events.rupture_centroid_lon", events.rupture_centroid_lon
#         print "events.rupture_centroid_x", events.rupture_centroid_x
#         print "events.rupture_centroid_y", events.rupture_centroid_y

        os.remove(file_name)

                                                     
#-------------------------------------------------------------
if __name__ == "__main__":
    event_num = 100000
    eqrmlog.console_logging_level = eqrmlog.INFO
    eqrmlog.info('Memory: before creating ' + str(event_num) + ' events')
    eqrmlog.resource_usage(level=eqrmlog.INFO)
    create_event_set(event_num)
    eqrmlog.info('Memory: after')
    eqrmlog.resource_usage(level=eqrmlog.INFO)
def calc_event_activity(event_set, source_model):
    """
    event_set - Event_Set instance - this function uses Mw and rupture_centroid
                               and returns a subset of event_set
    source_model - The source_model - holds a list of source_zone_polygons.

    when analysis uses this function, the weight used is a constant of [1.0]
    EQRM can currently only handle one source model.
    A source model has many source polygons.

    Returns: 2D ndarray of event activities indexed by
    [recurrence_model_index, event_index]
    """
    # Allocate a row per recurrence model. Note that this approach
    # wastes a fair bit of space if not all the source zones have the
    # same number of recurrence models
    event_activity_matrix = zeros(
        (max(len(s.recurrence_models) for s in source_model),
         len(event_set)),
        float)
    eqrmlog.debug('Memory: event_activity_matrix weight_matrix created')
    eqrmlog.resource_usage()

    for source in source_model:  # loop over source zones
        actual_min_mag_generation = source.actual_min_mag_generation
        poly_ind = source.get_event_set_indexes()

        for i, rm in enumerate(source.recurrence_models):
            filtered_poly_ind = poly_ind[
                ((rm.min_magnitude <= event_set.Mw[poly_ind]) &
                 (event_set.Mw[poly_ind] <= rm.max_magnitude))]

            if len(filtered_poly_ind) > 0:
                recurrence_max_mag = rm.max_magnitude
                zone_b = rm.b
                grfctr = grscale(zone_b,
                                 recurrence_max_mag,
                                 actual_min_mag_generation,
                                 rm.min_magnitude)
                A_mlow = rm.A_min * grfctr

                if rm.recurrence_model_distribution == \
                        'bounded_gutenberg_richter':
                    grpdf = m2grpdfb(zone_b,
                                     event_set.Mw[filtered_poly_ind],
                                     actual_min_mag_generation,
                                     recurrence_max_mag)
                elif rm.recurrence_model_distribution == 'characteristic':
                    grpdf = calc_activities_Characteristic(
                        event_set.Mw[filtered_poly_ind],
                        zone_b,
                        actual_min_mag_generation,
                        recurrence_max_mag)
                else:
                    raise IOError(rm.recurrence_model_distribution,
                                  " is not a valid recurrence model distribution.")

                event_activity_matrix[
                    i,
                    filtered_poly_ind] = A_mlow * grpdf * rm.weight

    eqrmlog.debug('Memory: Out of the event_activity loop')
    eqrmlog.resource_usage()

    return event_activity_matrix