-
Notifications
You must be signed in to change notification settings - Fork 1
Database entry format
Each scheme in the database must be named x-###.json, where x is the element name (all lowercase) and ### a three-digit, incrementing number. All database entries are stored in the db folder in the main repo.
The main part of the json file consists of the following keys and entry types. Entry types not discussed in this list are discussed in individual sections below.
-
"notes":str, General notes about the ionization scheme (optional). -
"references":list, see below. -
"rims_scheme":dict, see below. -
"saturation_curves":list, see below. -
"submitted_by":str, name of the person that submitted the scheme (optional).
References are stored as a list of dictionaries in the "references" key of the main entry. Dictionary must contain the following entries:
-
"id": The ID of the entry, either a DOI number or a URL to a reference without a DOI. -
"author": Name of the author(s), in the same fashion as to be displayed on the website. -
"year": Integer of the publication year.
Important: There are two possibilities to enter data here:
- DOI only: In this case the
"id"field holds the DOI number only, the"author"field must be empty and the"year"must contain0. - Author year: In this case, enter a valid URL in the ID field and add an author name and a year.
The "rims_scheme" key contains a dictionary with two entries: "scheme" (mandatory) and "settings" (optional, often left out). The "rims_scheme" key contains the exact same information as is saved in a config file when using the RIMSSchemeDrawer program.
The scheme dictionary is mandatory. In the following is a list of keys that must be present. Note that we use # to indicate a number between 0 and 6 for multiple steps, etc. Here, only the steps that are present must contain a entry, i.e., for a one-color scheme, only entries for # = 0 would have to be present in the json file.
-
"element":str, Element symbol, e.g., Ti. Must be capitalized in the first letter. -
"gs_level":str, Wavenumber of the ground state in cm-1. Must be able to be parsed into a float. -
"gs_term":str, Term symbol for the ground state. -
"ip_term":str, Term symbol for the ionization potential. -
"lasers":str, Lasers used. Must be one of the following:["Ti:Sa", "Dye", "Ti:Sa and Dye"] -
"step_forbidden#":bool, Is this step forbidden? -
"step_level#":str, Wavenumber of the step in cm-1 or wavelength in nm (if not a low-lying step). Must be able to be parsed into a float. -
"step_lowlying#":bool, Is this a low-lying state? Iftrue, the"step_level#"must be in cm-1. -
"step_term#":str, Term symbol of the level (if low-lying) or the level that the step goes to. -
"trans_strength#":str, Transition strength. Either "" if not available or must be able to be parsed into float. -
"unit":str, Unit of the steps. Must be one of the following:["nm", "cm<sup>-1</sup>"]
The settings dictionary is optional and often left away. This allows RIMSSchemeDrawer to set useful default values that are optimized for the website. This way, all schemes should look more-or-less the same. For reference, the following gives a list of available keys.
-
"plot_title":str, Title of the plot. Default"". -
"fig_width":float, Width of the figure in inches. Default5.0. -
"fig_height":float, Height of the figure in inches. Default8.0. -
"fs_title":int, Font-size of the title. Default14. -
"fs_axes":int, Font-size of the axis tick labels. Default11. -
"fs_axes_labels":int, Font-size of the axis labels. Default11. -
"fs_labels":int, Font-size of the labels in the plot. Default11. -
"headspace":float, How much space (in cm-1) should there be after the last label in the plot. Default2500.0. -
"arrow_width":float, Width of the arrow. Default0.2. -
"arrow_head_width":float, Width of the arrow head. Default0.6. -
"prec_wavelength":int, Number of significant digits for wavelength displayed in plot. Default3. -
"prec_level":int, Number of significant digits for level displayed in plot. Default0. -
"line_breaks":bool, Should there be a line break between the level and the term symbol? Defaulttrue. -
"ip_label_pos":str, Where should the IP be labeled, above or below itself? Must be one of the following:["Bottom", "Top"]. Default:"Bottom". -
"show_forbidden_transitions":str, How should the forbidden transitions be displayed? Crossed outx-outor not at all (any other value)? Default"x-out". -
"show_transition_strength":bool, Should the transition strength be displayed? Defaulttrue. -
"show_cm-1_axis":bool, Show the cm-1 vertical axis? Defaulttrue. -
"show_eV_axis":bool, Show the eV vertical axis? Defaulttrue. -
"plot_style":str, Plot style to be used. Must be one of the following:["light", "dark", "light transparent", "dark transparent"], Default"light".
Saturation curves are optional, if not given, the key "saturation_curves" should contain an empty list. Each entry in the list is a given saturation curve and they are displayed on the website in the order they appear in the list. While saturation curves are optional, if present, they must at least contain a title, x-, and y-data. The following keys are available:
-
"data":dict, A dictionary of the data (of which only"x"and"y"are mandatory). All data lists must have the same length:-
"x":list[float], A list of floats for the x data. -
"y":list[float], A list of floats for the y data. -
"x_err":list[float], A list of floats with uncertainties for the x data. -
"y_err":list[float], A list of floats with uncertainties for the y data.
-
-
"fit":bool, Should the line be fitted? Defaulttrue. -
"notes":str, Any notes to be added to the saturation curve. -
"title":str, Title of the saturation curve. Should be unique (for user, not for program!). -
"unit":str, What unit to use for the x data? Should be something that can be parsed bypint