예제 #1
0
def run_tests():
    testEmdee = emdee.Emdee(mode='new')
    print()

    testEmdee.AddParam('core_mass')
    testEmdee.AddParam('Qimp', [1.0, 4.0])
    testEmdee.PrintParams()
    testEmdee.AddParam('core_mass', [1.5, 1.6])
    print()

    testEmdee.ChangeBounds('core_mass', [1.6, 2.1])
    testEmdee.PrintParams()
    testEmdee.ChangeBounds('core_radius', [9.0, 9.2])
    print()

    print(testEmdee.nwalkers)
    testEmdee.ChangeWalkers(30)
    print(testEmdee.nwalkers)
    testEmdee.ChangeWalkers(17)
    testEmdee.ChangeWalkers(2)
    print(testEmdee.nwalkers)
    print()

    print(testEmdee.dstar_dir)
    testEmdee.ChangeDStarDir('some/dstar/somewhere')
    print(testEmdee.dstar_dir)
    print()

    testEmdee._lastlogged = 100
    testEmdee.AddParam('Mdot')
    print()

    print("\n...testPrep complete...\n")
예제 #2
0
파일: new_run.py 프로젝트: rpconnol/emdee
import time
import datetime
import os
import sys
sys.path.insert(
    0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))

import emdee

print(
    datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))

emdeeClass = emdee.Emdee()

emdeeClass.AddParam("core_mass")
emdeeClass.AddParam("core_radius")
emdeeClass.PrintParams()

emdeeClass.ChangeWalkers(100)

emdeeClass.GoMCMC(50)

emdeeClass.PlotChains(save=True,
                      hlines={
                          "core_mass": 1.6,
                          "core_radius": 10.4
                      })
emdeeClass.PlotCorner(lastpt=True, save=True)
emdeeClass.PrintPercentiles(lastpt=True)

print(
예제 #3
0
import sys
sys.path.insert(
    0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))

import emdee

print(
    datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))

if os.path.exists('load_data'):
    shutil.rmtree('load_data')
shutil.copytree('test_data', 'load_data')
if os.path.exists('load_data/README'):
    os.remove('load_data/README')

emdeeClass = emdee.Emdee(mode='load', loc='load_data')
emdeeClass.PrintParams()
#print(emdeeClass.nwalkers)
#print(emdeeClass._lastlogged)
#print(emdeeClass._current_pos)
#print(emdeeClass._current_lnprob)

emdeeClass.PlotChains(name='chain_before.png',
                      save=True,
                      hlines={
                          "core_mass": 1.6,
                          "core_radius": 10.4
                      })
emdeeClass.PlotCorner(name='corner_before.png', lastpt=True, save=True)
emdeeClass.PrintPercentiles(lastpt=True)
예제 #4
0
파일: 1_new_run.py 프로젝트: rpconnol/emdee
import os
import sys
sys.path.insert(
    0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))


import emdee


print(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))


# Invoke a fresh Emdee class. 
# mode argument is 'new' by default, but shown explicitly here just for example purposes.
# loc is the subdirectory where results will be saved.
emdeeClass = emdee.Emdee(mode='new',loc='example_output')

# We'll use the core mass and radius as free parameters to "scan" over.
# Here we manually set bounds on mass (lower bound of 1.45 Msun, upper bound of 1.9 Msun).
# If no bounds are provided manually, a set of defaults appropriate to that parameter
#    is chosen (see emdee/emdeeDefaults.py for reference).
emdeeClass.AddParam("core_mass",[1.45,1.9])
emdeeClass.AddParam("core_radius")
emdeeClass.PrintParams()  # Optional, just to check, for example purposes

# Change the number of walkers, each with some initial position
emdeeClass.ChangeWalkers(100)

# "Run" the MCMC for this many steps. On each step, a new position is chosen for each
# walker based on the goodness of fit from the previous step. 
emdeeClass.GoMCMC(50)
예제 #5
0
import time
import datetime
import shutil
import os
import sys
sys.path.insert(
    0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))


import emdee


print(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))

# In this case we want to LOAD the results of a previous emdee run to pick up where
# we left off. With mode set to 'load' and loc pointing to the subdirectory containing
# a previous set of results (LOG.txt, last_lnprob.txt, etc...), an Emdee class is 
# populated with the loaded data and is ready to continue iterating. Changes to the 
# number of walkers or the parameters (and bounds) should not be made at this point.
# This is primarily for continuing runs that may have crashed, or completed successfully
# but haven't reached burn in (if running in small chunks locally, for example).
emdeeClass = emdee.Emdee(mode='load',loc='example_output')
emdeeClass.PrintParams()  # Just to check, for example

# As before, we just run another batch of iterations picking up from where the previous
# run that we loaded had left off.
emdeeClass.GoMCMC(100)


print(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))
예제 #6
0
import os
import sys
sys.path.insert(0,
                os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

import emdee

testEmdee = emdee.Emdee(mode='new')
print()

testEmdee.AddParam('core_mass')
testEmdee.AddParam('core_radius', gaussian_init=[10.4, 0.1])
testEmdee.AddParam('Qimp', gaussian_init=[20.0, 100.0])
testEmdee.ChangeWalkers(10)
print()

pos0 = testEmdee._InitWalkers()
print(pos0)
print('The first column should be uniform masses between 1.4 and 2.0')
print('The second coulmn should be radii in a narrow Gaussian around 10.4')
print(
    'The third column should be Qimp in a VERY wide Gaussian around 20, with some exact 20s mixed in (testing bounds)'
)