Skip to content

Commit

Permalink
some config changed
Browse files Browse the repository at this point in the history
  • Loading branch information
shinokumura committed Jul 4, 2023
1 parent eda8531 commit 7ac6c3c
Show file tree
Hide file tree
Showing 11 changed files with 392 additions and 291 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ sqldb.py
*.sqlite
check*
json.schema
*.sh

# other packages
exfor_dictionary/
8 changes: 8 additions & 0 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,28 @@
EXFOR_DB = DATA_DIR + "exfor_tmp.sqlite"
ENDFTAB_DB = DATA_DIR + "endftables.sqlite"


## Package locations
EXFOR_PARSER = "exforparser/"
EXFOR_DICTIONARY = "exfor_dictionary/"
RIPL3 = "ripl3_json/"


sys.path.append(os.path.join(MODULES_DIR, EXFOR_DICTIONARY))
sys.path.append(os.path.join(MODULES_DIR, RIPL3))



""" pickel file path """
PICKLE_PATH = os.path.join(MODULES_DIR, EXFOR_DICTIONARY, "pickles/")



""" Pickle path of list of EXFOR master files made by parser.list_x4files.py"""
ENTRY_INDEX_PICKLE = "pickles/entry.pickle"



""" EXFOR master file path """
EXFOR_MASTER_REPO_PATH = os.path.join(DATA_DIR, "exfor_master/")
EXFOR_ALL_PATH = os.path.join(EXFOR_MASTER_REPO_PATH, "exforall/")
Expand Down
13 changes: 11 additions & 2 deletions parser/list_x4files.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,17 @@ def compare_hash(df):


good_example_entries = [
"M0450",
"D6274",
"D0193",
"20905",
"40016",
"22100",
"T0243",
"12240",
"41185",
"41102",
"30010",
"23134", ## REACTION (26-FE-56(N,INL)26-FE-56,PAR,SIG,G), E is specified as gamma energy
"41119", ## REACTION (40-ZR-90(N,INL)40-ZR-90,PAR,SIG) why error?
"30767", # elem/mass and mass are in the same subent
Expand All @@ -154,7 +165,6 @@ def compare_hash(df):
"D0635",
"C2540",
"14463",
"M0450",
"21332", ## EN-RSL, CN,SIG
"31714", ## EN-RSL
"A0493", # REACTION ((1-H-1(2-HE-6,EL)1-H-1,,DT)=(2-HE-6(P,EL)2-HE-6,,DT))
Expand All @@ -168,7 +178,6 @@ def compare_hash(df):
"14545",
"40396",
"C0380",
"M0450",
"O0529",
"10963", # asymmetirc reaction (((30-ZN-64(N,EL),,WID,,G)*((30-ZN-64(N,G),,WID)+(30-ZN-64(N,EL),,WID,,FCT)))/(30-ZN-64(N,TOT),,WID))
"14605", # Istitute two rows with free text
Expand Down
Binary file modified pickles/entry.pickle
Binary file not shown.
19 changes: 10 additions & 9 deletions sql/creation.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def drop_tables():
db.Column("main_facility_institute", db.String(255)),
db.Column("main_facility_type", db.String(255)),
db.Column("main_reference", db.String(255), index=True),
db.Column("year", db.String(255)),
db.Column("year", db.Integer(), index=True),
)


