Ejemplo n.º 1
0
def db_with_dark_and_scan() -> Broker:
    """A database with a dark run and a motor scan inside. The last one is light and the first one is dark."""
    db = databroker.v2.temp()
    dark_data = [{"pe1_image": np.zeros_like(NI_FRAMES)}]
    dark_uid = str(uuid.uuid4())
    for name, doc in gen_stream(dark_data, {"dark_frame": True}, uid=dark_uid):
        db.v1.insert(name, doc)
    light_data = [{
        "pe1_image": NI_FRAMES,
        "temperature": 0
    }, {
        "pe1_image": NI_FRAMES,
        "temperature": 1
    }, {
        "pe1_image": NI_FRAMES,
        "temperature": 3
    }]
    start = dict(**START_DOC)
    start.update({
        "sc_dk_field_uid": dark_uid,
        "hints": {
            "dimensions": [(["temperature"], "primary")]
        },
        "sample_name": "Ni"
    })
    for name, doc in gen_stream(light_data, start):
        db.v1.insert(name, doc)
    return db
Ejemplo n.º 2
0
def runs():
    x = np.arange(0, 26, 0.1)
    comp0 = gen_stream([{
        "q": x,
        "iq": np.sin(x)
    }], {
        "lsq_type": "component",
        "sample_name": "c0"
    })
    comp1 = gen_stream([{
        "q": x,
        "iq": np.cos(x)
    }], {
        "lsq_type": "component",
        "sample_name": "c1"
    })
    target = gen_stream([{
        "q": x,
        "iq": np.cos(x) + np.sin(x) + np.exp(x / 26)
    }], {
        "lsq_type": "target",
        "lsq_comps": ["c0", "c1"],
        "sample_name": "c2"
    })
    return comp0, comp1, target
Ejemplo n.º 3
0
def db_with_dark_and_light() -> Broker:
    """A database with a dark run and a light run inside. The last one is light and the first one is dark."""
    db = databroker.v2.temp()
    dark_data = [{"pe1_image": np.zeros_like(NI_FRAMES)}]
    dark_uid = str(uuid.uuid4())
    for name, doc in gen_stream(dark_data, {"dark_frame": True}, uid=dark_uid):
        db.v1.insert(name, doc)
    light_data = [{"pe1_image": NI_FRAMES}]
    for name, doc in gen_stream(light_data,
                                dict(**START_DOC, sc_dk_field_uid=dark_uid)):
        db.v1.insert(name, doc)
    return db
Ejemplo n.º 4
0
def db_with_dark_and_calib() -> Broker:
    """A database with a dark run and a light run inside. The last one is light and the first one is dark."""
    db = databroker.v2.temp()
    dark_data = [{"pe1_image": np.zeros_like(NI_FRAMES)}]
    dark_uid = str(uuid.uuid4())
    for name, doc in gen_stream(dark_data, {"dark_frame": True}, uid=dark_uid):
        db.v1.insert(name, doc)
    light_data = [{"pe1_image": NI_FRAMES}]
    for name, doc in gen_stream(
            light_data,
            dict(sample_composition="Ni",
                 sc_dk_field_uid=dark_uid,
                 detector="perkin_elmer",
                 is_calibration=True,
                 bt_wavelength=0.1917)):
        db.v1.insert(name, doc)
    return db
Ejemplo n.º 5
0
def array_stream():
    return gen_stream([
        {
            "x0": np.zeros(3),
            "x1": np.zeros(5)
        },
        {
            "x0": np.ones(3),
            "x1": np.ones(5)
        },
    ], {})
Ejemplo n.º 6
0
def db_with_fake_an():
    """A database that has a fake analysis run."""
    db = databroker.v2.temp()
    for name, doc in gen_stream([],
                                {"an_config": {
                                    "SECTION": {
                                        "key": "value"
                                    }
                                }}):
        db.v1.insert(name, doc)
    return db
Ejemplo n.º 7
0
def db_with_img_and_bg_img() -> Broker:
    """A database with a dark image, a background image run and a data image run inside. The first one is dark
    image, the second one is background image, the third one is the data image."""
    db = databroker.v2.temp()
    sample_name = "Kapton"
    dk_uid = str(uuid.uuid4())
    dk_meta = {"dark_frame": True}
    dk_data = [{"pe1_image": np.ones_like(NI_IMG)}]
    bg_meta = {"sample_name": sample_name, "sc_dk_field_uid": dk_uid}
    bg_data = [{"pe1_image": 2 * np.ones_like(NI_IMG)}]
    img_data = [{"pe1_image": 2 * np.ones_like(NI_IMG) + NI_IMG}]
    img_meta = dict(**START_DOC,
                    bkgd_sample_name=sample_name,
                    sc_dk_field_uid=dk_uid)
    for name, doc in gen_stream(dk_data, dk_meta, uid=dk_uid):
        db.v1.insert(name, doc)
    for name, doc in gen_stream(bg_data, bg_meta):
        db.v1.insert(name, doc)
    for name, doc in gen_stream(img_data, img_meta):
        db.v1.insert(name, doc)
    return db
Ejemplo n.º 8
0
def ymax_stream(request):
    data = [{
        "ymax": 0,
        "x0": 0,
        "x1": 0
    }, {
        "ymax": 1,
        "x0": 1,
        "x1": 1
    }, {
        "ymax": 2,
        "x0": 2,
        "x1": 2
    }]
    return gen_stream(data, request.param)
Ejemplo n.º 9
0
def simple_stream():
    return gen_stream([{"x": 1}], {})
Ejemplo n.º 10
0
def test_gen_stream(gen_stream_args):
    stream = mod.gen_stream(*gen_stream_args)
    for name, doc in stream:
        print(name, doc)