コード例 #1
0
ファイル: test_model.py プロジェクト: EdGillen/Starfish
class TestThetaParam:
    def setup_class(self):
        self.thetaparam = ThetaParam(grid=np.array([4000., 4.32, -0.2]),
        vz=10., vsini=4.0, logOmega=-0.2, Av=0.3)

    def test_save(self):
        self.thetaparam.save(fname="theta_test.json")

    def test_load(self):
        load = ThetaParam.load("theta_test.json")
        print(load.grid)
        print(load.vz)
        print(load.vsini)
        print(load.logOmega)
        print(load.Av)
コード例 #2
0
ファイル: test_model.py プロジェクト: zjzhang42/Starfish
 def test_load(self):
     load = ThetaParam.load("theta_test.json")
     print(load.grid)
     print(load.vz)
     print(load.vsini)
     print(load.logOmega)
     print(load.Av)
コード例 #3
0
ファイル: test_model.py プロジェクト: EdGillen/Starfish
 def test_load(self):
     load = ThetaParam.load("theta_test.json")
     print(load.grid)
     print(load.vz)
     print(load.vsini)
     print(load.logOmega)
     print(load.Av)
コード例 #4
0
def lnprob_all(p):
    pars1 = ThetaParam(grid=p[0:2], vz=p[2], vsini=p[3], logOmega=p[4])
    model.update_Theta(pars1)
    # hard code npoly=3 (for fixc0 = True with npoly=4)
    pars2 = PhiParam(0, 0, True, p[5:8], p[8], p[9], p[10])
    model.update_Phi(pars2)
    draw = model.draw_save()
    return draw
コード例 #5
0
ファイル: test_model.py プロジェクト: zjzhang42/Starfish
class TestThetaParam:
    def setup_class(self):
        self.thetaparam = ThetaParam(grid=np.array([4000., 4.32, -0.2]),
                                     vz=10.,
                                     vsini=4.0,
                                     logOmega=-0.2,
                                     Av=0.3)

    def test_save(self):
        self.thetaparam.save(fname="theta_test.json")

    def test_load(self):
        load = ThetaParam.load("theta_test.json")
        print(load.grid)
        print(load.vz)
        print(load.vsini)
        print(load.logOmega)
        print(load.Av)
コード例 #6
0
def lnlike(p):
    try:
        pars1 = ThetaParam(grid=p[0:2], vz=p[2], vsini=p[3], logOmega=p[4])
        model.update_Theta(pars1)
        # hard code npoly=3 (for fixc0 = True with chebyshev polynomials turned off)
        pars2 = PhiParam(0, 0, True, [0.0, 0.0, 0.0], p[5], p[6], p[7])
        model.update_Phi(pars2)
        lnp = model.evaluate()
        return lnp
    except C.ModelError:
        model.logger.debug("ModelError in stellar parameters, sending back -np.inf {}".format(p))
        return -np.inf
コード例 #7
0
ファイル: star.py プロジェクト: norrisryan/Starfish
    def lnprob(p):
        pars = ThetaParam(grid=p[0:3], vz=p[3], vsini=p[4], logOmega=p[5])
        #Distribute the calculation to each process
        for ((spectrum_id, order_id), pconn) in pconns.items():
            pconn.send(("LNPROB", pars))

        #Collect the answer from each process
        lnps = np.empty((len(Starfish.data["orders"]), ))
        for i, pconn in enumerate(pconns.values()):
            lnps[i] = pconn.recv()

        result = np.sum(lnps)  # + lnprior
        print("proposed:", p, result)
        return result
コード例 #8
0
ファイル: star.py プロジェクト: norrisryan/Starfish
    def fprob(p):

        # Assume p is [temp, logg, Z, vz, vsini, logOmega]

        pars = ThetaParam(grid=p[0:3], vz=p[3], vsini=p[4], logOmega=p[5])

        #Distribute the calculation to each process
        for ((spectrum_id, order_id), pconn) in pconns.items():
            #Parse the parameters into what needs to be sent to each Model here.
            pconn.send(("LNPROB", pars))

        #Collect the answer from each process
        lnps = np.empty((len(Starfish.data["orders"]), ))
        for i, pconn in enumerate(pconns.values()):
            lnps[i] = pconn.recv()

        s = np.sum(lnps)

        print(pars, "lnp:", s)

        if s == -np.inf:
            return 1e99
        else:
            return -s
コード例 #9
0
ファイル: test_model.py プロジェクト: EdGillen/Starfish
 def setup_class(self):
     self.thetaparam = ThetaParam(grid=np.array([4000., 4.32, -0.2]),
     vz=10., vsini=4.0, logOmega=-0.2, Av=0.3)
コード例 #10
0
ファイル: star.py プロジェクト: norrisryan/Starfish
import numpy as np
import Starfish
from Starfish import parallel
from Starfish.parallel import args
from Starfish.model import ThetaParam, PhiParam

print("THIS IS WORKING")

if args.generate:
    model = parallel.OptimizeTheta(debug=True)

    # Now that the different processes have been forked, initialize them
    pconns, cconns, ps = parallel.initialize(model)

    pars = ThetaParam.from_dict(Starfish.config["Theta"])

    for ((spectrum_id, order_id), pconn) in pconns.items():
        #Parse the parameters into what needs to be sent to each Model here.
        pconn.send(("LNPROB", pars))
        pconn.recv()  # Receive and discard the answer so we can send the save
        pconn.send(("SAVE", None))

    # Kill all of the orders
    for pconn in pconns.values():
        pconn.send(("FINISH", None))
        pconn.send(("DIE", None))

    # Join on everything and terminate
    for p in ps.values():
        p.join()
コード例 #11
0
ファイル: star_linear.py プロジェクト: EdGillen/Starfish
# All of the argument parsing is done in the `parallel.py` module.

import numpy as np
import Starfish
from Starfish import parallel_linear
from Starfish.parallel_linear import args
from Starfish.model import ThetaParam, PhiParam

if args.generate:
    model = parallel_linear.OptimizeTheta(debug=True)

    # Now that the different processes have been forked, initialize them
    pconns, cconns, ps = parallel_linear.initialize(model)

    pars = ThetaParam.from_dict(Starfish.config["Theta"])

    for ((spectrum_id, order_id), pconn) in pconns.items():
        #Parse the parameters into what needs to be sent to each Model here.
        pconn.send(("LNPROB", pars))
        pconn.recv() # Receive and discard the answer so we can send the save
        pconn.send(("SAVE", None))

    # Kill all of the orders
    for pconn in pconns.values():
        pconn.send(("FINISH", None))
        pconn.send(("DIE", None))

    # Join on everything and terminate
    for p in ps.values():
        p.join()
コード例 #12
0
ファイル: test_model.py プロジェクト: zjzhang42/Starfish
 def setup_class(self):
     self.thetaparam = ThetaParam(grid=np.array([4000., 4.32, -0.2]),
                                  vz=10.,
                                  vsini=4.0,
                                  logOmega=-0.2,
                                  Av=0.3)