Expand All @@ -43,9 +43,6 @@ def drop_tables():
db.Column("projectile", db.String(255)),
db.Column("process", db.String(255), index=True),
db.Column("sf4", db.String(255), index=True),
db.Column("e_inc_min", db.Float(), index=True),
db.Column("e_inc_max", db.Float(), index=True),
db.Column("points", db.Integer()),
db.Column("sf5", db.String(255)),
db.Column("sf6", db.String(255), index=True),
db.Column("sf7", db.String(255)),
Expand All @@ -67,9 +64,11 @@ def drop_tables():
db.Column("sf4", db.String(255), index=True),
db.Column("residual", db.String(255), index=True),
db.Column("level_num", db.Integer(), index=True),
db.Column("e_out", db.Float(), index=True),
db.Column("e_inc_min", db.Float(), index=True),
db.Column("e_inc_max", db.Float(), index=True),
db.Column("points", db.Integer()),
db.Column("arbitrary_data", db.Boolean(), index=True),
db.Column("sf5", db.String(255)),
db.Column("sf6", db.String(255), index=True),
db.Column("sf7", db.String(255)),
Expand All @@ -86,15 +85,17 @@ def drop_tables():
metadata,
db.Column("id", db.Integer(), primary_key=True),
db.Column("entry_id", db.String(255), index=True),
db.Column("en_inc", db.String(255)),
db.Column("den_inc", db.String(255)),
db.Column("charge", db.String(255)),
db.Column("mass", db.String(255)),
db.Column("en_inc", db.Float()),
db.Column("den_inc", db.Float()),
db.Column("charge", db.Float()),
db.Column("mass", db.Float()),
db.Column("isomer", db.String(255)),
db.Column("residual", db.String(255), index=True),
db.Column("level_num", db.Integer(), index=True),
db.Column("data", db.Float()),
db.Column("ddata", db.Float()),
db.Column("arbitrary_data", db.Boolean(), index=True),
db.Column("arbitrary_ddata", db.Boolean()),
db.Column("e_out", db.Float()),
db.Column("de_out", db.Float()),
db.Column("angle", db.Float()),
Expand All @@ -107,7 +108,7 @@ def drop_tables():
metadata.create_all(engine) # Creates the table


def insert_df_to_sqlalchemy(df):
def insert_df_to_data(df):
df2 = df.astype(object).where(pd.notnull(df), None)
# print(df2.to_dict(orient='records'))
# list = []
Expand Down
17 changes: 9 additions & 8 deletions sql/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Exfor_Bib(Base):
main_facility_institute = db.Column(db.String)
main_facility_type = db.Column(db.String)
main_reference = db.Column(db.String)
year = db.Column(db.String)
year = db.Column(db.Integer)


