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
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
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
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
def array_stream(): return gen_stream([ { "x0": np.zeros(3), "x1": np.zeros(5) }, { "x0": np.ones(3), "x1": np.ones(5) }, ], {})
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
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
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)
def simple_stream(): return gen_stream([{"x": 1}], {})
def test_gen_stream(gen_stream_args): stream = mod.gen_stream(*gen_stream_args) for name, doc in stream: print(name, doc)