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)
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