class Exfor_Reactions(Base):
Expand All @@ -33,9 +33,6 @@ class Exfor_Reactions(Base):
projectile = db.Column(db.String)
process = db.Column(db.String)
sf4 = db.Column(db.String)
e_inc_min = db.Column(db.Float)
e_inc_max = db.Column(db.Float)
points = db.Column(db.Integer)
sf5 = db.Column(db.String)
sf6 = db.Column(db.String)
sf7 = db.Column(db.String)
Expand All @@ -52,12 +49,14 @@ class Exfor_Indexes(Base):
target = db.Column(db.String)
projectile = db.Column(db.String)
process = db.Column(db.String)
sf4 = db.Column(db.String) # Could be MASS, ELEM/MASS
residual = db.Column(db.String) # Real residual extended from product
sf4 = db.Column(db.String) # Could be null, 6-C-12, MASS, ELEM/MASS
residual = db.Column(db.String) # Real residual extended from product
level_num = db.Column(db.Integer) # Level number of residual product
e_out = db.Column(db.Float) # Outgoing energy or excitation energy (E-EXC, E-LVL etc)
e_inc_min = db.Column(db.Float)
e_inc_max = db.Column(db.Float)
points = db.Column(db.Integer)
# arbitrary_data = db.Column(db.Boolean)
sf5 = db.Column(db.String)
sf6 = db.Column(db.String)
sf7 = db.Column(db.String)
Expand All @@ -73,13 +72,15 @@ class Exfor_Data(Base):
entry_id = db.Column(db.String)
en_inc = db.Column(db.String)
den_inc = db.Column(db.String)
charge = db.Column(db.String)
mass = db.Column(db.String)
charge = db.Column(db.Float)
mass = db.Column(db.Float)
isomer = db.Column(db.String)
residual = db.Column(db.String)
level_num = db.Column(db.Integer)
data = db.Column(db.Float)
ddata = db.Column(db.Float)
# arbitrary_data = db.Column(db.Boolean)
# arbitrary_ddata = db.Column(db.Boolean)
e_out = db.Column(db.Float)
de_out = db.Column(db.Float)
angle = db.Column(db.Float)
Expand Down
37 changes: 17 additions & 20 deletions sql/queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,8 @@ def reaction_query(type, elem, mass, reaction, branch=None, rp_elem=None, rp_mas
elif type == "FY":
queries.append(Exfor_Indexes.sf5 == branch.upper())


else:
queries.append(Exfor_Indexes.sf5 == None)
else:
queries.append(Exfor_Indexes.sf5 == None)


if type == "Residual":
Expand All @@ -114,30 +113,30 @@ def reaction_query(type, elem, mass, reaction, branch=None, rp_elem=None, rp_mas

elif type != "Residual":
queries.append(Exfor_Indexes.process == reaction.upper())
queries.append(~Exfor_Indexes.sf4.endswith("-G"))
queries.append(~Exfor_Indexes.sf4.endswith("-M"))

if not "TOT" in reaction:
queries.append(~Exfor_Indexes.sf4.endswith("-G"))
queries.append(~Exfor_Indexes.sf4.endswith("-M"))


queries.append(Exfor_Indexes.sf6 == type.upper())

reac = session().query(Exfor_Indexes).filter(*queries).all()

entids = {}
entries = []
entries = {}

if reac:
for ent in reac:
entids[ent.entry_id] = {
entries[ent.entry_id] = {
"e_inc_min": ent.e_inc_min,
"e_inc_max": ent.e_inc_max,
"points": ent.points,
"sf5": ent.sf5,
"sf8": ent.sf8,
"x4_code": ent.x4_code,
}
entries += [ent.entry]

return entids, entries
return entries



Expand All @@ -150,7 +149,7 @@ def get_entry_bib(entries):
for b in bib:
legend[b.entry] = {
"author": b.first_author,
"year": b.year if b.year else "1900",
"year": b.year if b.year else 1900, ## Comments SO: should be int in SQL
}

return OrderedDict(
Expand All @@ -159,13 +158,13 @@ def get_entry_bib(entries):



def data_query(entids, branch=None):
def data_query(entids):

connection = engines["exfor"].connect()

data = session().query(Exfor_Data).filter(
Exfor_Data.entry_id.in_(tuple(entids)),
Exfor_Data.level_num == branch)
Exfor_Data.entry_id.in_(tuple(entids))
)

df = pd.read_sql(
sql=data.statement,
Expand All @@ -190,7 +189,7 @@ def lib_query(type, elem, mass, reaction, mt, rp_elem, rp_mass):
if type == "SIG":
type = "xs"
queries.append(Endf_Reactions.process == reaction.split(",")[1].upper())
queries.append(Endf_Reactions.mt == mt if mt is not None else Endf_Reactions.mt is not None)
queries.append(Endf_Reactions.mt == mt) # if mt is not None else Endf_Reactions.mt is not None)

elif type=="Residual":
if rp_mass.endswith(("m", "M", "g", "G")):
Expand Down Expand Up @@ -298,21 +297,19 @@ def reaction_query_fy(type, elem, mass, reaction, branch, mesurement_opt_fy, ene
(Exfor_Indexes.sf4 == "MASS" if mesurement_opt_fy=="A" else Exfor_Indexes.sf4 == "ELEM" if mesurement_opt_fy=="Z" else Exfor_Indexes.sf4.isnot(None) ),
).all()

entids = {}
entries = []
entries = {}

for ent in reac:
entids[ent.entry_id] = {
entries[ent.entry_id] = {
"e_inc_min": ent.e_inc_min,
"e_inc_max": ent.e_inc_max,
"points": ent.points,
"sf8": ent.sf8,
"residual": ent.residual,
"x4_code": ent.x4_code,
}
entries += [ent.entry]

return entids, entries
return entries



Expand Down
Loading

0 comments on commit 7ac6c3c

Please sign in to comment.