コード例 #1
0
def complete_postprocessing(config_filename=False, directory_path=False,
                            decay=True, extraction=True, reduction=True, delete=False):
    """
    Choose Experiment-folder from config-file.
    Apply beta-decay to all data-files, SAVE AS '*_decayed.npy'!!
    Extract Re-Os-data from data-files and decayed-data-files, SAVE AS 'extract_..._.npy'
    Reduce extracted data to reasonable pandas-csv-files, save in experiment-folder and results-folder!

    delete-option: execute extraction, with suboption "do not consider files were Y_Re-187 or Y_Os-187 = 0"
    """

    if config_filename:
        config = cp.ConfigParser()
        config.read(config_filename)
        dir_data = config["montecarlo parameters"]["directory_name"]
    elif directory_path:
        dir_data = directory_path
    else:
        raise TypeError("Wrong use of keyword arguments!"+
                        "'config_filename' or 'directory_path' must be given!")
    print "Mucking around in directory: %s"%(dir_data)

    if decay:
        print "Applying decay"
        decay_instance = Decay(dir_name=dir_data) #make instance of decay-class
        decay_instance() #do the stuff for Re-Os

    if extraction:
        print "Applying extraction"
        extract_instance = Extract(dir_name=dir_data) #make instance of extract-class
        extract_instance.check_filename_level = 1 #check Y_hat(Re-187) and Y_hat(Os-187) from pid-in filename
        extract_instance() #do the stuff for Re-Os
        extract_instance(nsm=True)
        
    if reduction:
        print "Applying reduction"
        reduce_instance = Reduce(dir_name=dir_data) #make instance of reduce-class
        reduce_instance() #do the stuff for Re-Os
        reduce_instance(nsm=True)

        results_folder = Foldermap().hume_folder() + "latex/thesis/results/" + dir_data.split("/")[-1]
        print "Results-folder: %s"%(results_folder)
        try:
            os.mkdir(results_folder)
        except OSError: #folder already exists
            pass
        reduce_instance.set_save_dir(results_folder)
        reduce_instance()
        reduce_instance(nsm=True)

    return
コード例 #2
0
### import modules ###
#local module for project
from directory_master import Foldermap
folder = Foldermap()
folder.activate_environ()
#GCE calculation and local visualization module
from omega import omega
from visualize import visualize
#get some bestfit-value from 'Eris'
from bestfit_param_omega.find_bestfit_param_v0.set_param_from_eris import *
#get values and filename from document
from read_parameter_space import read_param

#Set cmdline arguments
try:
    from sys import argv
    n = int(argv[1])
except IndexError:
    n = 10

#Run calculations of GCE with 'Omega'
timesteps = n
loa_inflow_vals, save_name = read_param(
    "inflow_rate")  #get values from 'parameter_space.txt'
