Beispiel #1
0
def build_db(session):
    mdf = Forge("mdf-test")
    mdf.match_field("projects.nanomfg.catalyst", "*")
    rslt = mdf.search()

    def safe_get_recipe_value(recipe, property):
        if property in recipe and recipe[property]:
            return recipe[property]
        else:
            return None

    for recipe in rslt:
        r = MdfForge()
        r.mdf_id = recipe["mdf"]["mdf_id"]
        r.title = recipe["dc"]["titles"][0]["title"]
        recipe_data = recipe["projects"]["nanomfg"]
        r.base_pressure = recipe_data["base_pressure"]
        r.carbon_source = recipe_data["carbon_source"]
        r.catalyst = recipe_data["catalyst"]
        r.grain_size = safe_get_recipe_value(recipe_data, "grain_size")
        r.max_temperature = recipe_data["max_temperature"]
        r.orientation = safe_get_recipe_value(recipe_data, "orientation")
        r.sample_surface_area = safe_get_recipe_value(recipe_data,
                                                      "sample_surface_area")
        r.sample_thickness = safe_get_recipe_value(recipe_data,
                                                   "sample_thickness")
        session.add(r)
    session.commit()
Beispiel #2
0
from mdf_forge.forge import Forge
# You don't have to use the name "mdf" but we do for consistency.
mdf = Forge("mdf-test")


def catalysts(datasets):
    return set(
        map(lambda dataset: dataset["projects"]["nanomfg"]["catalyst"],
            datasets))


mdf.match_field("projects.nanomfg.catalyst", "*")
rslt = mdf.search()
print(len(rslt))
print("Unique catalysts: " + str(catalysts(rslt)))

mdf.match_range("projects.nanomfg.max_temperature", 0, 1000)
res = mdf.search()
print(len(res))
@IDE     : PyCharm
@Time1   : 2020-04-25 20:09:10
@Time2   : 2020/4/25 8:09 下午
@Month1  : 4月
@Month2  : 四月
"""

from mdf_forge.forge import Forge
import json

mdf = Forge()

# mdf.match_field("material.elements", "Al")
# mdf.match_field("material.elements", "Cu")
# mdf.match_field("material.elements", "Sn")
mdf.match_field("material.elements", "H")
# mdf.match_field("material.elements", "Zr")
# mdf.match_field("material.elements", "Fe")
mdf.exclude_field("material.elements", "C")
mdf.exclude_field("material.elements", "O")
# mdf.exclude_field("material.elements", "N")
# mdf.exclude_field("material.elements", "F")
# mdf.exclude_field("material.elements", "Cl")
mdf.match_field("mdf.source_name", "oqmd*")

res = mdf.search()
with open('Hcoms_oqmd.json', 'w') as f:
    for i in res:
        print(i['material']['composition'])
        f.write(json.dumps(i))
        f.write('\n')