def all_simulations(request): return [SimulationInfo(x,request) for x in tangos.all_simulations(request.dbsession)]
def _db_import_export(target_session, from_session, *sims): external_id_to_internal_halo = {} translated_halolink_ids = [] if len(sims)==0: sims = [x.id for x in all_simulations(from_session)] for sim in sims: ext_sim = get_simulation(sim, from_session) sim = Simulation(ext_sim.basename) target_session.add(sim) logger.info("Transferring simulation %s", ext_sim) halos_this_ts = [] for p_ext in ext_sim.properties: dic = get_or_create_dictionary_item( target_session, p_ext.name.text) p = SimulationProperty(sim, dic, p_ext.data) halos_this_ts.append(p) for tk_ext in ext_sim.trackers: tk = TrackData(sim, tk_ext.halo_number) tk.particles = tk_ext.particles tk.use_iord = tk_ext.use_iord halos_this_ts.append(tk) target_session.add_all(halos_this_ts) for ts_ext in ext_sim.timesteps: logger.info("Transferring timestep %s",ts_ext) ts = TimeStep(sim, ts_ext.extension) ts.redshift = ts_ext.redshift ts.time_gyr = ts_ext.time_gyr ts.available = True target_session.add(ts) halos_this_ts = [] logger.info("Transferring objects for %s", ts_ext) for h_ext in ts_ext.objects: h = SimulationObjectBase(ts, h_ext.halo_number, h_ext.finder_id, h_ext.finder_offset, h_ext.NDM, h_ext.NStar, h_ext.NGas, h_ext.object_typecode) h.external_id = h_ext.id halos_this_ts.append(h) target_session.add_all(halos_this_ts) target_session.commit() for h in halos_this_ts: assert h.id is not None and h.id > 0 external_id_to_internal_halo[h.external_id] = h properties_this_ts = [] logger.info("Transferring object properties for %s", ts_ext) for h_ext in ts_ext.objects: h_new = external_id_to_internal_halo[h_ext.id] for p_ext in h_ext.properties: dic = get_or_create_dictionary_item( target_session, p_ext.name.text) dat = p_ext.data_raw if dat is not None: p = HaloProperty(h_new, dic, dat) target_session.add(p) target_session.commit() for ts_ext in ext_sim.timesteps: logger.info("Transferring halolinks for timestep %s", ts_ext) sys.stdout.flush() _translate_halolinks( target_session, ts_ext.links_from, external_id_to_internal_halo, translated_halolink_ids) _translate_halolinks( target_session, ts_ext.links_to, external_id_to_internal_halo, translated_halolink_ids) target_session.commit() logger.info("Done")
import matplotlib #matplotlib.use('Agg') def smooth(y, box_pts): # moving average smoothing box = np.ones(box_pts) / box_pts y_smooth = np.convolve(y, box, mode='same') return y_smooth import tangos tangos.all_simulations() import pylab as p import matplotlib.pyplot as plt import numpy as np import pandas as pd from scipy.signal import savgol_filter P0_halo = tangos.get_halo( "pioneer50h243.1536g1bwK1BH/pioneer50h243.1536gst1bwK1BH.004096/halo_1") P0_SFR = P0_halo["SFR_histogram"] P0_BH_accrate = P0_halo.calculate('BH.BH_mdot_histogram') P0_BH_accrate_hat = smooth(P0_BH_accrate, 50) P0_SFR_property_object = P0_halo.get_objects("SFR_histogram")[0] P0_SFR_time_bins = P0_SFR_property_object.x_values() GM1_halo = tangos.get_halo( "pioneer50h243GM1.1536gst1bwK1BH_no3072/pioneer50h243GM1.1536gst1bwK1BH.004096/halo_1" ) GM1_SFR = GM1_halo["SFR_histogram"]