print "Using inflow values: ", loa_inflow_vals
bestfit_mgal = 1.0e+10
loa_omega_inst = [
    omega(special_timesteps=timesteps,
          in_out_control=True,
          inflow_rate=inflow,
          imf_type=bestfit_imf_type,
コード例 #3
0
"""
Purpose:
Make a class that that inherits from 'Omega', 
takes a 'namespace' as argument and call on 'Omega' with all the 
parameters from 'namespace'.
Also add a function for saving relevant data to a 2D numpy-matrix.

Description:
"""

#get folder-handling-script
from directory_master import Foldermap
folder = Foldermap()
folder.activate_environ()  #set environment/directory for omega
#NuPyCEE one-zone chemical evolution code
from omega import omega


class child_omega(omega):
    def __init__(self, bestfit_namespace):
        omega.__init__(
            self,
            galaxy=bestfit_namespace.bestfit_galaxy,
            in_out_control=bestfit_namespace.bestfit_in_out_control,
            SF_law=bestfit_namespace.bestfit_SF_law,
            DM_evolution=bestfit_namespace.bestfit_DM_evolution,
            Z_trans=bestfit_namespace.bestfit_Z_trans,
            f_dyn=bestfit_namespace.bestfit_f_dyn,
            sfe=bestfit_namespace.bestfit_sfe,
            outflow_rate=bestfit_namespace.bestfit_outflow_rate,
            inflow_rate=bestfit_namespace.bestfit_inflow_rate,
コード例 #4
0
"""
"""
#Import modules for plotting and modelling
#import sys; sys.path.append("/home/oyvind/github_uio/NuPyCEE")
from directory_master import Foldermap

Foldermap().activate_environ()  #set os.eviron to correct path
from omega import omega


#####################################################
### Class inheriting omega for experimental usage ###
#####################################################
class omega_new(omega):
    def __init__(self, bestfit_namespace):
        omega.__init__(
            self,
            galaxy=bestfit_namespace.bestfit_galaxy,
            in_out_control=bestfit_namespace.bestfit_in_out_control,
            SF_law=bestfit_namespace.bestfit_SF_law,
            DM_evolution=bestfit_namespace.bestfit_DM_evolution,
            Z_trans=bestfit_namespace.bestfit_Z_trans,
            f_dyn=bestfit_namespace.bestfit_f_dyn,
            sfe=bestfit_namespace.bestfit_sfe,
            outflow_rate=bestfit_namespace.bestfit_outflow_rate,
            inflow_rate=bestfit_namespace.bestfit_inflow_rate,
            rand_sfh=bestfit_namespace.bestfit_rand_sfh,
            cte_sfr=bestfit_namespace.bestfit_cte_sfr,
            m_DM_0=bestfit_namespace.bestfit_m_DM_0,
            mass_loading=bestfit_namespace.bestfit_mass_loading,
            t_star=bestfit_namespace.bestfit_t_star,
コード例 #5
0
"""
Description:
-Make a class that inherits everything from omega or sygma
-change the functions that uses sygma to get yields
-add a funky factor to the yields of a single isotope
"""
######################################
### Various imports and structures ###
######################################
#get folder-handling-script
from directory_master import Foldermap
folder = Foldermap()
folder.activate_environ() #set environment for omega before importing
#NuPyCEE one-zone chemical evolution code
from omega import *
#use pandas for data-storage
import pandas as pd
#import namespace of the default bestfit-parameters
import bestfit_param_omega.bestfit_file as default_bestfit_namespace

#####################################################
### Class inheriting omega for experimental usage ###
#####################################################
class experiment(omega):
    def __init__(self, input_isotope='Re-187', input_factor=1.0,
                 input_timesteps=30, dt=0,
                 bestfit_namespace=default_bestfit_namespace):
        self.experiment_isotope = input_isotope
        self.experiment_factor = input_factor
        
        ### initialize omega ###
コード例 #6
0
"""
This file contains the default parameters of 'Omega'.
Copy-paste the parameter-space from the bottom and insert into 
any 'Omega'-instance to set all bestfit-parameters to default.
"""
import numpy as np  #only do this for the default parameters
from directory_master import Foldermap
folder = Foldermap()

### Initialize bestfit-parameters with the initial parameters ###
bestfit_galaxy = 'none'
bestfit_in_out_control = False
bestfit_SF_law = False
bestfit_DM_evolution = False
bestfit_Z_trans = 1e-20
bestfit_f_dyn = 0.1
bestfit_sfe = 0.1
bestfit_outflow_rate = -1.0
bestfit_inflow_rate = -1.0
bestfit_rand_sfh = 0.0
bestfit_cte_sfr = 1.0
bestfit_m_DM_0 = 1.0e11
bestfit_mass_loading = 1.0
bestfit_t_star = -1.0
bestfit_sfh_file = 'none'
bestfit_in_out_ratio = 1.0
bestfit_stellar_mass_0 = -1.0
bestfit_z_dependent = True
bestfit_exp_ml = 2.0
bestfit_nsmerger_bdys = [8, 100]
bestfit_imf_type = 'kroupa'
コード例 #7
0
"""
This script is for picking an experiment on the stornext folder,
get all the adequate results and write them to the results-folder 
in \thesis\
"""
import os
from save_results import save_results
from directory_master import Foldermap
folder = Foldermap()
stornext_folder = folder.stornext_folder()
hume_folder = folder.hume_folder()
results_folder = "latex/thesis/results/"  #direction to thesis-results-folder from /Master/

if __name__ == '__main__':
    #which experiment?
    inventory = dict(enumerate(os.listdir(stornext_folder)))
    question = "Choose the index of the appropriate experiment?\n%s" % (
        inventory)
    response = int(raw_input(question))

    experiment = inventory[response]
    get_directory = stornext_folder + experiment + "/"
    save_directory = hume_folder + results_folder + experiment + "/"

    #which arrays?
    loa_array_strings = []
    #nb_nsm, rate_nsm
    loa_array_strings.append("num_nsm")
    #elem & iso yield+ism
    iso_list = ["Re-185", "Re-187", "Os-187", "Os-188", "Os-186", "W-184"]
    elem_list = ["Re", "Os", "W"]
コード例 #8
0
    #fraction of os-187/Re-187 at the time of formation of the solar system (with absolute uncertainty)
    f_187_fsos = [0.136, 0.0032]
    #same for current time
    f_187_now = [0.226, 57.9e-3]
    if fsos:
        ax.axhspan(f_187_fsos[0]+f_187_fsos[1], f_187_fsos[0]-f_187_fsos[1],
                   alpha=0.5, label="$f_{187}(t_{f,sos})$", color="g")
    if now:
        ax.axhspan(f_187_now[0]+f_187_now[1], f_187_now[0]-f_187_now[1],
                   alpha=0.5, label="$f_{187}(t_{now})$", color="g")
    return

if __name__ == '__main__':
    #find app. directory
    from directory_master import Foldermap
    directory = Foldermap().results + "MCExperiment_revised_2_delmax/"
    #find app. data
    loa_filenames = os.listdir(directory)
    for filename in loa_filenames:
        if ("reduce" in filename) and ("div" in filename) \
        and ("timeevol" in filename) and ("decay" in filename):
            app_filename = filename
    time, mean, uncertainty_up, uncertainty_down = get_data(directory+app_filename)
    
    #plot data
    fig = pl.figure()
    ax = fig.gca()
    bool_std = True
    add_meteor_data(ax=ax)
    plot_timeevol((time, mean, mean+uncertainty_up, mean-uncertainty_down), ax, color='k-', bool_std=bool_std, plot_string="data")
    
コード例 #9
0
"""
Calculate the mean, median, 1 sigma, 2 sigma, and default array of a specific array from a data-folder.
"""
#import statements and global varaibles
import os, sys
import numpy as np
from directory_master import Foldermap
folder = Foldermap()
stornext_dir = folder.stornext_folder()

default_filename_postamble = "default.npy"  #Final string of default-datafile-name
index_filename = "data_indeces.txt"

### Set global location directory to stornext ###
location_dir = stornext_dir

loa_contents = os.listdir(location_dir)
loa_folders = []
for content in loa_contents:  #loop over all strings in cwd
    if not ('.' in content):  #string is not a filename, but folder
        loa_folders.append(content)

#find folder name
print "Current available folders: ", dict(enumerate(loa_folders))
response = raw_input(
    "What folder would you like to choose? (full path or index)")
try:
    #is response the index of folder-list?
    response = int(response)
    input_index = response
    input_datafolder = loa_folders[response]
コード例 #10
0
"""
Go through /stornext/-directories and plot various data-sets
with mean + regions and such.
Decide which data is to be stored in /results/
"""
from directory_master import Foldermap
from plot_data_files import plot_all_mean_sigma_extrema, plot_all_time_hist
import matplotlib.pyplot as pl

#Get relevant directory-names for uio-systems
folder_instance = Foldermap()
dir_stornext = folder_instance.stornext_folder()
dir_hume = folder_instance.hume_folder()

#decide on variables to plot!
loa_elem = ["Re", "Os"]
loa_re_isos = ["Re-187", "Re-185"]
loa_os_isos = ["Os-187", "Os-188"]
loa_ism_isos = ["ism_iso_" + iso for iso in loa_re_isos + loa_os_isos]
loa_ism_elem = ["ism_elem_" + elem for elem in loa_elem]
loa_yield_isos = ["yield_" + iso for iso in loa_re_isos + loa_os_isos]
loa_array_strings = ["num_nsm", "m_locked"] + \
                    loa_ism_elem + \
                    loa_ism_isos + \
                    loa_yield_isos

if __name__ == '__main__':
    print "Plotting data for the following arrays:"
    print loa_array_strings

    dir_experiment = dir_stornext + "MCExperiment1/"
コード例 #11
0
"""
Plot the current bestfit-parameters, in 'current_bestfit.py'.
Then add the plots to a folder, 'current_bestfit_plots/'.

Input arguments:
  n: int
    Number of special-timesteps.
    A value of zero disables special timesteps, 
    meaning constant timesteps.
"""
### Get modules ###
import sys, time
from directory_master import Foldermap #structure of directory
folder = Foldermap()
folder.activate_environ() #set NuPyCEE-folder
from omega import omega #GCE
from visualize import visualize #visualization of Omega and Eris
from bestfit_param_omega.current_bestfit import *

### User-made exception ###
class Wtf(Exception):
    def __init__(self):
        print "What the F**K did you do?!"
        sys.exit("Exiting!")

### Set global parameters ###
n = 5
save_dir = "current_bestfit_plots/"
try:
    n = int(sys.argv[1])
except:
コード例 #12
0
plt.figure(figsize=(7.0,5.3))
# Get the CC SNe and kilona rates
r_sne = o.history.sn2_numbers[1:] / o.history.timesteps
r_kilo = o.history.nsm_numbers[1:] / o.history.timesteps
# Plot results
plt.plot(np.array(o.history.age[1:])/1e9, r_sne, 
color='b', label='CC SNe')
plt.plot(np.array(o.history.age[1:])/1e9, r_kilo, 
color='r', label='Kilonovae')
plt.yscale('log')
plt.ylim(1e-7,1e0)
"""

from directory_master import Foldermap as FM

folder = FM()
folder.activate_environ()
from bestfit_param_omega.current_bestfit import *
import matplotlib.pyplot as pl
from omega import omega

bestfit_special_timesteps = 100
O1 = omega(special_timesteps=bestfit_special_timesteps, ns_merger_on=True)
O2 = omega(galaxy=bestfit_galaxy,
           in_out_control=bestfit_in_out_control,
           SF_law=bestfit_SF_law,
           DM_evolution=bestfit_DM_evolution,
           Z_trans=bestfit_Z_trans,
           f_dyn=bestfit_f_dyn,
           sfe=bestfit_sfe,
           outflow_rate=bestfit_outflow_rate,
コード例 #13
0
def add_meteor_data(ax, fsos=True, now=False):
    #fraction of os-187/Re-187 at the time of formation of the solar system (with absolute uncertainty)
    f_187_fsos = [0.136, 0.0323]
    #same for current time
    f_187_now = [0.226, 57.9e-3]
    if fsos:
        ax.axhspan(f_187_fsos[0]+f_187_fsos[1], f_187_fsos[0]-f_187_fsos[1],
                   alpha=0.5, label="obs. $f_{187}(t_{f,sos})$", color="g")
    if now:
        ax.axhspan(f_187_now[0]+f_187_now[1], f_187_now[0]-f_187_now[1],
                   alpha=0.5, label="obs. $f_{187}(t_{now})$", color="g")
    return

if __name__ == '__main__':
    from directory_master import Foldermap
    result_dir = Foldermap().results #.hume_folder() + "latex/thesis/results/"
    # result_dir = result_dir+"MCExperiment_revised_2_delmax/"
    # result_dir = result_dir+"MCExperiment_revised_2_imfslope/"
    result_dir = result_dir+"MCExperiment_revised_2_numnsm/"
    loa_fullpaths = get_full_filenames(result_dir)

    print "All paths in %s:"%(result_dir)
    for fullpath in loa_fullpaths:
        print fullpath.split('/')[-1]
    if raw_input("continue? y/n\t") == "y":
        pass
    else:
        sys.exit("Exiting!")

    # plot_all_single_paths(loa_fullpaths=loa_fullpaths)
    doa_figs = plot_combined_plots(loa_fullpaths=loa_fullpaths, save_dir=result_dir)
コード例 #14
0
    #add '/' to experiment_folder if necessary
    if experiment_folder[-1] != '/':
        experiment_folder = experiment_folder + '/'

    #get list of filenames with desired quantities
    csv_file_list = [
        experiment_folder + filename for filename in file_list
        if (".csv" in filename)
    ]

    return csv_file_list


if __name__ == '__main__':
    from directory_master import Foldermap
    result_dir = Foldermap(
    ).results  #.hume_folder() + "latex/thesis/results/" #.stornext_folder() +...
    result_dir = result_dir + "MCExperiment_revised_2_numnsm/"
    loa_fullpaths = get_full_filenames(result_dir)

    print "All paths in %s:" % (result_dir)
    for fullpath in loa_fullpaths:
        print fullpath.split('/')[-1]
    if True:
        #if raw_input("continue? y/n\t") == "y":
        pass
    else:
        sys.exit("Exiting!")

    loa_num_paths = [
        path for path in loa_fullpaths if "num" in path.split("/")[-1]
    ]