diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml index c00d809..efd69ec 100644 --- a/.github/workflows/jekyll-gh-pages.yml +++ b/.github/workflows/jekyll-gh-pages.yml @@ -1,35 +1,29 @@ -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll with GitHub Pages dependencies preinstalled +name: Deploy Github-Pages on: - # Runs on pushes targeting the default branch push: - branches: ["master"] + branches: + - gh-pages - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false jobs: - # Build job build: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v2 - name: Setup Pages - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v2 - name: Build with Jekyll uses: actions/jekyll-build-pages@v1 with: @@ -38,7 +32,6 @@ jobs: - name: Upload artifact uses: actions/upload-pages-artifact@v1 - # Deployment job deploy: environment: name: github-pages diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..132a59e --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +julian.hochhaus@tu-dortmund.de. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CrossSections/cross_sections.csv b/Databases/CrossSections/cross_sections.csv similarity index 100% rename from CrossSections/cross_sections.csv rename to Databases/CrossSections/cross_sections.csv diff --git a/Databases/elements.csv b/Databases/elements.csv new file mode 100644 index 0000000..ee89de0 --- /dev/null +++ b/Databases/elements.csv @@ -0,0 +1,93 @@ +symbol,period,group_id,series_id,alka,aes,atomic_number,cpk_color,jmol_color,series_name,series_color +H,1,1.0,1,"{'trans': ""['1s']"", 'be': '[13.6]', 'rsf': '[0.0002]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",1,#ffffff,#ffffff,Nonmetals,#baa2a6 +He,1,18.0,2,"{'trans': ""['1s']"", 'be': '[24.6]', 'rsf': '[0.0082]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",2,#ffc0cb,#d9ffff,Noble gases,#bbbb88 +Li,2,1.0,3,"{'trans': ""['1s']"", 'be': '[54.7]', 'rsf': '[0.0568]'}","{'trans': ""['KLL']"", 'ke': '[43]', 'rsf': '[0.977]'}",3,#b22222,#cc80ff,Alkali metals,#a6cee3 +Be,2,2.0,4,"{'trans': ""['1s']"", 'be': '[111.5]', 'rsf': '[0.1947]'}","{'trans': ""['KLL']"", 'ke': '[104]', 'rsf': '[0.456]'}",4,#ff1493,#c2ff00,Alkaline earth metals,#1f78b4 +B,2,13.0,5,"{'trans': ""['1s']"", 'be': '[188]', 'rsf': '[0.486]'}","{'trans': ""['KLL']"", 'ke': '[179]', 'rsf': '[0.289]'}",5,#00ff00,#ffb5b5,Metalloids,#33a02c +C,2,14.0,1,"{'trans': ""['1s']"", 'be': '[284.2]', 'rsf': '[1]'}","{'trans': ""['KLL']"", 'ke': '[272]', 'rsf': '[0.209]'}",6,#c8c8c8,#909090,Nonmetals,#baa2a6 +N,2,15.0,1,"{'trans': ""['1s', '2s']"", 'be': '[409.9, 37.3]', 'rsf': '[1.8, 0.0867]'}","{'trans': ""['KLL']"", 'ke': '[379]', 'rsf': '[0.159]'}",7,#8f8fff,#3050f8,Nonmetals,#baa2a6 +O,2,16.0,1,"{'trans': ""['1s', '2s']"", 'be': '[543.1, 41.6]', 'rsf': '[2.93, 0.1405]'}","{'trans': ""['KLL']"", 'ke': '[503]', 'rsf': '[0.129]'}",8,#f00000,#ff0d0d,Nonmetals,#baa2a6 +F,2,17.0,6,"{'trans': ""['1s']"", 'be': '[696.7]', 'rsf': '[4.43]'}","{'trans': ""['KLL']"", 'ke': '[647]', 'rsf': '[0.105]'}",9,#daa520,#90e050,Halogens,#fdbf6f +Ne,2,18.0,2,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[870.2, 48.5, 21.7, 21.6]', 'rsf': '[6.3, 0.296, 0.0347, 0.0683]'}","{'trans': ""['KLL']"", 'ke': '[805]', 'rsf': '[0.0846]'}",10,#ff1493,#b3e3f5,Noble gases,#bbbb88 +Na,3,1.0,3,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[1070.8, 63.5, 30.65, 30.81]', 'rsf': '[8.52, 0.422, 0.0654, 0.1287]'}","{'trans': ""['KLL']"", 'ke': '[990]', 'rsf': '[0.0714]'}",11,#0000ff,#ab5cf2,Alkali metals,#a6cee3 +Mg,3,2.0,4,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[1303, 88.7, 49.78, 49.5]', 'rsf': '[11.18, 0.575, 0.1125, 0.221]'}","{'trans': ""['KLL', 'LMM']"", 'ke': '[1186, 45]', 'rsf': '[0.0593, 3.43]'}",12,#228b22,#8aff00,Alkaline earth metals,#1f78b4 +Al,3,13.0,7,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[1559.6, 117.8, 72.95, 72.55]', 'rsf': '[0.0001, 0.753, 0.1811, 0.356]'}","{'trans': ""['KLL', 'LMM']"", 'ke': '[1396, 68]', 'rsf': '[0.0497, 2.44]'}",13,#808090,#bfa6a6,Poor metals,#b2df8a +Si,3,14.0,5,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[1839, 149.7, 99.82, 99.42]', 'rsf': '[0.0001, 0.955, 0.276, 0.541]'}","{'trans': ""['KLL', 'LMM']"", 'ke': '[1619, 92]', 'rsf': '[0.0417, 1.78]'}",14,#daa520,#f0c8a0,Metalloids,#33a02c +P,3,15.0,1,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[2145.5, 189, 136, 135]', 'rsf': '[0.0001, 1.18, 0.403, 0.789]'}","{'trans': ""['KLL', 'LMM']"", 'ke': '[1859, 120]', 'rsf': '[0.035, 1.36]'}",15,#ffa500,#ff8000,Nonmetals,#baa2a6 +S,3,16.0,1,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[2472, 230.9, 163.6, 162.5]', 'rsf': '[0.0001, 1.43, 0.567, 1.11]'}","{'trans': ""['KLL', 'LMM']"", 'ke': '[2117, 152]', 'rsf': '[0.0295, 1.14]'}",16,#ffc832,#ffff30,Nonmetals,#baa2a6 +Cl,3,17.0,6,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2']"", 'be': '[2822.4, 270, 202, 200]', 'rsf': '[0.0001, 1.69, 0.775, 1.51]'}","{'trans': ""['KLL', 'LMM']"", 'ke': '[2378, 181]', 'rsf': '[0.0001, 0.984]'}",17,#00ff00,#1ff01f,Halogens,#fdbf6f +Ar,3,18.0,2,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[3205.9, 326.3, 250.6, 248.4, 29.3, 15.9, 15.7]', 'rsf': '[0.0001, 1.97, 1.03, 2.01, 0.227, 0.0821, 0.1597]'}","{'trans': ""['LMM']"", 'ke': '[215]', 'rsf': '[0.827]'}",18,#ff1493,#80d1e3,Noble gases,#bbbb88 +K,4,1.0,3,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[3608.4, 378.6, 297.3, 294.6, 34.8, 18.3, 18.3]', 'rsf': '[0.0001, 2.27, 1.35, 2.62, 0.286, 0.1229, 0.239]'}","{'trans': ""['LMM']"", 'ke': '[252]', 'rsf': '[0.723]'}",19,#ff1493,#8f40d4,Alkali metals,#a6cee3 +Ca,4,2.0,4,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[4038.5, 438.4, 349.7, 346.2, 44.3, 25.4, 25.4]', 'rsf': '[0.0001, 2.59, 1.72, 3.35, 0.351, 0.172, 0.335]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[291, 20]', 'rsf': '[0.633, 0.0001]'}",20,#808090,#3dff00,Alkaline earth metals,#1f78b4 +Sc,4,3.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[4492, 498, 403.6, 398.7, 51.1, 28.3, 28.3]', 'rsf': '[0.0001, 2.91, 2.17, 4.21, 0.411, 0.221, 0.429]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[340, 24]', 'rsf': '[0.563, 0.0001]'}",21,#ff1493,#e6e6e6,Transition metals,#e08e79 +Ti,4,4.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[4966, 560.9, 460.2, 453.8, 58.7, 32.6, 32.6]', 'rsf': '[0.0001, 3.24, 2.69, 5.22, 0.473, 0.276, 0.537]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[418, 27]', 'rsf': '[0.514, 0.0001]'}",22,#808090,#bfc2c7,Transition metals,#e08e79 +V,4,5.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[5465, 626.7, 519.8, 512.1, 66.3, 37.2, 37.2]', 'rsf': '[0.0001, 3.57, 3.29, 6.37, 0.538, 0.339, 0.657]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[473, 31]', 'rsf': '[0.471, 5.03]'}",23,#ff1493,#a6a6ab,Transition metals,#e08e79 +Cr,4,6.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[5989, 696, 583.8, 574.1, 74.1, 42.2, 42.2]', 'rsf': '[0.0001, 3.91, 3.98, 7.69, 0.596, 0.4, 0.773]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[529, 36]', 'rsf': '[0.432, 4.6]'}",24,#808090,#8a99c7,Transition metals,#e08e79 +Mn,4,7.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[6539, 769.1, 649.9, 638.7, 82.3, 47.2, 47.2]', 'rsf': '[0.0001, 4.23, 4.74, 9.17, 0.674, 0.485, 0.938]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[589, 40]', 'rsf': '[0.397, 3.96]'}",25,#808090,#9c7ac7,Transition metals,#e08e79 +Fe,4,8.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[7112, 844.6, 719.9, 706.8, 91.3, 52.7, 52.7]', 'rsf': '[0.0001, 4.57, 5.6, 10.82, 0.745, 0.569, 1.1]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[703, 47]', 'rsf': '[0.367, 3.5]'}",26,#ffa500,#e06633,Transition metals,#e08e79 +Co,4,9.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[7709, 925.1, 793.2, 778.1, 101, 58.9, 59.9]', 'rsf': '[0.0001, 4.88, 6.54, 12.62, 0.818, 0.66, 1.27]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[775, 53]', 'rsf': '[0.341, 3.12]'}",27,#ff1493,#f090a0,Transition metals,#e08e79 +Ni,4,10.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[8333, 1008.6, 870, 852.7, 110.8, 68, 66.2]', 'rsf': '[0.0001, 5.16, 7.57, 14.61, 0.892, 0.757, 1.46]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[848, 61]', 'rsf': '[0.316, 2.65]'}",28,#a52a2a,#50d050,Transition metals,#e08e79 +Cu,4,11.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']"", 'be': '[8979, 1096.7, 952.3, 932.7, 122.5, 77.3, 75.1]', 'rsf': '[0.0001, 5.46, 8.66, 16.73, 0.957, 0.848, 1.63]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[920, 60]', 'rsf': '[0.294, 2.41]'}",29,#a52a2a,#c88033,Transition metals,#e08e79 +Zn,4,12.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']"", 'be': '[9659, 1196.2, 1044.9, 1021.8, 139.8, 91.4, 88.6, 10.2, 10.1]', 'rsf': '[0.0001, 5.76, 9.8, 18.92, 1.04, 0.968, 1.86, 0.33, 0.48]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[994, 59]', 'rsf': '[0.271, 1.98]'}",30,#a52a2a,#7d80b0,Transition metals,#e08e79 +Ga,4,13.0,7,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']"", 'be': '[10367, 1299, 1143.2, 1116.4, 159.5, 103.5, 100, 18.7, 18.7]', 'rsf': '[0.0001, 6.07, 11.09, 21.4, 1.13, 1.1, 2.11, 0.442, 0.643]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1070, 55]', 'rsf': '[0.25, 1.57]'}",31,#ff1493,#c28f8f,Poor metals,#b2df8a +Ge,4,14.0,5,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']"", 'be': '[11103, 1414.6, 1248.1, 1217, 180.1, 124.9, 120.8, 29.8, 29.2]', 'rsf': '[0.0001, 6.31, 12.52, 24.15, 1.23, 1.24, 2.39, 0.578, 0.842]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1147, 23]', 'rsf': '[0.229, 1.27]'}",32,#ff1493,#668f8f,Metalloids,#33a02c +As,4,15.0,5,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']"", 'be': '[11867, 1527, 1359.1, 1323.6, 204.7, 146.2, 141.2, 41.7, 41.7]', 'rsf': '[0.0001, 0.0001, 14.07, 27.19, 1.32, 1.39, 2.68, 0.741, 1.08]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1228, 31]', 'rsf': '[0.211, 1.06]'}",33,#ff1493,#bd80e3,Metalloids,#33a02c +Se,4,16.0,1,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']"", 'be': '[12658, 1652, 1474.3, 1433.9, 229.6, 166.5, 160.7, 55.5, 54.6]', 'rsf': '[0.0001, 0.0001, 13.66, 25.9, 1.43, 1.55, 2.98, 0.934, 1.36]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1315, 43]', 'rsf': '[0.194, 5.44]'}",34,#ff1493,#ffa100,Nonmetals,#baa2a6 +Br,4,17.0,6,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']"", 'be': '[13474, 1782, 1596, 1550, 257, 189, 182, 70, 69]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 1.53, 1.72, 3.31, 1.16, 1.68]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1396, 55]', 'rsf': '[0.179, 4.37]'}",35,#a52a2a,#a62929,Halogens,#fdbf6f +Kr,4,18.0,2,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[14326, 1921, 1730.9, 1678.4, 292.8, 222.2, 214.4, 95, 93.8, 27.5, 14.1, 14.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 1.64, 1.89, 3.65, 1.42, 2.06, 0.213, 0.1643, 0.312]'}","{'trans': ""['LMM']"", 'ke': '[1474]', 'rsf': '[0.164]'}",36,#ff1493,#5cb8d1,Noble gases,#bbbb88 +Rb,5,1.0,3,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[15200, 2065, 1864, 1804, 326.7, 248.7, 239.1, 113, 112, 30.5, 16.3, 15.3]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 1.75, 2.07, 4, 1.72, 2.49, 0.251, 0.214, 0.411]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1565, 76]', 'rsf': '[0.152, 2.63]'}",37,#ff1493,#702eb0,Alkali metals,#a6cee3 +Sr,5,2.0,4,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[16105, 2216, 2007, 1940, 358.7, 280.3, 270, 136, 134.2, 38.9, 21.3, 20.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 1.86, 2.25, 4.37, 2.06, 2.99, 0.291, 0.265, 0.51]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1649, 110]', 'rsf': '[0.14, 2.17]'}",38,#ff1493,#00ff00,Alkaline earth metals,#1f78b4 +Y,5,3.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[17038, 2373, 2156, 2080, 392, 310.6, 298.8, 157.7, 155.8, 43.8, 24.4, 23.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 1.98, 2.44, 4.75, 2.44, 3.54, 0.329, 0.311, 0.599]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1746, 127]', 'rsf': '[0.129, 1.86]'}",39,#ff1493,#94ffff,Transition metals,#e08e79 +Zr,5,4.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[17998, 2532, 2307, 2223, 430.3, 343.5, 329.8, 181.1, 178.8, 50.6, 28.5, 27.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.1, 2.64, 5.14, 2.87, 4.17, 0.367, 0.357, 0.689]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1845, 147]', 'rsf': '[0.119, 1.66]'}",40,#ff1493,#94e0e0,Transition metals,#e08e79 +Nb,5,5.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[18986, 2698, 2465, 2371, 466.6, 376.1, 360.6, 205, 202.3, 56.4, 32.6, 30.8]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.22, 2.84, 5.53, 3.35, 4.86, 0.402, 0.398, 0.767]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[1944, 167]', 'rsf': '[0.11, 1.5]'}",41,#ff1493,#73c2c9,Transition metals,#e08e79 +Mo,5,6.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[20000, 2866, 2625, 2520, 506.3, 411.6, 394, 231.1, 227.9, 63.2, 37.6, 35.5]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.34, 3.04, 5.94, 3.88, 5.62, 0.44, 0.445, 0.86]'}","{'trans': ""['LMM', 'MNN']"", 'ke': '[2044, 186]', 'rsf': '[0.101, 1.39]'}",42,#ff1493,#54b5b5,Transition metals,#e08e79 +Tc,5,7.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[21044, 3043, 2793, 2677, 544, 447.6, 417.7, 257.6, 253.9, 69.5, 42.3, 39.9]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.45, 3.23, 6.36, 4.46, 6.47, 0.479, 0.494, 0.955]'}","{'trans': ""['MNN']"", 'ke': '[249]', 'rsf': '[1.29]'}",43,#ff1493,#3b9e9e,Transition metals,#e08e79 +Ru,5,8.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[22117, 3224, 2967, 2838, 586.1, 483.5, 461.4, 284.2, 280, 75, 46.3, 43.2]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.57, 3.44, 6.78, 5.1, 7.39, 0.519, 0.544, 1.05]'}","{'trans': ""['MNN']"", 'ke': '[273]', 'rsf': '[1.2]'}",44,#ff1493,#248f8f,Transition metals,#e08e79 +Rh,5,9.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[23220, 3412, 3146, 3004, 628.1, 521.3, 496.5, 311.9, 307.2, 81.4, 50.5, 47.3]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.7, 3.64, 7.21, 5.8, 8.39, 0.56, 0.595, 1.15]'}","{'trans': ""['MNN']"", 'ke': '[302]', 'rsf': '[1.13]'}",45,#ff1493,#0a7d8c,Transition metals,#e08e79 +Pd,5,10.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[24350, 3604, 3330, 3173, 671.6, 559.9, 532.3, 340.5, 335.2, 87.1, 55.7, 50.9]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.81, 3.83, 7.63, 6.56, 9.48, 0.598, 0.641, 1.24]'}","{'trans': ""['MNN']"", 'ke': '[330]', 'rsf': '[1.07]'}",46,#ff1493,#006985,Transition metals,#e08e79 +Ag,5,11.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']"", 'be': '[25514, 3806, 3524, 3351, 719, 603.8, 573, 374, 368.3, 97, 63.7, 58.3]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 2.93, 4.03, 8.06, 7.38, 10.66, 0.644, 0.7, 1.36]'}","{'trans': ""['MNN']"", 'ke': '[351]', 'rsf': '[1]'}",47,#808090,#c0c0c0,Transition metals,#e08e79 +Cd,5,12.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']"", 'be': '[26711, 4018, 3727, 3538, 772, 652.6, 618.4, 411.9, 405.2, 109.8, 63.9, 63.9, 11.7, 10.7]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.04, 4.22, 8.5, 8.27, 11.95, 0.692, 0.762, 1.49, 0.778, 1.11]'}","{'trans': ""['MNN']"", 'ke': '[376]', 'rsf': '[0.931]'}",48,#ff1493,#ffd98f,Transition metals,#e08e79 +In,5,13.0,7,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']"", 'be': '[27940, 4238, 3938, 3730, 827.2, 703.2, 665.3, 451.4, 443.9, 122.9, 73.5, 73.5, 17.7, 16.9]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.16, 4.4, 8.93, 9.22, 13.32, 0.742, 0.828, 1.62, 0.935, 1.34]'}","{'trans': ""['MNN']"", 'ke': '[404]', 'rsf': '[0.867]'}",49,#ff1493,#a67573,Poor metals,#b2df8a +Sn,5,14.0,7,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']"", 'be': '[29200, 4465, 4156, 3929, 884.7, 756.5, 714.6, 493.2, 484.9, 137.1, 83.6, 83.6, 24.9, 23.9]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.26, 4.58, 9.35, 10.25, 14.8, 0.794, 0.897, 1.77, 1.11, 1.59]'}","{'trans': ""['MNN']"", 'ke': '[430]', 'rsf': '[0.809]'}",50,#ff1493,#668080,Poor metals,#b2df8a +Sb,5,15.0,5,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']"", 'be': '[30491, 4698, 4380, 4132, 946, 812.7, 766.4, 537.5, 528.2, 153.2, 95.6, 95.6, 33.3, 32.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.36, 4.76, 9.77, 11.35, 16.39, 0.848, 0.968, 1.91, 1.29, 1.85]'}","{'trans': ""['MNN']"", 'ke': '[454]', 'rsf': '[0.759]'}",51,#ff1493,#9e63b5,Metalloids,#33a02c +Te,5,16.0,5,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']"", 'be': '[31814, 4939, 4612, 4341, 1006, 870.8, 820, 583.4, 573, 169.4, 103.3, 103.3, 41.9, 40.4]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.46, 4.92, 10.21, 12.52, 18.06, 0.903, 1.04, 2.07, 1.49, 2.14]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[483, 31]', 'rsf': '[0.713, 0.0001]'}",52,#ff1493,#d47a00,Metalloids,#33a02c +I,5,17.0,6,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']"", 'be': '[33169, 5188, 4852, 4557, 1072, 931, 875, 630.8, 619.3, 186, 123, 123, 50.6, 48.9]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.53, 5.06, 10.62, 13.77, 19.87, 0.959, 1.11, 2.23, 1.69, 2.44]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[511, 37]', 'rsf': '[0.67, 0.0001]'}",53,#a020f0,#940094,Halogens,#fdbf6f +Xe,5,18.0,2,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']"", 'be': '[34561, 5453, 5107, 4786, 1148.7, 1002.1, 940.6, 689, 676.4, 213.2, 146.7, 145.5, 69.5, 67.5, 23.3, 13.4, 12.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.62, 5.2, 10.99, 15.1, 21.79, 1.02, 1.19, 2.39, 1.92, 2.76, 0.1596, 0.1361, 0.26]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[532, 41]', 'rsf': '[0.626, 0.0001]'}",54,#ff1493,#429eb0,Noble gases,#bbbb88 +Cs,6,1.0,3,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']"", 'be': '[35985, 5714, 5359, 5012, 1211, 1071, 1003, 740.5, 726.6, 232.3, 172.4, 161.3, 79.8, 77.5, 22.7, 14.2, 12.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.73, 5.29, 11.38, 16.46, 23.76, 1.08, 1.27, 2.56, 2.15, 3.1, 0.1843, 0.1697, 0.332]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[563, 47]', 'rsf': '[0.589, 0.0001]'}",55,#ff1493,#57178f,Alkali metals,#a6cee3 +Ba,6,2.0,4,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']"", 'be': '[37441, 5989, 5624, 5247, 1293, 1137, 1063, 795.7, 780.5, 253.5, 192, 178.6, 92.6, 89.9, 30.3, 17, 14.8]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.84, 5.42, 11.71, 17.92, 25.84, 1.13, 1.34, 2.73, 2.4, 3.46, 0.21, 0.202, 0.4]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[584, 57]', 'rsf': '[0.554, 3.41]'}",56,#ffa500,#00c900,Alkaline earth metals,#1f78b4 +La,6,3.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']"", 'be': '[38925, 6266, 5891, 5483, 1362, 1209, 1128, 853, 836, 274.7, 205.8, 196, 105.3, 102.5, 34.3, 19.3, 16.8]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.89, 5.55, 12.11, 19.5, 28.12, 1.19, 1.42, 2.91, 2.67, 3.85, 0.234, 0.23, 0.458]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[625, 78]', 'rsf': '[0.527, 3.12]'}",57,#ff1493,#70d4ff,Lanthanides,#cab2d6 +Ce,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[40443, 6549, 6164, 5723, 1436, 1274, 1187, 902.4, 883.8, 291, 223.2, 206.5, 109, 0.1, 0.1, 37.8, 19.8, 17]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.93, 5.66, 12.53, 21.12, 30.5, 1.24, 1.47, 3.03, 2.84, 0.0609, 0.078, 0.23, 0.221, 0.439]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[661, 82]', 'rsf': '[0.503, 2.79]'}",58,#ff1493,#ffffc7,Lanthanides,#cab2d6 +Pr,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[41991, 6835, 6440, 5964, 1511, 1337, 1242, 948.3, 928.8, 304.5, 236.3, 217.6, 115.1, 115.1, 2, 2, 37.4, 22.3, 22.3]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 3.98, 5.75, 12.94, 22.72, 32.85, 1.28, 1.53, 3.17, 3.07, 4.41, 0.1115, 0.143, 0.238, 0.229, 0.456]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[699, 87]', 'rsf': '[0.485, 2.72]'}",59,#ff1493,#d9ffc7,Lanthanides,#cab2d6 +Nd,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[43569, 7126, 6722, 6208, 1575, 1403, 1297, 1003.3, 980.4, 319.2, 243.3, 224.6, 120.5, 120.5, 1.5, 1.5, 37.5, 21.1, 21.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 5.75, 13.35, 24.27, 35.29, 1.33, 1.59, 3.31, 3.29, 4.74, 0.1788, 0.228, 0.247, 0.236, 0.472]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[730, 91]', 'rsf': '[0.469, 2.65]'}",60,#ff1493,#c7ffc7,Lanthanides,#cab2d6 +Pm,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4p1/2', '4p3/2', '4d3/2', '4d5/2']"", 'be': '[45184, 7428, 7013, 6459, 1471, 1357, 1052, 1027, 242, 242, 120, 120]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 5.72, 13.66, 26.08, 37.65, 1.64, 3.45, 3.52, 5.07]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",61,#ff1493,#a3ffc7,Lanthanides,#cab2d6 +Sm,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[46834, 7737, 7312, 6716, 1723, 1541, 1420, 1110.9, 1083.4, 347.2, 265.6, 247.4, 129, 129, 5.2, 5.2, 37.4, 21.3, 21.3]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 13.84, 27.96, 40.37, 1.42, 1.7, 3.59, 3.76, 5.4, 0.374, 0.477, 0.261, 0.249, 0.501]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[814, 100]', 'rsf': '[0.435, 2.43]'}",62,#ff1493,#8fffc7,Lanthanides,#cab2d6 +Eu,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']"", 'be': '[48519, 8052, 7617, 6977, 1800, 1614, 1481, 1158.6, 1127.5, 360, 284, 257, 133, 127.7, 32, 22, 22]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 14.3, 29.91, 43.24, 1.46, 1.75, 3.72, 3.99, 5.74, 0.268, 0.255, 0.515]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[858, 109]', 'rsf': '[0.42, 2.37]'}",63,#ff1493,#61ffc7,Lanthanides,#cab2d6 +Gd,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[50239, 8376, 7930, 7243, 1881, 1688, 1544, 1221.9, 1189.6, 378.6, 286, 271, 142.6, 8.6, 8.6, 36, 28, 21]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 31.98, 46.23, 1.51, 1.8, 3.88, 6.14, 0.63, 0.804, 0.288, 0.279, 0.568]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[895, 138]', 'rsf': '[0.405, 2.26]'}",64,#ff1493,#45ffc7,Lanthanides,#cab2d6 +Tb,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[51996, 8708, 8252, 7514, 1968, 1768, 1611, 1276.9, 1241.1, 396, 322.4, 284.1, 150.5, 150.5, 7.7, 2.4, 45.6, 28.7, 22.6]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 34.2, 49.42, 1.54, 1.84, 3.99, 4.46, 6.41, 0.867, 1.1, 0.281, 0.265, 0.539]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1073, 146]', 'rsf': '[0.39, 2.15]'}",65,#ff1493,#30ffc7,Lanthanides,#cab2d6 +Dy,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[53789, 9046, 8581, 7790, 2047, 1842, 1676, 1333, 1292.6, 414.2, 333.5, 293.2, 153.6, 153.6, 8, 4.3, 49.9, 26.3, 26.3]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 36.65, 52.83, 1.58, 1.88, 4.12, 4.69, 6.74, 1.1, 1.39, 0.287, 0.27, 0.551]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1126, 151]', 'rsf': '[0.377, 2.07]'}",66,#ff1493,#1fffc7,Lanthanides,#cab2d6 +Ho,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[55618, 9394, 8918, 8071, 2128, 1923, 1741, 1392, 1351, 432.4, 343.5, 308.2, 160, 160, 8.6, 5.2, 49.3, 30.8, 24.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 39.19, 56.66, 1.61, 1.91, 4.24, 4.92, 7.08, 1.37, 1.73, 0.293, 0.274, 0.562]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1175, 157]', 'rsf': '[0.365, 1.98]'}",67,#ff1493,#00ff9c,Lanthanides,#cab2d6 +Er,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[57486, 9751, 9264, 8358, 2207, 2006, 1812, 1453, 1409, 449.8, 366.2, 320.2, 167.6, 167.6, 4.7, 50.6, 31.4, 24.7]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 36.7, 60.42, 1.64, 1.95, 4.37, 5.15, 7.41, 2.13, 0.298, 0.277, 0.572]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1393, 163]', 'rsf': '[0.352, 1.87]'}",68,#ff1493,#00e675,Lanthanides,#cab2d6 +Tm,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[59390, 10116, 9617, 8648, 2307, 2090, 1885, 1515, 1468, 470.9, 385.9, 332.6, 175.5, 175.5, 4.6, 54.7, 31.8, 25]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 41.01, 1.67, 1.98, 4.48, 5.38, 7.74, 2.59, 0.303, 0.281, 0.583]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1449, 166]', 'rsf': '[0.34, 1.78]'}",69,#ff1493,#00d452,Lanthanides,#cab2d6 +Yb,6,100.0,9,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[61332, 10486, 9978, 8944, 2398, 2173, 1950, 1576, 1528, 480.5, 388.7, 339.7, 191.2, 182.4, 2.5, 1.3, 52, 30.3, 24.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.7, 2, 4.6, 5.61, 8.07, 2.47, 3.11, 0.308, 0.284, 0.592]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1514, 170]', 'rsf': '[0.329, 1.69]'}",70,#ff1493,#00bf38,Lanthanides,#cab2d6 +Lu,6,100.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[63314, 10870, 10349, 9244, 2491, 2264, 2024, 1639, 1589, 506.8, 412.4, 359.2, 206.1, 196.3, 8.9, 7.5, 57.3, 33.6, 26.7]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.73, 2.03, 4.74, 5.87, 8.45, 2.87, 3.63, 0.326, 0.304, 0.645]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1573, 177]', 'rsf': '[0.317, 1.61]'}",71,#ff1493,#00ab24,Transition metals,#e08e79 +Hf,6,4.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[65351, 11271, 10739, 9561, 2601, 2365, 2108, 1716, 1662, 538, 438.2, 380.7, 220, 211.5, 15.9, 14.2, 64.2, 38, 29.9]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.76, 2.06, 4.88, 6.13, 8.84, 3.32, 4.2, 0.344, 0.325, 0.699]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1624, 185]', 'rsf': '[0.303, 1.47]'}",72,#ff1493,#4dc2ff,Transition metals,#e08e79 +Ta,6,5.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[67416, 11682, 11136, 9881, 2708, 2469, 2194, 1793, 1735, 563.4, 463.4, 400.9, 237.9, 226.4, 23.5, 21.6, 69.7, 42.2, 32.7]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.79, 2.08, 5.02, 6.4, 9.24, 3.8, 4.82, 0.363, 0.346, 0.754]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1680, 179]', 'rsf': '[0.29, 1.35]'}",73,#ff1493,#4da6ff,Transition metals,#e08e79 +W,6,6.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[69525, 12100, 11544, 10207, 2820, 2575, 2281, 1872, 1809, 594.1, 490.4, 423.6, 255.9, 243.5, 33.6, 31.4, 75.6, 45.3, 36.8]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.81, 2.1, 5.16, 6.68, 9.65, 4.32, 5.48, 0.383, 0.367, 0.811]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1736, 179]', 'rsf': '[0.278, 1.25]'}",74,#ff1493,#2194d6,Transition metals,#e08e79 +Re,6,7.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[71676, 12527, 11959, 10535, 2932, 2682, 2367, 1949, 1883, 625.4, 518.7, 446.8, 273.9, 260.5, 42.9, 40.5, 83, 45.6, 34.6]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.84, 2.12, 5.3, 6.95, 10.06, 4.88, 6.2, 0.402, 0.387, 0.869]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1799, 176]', 'rsf': '[0.267, 1.17]'}",75,#ff1493,#267dab,Transition metals,#e08e79 +Os,6,8.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[73871, 12968, 12385, 10871, 3049, 2792, 2457, 2031, 1960, 658.2, 549.1, 470.7, 293.1, 278.5, 53.4, 50.7, 84, 58, 44.5]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.86, 2.13, 5.45, 7.23, 10.48, 5.48, 6.96, 0.422, 0.408, 0.928]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1850, 170]', 'rsf': '[0.255, 1.11]'}",76,#ff1493,#266696,Transition metals,#e08e79 +Ir,6,9.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[76111, 13419, 12824, 11215, 3174, 2909, 2551, 2116, 2040, 691.1, 577.8, 495.8, 311.9, 296.3, 63.8, 60.8, 95.2, 63, 48]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.88, 2.14, 5.59, 7.51, 10.9, 6.12, 7.78, 0.438, 0.422, 0.967]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1908, 171]', 'rsf': '[0.244, 1.01]'}",77,#ff1493,#175487,Transition metals,#e08e79 +Pt,6,10.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[78395, 13880, 13273, 11564, 3296, 3027, 2645, 2202, 2122, 725.4, 609.1, 519.4, 331.6, 314.6, 74.5, 71.2, 101.7, 65.3, 51.7]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.9, 2.14, 5.74, 7.78, 11.32, 6.81, 8.65, 0.459, 0.444, 1.04]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[1967, 168]', 'rsf': '[0.234, 5.48]'}",78,#ff1493,#d0d0e0,Transition metals,#e08e79 +Au,6,11.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']"", 'be': '[80725, 14353, 13734, 11919, 3425, 3148, 2743, 2291, 2206, 762.1, 642.7, 546.3, 353.2, 335.1, 87.6, 84, 107.2, 74.2, 57.2]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.92, 2.14, 5.89, 8.06, 11.74, 7.54, 9.58, 0.479, 0.463, 1.1]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[2024, 239]', 'rsf': '[0.223, 4.6]'}",79,#daa520,#ffd123,Transition metals,#e08e79 +Hg,6,12.0,8,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[83102, 14839, 14209, 12284, 3562, 3279, 2847, 2385, 2295, 802.2, 680.2, 576.6, 378.2, 358.8, 104, 99.9, 127, 83.1, 64.5, 9.6, 7.8]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.94, 2.14, 6.04, 8.33, 12.17, 8.32, 10.57, 0.5, 0.484, 1.17, 0.869, 1.21]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[2078, 241]', 'rsf': '[0.213, 3.78]'}",80,#ff1493,#b8b8d0,Transition metals,#e08e79 +Tl,6,13.0,7,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[85530, 15347, 14698, 12658, 3704, 3416, 2957, 2485, 2389, 846.2, 720.5, 609.5, 405.7, 385, 122.2, 117.8, 136, 94.6, 73.5, 14.7, 12.5]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 2.13, 6.19, 8.6, 12.6, 9.14, 11.62, 0.52, 0.505, 1.25, 0.991, 1.39]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[2134, 244]', 'rsf': '[0.202, 3.06]'}",81,#ff1493,#a6544d,Poor metals,#b2df8a +Pb,6,14.0,7,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[88005, 15861, 15200, 13035, 3851, 3554, 3066, 2586, 2484, 891.8, 761.9, 643.5, 434.3, 412.2, 141.7, 136.9, 147, 106.4, 83.3, 20.7, 18.1]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.12, 6.33, 8.87, 13.02, 10.01, 12.73, 0.542, 0.526, 1.33, 1.11, 1.58]'}","{'trans': ""['MNN', 'NOO']"", 'ke': '[2186, 249]', 'rsf': '[0.192, 2.58]'}",82,#ff1493,#575961,Poor metals,#b2df8a +Bi,6,15.0,7,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[90524, 16388, 15711, 13419, 3999, 3696, 3177, 2688, 2580, 939, 805.2, 678.8, 464, 440.1, 162.3, 157, 159.3, 119, 92.6, 26.9, 23.8]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.1, 6.48, 9.14, 13.44, 10.93, 13.9, 0.563, 0.546, 1.41, 1.24, 1.76]'}","{'trans': ""['MNN']"", 'ke': '[2243]', 'rsf': '[0.183]'}",83,#ff1493,#9e4fb5,Poor metals,#b2df8a +Po,6,16.0,5,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[93105, 16939, 16244, 13814, 4149, 3854, 3302, 2798, 2683, 995, 851, 705, 500, 473, 184, 184, 177, 132, 104, 31, 31]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.97, 2.07, 6.62, 9.4, 13.87, 11.9, 15.14, 0.584, 0.566, 1.5, 1.36, 1.95]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",84,#ff1493,#ab5c00,Metalloids,#33a02c +At,6,17.0,6,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[95730, 17493, 16785, 14214, 4317, 4008, 3426, 2909, 2787, 1042, 886, 740, 533, 507, 210, 210, 195, 148, 115, 40, 40]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.04, 6.77, 9.65, 14.29, 12.92, 16.44, 0.605, 0.584, 1.58, 1.49, 2.14]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",85,#ff1493,#754f45,Halogens,#fdbf6f +Rn,6,18.0,2,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s']"", 'be': '[98404, 18049, 17337, 14619, 4482, 4159, 3538, 3022, 2892, 1097, 929, 768, 567, 541, 238, 238, 214, 164, 127, 48, 48, 26]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 2, 6.92, 9.9, 14.7, 14, 17.81, 0.625, 0.602, 1.67, 1.62, 2.33, 0.1129]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",86,#ffffff,#428296,Noble gases,#bbbb88 +Fr,7,1.0,3,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']"", 'be': '[101137, 18639, 17907, 15031, 4652, 4327, 3663, 3136, 3000, 1153, 980, 810, 603, 577, 268, 268, 234, 182, 140, 58, 58, 34, 15, 15]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.97, 7.07, 10.16, 15.11, 15.12, 19.24, 0.645, 0.618, 1.77, 1.75, 2.53, 0.1257, 0.0966, 0.24]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",87,#ffffff,#420066,Alkali metals,#a6cee3 +Ra,7,2.0,4,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']"", 'be': '[103922, 19237, 18484, 15444, 4822, 4490, 3792, 3248, 3105, 1208, 1058, 879, 636, 603, 299, 299, 254, 200, 153, 68, 68, 44, 19, 19]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.91, 7.2, 10.4, 15.53, 16.3, 20.74, 0.665, 0.633, 1.86, 1.88, 2.73, 0.1383, 0.1099, 0.286]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",88,#ffffff,#007d00,Alkaline earth metals,#1f78b4 +Ac,7,3.0,10,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[106755, 19840, 19083, 15871, 5002, 4656, 3909, 3370, 3219, 1269, 1080, 890, 675, 639, 319, 319, 272, 215, 167, 80, 80]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.86, 7.33, 10.61, 15.93, 17.53, 22.3, 0.684, 0.647, 1.95, 2.02, 2.94]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",89,#ffffff,#70abfa,Actinides,#6a3d9a +Th,7,100.0,10,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']"", 'be': '[109651, 20472, 19693, 16300, 5182, 4830, 4046, 3491, 3332, 1330, 1168, 966.4, 712.1, 675.2, 342.4, 333.1, 290, 229, 182, 92.5, 85.4, 41.4, 24.5, 16.6]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.9, 7.46, 10.82, 16.31, 18.81, 23.94, 0.702, 0.66, 2.05, 2.15, 3.15, 0.1625, 0.1325, 0.366]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",90,#ff1493,#00baff,Actinides,#6a3d9a +Pa,7,100.0,10,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']"", 'be': '[112601, 21105, 20314, 16733, 5367, 5001, 4174, 3611, 3442, 1387, 1224, 1007, 743, 708, 371, 360, 310, 232, 232, 94, 94]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.92, 1.74, 7.61, 11.04, 16.47, 20.12, 25.6, 0.718, 0.667, 2.13, 2.25, 3.29]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",91,#ffffff,#00a1ff,Actinides,#6a3d9a +U,7,100.0,10,"{'trans': ""['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']"", 'be': '[115606, 21757, 20948, 17166, 5548, 5182, 4303, 3728, 3552, 1439, 1271, 1043, 778.3, 736.2, 388.2, 377.4, 321, 257, 192, 102.8, 94.2, 43.9, 26.8, 16.8]', 'rsf': '[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.9, 1.68, 7.71, 11.25, 17.05, 21.5, 27.36, 0.732, 0.674, 2.22, 2.36, 3.46, 0.1682, 0.133, 0.376]'}","{'trans': '[]', 'ke': '[]', 'rsf': '[]'}",92,#ff1493,#008fff,Actinides,#6a3d9a diff --git a/Databases/xps_data.csv b/Databases/xps_data.csv new file mode 100644 index 0000000..cc9b699 --- /dev/null +++ b/Databases/xps_data.csv @@ -0,0 +1,93 @@ +symbol,alka.trans,alka.be,alka.rsf,aes.trans,aes.ke,aes.rsf +H,['1s'],[13.6],[0.0002],[],[],[] +He,['1s'],[24.6],[0.0082],[],[],[] +Li,['1s'],[54.7],[0.0568],['KLL'],[43],[0.977] +Be,['1s'],[111.5],[0.1947],['KLL'],[104],[0.456] +B,['1s'],[188],[0.486],['KLL'],[179],[0.289] +C,['1s'],[284.2],[1],['KLL'],[272],[0.209] +N,"['1s', '2s']","[409.9, 37.3]","[1.8, 0.0867]",['KLL'],[379],[0.159] +O,"['1s', '2s']","[543.1, 41.6]","[2.93, 0.1405]",['KLL'],[503],[0.129] +F,['1s'],[696.7],[4.43],['KLL'],[647],[0.105] +Ne,"['1s', '2s', '2p1/2', '2p3/2']","[870.2, 48.5, 21.7, 21.6]","[6.3, 0.296, 0.0347, 0.0683]",['KLL'],[805],[0.0846] +Na,"['1s', '2s', '2p1/2', '2p3/2']","[1070.8, 63.5, 30.65, 30.81]","[8.52, 0.422, 0.0654, 0.1287]",['KLL'],[990],[0.0714] +Mg,"['1s', '2s', '2p1/2', '2p3/2']","[1303, 88.7, 49.78, 49.5]","[11.18, 0.575, 0.1125, 0.221]","['KLL', 'LMM']","[1186, 45]","[0.0593, 3.43]" +Al,"['1s', '2s', '2p1/2', '2p3/2']","[1559.6, 117.8, 72.95, 72.55]","[0.0001, 0.753, 0.1811, 0.356]","['KLL', 'LMM']","[1396, 68]","[0.0497, 2.44]" +Si,"['1s', '2s', '2p1/2', '2p3/2']","[1839, 149.7, 99.82, 99.42]","[0.0001, 0.955, 0.276, 0.541]","['KLL', 'LMM']","[1619, 92]","[0.0417, 1.78]" +P,"['1s', '2s', '2p1/2', '2p3/2']","[2145.5, 189, 136, 135]","[0.0001, 1.18, 0.403, 0.789]","['KLL', 'LMM']","[1859, 120]","[0.035, 1.36]" +S,"['1s', '2s', '2p1/2', '2p3/2']","[2472, 230.9, 163.6, 162.5]","[0.0001, 1.43, 0.567, 1.11]","['KLL', 'LMM']","[2117, 152]","[0.0295, 1.14]" +Cl,"['1s', '2s', '2p1/2', '2p3/2']","[2822.4, 270, 202, 200]","[0.0001, 1.69, 0.775, 1.51]","['KLL', 'LMM']","[2378, 181]","[0.0001, 0.984]" +Ar,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[3205.9, 326.3, 250.6, 248.4, 29.3, 15.9, 15.7]","[0.0001, 1.97, 1.03, 2.01, 0.227, 0.0821, 0.1597]",['LMM'],[215],[0.827] +K,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[3608.4, 378.6, 297.3, 294.6, 34.8, 18.3, 18.3]","[0.0001, 2.27, 1.35, 2.62, 0.286, 0.1229, 0.239]",['LMM'],[252],[0.723] +Ca,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[4038.5, 438.4, 349.7, 346.2, 44.3, 25.4, 25.4]","[0.0001, 2.59, 1.72, 3.35, 0.351, 0.172, 0.335]","['LMM', 'MNN']","[291, 20]","[0.633, 0.0001]" +Sc,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[4492, 498, 403.6, 398.7, 51.1, 28.3, 28.3]","[0.0001, 2.91, 2.17, 4.21, 0.411, 0.221, 0.429]","['LMM', 'MNN']","[340, 24]","[0.563, 0.0001]" +Ti,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[4966, 560.9, 460.2, 453.8, 58.7, 32.6, 32.6]","[0.0001, 3.24, 2.69, 5.22, 0.473, 0.276, 0.537]","['LMM', 'MNN']","[418, 27]","[0.514, 0.0001]" +V,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[5465, 626.7, 519.8, 512.1, 66.3, 37.2, 37.2]","[0.0001, 3.57, 3.29, 6.37, 0.538, 0.339, 0.657]","['LMM', 'MNN']","[473, 31]","[0.471, 5.03]" +Cr,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[5989, 696, 583.8, 574.1, 74.1, 42.2, 42.2]","[0.0001, 3.91, 3.98, 7.69, 0.596, 0.4, 0.773]","['LMM', 'MNN']","[529, 36]","[0.432, 4.6]" +Mn,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[6539, 769.1, 649.9, 638.7, 82.3, 47.2, 47.2]","[0.0001, 4.23, 4.74, 9.17, 0.674, 0.485, 0.938]","['LMM', 'MNN']","[589, 40]","[0.397, 3.96]" +Fe,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[7112, 844.6, 719.9, 706.8, 91.3, 52.7, 52.7]","[0.0001, 4.57, 5.6, 10.82, 0.745, 0.569, 1.1]","['LMM', 'MNN']","[703, 47]","[0.367, 3.5]" +Co,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[7709, 925.1, 793.2, 778.1, 101, 58.9, 59.9]","[0.0001, 4.88, 6.54, 12.62, 0.818, 0.66, 1.27]","['LMM', 'MNN']","[775, 53]","[0.341, 3.12]" +Ni,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[8333, 1008.6, 870, 852.7, 110.8, 68, 66.2]","[0.0001, 5.16, 7.57, 14.61, 0.892, 0.757, 1.46]","['LMM', 'MNN']","[848, 61]","[0.316, 2.65]" +Cu,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2']","[8979, 1096.7, 952.3, 932.7, 122.5, 77.3, 75.1]","[0.0001, 5.46, 8.66, 16.73, 0.957, 0.848, 1.63]","['LMM', 'MNN']","[920, 60]","[0.294, 2.41]" +Zn,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']","[9659, 1196.2, 1044.9, 1021.8, 139.8, 91.4, 88.6, 10.2, 10.1]","[0.0001, 5.76, 9.8, 18.92, 1.04, 0.968, 1.86, 0.33, 0.48]","['LMM', 'MNN']","[994, 59]","[0.271, 1.98]" +Ga,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']","[10367, 1299, 1143.2, 1116.4, 159.5, 103.5, 100, 18.7, 18.7]","[0.0001, 6.07, 11.09, 21.4, 1.13, 1.1, 2.11, 0.442, 0.643]","['LMM', 'MNN']","[1070, 55]","[0.25, 1.57]" +Ge,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']","[11103, 1414.6, 1248.1, 1217, 180.1, 124.9, 120.8, 29.8, 29.2]","[0.0001, 6.31, 12.52, 24.15, 1.23, 1.24, 2.39, 0.578, 0.842]","['LMM', 'MNN']","[1147, 23]","[0.229, 1.27]" +As,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']","[11867, 1527, 1359.1, 1323.6, 204.7, 146.2, 141.2, 41.7, 41.7]","[0.0001, 0.0001, 14.07, 27.19, 1.32, 1.39, 2.68, 0.741, 1.08]","['LMM', 'MNN']","[1228, 31]","[0.211, 1.06]" +Se,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']","[12658, 1652, 1474.3, 1433.9, 229.6, 166.5, 160.7, 55.5, 54.6]","[0.0001, 0.0001, 13.66, 25.9, 1.43, 1.55, 2.98, 0.934, 1.36]","['LMM', 'MNN']","[1315, 43]","[0.194, 5.44]" +Br,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2']","[13474, 1782, 1596, 1550, 257, 189, 182, 70, 69]","[0.0001, 0.0001, 0.0001, 0.0001, 1.53, 1.72, 3.31, 1.16, 1.68]","['LMM', 'MNN']","[1396, 55]","[0.179, 4.37]" +Kr,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[14326, 1921, 1730.9, 1678.4, 292.8, 222.2, 214.4, 95, 93.8, 27.5, 14.1, 14.1]","[0.0001, 0.0001, 0.0001, 0.0001, 1.64, 1.89, 3.65, 1.42, 2.06, 0.213, 0.1643, 0.312]",['LMM'],[1474],[0.164] +Rb,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[15200, 2065, 1864, 1804, 326.7, 248.7, 239.1, 113, 112, 30.5, 16.3, 15.3]","[0.0001, 0.0001, 0.0001, 0.0001, 1.75, 2.07, 4, 1.72, 2.49, 0.251, 0.214, 0.411]","['LMM', 'MNN']","[1565, 76]","[0.152, 2.63]" +Sr,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[16105, 2216, 2007, 1940, 358.7, 280.3, 270, 136, 134.2, 38.9, 21.3, 20.1]","[0.0001, 0.0001, 0.0001, 0.0001, 1.86, 2.25, 4.37, 2.06, 2.99, 0.291, 0.265, 0.51]","['LMM', 'MNN']","[1649, 110]","[0.14, 2.17]" +Y,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[17038, 2373, 2156, 2080, 392, 310.6, 298.8, 157.7, 155.8, 43.8, 24.4, 23.1]","[0.0001, 0.0001, 0.0001, 0.0001, 1.98, 2.44, 4.75, 2.44, 3.54, 0.329, 0.311, 0.599]","['LMM', 'MNN']","[1746, 127]","[0.129, 1.86]" +Zr,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[17998, 2532, 2307, 2223, 430.3, 343.5, 329.8, 181.1, 178.8, 50.6, 28.5, 27.1]","[0.0001, 0.0001, 0.0001, 0.0001, 2.1, 2.64, 5.14, 2.87, 4.17, 0.367, 0.357, 0.689]","['LMM', 'MNN']","[1845, 147]","[0.119, 1.66]" +Nb,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[18986, 2698, 2465, 2371, 466.6, 376.1, 360.6, 205, 202.3, 56.4, 32.6, 30.8]","[0.0001, 0.0001, 0.0001, 0.0001, 2.22, 2.84, 5.53, 3.35, 4.86, 0.402, 0.398, 0.767]","['LMM', 'MNN']","[1944, 167]","[0.11, 1.5]" +Mo,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[20000, 2866, 2625, 2520, 506.3, 411.6, 394, 231.1, 227.9, 63.2, 37.6, 35.5]","[0.0001, 0.0001, 0.0001, 0.0001, 2.34, 3.04, 5.94, 3.88, 5.62, 0.44, 0.445, 0.86]","['LMM', 'MNN']","[2044, 186]","[0.101, 1.39]" +Tc,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[21044, 3043, 2793, 2677, 544, 447.6, 417.7, 257.6, 253.9, 69.5, 42.3, 39.9]","[0.0001, 0.0001, 0.0001, 0.0001, 2.45, 3.23, 6.36, 4.46, 6.47, 0.479, 0.494, 0.955]",['MNN'],[249],[1.29] +Ru,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[22117, 3224, 2967, 2838, 586.1, 483.5, 461.4, 284.2, 280, 75, 46.3, 43.2]","[0.0001, 0.0001, 0.0001, 0.0001, 2.57, 3.44, 6.78, 5.1, 7.39, 0.519, 0.544, 1.05]",['MNN'],[273],[1.2] +Rh,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[23220, 3412, 3146, 3004, 628.1, 521.3, 496.5, 311.9, 307.2, 81.4, 50.5, 47.3]","[0.0001, 0.0001, 0.0001, 0.0001, 2.7, 3.64, 7.21, 5.8, 8.39, 0.56, 0.595, 1.15]",['MNN'],[302],[1.13] +Pd,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[24350, 3604, 3330, 3173, 671.6, 559.9, 532.3, 340.5, 335.2, 87.1, 55.7, 50.9]","[0.0001, 0.0001, 0.0001, 0.0001, 2.81, 3.83, 7.63, 6.56, 9.48, 0.598, 0.641, 1.24]",['MNN'],[330],[1.07] +Ag,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2']","[25514, 3806, 3524, 3351, 719, 603.8, 573, 374, 368.3, 97, 63.7, 58.3]","[0.0001, 0.0001, 0.0001, 0.0001, 2.93, 4.03, 8.06, 7.38, 10.66, 0.644, 0.7, 1.36]",['MNN'],[351],[1] +Cd,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']","[26711, 4018, 3727, 3538, 772, 652.6, 618.4, 411.9, 405.2, 109.8, 63.9, 63.9, 11.7, 10.7]","[0.0001, 0.0001, 0.0001, 0.0001, 3.04, 4.22, 8.5, 8.27, 11.95, 0.692, 0.762, 1.49, 0.778, 1.11]",['MNN'],[376],[0.931] +In,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']","[27940, 4238, 3938, 3730, 827.2, 703.2, 665.3, 451.4, 443.9, 122.9, 73.5, 73.5, 17.7, 16.9]","[0.0001, 0.0001, 0.0001, 0.0001, 3.16, 4.4, 8.93, 9.22, 13.32, 0.742, 0.828, 1.62, 0.935, 1.34]",['MNN'],[404],[0.867] +Sn,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']","[29200, 4465, 4156, 3929, 884.7, 756.5, 714.6, 493.2, 484.9, 137.1, 83.6, 83.6, 24.9, 23.9]","[0.0001, 0.0001, 0.0001, 0.0001, 3.26, 4.58, 9.35, 10.25, 14.8, 0.794, 0.897, 1.77, 1.11, 1.59]",['MNN'],[430],[0.809] +Sb,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']","[30491, 4698, 4380, 4132, 946, 812.7, 766.4, 537.5, 528.2, 153.2, 95.6, 95.6, 33.3, 32.1]","[0.0001, 0.0001, 0.0001, 0.0001, 3.36, 4.76, 9.77, 11.35, 16.39, 0.848, 0.968, 1.91, 1.29, 1.85]",['MNN'],[454],[0.759] +Te,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']","[31814, 4939, 4612, 4341, 1006, 870.8, 820, 583.4, 573, 169.4, 103.3, 103.3, 41.9, 40.4]","[0.0001, 0.0001, 0.0001, 0.0001, 3.46, 4.92, 10.21, 12.52, 18.06, 0.903, 1.04, 2.07, 1.49, 2.14]","['MNN', 'NOO']","[483, 31]","[0.713, 0.0001]" +I,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2']","[33169, 5188, 4852, 4557, 1072, 931, 875, 630.8, 619.3, 186, 123, 123, 50.6, 48.9]","[0.0001, 0.0001, 0.0001, 0.0001, 3.53, 5.06, 10.62, 13.77, 19.87, 0.959, 1.11, 2.23, 1.69, 2.44]","['MNN', 'NOO']","[511, 37]","[0.67, 0.0001]" +Xe,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']","[34561, 5453, 5107, 4786, 1148.7, 1002.1, 940.6, 689, 676.4, 213.2, 146.7, 145.5, 69.5, 67.5, 23.3, 13.4, 12.1]","[0.0001, 0.0001, 0.0001, 0.0001, 3.62, 5.2, 10.99, 15.1, 21.79, 1.02, 1.19, 2.39, 1.92, 2.76, 0.1596, 0.1361, 0.26]","['MNN', 'NOO']","[532, 41]","[0.626, 0.0001]" +Cs,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']","[35985, 5714, 5359, 5012, 1211, 1071, 1003, 740.5, 726.6, 232.3, 172.4, 161.3, 79.8, 77.5, 22.7, 14.2, 12.1]","[0.0001, 0.0001, 0.0001, 0.0001, 3.73, 5.29, 11.38, 16.46, 23.76, 1.08, 1.27, 2.56, 2.15, 3.1, 0.1843, 0.1697, 0.332]","['MNN', 'NOO']","[563, 47]","[0.589, 0.0001]" +Ba,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']","[37441, 5989, 5624, 5247, 1293, 1137, 1063, 795.7, 780.5, 253.5, 192, 178.6, 92.6, 89.9, 30.3, 17, 14.8]","[0.0001, 0.0001, 0.0001, 0.0001, 3.84, 5.42, 11.71, 17.92, 25.84, 1.13, 1.34, 2.73, 2.4, 3.46, 0.21, 0.202, 0.4]","['MNN', 'NOO']","[584, 57]","[0.554, 3.41]" +La,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']","[38925, 6266, 5891, 5483, 1362, 1209, 1128, 853, 836, 274.7, 205.8, 196, 105.3, 102.5, 34.3, 19.3, 16.8]","[0.0001, 0.0001, 0.0001, 0.0001, 3.89, 5.55, 12.11, 19.5, 28.12, 1.19, 1.42, 2.91, 2.67, 3.85, 0.234, 0.23, 0.458]","['MNN', 'NOO']","[625, 78]","[0.527, 3.12]" +Ce,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[40443, 6549, 6164, 5723, 1436, 1274, 1187, 902.4, 883.8, 291, 223.2, 206.5, 109, 0.1, 0.1, 37.8, 19.8, 17]","[0.0001, 0.0001, 0.0001, 0.0001, 3.93, 5.66, 12.53, 21.12, 30.5, 1.24, 1.47, 3.03, 2.84, 0.0609, 0.078, 0.23, 0.221, 0.439]","['MNN', 'NOO']","[661, 82]","[0.503, 2.79]" +Pr,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[41991, 6835, 6440, 5964, 1511, 1337, 1242, 948.3, 928.8, 304.5, 236.3, 217.6, 115.1, 115.1, 2, 2, 37.4, 22.3, 22.3]","[0.0001, 0.0001, 0.0001, 0.0001, 3.98, 5.75, 12.94, 22.72, 32.85, 1.28, 1.53, 3.17, 3.07, 4.41, 0.1115, 0.143, 0.238, 0.229, 0.456]","['MNN', 'NOO']","[699, 87]","[0.485, 2.72]" +Nd,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[43569, 7126, 6722, 6208, 1575, 1403, 1297, 1003.3, 980.4, 319.2, 243.3, 224.6, 120.5, 120.5, 1.5, 1.5, 37.5, 21.1, 21.1]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 5.75, 13.35, 24.27, 35.29, 1.33, 1.59, 3.31, 3.29, 4.74, 0.1788, 0.228, 0.247, 0.236, 0.472]","['MNN', 'NOO']","[730, 91]","[0.469, 2.65]" +Pm,"['1s', '2s', '2p1/2', '2p3/2', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4p1/2', '4p3/2', '4d3/2', '4d5/2']","[45184, 7428, 7013, 6459, 1471, 1357, 1052, 1027, 242, 242, 120, 120]","[0.0001, 0.0001, 0.0001, 0.0001, 5.72, 13.66, 26.08, 37.65, 1.64, 3.45, 3.52, 5.07]",[],[],[] +Sm,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[46834, 7737, 7312, 6716, 1723, 1541, 1420, 1110.9, 1083.4, 347.2, 265.6, 247.4, 129, 129, 5.2, 5.2, 37.4, 21.3, 21.3]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 13.84, 27.96, 40.37, 1.42, 1.7, 3.59, 3.76, 5.4, 0.374, 0.477, 0.261, 0.249, 0.501]","['MNN', 'NOO']","[814, 100]","[0.435, 2.43]" +Eu,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2']","[48519, 8052, 7617, 6977, 1800, 1614, 1481, 1158.6, 1127.5, 360, 284, 257, 133, 127.7, 32, 22, 22]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 14.3, 29.91, 43.24, 1.46, 1.75, 3.72, 3.99, 5.74, 0.268, 0.255, 0.515]","['MNN', 'NOO']","[858, 109]","[0.42, 2.37]" +Gd,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[50239, 8376, 7930, 7243, 1881, 1688, 1544, 1221.9, 1189.6, 378.6, 286, 271, 142.6, 8.6, 8.6, 36, 28, 21]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 31.98, 46.23, 1.51, 1.8, 3.88, 6.14, 0.63, 0.804, 0.288, 0.279, 0.568]","['MNN', 'NOO']","[895, 138]","[0.405, 2.26]" +Tb,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[51996, 8708, 8252, 7514, 1968, 1768, 1611, 1276.9, 1241.1, 396, 322.4, 284.1, 150.5, 150.5, 7.7, 2.4, 45.6, 28.7, 22.6]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 34.2, 49.42, 1.54, 1.84, 3.99, 4.46, 6.41, 0.867, 1.1, 0.281, 0.265, 0.539]","['MNN', 'NOO']","[1073, 146]","[0.39, 2.15]" +Dy,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[53789, 9046, 8581, 7790, 2047, 1842, 1676, 1333, 1292.6, 414.2, 333.5, 293.2, 153.6, 153.6, 8, 4.3, 49.9, 26.3, 26.3]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 36.65, 52.83, 1.58, 1.88, 4.12, 4.69, 6.74, 1.1, 1.39, 0.287, 0.27, 0.551]","['MNN', 'NOO']","[1126, 151]","[0.377, 2.07]" +Ho,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[55618, 9394, 8918, 8071, 2128, 1923, 1741, 1392, 1351, 432.4, 343.5, 308.2, 160, 160, 8.6, 5.2, 49.3, 30.8, 24.1]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 39.19, 56.66, 1.61, 1.91, 4.24, 4.92, 7.08, 1.37, 1.73, 0.293, 0.274, 0.562]","['MNN', 'NOO']","[1175, 157]","[0.365, 1.98]" +Er,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[57486, 9751, 9264, 8358, 2207, 2006, 1812, 1453, 1409, 449.8, 366.2, 320.2, 167.6, 167.6, 4.7, 50.6, 31.4, 24.7]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 36.7, 60.42, 1.64, 1.95, 4.37, 5.15, 7.41, 2.13, 0.298, 0.277, 0.572]","['MNN', 'NOO']","[1393, 163]","[0.352, 1.87]" +Tm,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[59390, 10116, 9617, 8648, 2307, 2090, 1885, 1515, 1468, 470.9, 385.9, 332.6, 175.5, 175.5, 4.6, 54.7, 31.8, 25]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 41.01, 1.67, 1.98, 4.48, 5.38, 7.74, 2.59, 0.303, 0.281, 0.583]","['MNN', 'NOO']","[1449, 166]","[0.34, 1.78]" +Yb,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[61332, 10486, 9978, 8944, 2398, 2173, 1950, 1576, 1528, 480.5, 388.7, 339.7, 191.2, 182.4, 2.5, 1.3, 52, 30.3, 24.1]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.7, 2, 4.6, 5.61, 8.07, 2.47, 3.11, 0.308, 0.284, 0.592]","['MNN', 'NOO']","[1514, 170]","[0.329, 1.69]" +Lu,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[63314, 10870, 10349, 9244, 2491, 2264, 2024, 1639, 1589, 506.8, 412.4, 359.2, 206.1, 196.3, 8.9, 7.5, 57.3, 33.6, 26.7]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.73, 2.03, 4.74, 5.87, 8.45, 2.87, 3.63, 0.326, 0.304, 0.645]","['MNN', 'NOO']","[1573, 177]","[0.317, 1.61]" +Hf,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[65351, 11271, 10739, 9561, 2601, 2365, 2108, 1716, 1662, 538, 438.2, 380.7, 220, 211.5, 15.9, 14.2, 64.2, 38, 29.9]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.76, 2.06, 4.88, 6.13, 8.84, 3.32, 4.2, 0.344, 0.325, 0.699]","['MNN', 'NOO']","[1624, 185]","[0.303, 1.47]" +Ta,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[67416, 11682, 11136, 9881, 2708, 2469, 2194, 1793, 1735, 563.4, 463.4, 400.9, 237.9, 226.4, 23.5, 21.6, 69.7, 42.2, 32.7]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.79, 2.08, 5.02, 6.4, 9.24, 3.8, 4.82, 0.363, 0.346, 0.754]","['MNN', 'NOO']","[1680, 179]","[0.29, 1.35]" +W,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[69525, 12100, 11544, 10207, 2820, 2575, 2281, 1872, 1809, 594.1, 490.4, 423.6, 255.9, 243.5, 33.6, 31.4, 75.6, 45.3, 36.8]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.81, 2.1, 5.16, 6.68, 9.65, 4.32, 5.48, 0.383, 0.367, 0.811]","['MNN', 'NOO']","[1736, 179]","[0.278, 1.25]" +Re,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[71676, 12527, 11959, 10535, 2932, 2682, 2367, 1949, 1883, 625.4, 518.7, 446.8, 273.9, 260.5, 42.9, 40.5, 83, 45.6, 34.6]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.84, 2.12, 5.3, 6.95, 10.06, 4.88, 6.2, 0.402, 0.387, 0.869]","['MNN', 'NOO']","[1799, 176]","[0.267, 1.17]" +Os,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[73871, 12968, 12385, 10871, 3049, 2792, 2457, 2031, 1960, 658.2, 549.1, 470.7, 293.1, 278.5, 53.4, 50.7, 84, 58, 44.5]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.86, 2.13, 5.45, 7.23, 10.48, 5.48, 6.96, 0.422, 0.408, 0.928]","['MNN', 'NOO']","[1850, 170]","[0.255, 1.11]" +Ir,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[76111, 13419, 12824, 11215, 3174, 2909, 2551, 2116, 2040, 691.1, 577.8, 495.8, 311.9, 296.3, 63.8, 60.8, 95.2, 63, 48]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.88, 2.14, 5.59, 7.51, 10.9, 6.12, 7.78, 0.438, 0.422, 0.967]","['MNN', 'NOO']","[1908, 171]","[0.244, 1.01]" +Pt,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[78395, 13880, 13273, 11564, 3296, 3027, 2645, 2202, 2122, 725.4, 609.1, 519.4, 331.6, 314.6, 74.5, 71.2, 101.7, 65.3, 51.7]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.9, 2.14, 5.74, 7.78, 11.32, 6.81, 8.65, 0.459, 0.444, 1.04]","['MNN', 'NOO']","[1967, 168]","[0.234, 5.48]" +Au,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2']","[80725, 14353, 13734, 11919, 3425, 3148, 2743, 2291, 2206, 762.1, 642.7, 546.3, 353.2, 335.1, 87.6, 84, 107.2, 74.2, 57.2]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.92, 2.14, 5.89, 8.06, 11.74, 7.54, 9.58, 0.479, 0.463, 1.1]","['MNN', 'NOO']","[2024, 239]","[0.223, 4.6]" +Hg,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[83102, 14839, 14209, 12284, 3562, 3279, 2847, 2385, 2295, 802.2, 680.2, 576.6, 378.2, 358.8, 104, 99.9, 127, 83.1, 64.5, 9.6, 7.8]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.94, 2.14, 6.04, 8.33, 12.17, 8.32, 10.57, 0.5, 0.484, 1.17, 0.869, 1.21]","['MNN', 'NOO']","[2078, 241]","[0.213, 3.78]" +Tl,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[85530, 15347, 14698, 12658, 3704, 3416, 2957, 2485, 2389, 846.2, 720.5, 609.5, 405.7, 385, 122.2, 117.8, 136, 94.6, 73.5, 14.7, 12.5]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 2.13, 6.19, 8.6, 12.6, 9.14, 11.62, 0.52, 0.505, 1.25, 0.991, 1.39]","['MNN', 'NOO']","[2134, 244]","[0.202, 3.06]" +Pb,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[88005, 15861, 15200, 13035, 3851, 3554, 3066, 2586, 2484, 891.8, 761.9, 643.5, 434.3, 412.2, 141.7, 136.9, 147, 106.4, 83.3, 20.7, 18.1]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.12, 6.33, 8.87, 13.02, 10.01, 12.73, 0.542, 0.526, 1.33, 1.11, 1.58]","['MNN', 'NOO']","[2186, 249]","[0.192, 2.58]" +Bi,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[90524, 16388, 15711, 13419, 3999, 3696, 3177, 2688, 2580, 939, 805.2, 678.8, 464, 440.1, 162.3, 157, 159.3, 119, 92.6, 26.9, 23.8]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.1, 6.48, 9.14, 13.44, 10.93, 13.9, 0.563, 0.546, 1.41, 1.24, 1.76]",['MNN'],[2243],[0.183] +Po,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[93105, 16939, 16244, 13814, 4149, 3854, 3302, 2798, 2683, 995, 851, 705, 500, 473, 184, 184, 177, 132, 104, 31, 31]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.97, 2.07, 6.62, 9.4, 13.87, 11.9, 15.14, 0.584, 0.566, 1.5, 1.36, 1.95]",[],[],[] +At,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[95730, 17493, 16785, 14214, 4317, 4008, 3426, 2909, 2787, 1042, 886, 740, 533, 507, 210, 210, 195, 148, 115, 40, 40]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.04, 6.77, 9.65, 14.29, 12.92, 16.44, 0.605, 0.584, 1.58, 1.49, 2.14]",[],[],[] +Rn,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s']","[98404, 18049, 17337, 14619, 4482, 4159, 3538, 3022, 2892, 1097, 929, 768, 567, 541, 238, 238, 214, 164, 127, 48, 48, 26]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 2, 6.92, 9.9, 14.7, 14, 17.81, 0.625, 0.602, 1.67, 1.62, 2.33, 0.1129]",[],[],[] +Fr,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']","[101137, 18639, 17907, 15031, 4652, 4327, 3663, 3136, 3000, 1153, 980, 810, 603, 577, 268, 268, 234, 182, 140, 58, 58, 34, 15, 15]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.97, 7.07, 10.16, 15.11, 15.12, 19.24, 0.645, 0.618, 1.77, 1.75, 2.53, 0.1257, 0.0966, 0.24]",[],[],[] +Ra,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']","[103922, 19237, 18484, 15444, 4822, 4490, 3792, 3248, 3105, 1208, 1058, 879, 636, 603, 299, 299, 254, 200, 153, 68, 68, 44, 19, 19]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.91, 7.2, 10.4, 15.53, 16.3, 20.74, 0.665, 0.633, 1.86, 1.88, 2.73, 0.1383, 0.1099, 0.286]",[],[],[] +Ac,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[106755, 19840, 19083, 15871, 5002, 4656, 3909, 3370, 3219, 1269, 1080, 890, 675, 639, 319, 319, 272, 215, 167, 80, 80]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.86, 7.33, 10.61, 15.93, 17.53, 22.3, 0.684, 0.647, 1.95, 2.02, 2.94]",[],[],[] +Th,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']","[109651, 20472, 19693, 16300, 5182, 4830, 4046, 3491, 3332, 1330, 1168, 966.4, 712.1, 675.2, 342.4, 333.1, 290, 229, 182, 92.5, 85.4, 41.4, 24.5, 16.6]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.9, 7.46, 10.82, 16.31, 18.81, 23.94, 0.702, 0.66, 2.05, 2.15, 3.15, 0.1625, 0.1325, 0.366]",[],[],[] +Pa,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2']","[112601, 21105, 20314, 16733, 5367, 5001, 4174, 3611, 3442, 1387, 1224, 1007, 743, 708, 371, 360, 310, 232, 232, 94, 94]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.92, 1.74, 7.61, 11.04, 16.47, 20.12, 25.6, 0.718, 0.667, 2.13, 2.25, 3.29]",[],[],[] +U,"['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2']","[115606, 21757, 20948, 17166, 5548, 5182, 4303, 3728, 3552, 1439, 1271, 1043, 778.3, 736.2, 388.2, 377.4, 321, 257, 192, 102.8, 94.2, 43.9, 26.8, 16.8]","[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.9, 1.68, 7.71, 11.25, 17.05, 21.5, 27.36, 0.732, 0.674, 2.22, 2.36, 3.46, 0.1682, 0.133, 0.376]",[],[],[] diff --git a/Images/cross_section.png b/Images/cross_section.png new file mode 100644 index 0000000..0434977 Binary files /dev/null and b/Images/cross_section.png differ diff --git a/Images/main_window.png b/Images/main_window.png new file mode 100644 index 0000000..65ed692 Binary files /dev/null and b/Images/main_window.png differ diff --git a/Images/survey_periodictable.png b/Images/survey_periodictable.png new file mode 100644 index 0000000..147cbe1 Binary files /dev/null and b/Images/survey_periodictable.png differ diff --git a/Python/elementdata.py b/Python/elementdata.py deleted file mode 100644 index 79b04d8..0000000 --- a/Python/elementdata.py +++ /dev/null @@ -1,474 +0,0 @@ -class ElementData: - def __init__(self): - self.xps = [ - { - 'symbol': 'Refresh', - 'alka': {'trans': [], 'be': [], 'rsf': []}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Clear', - 'alka': {'trans': [], 'be': [], 'rsf': []}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'H', - 'alka': {'trans': ['1s'], 'be': [13.6], 'rsf': [.0002]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'He', - 'alka': {'trans': ['1s'], 'be': [24.6], 'rsf': [.0082]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Li', - 'alka': {'trans': ['1s'], 'be': [54.7], 'rsf': [.0568]}, - 'aes': {'trans': ['KLL'], 'ke': [43], 'rsf': [.977]} - }, - { - 'symbol': 'Be', - 'alka': {'trans': ['1s'], 'be': [111.5], 'rsf': [.1947]}, - 'aes': {'trans': ['KLL'], 'ke': [104], 'rsf': [.456]} - }, - { - 'symbol': 'B', - 'alka': {'trans': ['1s'], 'be': [188], 'rsf': [.486]}, - 'aes': {'trans': ['KLL'], 'ke': [179], 'rsf': [.289]} - }, - { - 'symbol': 'C', - 'alka': {'trans': ['1s'], 'be': [284.2], 'rsf': [1]}, - 'aes': {'trans': ['KLL'], 'ke': [272], 'rsf': [.209]} - }, - { - 'symbol': 'N', - 'alka': {'trans': ['1s', '2s'], 'be': [409.9, 37.3], 'rsf': [1.8, .0867]}, - 'aes': {'trans': ['KLL'], 'ke': [379], 'rsf': [.159]} - }, - { - 'symbol': 'O', - 'alka': {'trans': ['1s', '2s'], 'be': [543.1, 41.6], 'rsf': [2.93, .1405]}, - 'aes': {'trans': ['KLL'], 'ke': [503], 'rsf': [.129]} - }, - { - 'symbol': 'F', - 'alka': {'trans': ['1s'], 'be': [696.7], 'rsf': [4.43]}, - 'aes': {'trans': ['KLL'], 'ke': [647], 'rsf': [.105]} - }, - { - 'symbol': 'Ne', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [870.2, 48.5, 21.7, 21.6], 'rsf': [6.3, .296, .0347, .0683]}, - 'aes': {'trans': ['KLL'], 'ke': [805], 'rsf': [.0846]} - }, - { - 'symbol': 'Na', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1070.8, 63.5, 30.65, 30.81], 'rsf': [8.52, .422, .0654, .1287]}, - 'aes': {'trans': ['KLL'], 'ke': [990], 'rsf': [.0714]} - }, - { - 'symbol': 'Mg', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1303, 88.7, 49.78, 49.5], 'rsf': [11.18, .575, .1125, .221]}, - 'aes': {'trans': ['KLL', 'LMM'], 'ke': [1186, 45], 'rsf': [.0593, 3.43]} - }, - { - 'symbol': 'Al', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1559.6, 117.8, 72.95, 72.55], 'rsf': [.0001, .753, .1811, .356]}, - 'aes': {'trans': ['KLL', 'LMM'], 'ke': [1396, 68], 'rsf': [.0497, 2.44]} - }, - { - 'symbol': 'Si', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1839, 149.7, 99.82, 99.42], 'rsf': [.0001, .955, .276, .541]}, - 'aes': {'trans': ['KLL', 'LMM'], 'ke': [1619, 92], 'rsf': [.0417, 1.78]} - }, - { - 'symbol': 'P', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [2145.5, 189, 136, 135], 'rsf': [.0001, 1.18, .403, .789]}, - 'aes': {'trans': ['KLL', 'LMM'], 'ke': [1859, 120], 'rsf': [.035, 1.36]} - }, - { - 'symbol': 'S', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [2472, 230.9, 163.6, 162.5], 'rsf': [.0001, 1.43, .567, 1.11]}, - 'aes': {'trans': ['KLL', 'LMM'], 'ke': [2117, 152], 'rsf': [.0295, 1.14]} - }, - { - 'symbol': 'Cl', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [2822.4, 270, 202, 200], 'rsf': [.0001, 1.69, .775, 1.51]}, - 'aes': {'trans': ['KLL', 'LMM'], 'ke': [2378, 181], 'rsf': [.0001, .984]} - }, - { - 'symbol': 'Ar', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [3205.9, 326.3, 250.6, 248.4, 29.3, 15.9, 15.7], 'rsf': [.0001, 1.97, 1.03, 2.01, .227, .0821, .1597]}, - 'aes': {'trans': ['LMM'], 'ke': [215], 'rsf': [.827]} - }, - { - 'symbol': 'K', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [3608.4, 378.6, 297.3, 294.6, 34.8, 18.3, 18.3], 'rsf': [.0001, 2.27, 1.35, 2.62, .286, .1229, .239]}, - 'aes': {'trans': ['LMM'], 'ke': [252], 'rsf': [.723]} - }, - { - 'symbol': 'Ca', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [4038.5, 438.4, 349.7, 346.2, 44.3, 25.4, 25.4], 'rsf': [.0001, 2.59, 1.72, 3.35, .351, .172, .335]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [291, 20], 'rsf': [.633, .0001]} - }, - { - 'symbol': 'Sc', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [4492, 498, 403.6, 398.7, 51.1, 28.3, 28.3], 'rsf': [.0001, 2.91, 2.17, 4.21, .411, .221, .429]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [340, 24], 'rsf': [.563, .0001]} - }, - { - 'symbol': 'Ti', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [4966, 560.9, 460.2, 453.8, 58.7, 32.6, 32.6], 'rsf': [.0001, 3.24, 2.69, 5.22, .473, .276, .537]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [418, 27], 'rsf': [.514, .0001]} - }, - { - 'symbol': 'V', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [5465, 626.7, 519.8, 512.1, 66.3, 37.2, 37.2], 'rsf': [.0001, 3.57, 3.29, 6.37, .538, .339, .657]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [473, 31], 'rsf': [.471, 5.03]} - }, - { - 'symbol': 'Cr', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [5989, 696, 583.8, 574.1, 74.1, 42.2, 42.2], 'rsf': [.0001, 3.91, 3.98, 7.69, .596, .4, .773]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [529, 36], 'rsf': [.432, 4.6]} - }, - { - 'symbol': 'Mn', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [6539, 769.1, 649.9, 638.7, 82.3, 47.2, 47.2], 'rsf': [.0001, 4.23, 4.74, 9.17, .674, .485, .938]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [589, 40], 'rsf': [.397, 3.96]} - }, - { - 'symbol': 'Fe', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [7112, 844.6, 719.9, 706.8, 91.3, 52.7, 52.7], 'rsf': [.0001, 4.57, 5.6, 10.82, .745, .569, 1.1]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [703, 47], 'rsf': [.367, 3.5]} - }, - { - 'symbol': 'Co', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [7709, 925.1, 793.2, 778.1, 101, 58.9, 59.9], 'rsf': [.0001, 4.88, 6.54, 12.62, .818, .66, 1.27]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [775, 53], 'rsf': [.341, 3.12]} - }, - { - 'symbol': 'Ni', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [8333, 1008.6, 870, 852.7, 110.8, 68, 66.2], 'rsf': [.0001, 5.16, 7.57, 14.61, .892, .757, 1.46]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [848, 61], 'rsf': [.316, 2.65]} - }, - { - 'symbol': 'Cu', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [8979, 1096.7, 952.3, 932.7, 122.5, 77.3, 75.1], 'rsf': [.0001, 5.46, 8.66, 16.73, .957, .848, 1.63]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [920, 60], 'rsf': [.294, 2.41]} - }, - { - 'symbol': 'Zn', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [9659, 1196.2, 1044.9, 1021.8, 139.8, 91.4, 88.6, 10.2, 10.1], 'rsf': [.0001, 5.76, 9.8, 18.92, 1.04, .968, 1.86, .33, .48]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [994, 59], 'rsf': [.271, 1.98]} - }, - { - 'symbol': 'Ga', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [10367, 1299, 1143.2, 1116.4, 159.5, 103.5, 100, 18.7, 18.7], 'rsf': [.0001, 6.07, 11.09, 21.4, 1.13, 1.1, 2.11, .442, .643]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1070, 55], 'rsf': [.25, 1.57]} - }, - { - 'symbol': 'Ge', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [11103, 1414.6, 1248.1, 1217, 180.1, 124.9, 120.8, 29.8, 29.2], 'rsf': [.0001, 6.31, 12.52, 24.15, 1.23, 1.24, 2.39, .578, .842]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1147, 23], 'rsf': [.229, 1.27]} - }, - { - 'symbol': 'As', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [11867, 1527, 1359.1, 1323.6, 204.7, 146.2, 141.2, 41.7, 41.7], 'rsf': [.0001, .0001, 14.07, 27.19, 1.32, 1.39, 2.68, .741, 1.08]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1228, 31], 'rsf': [.211, 1.06]} - }, - { - 'symbol': 'Se', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [12658, 1652, 1474.3, 1433.9, 229.6, 166.5, 160.7, 55.5, 54.6], 'rsf': [.0001, .0001, 13.66, 25.9, 1.43, 1.55, 2.98, .934, 1.36]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1315, 43], 'rsf': [.194, 5.44]} - }, - { - 'symbol': 'Br', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [13474, 1782, 1596, 1550, 257, 189, 182, 70, 69], 'rsf': [.0001, .0001, .0001, .0001, 1.53, 1.72, 3.31, 1.16, 1.68]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1396, 55], 'rsf': [.179, 4.37]} - }, - { - 'symbol': 'Kr', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [14326, 1921, 1730.9, 1678.4, 292.8, 222.2, 214.4, 95, 93.8, 27.5, 14.1, 14.1], 'rsf': [.0001, .0001, .0001, .0001, 1.64, 1.89, 3.65, 1.42, 2.06, .213, .1643, .312]}, - 'aes': {'trans': ['LMM'], 'ke': [1474], 'rsf': [.164]} - }, - { - 'symbol': 'Rb', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [15200, 2065, 1864, 1804, 326.7, 248.7, 239.1, 113, 112, 30.5, 16.3, 15.3], 'rsf': [.0001, .0001, .0001, .0001, 1.75, 2.07, 4, 1.72, 2.49, .251, .214, .411]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1565, 76], 'rsf': [.152, 2.63]} - }, - { - 'symbol': 'Sr', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [16105, 2216, 2007, 1940, 358.7, 280.3, 270, 136, 134.2, 38.9, 21.3, 20.1], 'rsf': [.0001, .0001, .0001, .0001, 1.86, 2.25, 4.37, 2.06, 2.99, .291, .265, .51]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1649, 110], 'rsf': [.14, 2.17]} - }, - { - 'symbol': 'Y', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [17038, 2373, 2156, 2080, 392, 310.6, 298.8, 157.7, 155.8, 43.8, 24.4, 23.1], 'rsf': [.0001, .0001, .0001, .0001, 1.98, 2.44, 4.75, 2.44, 3.54, .329, .311, .599]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1746, 127], 'rsf': [.129, 1.86]} - }, - { - 'symbol': 'Zr', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [17998, 2532, 2307, 2223, 430.3, 343.5, 329.8, 181.1, 178.8, 50.6, 28.5, 27.1], 'rsf': [.0001, .0001, .0001, .0001, 2.1, 2.64, 5.14, 2.87, 4.17, .367, .357, .689]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1845, 147], 'rsf': [.119, 1.66]} - }, - { - 'symbol': 'Nb', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [18986, 2698, 2465, 2371, 466.6, 376.1, 360.6, 205, 202.3, 56.4, 32.6, 30.8], 'rsf': [.0001, .0001, .0001, .0001, 2.22, 2.84, 5.53, 3.35, 4.86, .402, .398, .767]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [1944, 167], 'rsf': [.11, 1.5]} - }, - { - 'symbol': 'Mo', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [20000, 2866, 2625, 2520, 506.3, 411.6, 394, 231.1, 227.9, 63.2, 37.6, 35.5], 'rsf': [.0001, .0001, .0001, .0001, 2.34, 3.04, 5.94, 3.88, 5.62, .44, .445, .86]}, - 'aes': {'trans': ['LMM', 'MNN'], 'ke': [2044, 186], 'rsf': [.101, 1.39]} - }, - { - 'symbol': 'Tc', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [21044, 3043, 2793, 2677, 544, 447.6, 417.7, 257.6, 253.9, 69.5, 42.3, 39.9], 'rsf': [.0001, .0001, .0001, .0001, 2.45, 3.23, 6.36, 4.46, 6.47, .479, .494, .955]}, - 'aes': {'trans': ['MNN'], 'ke': [249], 'rsf': [1.29]} - }, - { - 'symbol': 'Ru', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [22117, 3224, 2967, 2838, 586.1, 483.5, 461.4, 284.2, 280, 75, 46.3, 43.2], 'rsf': [.0001, .0001, .0001, .0001, 2.57, 3.44, 6.78, 5.1, 7.39, .519, .544, 1.05]}, - 'aes': {'trans': ['MNN'], 'ke': [273], 'rsf': [1.2]} - }, - { - 'symbol': 'Rh', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [23220, 3412, 3146, 3004, 628.1, 521.3, 496.5, 311.9, 307.2, 81.4, 50.5, 47.3], 'rsf': [.0001, .0001, .0001, .0001, 2.7, 3.64, 7.21, 5.8, 8.39, .56, .595, 1.15]}, - 'aes': {'trans': ['MNN'], 'ke': [302], 'rsf': [1.13]} - }, - { - 'symbol': 'Pd', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [24350, 3604, 3330, 3173, 671.6, 559.9, 532.3, 340.5, 335.2, 87.1, 55.7, 50.9], 'rsf': [.0001, .0001, .0001, .0001, 2.81, 3.83, 7.63, 6.56, 9.48, .598, .641, 1.24]}, - 'aes': {'trans': ['MNN'], 'ke': [330], 'rsf': [1.07]} - }, - { - 'symbol': 'Ag', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [25514, 3806, 3524, 3351, 719, 603.8, 573, 374, 368.3, 97, 63.7, 58.3], 'rsf': [.0001, .0001, .0001, .0001, 2.93, 4.03, 8.06, 7.38, 10.66, .644, .7, 1.36]}, - 'aes': {'trans': ['MNN'], 'ke': [351], 'rsf': [1]} - }, - { - 'symbol': 'Cd', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [26711, 4018, 3727, 3538, 772, 652.6, 618.4, 411.9, 405.2, 109.8, 63.9, 63.9, 11.7, 10.7], 'rsf': [.0001, .0001, .0001, .0001, 3.04, 4.22, 8.5, 8.27, 11.95, .692, .762, 1.49, .778, 1.11]}, - 'aes': {'trans': ['MNN'], 'ke': [376], 'rsf': [.931]} - }, - { - 'symbol': 'In', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [27940, 4238, 3938, 3730, 827.2, 703.2, 665.3, 451.4, 443.9, 122.9, 73.5, 73.5, 17.7, 16.9], 'rsf': [.0001, .0001, .0001, .0001, 3.16, 4.4, 8.93, 9.22, 13.32, .742, .828, 1.62, .935, 1.34]}, - 'aes': {'trans': ['MNN'], 'ke': [404], 'rsf': [.867]} - }, - { - 'symbol': 'Sn', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [29200, 4465, 4156, 3929, 884.7, 756.5, 714.6, 493.2, 484.9, 137.1, 83.6, 83.6, 24.9, 23.9], 'rsf': [.0001, .0001, .0001, .0001, 3.26, 4.58, 9.35, 10.25, 14.8, .794, .897, 1.77, 1.11, 1.59]}, - 'aes': {'trans': ['MNN'], 'ke': [430], 'rsf': [.809]} - }, - { - 'symbol': 'Sb', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [30491, 4698, 4380, 4132, 946, 812.7, 766.4, 537.5, 528.2, 153.2, 95.6, 95.6, 33.3, 32.1], 'rsf': [.0001, .0001, .0001, .0001, 3.36, 4.76, 9.77, 11.35, 16.39, .848, .968, 1.91, 1.29, 1.85]}, - 'aes': {'trans': ['MNN'], 'ke': [454], 'rsf': [.759]} - }, - { - 'symbol': 'Te', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [31814, 4939, 4612, 4341, 1006, 870.8, 820, 583.4, 573, 169.4, 103.3, 103.3, 41.9, 40.4], 'rsf': [.0001, .0001, .0001, .0001, 3.46, 4.92, 10.21, 12.52, 18.06, .903, 1.04, 2.07, 1.49, 2.14]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [483, 31], 'rsf': [.713, .0001]} - }, - { - 'symbol': 'I', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [33169, 5188, 4852, 4557, 1072, 931, 875, 630.8, 619.3, 186, 123, 123, 50.6, 48.9], 'rsf': [.0001, .0001, .0001, .0001, 3.53, 5.06, 10.62, 13.77, 19.87, .959, 1.11, 2.23, 1.69, 2.44]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [511, 37], 'rsf': [.67, .0001]} - }, - { - 'symbol': 'Xe', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [34561, 5453, 5107, 4786, 1148.7, 1002.1, 940.6, 689, 676.4, 213.2, 146.7, 145.5, 69.5, 67.5, 23.3, 13.4, 12.1], 'rsf': [.0001, .0001, .0001, .0001, 3.62, 5.2, 10.99, 15.1, 21.79, 1.02, 1.19, 2.39, 1.92, 2.76, .1596, .1361, .26]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [532, 41], 'rsf': [.626, .0001]} - }, - { - 'symbol': 'Cs', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [35985, 5714, 5359, 5012, 1211, 1071, 1003, 740.5, 726.6, 232.3, 172.4, 161.3, 79.8, 77.5, 22.7, 14.2, 12.1], 'rsf': [.0001, .0001, .0001, .0001, 3.73, 5.29, 11.38, 16.46, 23.76, 1.08, 1.27, 2.56, 2.15, 3.1, .1843, .1697, .332]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [563, 47], 'rsf': [.589, .0001]} - }, - { - 'symbol': 'Ba', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [37441, 5989, 5624, 5247, 1293, 1137, 1063, 795.7, 780.5, 253.5, 192, 178.6, 92.6, 89.9, 30.3, 17, 14.8], 'rsf': [.0001, .0001, .0001, .0001, 3.84, 5.42, 11.71, 17.92, 25.84, 1.13, 1.34, 2.73, 2.4, 3.46, .21, .202, .4]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [584, 57], 'rsf': [.554, 3.41]} - }, - { - 'symbol': 'La', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [38925, 6266, 5891, 5483, 1362, 1209, 1128, 853, 836, 274.7, 205.8, 196, 105.3, 102.5, 34.3, 19.3, 16.8], 'rsf': [.0001, .0001, .0001, .0001, 3.89, 5.55, 12.11, 19.5, 28.12, 1.19, 1.42, 2.91, 2.67, 3.85, .234, .23, .458]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [625, 78], 'rsf': [.527, 3.12]} - }, - { - 'symbol': 'Ce', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [40443, 6549, 6164, 5723, 1436, 1274, 1187, 902.4, 883.8, 291, 223.2, 206.5, 109, .1, .1, 37.8, 19.8, 17], 'rsf': [.0001, .0001, .0001, .0001, 3.93, 5.66, 12.53, 21.12, 30.5, 1.24, 1.47, 3.03, 2.84, .0609, .078, .23, .221, .439]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [661, 82], 'rsf': [.503, 2.79]} - }, - { - 'symbol': 'Pr', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [41991, 6835, 6440, 5964, 1511, 1337, 1242, 948.3, 928.8, 304.5, 236.3, 217.6, 115.1, 115.1, 2, 2, 37.4, 22.3, 22.3], 'rsf': [.0001, .0001, .0001, .0001, 3.98, 5.75, 12.94, 22.72, 32.85, 1.28, 1.53, 3.17, 3.07, 4.41, .1115, .143, .238, .229, .456]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [699, 87], 'rsf': [.485, 2.72]} - }, - { - 'symbol': 'Nd', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [43569, 7126, 6722, 6208, 1575, 1403, 1297, 1003.3, 980.4, 319.2, 243.3, 224.6, 120.5, 120.5, 1.5, 1.5, 37.5, 21.1, 21.1], 'rsf': [.0001, .0001, .0001, .0001, .0001, 5.75, 13.35, 24.27, 35.29, 1.33, 1.59, 3.31, 3.29, 4.74, .1788, .228, .247, .236, .472]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [730, 91], 'rsf': [.469, 2.65]} - }, - { - 'symbol': 'Pm', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [45184, 7428, 7013, 6459, 1471, 1357, 1052, 1027, 242, 242, 120, 120], 'rsf': [.0001, .0001, .0001, .0001, 5.72, 13.66, 26.08, 37.65, 1.64, 3.45, 3.52, 5.07]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Sm', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [46834, 7737, 7312, 6716, 1723, 1541, 1420, 1110.9, 1083.4, 347.2, 265.6, 247.4, 129, 129, 5.2, 5.2, 37.4, 21.3, 21.3], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, 13.84, 27.96, 40.37, 1.42, 1.7, 3.59, 3.76, 5.4, .374, .477, .261, .249, .501]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [814, 100], 'rsf': [.435, 2.43]} - }, - { - 'symbol': 'Eu', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [48519, 8052, 7617, 6977, 1800, 1614, 1481, 1158.6, 1127.5, 360, 284, 257, 133, 127.7, 32, 22, 22], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, 14.3, 29.91, 43.24, 1.46, 1.75, 3.72, 3.99, 5.74, .268, .255, .515]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [858, 109], 'rsf': [.42, 2.37]} - }, - { - 'symbol': 'Gd', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [50239, 8376, 7930, 7243, 1881, 1688, 1544, 1221.9, 1189.6, 378.6, 286, 271, 142.6, 8.6, 8.6, 36, 28, 21], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, 31.98, 46.23, 1.51, 1.8, 3.88, 6.14, .63, .804, .288, .279, .568]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [895, 138], 'rsf': [.405, 2.26]} - }, - { - 'symbol': 'Tb', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [51996, 8708, 8252, 7514, 1968, 1768, 1611, 1276.9, 1241.1, 396, 322.4, 284.1, 150.5, 150.5, 7.7, 2.4, 45.6, 28.7, 22.6], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, 34.2, 49.42, 1.54, 1.84, 3.99, 4.46, 6.41, .867, 1.1, .281, .265, .539]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1073, 146], 'rsf': [.39, 2.15]} - }, - { - 'symbol': 'Dy', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [53789, 9046, 8581, 7790, 2047, 1842, 1676, 1333, 1292.6, 414.2, 333.5, 293.2, 153.6, 153.6, 8, 4.3, 49.9, 26.3, 26.3], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, 36.65, 52.83, 1.58, 1.88, 4.12, 4.69, 6.74, 1.1, 1.39, .287, .27, .551]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1126, 151], 'rsf': [.377, 2.07]} - }, - { - 'symbol': 'Ho', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [55618, 9394, 8918, 8071, 2128, 1923, 1741, 1392, 1351, 432.4, 343.5, 308.2, 160, 160, 8.6, 5.2, 49.3, 30.8, 24.1], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, 39.19, 56.66, 1.61, 1.91, 4.24, 4.92, 7.08, 1.37, 1.73, .293, .274, .562]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1175, 157], 'rsf': [.365, 1.98]} - }, - { - 'symbol': 'Er', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [57486, 9751, 9264, 8358, 2207, 2006, 1812, 1453, 1409, 449.8, 366.2, 320.2, 167.6, 167.6, 4.7, 50.6, 31.4, 24.7], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, 36.7, 60.42, 1.64, 1.95, 4.37, 5.15, 7.41, 2.13, .298, .277, .572]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1393, 163], 'rsf': [.352, 1.87]} - }, - { - 'symbol': 'Tm', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [59390, 10116, 9617, 8648, 2307, 2090, 1885, 1515, 1468, 470.9, 385.9, 332.6, 175.5, 175.5, 4.6, 54.7, 31.8, 25], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 41.01, 1.67, 1.98, 4.48, 5.38, 7.74, 2.59, .303, .281, .583]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1449, 166], 'rsf': [.34, 1.78]} - }, - { - 'symbol': 'Yb', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [61332, 10486, 9978, 8944, 2398, 2173, 1950, 1576, 1528, 480.5, 388.7, 339.7, 191.2, 182.4, 2.5, 1.3, 52, 30.3, 24.1], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.7, 2, 4.6, 5.61, 8.07, 2.47, 3.11, .308, .284, .592]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1514, 170], 'rsf': [.329, 1.69]} - }, - { - 'symbol': 'Lu', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [63314, 10870, 10349, 9244, 2491, 2264, 2024, 1639, 1589, 506.8, 412.4, 359.2, 206.1, 196.3, 8.9, 7.5, 57.3, 33.6, 26.7], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.73, 2.03, 4.74, 5.87, 8.45, 2.87, 3.63, .326, .304, .645]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1573, 177], 'rsf': [.317, 1.61]} - }, - { - 'symbol': 'Hf', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [65351, 11271, 10739, 9561, 2601, 2365, 2108, 1716, 1662, 538, 438.2, 380.7, 220, 211.5, 15.9, 14.2, 64.2, 38, 29.9], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.76, 2.06, 4.88, 6.13, 8.84, 3.32, 4.2, .344, .325, .699]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1624, 185], 'rsf': [.303, 1.47]} - }, - { - 'symbol': 'Ta', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [67416, 11682, 11136, 9881, 2708, 2469, 2194, 1793, 1735, 563.4, 463.4, 400.9, 237.9, 226.4, 23.5, 21.6, 69.7, 42.2, 32.7], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.79, 2.08, 5.02, 6.4, 9.24, 3.8, 4.82, .363, .346, .754]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1680, 179], 'rsf': [.29, 1.35]} - }, - { - 'symbol': 'W', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [69525, 12100, 11544, 10207, 2820, 2575, 2281, 1872, 1809, 594.1, 490.4, 423.6, 255.9, 243.5, 33.6, 31.4, 75.6, 45.3, 36.8], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.81, 2.1, 5.16, 6.68, 9.65, 4.32, 5.48, .383, .367, .811]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1736, 179], 'rsf': [.278, 1.25]} - }, - { - 'symbol': 'Re', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [71676, 12527, 11959, 10535, 2932, 2682, 2367, 1949, 1883, 625.4, 518.7, 446.8, 273.9, 260.5, 42.9, 40.5, 83, 45.6, 34.6], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.84, 2.12, 5.3, 6.95, 10.06, 4.88, 6.2, .402, .387, .869]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1799, 176], 'rsf': [.267, 1.17]} - }, - { - 'symbol': 'Os', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [73871, 12968, 12385, 10871, 3049, 2792, 2457, 2031, 1960, 658.2, 549.1, 470.7, 293.1, 278.5, 53.4, 50.7, 84, 58, 44.5], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.86, 2.13, 5.45, 7.23, 10.48, 5.48, 6.96, .422, .408, .928]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1850, 170], 'rsf': [.255, 1.11]} - }, - { - 'symbol': 'Ir', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [76111, 13419, 12824, 11215, 3174, 2909, 2551, 2116, 2040, 691.1, 577.8, 495.8, 311.9, 296.3, 63.8, 60.8, 95.2, 63, 48], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.88, 2.14, 5.59, 7.51, 10.9, 6.12, 7.78, .438, .422, .967]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1908, 171], 'rsf': [.244, 1.01]} - }, - { - 'symbol': 'Pt', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [78395, 13880, 13273, 11564, 3296, 3027, 2645, 2202, 2122, 725.4, 609.1, 519.4, 331.6, 314.6, 74.5, 71.2, 101.7, 65.3, 51.7], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.9, 2.14, 5.74, 7.78, 11.32, 6.81, 8.65, .459, .444, 1.04]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [1967, 168], 'rsf': [.234, 5.48]} - }, - { - 'symbol': 'Au', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [80725, 14353, 13734, 11919, 3425, 3148, 2743, 2291, 2206, 762.1, 642.7, 546.3, 353.2, 335.1, 87.6, 84, 107.2, 74.2, 57.2], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.92, 2.14, 5.89, 8.06, 11.74, 7.54, 9.58, .479, .463, 1.1]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [2024, 239], 'rsf': [.223, 4.6]} - }, - { - 'symbol': 'Hg', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [83102, 14839, 14209, 12284, 3562, 3279, 2847, 2385, 2295, 802.2, 680.2, 576.6, 378.2, 358.8, 104, 99.9, 127, 83.1, 64.5, 9.6, 7.8], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.94, 2.14, 6.04, 8.33, 12.17, 8.32, 10.57, .5, .484, 1.17, .869, 1.21]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [2078, 241], 'rsf': [.213, 3.78]} - }, - { - 'symbol': 'Tl', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [85530, 15347, 14698, 12658, 3704, 3416, 2957, 2485, 2389, 846.2, 720.5, 609.5, 405.7, 385, 122.2, 117.8, 136, 94.6, 73.5, 14.7, 12.5], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.95, 2.13, 6.19, 8.6, 12.6, 9.14, 11.62, .52, .505, 1.25, .991, 1.39]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [2134, 244], 'rsf': [.202, 3.06]} - }, - { - 'symbol': 'Pb', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [88005, 15861, 15200, 13035, 3851, 3554, 3066, 2586, 2484, 891.8, 761.9, 643.5, 434.3, 412.2, 141.7, 136.9, 147, 106.4, 83.3, 20.7, 18.1], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.96, 2.12, 6.33, 8.87, 13.02, 10.01, 12.73, .542, .526, 1.33, 1.11, 1.58]}, - 'aes': {'trans': ['MNN', 'NOO'], 'ke': [2186, 249], 'rsf': [.192, 2.58]} - }, - { - 'symbol': 'Bi', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [90524, 16388, 15711, 13419, 3999, 3696, 3177, 2688, 2580, 939, 805.2, 678.8, 464, 440.1, 162.3, 157, 159.3, 119, 92.6, 26.9, 23.8], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.96, 2.1, 6.48, 9.14, 13.44, 10.93, 13.9, .563, .546, 1.41, 1.24, 1.76]}, - 'aes': {'trans': ['MNN'], 'ke': [2243], 'rsf': [.183]} - }, - { - 'symbol': 'Po', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [93105, 16939, 16244, 13814, 4149, 3854, 3302, 2798, 2683, 995, 851, 705, 500, 473, 184, 184, 177, 132, 104, 31, 31], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.97, 2.07, 6.62, 9.4, 13.87, 11.9, 15.14, .584, .566, 1.5, 1.36, 1.95]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'At', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [95730, 17493, 16785, 14214, 4317, 4008, 3426, 2909, 2787, 1042, 886, 740, 533, 507, 210, 210, 195, 148, 115, 40, 40], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.96, 2.04, 6.77, 9.65, 14.29, 12.92, 16.44, .605, .584, 1.58, 1.49, 2.14]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Rn', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s'], 'be': [98404, 18049, 17337, 14619, 4482, 4159, 3538, 3022, 2892, 1097, 929, 768, 567, 541, 238, 238, 214, 164, 127, 48, 48, 26], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.95, 2, 6.92, 9.9, 14.7, 14, 17.81, .625, .602, 1.67, 1.62, 2.33, .1129]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Fr', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [101137, 18639, 17907, 15031, 4652, 4327, 3663, 3136, 3000, 1153, 980, 810, 603, 577, 268, 268, 234, 182, 140, 58, 58, 34, 15, 15], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.95, 1.97, 7.07, 10.16, 15.11, 15.12, 19.24, .645, .618, 1.77, 1.75, 2.53, .1257, .0966, .24]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Ra', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [103922, 19237, 18484, 15444, 4822, 4490, 3792, 3248, 3105, 1208, 1058, 879, 636, 603, 299, 299, 254, 200, 153, 68, 68, 44, 19, 19], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.95, 1.91, 7.2, 10.4, 15.53, 16.3, 20.74, .665, .633, 1.86, 1.88, 2.73, .1383, .1099, .286]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Ac', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [106755, 19840, 19083, 15871, 5002, 4656, 3909, 3370, 3219, 1269, 1080, 890, 675, 639, 319, 319, 272, 215, 167, 80, 80], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.95, 1.86, 7.33, 10.61, 15.93, 17.53, 22.3, .684, .647, 1.95, 2.02, 2.94]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Th', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [109651, 20472, 19693, 16300, 5182, 4830, 4046, 3491, 3332, 1330, 1168, 966.4, 712.1, 675.2, 342.4, 333.1, 290, 229, 182, 92.5, 85.4, 41.4, 24.5, 16.6], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.95, 1.9, 7.46, 10.82, 16.31, 18.81, 23.94, .702, .66, 2.05, 2.15, 3.15, .1625, .1325, .366]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'Pa', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [112601, 21105, 20314, 16733, 5367, 5001, 4174, 3611, 3442, 1387, 1224, 1007, 743, 708, 371, 360, 310, 232, 232, 94, 94], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.92, 1.74, 7.61, 11.04, 16.47, 20.12, 25.6, .718, .667, 2.13, 2.25, 3.29]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - }, - { - 'symbol': 'U', - 'alka': {'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [115606, 21757, 20948, 17166, 5548, 5182, 4303, 3728, 3552, 1439, 1271, 1043, 778.3, 736.2, 388.2, 377.4, 321, 257, 192, 102.8, 94.2, 43.9, 26.8, 16.8], 'rsf': [.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001, 1.9, 1.68, 7.71, 11.25, 17.05, 21.5, 27.36, .732, .674, 2.22, 2.36, 3.46, .1682, .133, .376]}, - 'aes': {'trans': [], 'ke': [], 'rsf': []} - } - ] diff --git a/Python/elements.csv b/Python/elements.csv new file mode 100644 index 0000000..36fb345 --- /dev/null +++ b/Python/elements.csv @@ -0,0 +1,93 @@ +symbol,period,group_id,series_id,alka,aes,atomic_number,cpk_color,jmol_color,series_name,series_color +H,1,1.0,1,"{'trans': ['1s'], 'be': [13.6], 'rsf': [0.0002]}","{'trans': [], 'ke': [], 'rsf': []}",1,#ffffff,#ffffff,Nonmetals,#baa2a6 +He,1,18.0,2,"{'trans': ['1s'], 'be': [24.6], 'rsf': [0.0082]}","{'trans': [], 'ke': [], 'rsf': []}",2,#ffc0cb,#d9ffff,Noble gases,#bbbb88 +Li,2,1.0,3,"{'trans': ['1s'], 'be': [54.7], 'rsf': [0.0568]}","{'trans': ['KLL'], 'ke': [43], 'rsf': [0.977]}",3,#b22222,#cc80ff,Alkali metals,#a6cee3 +Be,2,2.0,4,"{'trans': ['1s'], 'be': [111.5], 'rsf': [0.1947]}","{'trans': ['KLL'], 'ke': [104], 'rsf': [0.456]}",4,#ff1493,#c2ff00,Alkaline earth metals,#1f78b4 +B,2,13.0,5,"{'trans': ['1s'], 'be': [188], 'rsf': [0.486]}","{'trans': ['KLL'], 'ke': [179], 'rsf': [0.289]}",5,#00ff00,#ffb5b5,Metalloids,#33a02c +C,2,14.0,1,"{'trans': ['1s'], 'be': [284.2], 'rsf': [1]}","{'trans': ['KLL'], 'ke': [272], 'rsf': [0.209]}",6,#c8c8c8,#909090,Nonmetals,#baa2a6 +N,2,15.0,1,"{'trans': ['1s', '2s'], 'be': [409.9, 37.3], 'rsf': [1.8, 0.0867]}","{'trans': ['KLL'], 'ke': [379], 'rsf': [0.159]}",7,#8f8fff,#3050f8,Nonmetals,#baa2a6 +O,2,16.0,1,"{'trans': ['1s', '2s'], 'be': [543.1, 41.6], 'rsf': [2.93, 0.1405]}","{'trans': ['KLL'], 'ke': [503], 'rsf': [0.129]}",8,#f00000,#ff0d0d,Nonmetals,#baa2a6 +F,2,17.0,6,"{'trans': ['1s'], 'be': [696.7], 'rsf': [4.43]}","{'trans': ['KLL'], 'ke': [647], 'rsf': [0.105]}",9,#daa520,#90e050,Halogens,#fdbf6f +Ne,2,18.0,2,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [870.2, 48.5, 21.7, 21.6], 'rsf': [6.3, 0.296, 0.0347, 0.0683]}","{'trans': ['KLL'], 'ke': [805], 'rsf': [0.0846]}",10,#ff1493,#b3e3f5,Noble gases,#bbbb88 +Na,3,1.0,3,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1070.8, 63.5, 30.65, 30.81], 'rsf': [8.52, 0.422, 0.0654, 0.1287]}","{'trans': ['KLL'], 'ke': [990], 'rsf': [0.0714]}",11,#0000ff,#ab5cf2,Alkali metals,#a6cee3 +Mg,3,2.0,4,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1303, 88.7, 49.78, 49.5], 'rsf': [11.18, 0.575, 0.1125, 0.221]}","{'trans': ['KLL', 'LMM'], 'ke': [1186, 45], 'rsf': [0.0593, 3.43]}",12,#228b22,#8aff00,Alkaline earth metals,#1f78b4 +Al,3,13.0,7,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1559.6, 117.8, 72.95, 72.55], 'rsf': [0.0001, 0.753, 0.1811, 0.356]}","{'trans': ['KLL', 'LMM'], 'ke': [1396, 68], 'rsf': [0.0497, 2.44]}",13,#808090,#bfa6a6,Poor metals,#b2df8a +Si,3,14.0,5,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [1839, 149.7, 99.82, 99.42], 'rsf': [0.0001, 0.955, 0.276, 0.541]}","{'trans': ['KLL', 'LMM'], 'ke': [1619, 92], 'rsf': [0.0417, 1.78]}",14,#daa520,#f0c8a0,Metalloids,#33a02c +P,3,15.0,1,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [2145.5, 189, 136, 135], 'rsf': [0.0001, 1.18, 0.403, 0.789]}","{'trans': ['KLL', 'LMM'], 'ke': [1859, 120], 'rsf': [0.035, 1.36]}",15,#ffa500,#ff8000,Nonmetals,#baa2a6 +S,3,16.0,1,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [2472, 230.9, 163.6, 162.5], 'rsf': [0.0001, 1.43, 0.567, 1.11]}","{'trans': ['KLL', 'LMM'], 'ke': [2117, 152], 'rsf': [0.0295, 1.14]}",16,#ffc832,#ffff30,Nonmetals,#baa2a6 +Cl,3,17.0,6,"{'trans': ['1s', '2s', '2p1/2', '2p3/2'], 'be': [2822.4, 270, 202, 200], 'rsf': [0.0001, 1.69, 0.775, 1.51]}","{'trans': ['KLL', 'LMM'], 'ke': [2378, 181], 'rsf': [0.0001, 0.984]}",17,#00ff00,#1ff01f,Halogens,#fdbf6f +Ar,3,18.0,2,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [3205.9, 326.3, 250.6, 248.4, 29.3, 15.9, 15.7], 'rsf': [0.0001, 1.97, 1.03, 2.01, 0.227, 0.0821, 0.1597]}","{'trans': ['LMM'], 'ke': [215], 'rsf': [0.827]}",18,#ff1493,#80d1e3,Noble gases,#bbbb88 +K,4,1.0,3,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [3608.4, 378.6, 297.3, 294.6, 34.8, 18.3, 18.3], 'rsf': [0.0001, 2.27, 1.35, 2.62, 0.286, 0.1229, 0.239]}","{'trans': ['LMM'], 'ke': [252], 'rsf': [0.723]}",19,#ff1493,#8f40d4,Alkali metals,#a6cee3 +Ca,4,2.0,4,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [4038.5, 438.4, 349.7, 346.2, 44.3, 25.4, 25.4], 'rsf': [0.0001, 2.59, 1.72, 3.35, 0.351, 0.172, 0.335]}","{'trans': ['LMM', 'MNN'], 'ke': [291, 20], 'rsf': [0.633, 0.0001]}",20,#808090,#3dff00,Alkaline earth metals,#1f78b4 +Sc,4,3.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [4492, 498, 403.6, 398.7, 51.1, 28.3, 28.3], 'rsf': [0.0001, 2.91, 2.17, 4.21, 0.411, 0.221, 0.429]}","{'trans': ['LMM', 'MNN'], 'ke': [340, 24], 'rsf': [0.563, 0.0001]}",21,#ff1493,#e6e6e6,Transition metals,#e08e79 +Ti,4,4.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [4966, 560.9, 460.2, 453.8, 58.7, 32.6, 32.6], 'rsf': [0.0001, 3.24, 2.69, 5.22, 0.473, 0.276, 0.537]}","{'trans': ['LMM', 'MNN'], 'ke': [418, 27], 'rsf': [0.514, 0.0001]}",22,#808090,#bfc2c7,Transition metals,#e08e79 +V,4,5.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [5465, 626.7, 519.8, 512.1, 66.3, 37.2, 37.2], 'rsf': [0.0001, 3.57, 3.29, 6.37, 0.538, 0.339, 0.657]}","{'trans': ['LMM', 'MNN'], 'ke': [473, 31], 'rsf': [0.471, 5.03]}",23,#ff1493,#a6a6ab,Transition metals,#e08e79 +Cr,4,6.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [5989, 696, 583.8, 574.1, 74.1, 42.2, 42.2], 'rsf': [0.0001, 3.91, 3.98, 7.69, 0.596, 0.4, 0.773]}","{'trans': ['LMM', 'MNN'], 'ke': [529, 36], 'rsf': [0.432, 4.6]}",24,#808090,#8a99c7,Transition metals,#e08e79 +Mn,4,7.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [6539, 769.1, 649.9, 638.7, 82.3, 47.2, 47.2], 'rsf': [0.0001, 4.23, 4.74, 9.17, 0.674, 0.485, 0.938]}","{'trans': ['LMM', 'MNN'], 'ke': [589, 40], 'rsf': [0.397, 3.96]}",25,#808090,#9c7ac7,Transition metals,#e08e79 +Fe,4,8.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [7112, 844.6, 719.9, 706.8, 91.3, 52.7, 52.7], 'rsf': [0.0001, 4.57, 5.6, 10.82, 0.745, 0.569, 1.1]}","{'trans': ['LMM', 'MNN'], 'ke': [703, 47], 'rsf': [0.367, 3.5]}",26,#ffa500,#e06633,Transition metals,#e08e79 +Co,4,9.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [7709, 925.1, 793.2, 778.1, 101, 58.9, 59.9], 'rsf': [0.0001, 4.88, 6.54, 12.62, 0.818, 0.66, 1.27]}","{'trans': ['LMM', 'MNN'], 'ke': [775, 53], 'rsf': [0.341, 3.12]}",27,#ff1493,#f090a0,Transition metals,#e08e79 +Ni,4,10.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [8333, 1008.6, 870, 852.7, 110.8, 68, 66.2], 'rsf': [0.0001, 5.16, 7.57, 14.61, 0.892, 0.757, 1.46]}","{'trans': ['LMM', 'MNN'], 'ke': [848, 61], 'rsf': [0.316, 2.65]}",28,#a52a2a,#50d050,Transition metals,#e08e79 +Cu,4,11.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2'], 'be': [8979, 1096.7, 952.3, 932.7, 122.5, 77.3, 75.1], 'rsf': [0.0001, 5.46, 8.66, 16.73, 0.957, 0.848, 1.63]}","{'trans': ['LMM', 'MNN'], 'ke': [920, 60], 'rsf': [0.294, 2.41]}",29,#a52a2a,#c88033,Transition metals,#e08e79 +Zn,4,12.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [9659, 1196.2, 1044.9, 1021.8, 139.8, 91.4, 88.6, 10.2, 10.1], 'rsf': [0.0001, 5.76, 9.8, 18.92, 1.04, 0.968, 1.86, 0.33, 0.48]}","{'trans': ['LMM', 'MNN'], 'ke': [994, 59], 'rsf': [0.271, 1.98]}",30,#a52a2a,#7d80b0,Transition metals,#e08e79 +Ga,4,13.0,7,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [10367, 1299, 1143.2, 1116.4, 159.5, 103.5, 100, 18.7, 18.7], 'rsf': [0.0001, 6.07, 11.09, 21.4, 1.13, 1.1, 2.11, 0.442, 0.643]}","{'trans': ['LMM', 'MNN'], 'ke': [1070, 55], 'rsf': [0.25, 1.57]}",31,#ff1493,#c28f8f,Poor metals,#b2df8a +Ge,4,14.0,5,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [11103, 1414.6, 1248.1, 1217, 180.1, 124.9, 120.8, 29.8, 29.2], 'rsf': [0.0001, 6.31, 12.52, 24.15, 1.23, 1.24, 2.39, 0.578, 0.842]}","{'trans': ['LMM', 'MNN'], 'ke': [1147, 23], 'rsf': [0.229, 1.27]}",32,#ff1493,#668f8f,Metalloids,#33a02c +As,4,15.0,5,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [11867, 1527, 1359.1, 1323.6, 204.7, 146.2, 141.2, 41.7, 41.7], 'rsf': [0.0001, 0.0001, 14.07, 27.19, 1.32, 1.39, 2.68, 0.741, 1.08]}","{'trans': ['LMM', 'MNN'], 'ke': [1228, 31], 'rsf': [0.211, 1.06]}",33,#ff1493,#bd80e3,Metalloids,#33a02c +Se,4,16.0,1,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [12658, 1652, 1474.3, 1433.9, 229.6, 166.5, 160.7, 55.5, 54.6], 'rsf': [0.0001, 0.0001, 13.66, 25.9, 1.43, 1.55, 2.98, 0.934, 1.36]}","{'trans': ['LMM', 'MNN'], 'ke': [1315, 43], 'rsf': [0.194, 5.44]}",34,#ff1493,#ffa100,Nonmetals,#baa2a6 +Br,4,17.0,6,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2'], 'be': [13474, 1782, 1596, 1550, 257, 189, 182, 70, 69], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 1.53, 1.72, 3.31, 1.16, 1.68]}","{'trans': ['LMM', 'MNN'], 'ke': [1396, 55], 'rsf': [0.179, 4.37]}",35,#a52a2a,#a62929,Halogens,#fdbf6f +Kr,4,18.0,2,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [14326, 1921, 1730.9, 1678.4, 292.8, 222.2, 214.4, 95, 93.8, 27.5, 14.1, 14.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 1.64, 1.89, 3.65, 1.42, 2.06, 0.213, 0.1643, 0.312]}","{'trans': ['LMM'], 'ke': [1474], 'rsf': [0.164]}",36,#ff1493,#5cb8d1,Noble gases,#bbbb88 +Rb,5,1.0,3,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [15200, 2065, 1864, 1804, 326.7, 248.7, 239.1, 113, 112, 30.5, 16.3, 15.3], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 1.75, 2.07, 4, 1.72, 2.49, 0.251, 0.214, 0.411]}","{'trans': ['LMM', 'MNN'], 'ke': [1565, 76], 'rsf': [0.152, 2.63]}",37,#ff1493,#702eb0,Alkali metals,#a6cee3 +Sr,5,2.0,4,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [16105, 2216, 2007, 1940, 358.7, 280.3, 270, 136, 134.2, 38.9, 21.3, 20.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 1.86, 2.25, 4.37, 2.06, 2.99, 0.291, 0.265, 0.51]}","{'trans': ['LMM', 'MNN'], 'ke': [1649, 110], 'rsf': [0.14, 2.17]}",38,#ff1493,#00ff00,Alkaline earth metals,#1f78b4 +Y,5,3.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [17038, 2373, 2156, 2080, 392, 310.6, 298.8, 157.7, 155.8, 43.8, 24.4, 23.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 1.98, 2.44, 4.75, 2.44, 3.54, 0.329, 0.311, 0.599]}","{'trans': ['LMM', 'MNN'], 'ke': [1746, 127], 'rsf': [0.129, 1.86]}",39,#ff1493,#94ffff,Transition metals,#e08e79 +Zr,5,4.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [17998, 2532, 2307, 2223, 430.3, 343.5, 329.8, 181.1, 178.8, 50.6, 28.5, 27.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.1, 2.64, 5.14, 2.87, 4.17, 0.367, 0.357, 0.689]}","{'trans': ['LMM', 'MNN'], 'ke': [1845, 147], 'rsf': [0.119, 1.66]}",40,#ff1493,#94e0e0,Transition metals,#e08e79 +Nb,5,5.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [18986, 2698, 2465, 2371, 466.6, 376.1, 360.6, 205, 202.3, 56.4, 32.6, 30.8], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.22, 2.84, 5.53, 3.35, 4.86, 0.402, 0.398, 0.767]}","{'trans': ['LMM', 'MNN'], 'ke': [1944, 167], 'rsf': [0.11, 1.5]}",41,#ff1493,#73c2c9,Transition metals,#e08e79 +Mo,5,6.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [20000, 2866, 2625, 2520, 506.3, 411.6, 394, 231.1, 227.9, 63.2, 37.6, 35.5], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.34, 3.04, 5.94, 3.88, 5.62, 0.44, 0.445, 0.86]}","{'trans': ['LMM', 'MNN'], 'ke': [2044, 186], 'rsf': [0.101, 1.39]}",42,#ff1493,#54b5b5,Transition metals,#e08e79 +Tc,5,7.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [21044, 3043, 2793, 2677, 544, 447.6, 417.7, 257.6, 253.9, 69.5, 42.3, 39.9], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.45, 3.23, 6.36, 4.46, 6.47, 0.479, 0.494, 0.955]}","{'trans': ['MNN'], 'ke': [249], 'rsf': [1.29]}",43,#ff1493,#3b9e9e,Transition metals,#e08e79 +Ru,5,8.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [22117, 3224, 2967, 2838, 586.1, 483.5, 461.4, 284.2, 280, 75, 46.3, 43.2], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.57, 3.44, 6.78, 5.1, 7.39, 0.519, 0.544, 1.05]}","{'trans': ['MNN'], 'ke': [273], 'rsf': [1.2]}",44,#ff1493,#248f8f,Transition metals,#e08e79 +Rh,5,9.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [23220, 3412, 3146, 3004, 628.1, 521.3, 496.5, 311.9, 307.2, 81.4, 50.5, 47.3], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.7, 3.64, 7.21, 5.8, 8.39, 0.56, 0.595, 1.15]}","{'trans': ['MNN'], 'ke': [302], 'rsf': [1.13]}",45,#ff1493,#0a7d8c,Transition metals,#e08e79 +Pd,5,10.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [24350, 3604, 3330, 3173, 671.6, 559.9, 532.3, 340.5, 335.2, 87.1, 55.7, 50.9], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.81, 3.83, 7.63, 6.56, 9.48, 0.598, 0.641, 1.24]}","{'trans': ['MNN'], 'ke': [330], 'rsf': [1.07]}",46,#ff1493,#006985,Transition metals,#e08e79 +Ag,5,11.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2'], 'be': [25514, 3806, 3524, 3351, 719, 603.8, 573, 374, 368.3, 97, 63.7, 58.3], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 2.93, 4.03, 8.06, 7.38, 10.66, 0.644, 0.7, 1.36]}","{'trans': ['MNN'], 'ke': [351], 'rsf': [1]}",47,#808090,#c0c0c0,Transition metals,#e08e79 +Cd,5,12.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [26711, 4018, 3727, 3538, 772, 652.6, 618.4, 411.9, 405.2, 109.8, 63.9, 63.9, 11.7, 10.7], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.04, 4.22, 8.5, 8.27, 11.95, 0.692, 0.762, 1.49, 0.778, 1.11]}","{'trans': ['MNN'], 'ke': [376], 'rsf': [0.931]}",48,#ff1493,#ffd98f,Transition metals,#e08e79 +In,5,13.0,7,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [27940, 4238, 3938, 3730, 827.2, 703.2, 665.3, 451.4, 443.9, 122.9, 73.5, 73.5, 17.7, 16.9], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.16, 4.4, 8.93, 9.22, 13.32, 0.742, 0.828, 1.62, 0.935, 1.34]}","{'trans': ['MNN'], 'ke': [404], 'rsf': [0.867]}",49,#ff1493,#a67573,Poor metals,#b2df8a +Sn,5,14.0,7,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [29200, 4465, 4156, 3929, 884.7, 756.5, 714.6, 493.2, 484.9, 137.1, 83.6, 83.6, 24.9, 23.9], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.26, 4.58, 9.35, 10.25, 14.8, 0.794, 0.897, 1.77, 1.11, 1.59]}","{'trans': ['MNN'], 'ke': [430], 'rsf': [0.809]}",50,#ff1493,#668080,Poor metals,#b2df8a +Sb,5,15.0,5,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [30491, 4698, 4380, 4132, 946, 812.7, 766.4, 537.5, 528.2, 153.2, 95.6, 95.6, 33.3, 32.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.36, 4.76, 9.77, 11.35, 16.39, 0.848, 0.968, 1.91, 1.29, 1.85]}","{'trans': ['MNN'], 'ke': [454], 'rsf': [0.759]}",51,#ff1493,#9e63b5,Metalloids,#33a02c +Te,5,16.0,5,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [31814, 4939, 4612, 4341, 1006, 870.8, 820, 583.4, 573, 169.4, 103.3, 103.3, 41.9, 40.4], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.46, 4.92, 10.21, 12.52, 18.06, 0.903, 1.04, 2.07, 1.49, 2.14]}","{'trans': ['MNN', 'NOO'], 'ke': [483, 31], 'rsf': [0.713, 0.0001]}",52,#ff1493,#d47a00,Metalloids,#33a02c +I,5,17.0,6,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [33169, 5188, 4852, 4557, 1072, 931, 875, 630.8, 619.3, 186, 123, 123, 50.6, 48.9], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.53, 5.06, 10.62, 13.77, 19.87, 0.959, 1.11, 2.23, 1.69, 2.44]}","{'trans': ['MNN', 'NOO'], 'ke': [511, 37], 'rsf': [0.67, 0.0001]}",53,#a020f0,#940094,Halogens,#fdbf6f +Xe,5,18.0,2,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [34561, 5453, 5107, 4786, 1148.7, 1002.1, 940.6, 689, 676.4, 213.2, 146.7, 145.5, 69.5, 67.5, 23.3, 13.4, 12.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.62, 5.2, 10.99, 15.1, 21.79, 1.02, 1.19, 2.39, 1.92, 2.76, 0.1596, 0.1361, 0.26]}","{'trans': ['MNN', 'NOO'], 'ke': [532, 41], 'rsf': [0.626, 0.0001]}",54,#ff1493,#429eb0,Noble gases,#bbbb88 +Cs,6,1.0,3,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [35985, 5714, 5359, 5012, 1211, 1071, 1003, 740.5, 726.6, 232.3, 172.4, 161.3, 79.8, 77.5, 22.7, 14.2, 12.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.73, 5.29, 11.38, 16.46, 23.76, 1.08, 1.27, 2.56, 2.15, 3.1, 0.1843, 0.1697, 0.332]}","{'trans': ['MNN', 'NOO'], 'ke': [563, 47], 'rsf': [0.589, 0.0001]}",55,#ff1493,#57178f,Alkali metals,#a6cee3 +Ba,6,2.0,4,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [37441, 5989, 5624, 5247, 1293, 1137, 1063, 795.7, 780.5, 253.5, 192, 178.6, 92.6, 89.9, 30.3, 17, 14.8], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.84, 5.42, 11.71, 17.92, 25.84, 1.13, 1.34, 2.73, 2.4, 3.46, 0.21, 0.202, 0.4]}","{'trans': ['MNN', 'NOO'], 'ke': [584, 57], 'rsf': [0.554, 3.41]}",56,#ffa500,#00c900,Alkaline earth metals,#1f78b4 +La,6,3.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [38925, 6266, 5891, 5483, 1362, 1209, 1128, 853, 836, 274.7, 205.8, 196, 105.3, 102.5, 34.3, 19.3, 16.8], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.89, 5.55, 12.11, 19.5, 28.12, 1.19, 1.42, 2.91, 2.67, 3.85, 0.234, 0.23, 0.458]}","{'trans': ['MNN', 'NOO'], 'ke': [625, 78], 'rsf': [0.527, 3.12]}",57,#ff1493,#70d4ff,Lanthanides,#cab2d6 +Ce,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [40443, 6549, 6164, 5723, 1436, 1274, 1187, 902.4, 883.8, 291, 223.2, 206.5, 109, 0.1, 0.1, 37.8, 19.8, 17], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.93, 5.66, 12.53, 21.12, 30.5, 1.24, 1.47, 3.03, 2.84, 0.0609, 0.078, 0.23, 0.221, 0.439]}","{'trans': ['MNN', 'NOO'], 'ke': [661, 82], 'rsf': [0.503, 2.79]}",58,#ff1493,#ffffc7,Lanthanides,#cab2d6 +Pr,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [41991, 6835, 6440, 5964, 1511, 1337, 1242, 948.3, 928.8, 304.5, 236.3, 217.6, 115.1, 115.1, 2, 2, 37.4, 22.3, 22.3], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 3.98, 5.75, 12.94, 22.72, 32.85, 1.28, 1.53, 3.17, 3.07, 4.41, 0.1115, 0.143, 0.238, 0.229, 0.456]}","{'trans': ['MNN', 'NOO'], 'ke': [699, 87], 'rsf': [0.485, 2.72]}",59,#ff1493,#d9ffc7,Lanthanides,#cab2d6 +Nd,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [43569, 7126, 6722, 6208, 1575, 1403, 1297, 1003.3, 980.4, 319.2, 243.3, 224.6, 120.5, 120.5, 1.5, 1.5, 37.5, 21.1, 21.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 5.75, 13.35, 24.27, 35.29, 1.33, 1.59, 3.31, 3.29, 4.74, 0.1788, 0.228, 0.247, 0.236, 0.472]}","{'trans': ['MNN', 'NOO'], 'ke': [730, 91], 'rsf': [0.469, 2.65]}",60,#ff1493,#c7ffc7,Lanthanides,#cab2d6 +Pm,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4p1/2', '4p3/2', '4d3/2', '4d5/2'], 'be': [45184, 7428, 7013, 6459, 1471, 1357, 1052, 1027, 242, 242, 120, 120], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 5.72, 13.66, 26.08, 37.65, 1.64, 3.45, 3.52, 5.07]}","{'trans': [], 'ke': [], 'rsf': []}",61,#ff1493,#a3ffc7,Lanthanides,#cab2d6 +Sm,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [46834, 7737, 7312, 6716, 1723, 1541, 1420, 1110.9, 1083.4, 347.2, 265.6, 247.4, 129, 129, 5.2, 5.2, 37.4, 21.3, 21.3], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 13.84, 27.96, 40.37, 1.42, 1.7, 3.59, 3.76, 5.4, 0.374, 0.477, 0.261, 0.249, 0.501]}","{'trans': ['MNN', 'NOO'], 'ke': [814, 100], 'rsf': [0.435, 2.43]}",62,#ff1493,#8fffc7,Lanthanides,#cab2d6 +Eu,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '5s', '5p1/2', '5p3/2'], 'be': [48519, 8052, 7617, 6977, 1800, 1614, 1481, 1158.6, 1127.5, 360, 284, 257, 133, 127.7, 32, 22, 22], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 14.3, 29.91, 43.24, 1.46, 1.75, 3.72, 3.99, 5.74, 0.268, 0.255, 0.515]}","{'trans': ['MNN', 'NOO'], 'ke': [858, 109], 'rsf': [0.42, 2.37]}",63,#ff1493,#61ffc7,Lanthanides,#cab2d6 +Gd,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [50239, 8376, 7930, 7243, 1881, 1688, 1544, 1221.9, 1189.6, 378.6, 286, 271, 142.6, 8.6, 8.6, 36, 28, 21], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 31.98, 46.23, 1.51, 1.8, 3.88, 6.14, 0.63, 0.804, 0.288, 0.279, 0.568]}","{'trans': ['MNN', 'NOO'], 'ke': [895, 138], 'rsf': [0.405, 2.26]}",64,#ff1493,#45ffc7,Lanthanides,#cab2d6 +Tb,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [51996, 8708, 8252, 7514, 1968, 1768, 1611, 1276.9, 1241.1, 396, 322.4, 284.1, 150.5, 150.5, 7.7, 2.4, 45.6, 28.7, 22.6], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 34.2, 49.42, 1.54, 1.84, 3.99, 4.46, 6.41, 0.867, 1.1, 0.281, 0.265, 0.539]}","{'trans': ['MNN', 'NOO'], 'ke': [1073, 146], 'rsf': [0.39, 2.15]}",65,#ff1493,#30ffc7,Lanthanides,#cab2d6 +Dy,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [53789, 9046, 8581, 7790, 2047, 1842, 1676, 1333, 1292.6, 414.2, 333.5, 293.2, 153.6, 153.6, 8, 4.3, 49.9, 26.3, 26.3], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 36.65, 52.83, 1.58, 1.88, 4.12, 4.69, 6.74, 1.1, 1.39, 0.287, 0.27, 0.551]}","{'trans': ['MNN', 'NOO'], 'ke': [1126, 151], 'rsf': [0.377, 2.07]}",66,#ff1493,#1fffc7,Lanthanides,#cab2d6 +Ho,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [55618, 9394, 8918, 8071, 2128, 1923, 1741, 1392, 1351, 432.4, 343.5, 308.2, 160, 160, 8.6, 5.2, 49.3, 30.8, 24.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 39.19, 56.66, 1.61, 1.91, 4.24, 4.92, 7.08, 1.37, 1.73, 0.293, 0.274, 0.562]}","{'trans': ['MNN', 'NOO'], 'ke': [1175, 157], 'rsf': [0.365, 1.98]}",67,#ff1493,#00ff9c,Lanthanides,#cab2d6 +Er,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [57486, 9751, 9264, 8358, 2207, 2006, 1812, 1453, 1409, 449.8, 366.2, 320.2, 167.6, 167.6, 4.7, 50.6, 31.4, 24.7], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 36.7, 60.42, 1.64, 1.95, 4.37, 5.15, 7.41, 2.13, 0.298, 0.277, 0.572]}","{'trans': ['MNN', 'NOO'], 'ke': [1393, 163], 'rsf': [0.352, 1.87]}",68,#ff1493,#00e675,Lanthanides,#cab2d6 +Tm,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [59390, 10116, 9617, 8648, 2307, 2090, 1885, 1515, 1468, 470.9, 385.9, 332.6, 175.5, 175.5, 4.6, 54.7, 31.8, 25], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 41.01, 1.67, 1.98, 4.48, 5.38, 7.74, 2.59, 0.303, 0.281, 0.583]}","{'trans': ['MNN', 'NOO'], 'ke': [1449, 166], 'rsf': [0.34, 1.78]}",69,#ff1493,#00d452,Lanthanides,#cab2d6 +Yb,6,100.0,9,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [61332, 10486, 9978, 8944, 2398, 2173, 1950, 1576, 1528, 480.5, 388.7, 339.7, 191.2, 182.4, 2.5, 1.3, 52, 30.3, 24.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.7, 2, 4.6, 5.61, 8.07, 2.47, 3.11, 0.308, 0.284, 0.592]}","{'trans': ['MNN', 'NOO'], 'ke': [1514, 170], 'rsf': [0.329, 1.69]}",70,#ff1493,#00bf38,Lanthanides,#cab2d6 +Lu,6,100.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [63314, 10870, 10349, 9244, 2491, 2264, 2024, 1639, 1589, 506.8, 412.4, 359.2, 206.1, 196.3, 8.9, 7.5, 57.3, 33.6, 26.7], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.73, 2.03, 4.74, 5.87, 8.45, 2.87, 3.63, 0.326, 0.304, 0.645]}","{'trans': ['MNN', 'NOO'], 'ke': [1573, 177], 'rsf': [0.317, 1.61]}",71,#ff1493,#00ab24,Transition metals,#e08e79 +Hf,6,4.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [65351, 11271, 10739, 9561, 2601, 2365, 2108, 1716, 1662, 538, 438.2, 380.7, 220, 211.5, 15.9, 14.2, 64.2, 38, 29.9], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.76, 2.06, 4.88, 6.13, 8.84, 3.32, 4.2, 0.344, 0.325, 0.699]}","{'trans': ['MNN', 'NOO'], 'ke': [1624, 185], 'rsf': [0.303, 1.47]}",72,#ff1493,#4dc2ff,Transition metals,#e08e79 +Ta,6,5.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [67416, 11682, 11136, 9881, 2708, 2469, 2194, 1793, 1735, 563.4, 463.4, 400.9, 237.9, 226.4, 23.5, 21.6, 69.7, 42.2, 32.7], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.79, 2.08, 5.02, 6.4, 9.24, 3.8, 4.82, 0.363, 0.346, 0.754]}","{'trans': ['MNN', 'NOO'], 'ke': [1680, 179], 'rsf': [0.29, 1.35]}",73,#ff1493,#4da6ff,Transition metals,#e08e79 +W,6,6.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [69525, 12100, 11544, 10207, 2820, 2575, 2281, 1872, 1809, 594.1, 490.4, 423.6, 255.9, 243.5, 33.6, 31.4, 75.6, 45.3, 36.8], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.81, 2.1, 5.16, 6.68, 9.65, 4.32, 5.48, 0.383, 0.367, 0.811]}","{'trans': ['MNN', 'NOO'], 'ke': [1736, 179], 'rsf': [0.278, 1.25]}",74,#ff1493,#2194d6,Transition metals,#e08e79 +Re,6,7.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [71676, 12527, 11959, 10535, 2932, 2682, 2367, 1949, 1883, 625.4, 518.7, 446.8, 273.9, 260.5, 42.9, 40.5, 83, 45.6, 34.6], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.84, 2.12, 5.3, 6.95, 10.06, 4.88, 6.2, 0.402, 0.387, 0.869]}","{'trans': ['MNN', 'NOO'], 'ke': [1799, 176], 'rsf': [0.267, 1.17]}",75,#ff1493,#267dab,Transition metals,#e08e79 +Os,6,8.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [73871, 12968, 12385, 10871, 3049, 2792, 2457, 2031, 1960, 658.2, 549.1, 470.7, 293.1, 278.5, 53.4, 50.7, 84, 58, 44.5], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.86, 2.13, 5.45, 7.23, 10.48, 5.48, 6.96, 0.422, 0.408, 0.928]}","{'trans': ['MNN', 'NOO'], 'ke': [1850, 170], 'rsf': [0.255, 1.11]}",76,#ff1493,#266696,Transition metals,#e08e79 +Ir,6,9.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [76111, 13419, 12824, 11215, 3174, 2909, 2551, 2116, 2040, 691.1, 577.8, 495.8, 311.9, 296.3, 63.8, 60.8, 95.2, 63, 48], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.88, 2.14, 5.59, 7.51, 10.9, 6.12, 7.78, 0.438, 0.422, 0.967]}","{'trans': ['MNN', 'NOO'], 'ke': [1908, 171], 'rsf': [0.244, 1.01]}",77,#ff1493,#175487,Transition metals,#e08e79 +Pt,6,10.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [78395, 13880, 13273, 11564, 3296, 3027, 2645, 2202, 2122, 725.4, 609.1, 519.4, 331.6, 314.6, 74.5, 71.2, 101.7, 65.3, 51.7], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.9, 2.14, 5.74, 7.78, 11.32, 6.81, 8.65, 0.459, 0.444, 1.04]}","{'trans': ['MNN', 'NOO'], 'ke': [1967, 168], 'rsf': [0.234, 5.48]}",78,#ff1493,#d0d0e0,Transition metals,#e08e79 +Au,6,11.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2'], 'be': [80725, 14353, 13734, 11919, 3425, 3148, 2743, 2291, 2206, 762.1, 642.7, 546.3, 353.2, 335.1, 87.6, 84, 107.2, 74.2, 57.2], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.92, 2.14, 5.89, 8.06, 11.74, 7.54, 9.58, 0.479, 0.463, 1.1]}","{'trans': ['MNN', 'NOO'], 'ke': [2024, 239], 'rsf': [0.223, 4.6]}",79,#daa520,#ffd123,Transition metals,#e08e79 +Hg,6,12.0,8,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [83102, 14839, 14209, 12284, 3562, 3279, 2847, 2385, 2295, 802.2, 680.2, 576.6, 378.2, 358.8, 104, 99.9, 127, 83.1, 64.5, 9.6, 7.8], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.94, 2.14, 6.04, 8.33, 12.17, 8.32, 10.57, 0.5, 0.484, 1.17, 0.869, 1.21]}","{'trans': ['MNN', 'NOO'], 'ke': [2078, 241], 'rsf': [0.213, 3.78]}",80,#ff1493,#b8b8d0,Transition metals,#e08e79 +Tl,6,13.0,7,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [85530, 15347, 14698, 12658, 3704, 3416, 2957, 2485, 2389, 846.2, 720.5, 609.5, 405.7, 385, 122.2, 117.8, 136, 94.6, 73.5, 14.7, 12.5], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 2.13, 6.19, 8.6, 12.6, 9.14, 11.62, 0.52, 0.505, 1.25, 0.991, 1.39]}","{'trans': ['MNN', 'NOO'], 'ke': [2134, 244], 'rsf': [0.202, 3.06]}",81,#ff1493,#a6544d,Poor metals,#b2df8a +Pb,6,14.0,7,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [88005, 15861, 15200, 13035, 3851, 3554, 3066, 2586, 2484, 891.8, 761.9, 643.5, 434.3, 412.2, 141.7, 136.9, 147, 106.4, 83.3, 20.7, 18.1], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.12, 6.33, 8.87, 13.02, 10.01, 12.73, 0.542, 0.526, 1.33, 1.11, 1.58]}","{'trans': ['MNN', 'NOO'], 'ke': [2186, 249], 'rsf': [0.192, 2.58]}",82,#ff1493,#575961,Poor metals,#b2df8a +Bi,6,15.0,7,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [90524, 16388, 15711, 13419, 3999, 3696, 3177, 2688, 2580, 939, 805.2, 678.8, 464, 440.1, 162.3, 157, 159.3, 119, 92.6, 26.9, 23.8], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.1, 6.48, 9.14, 13.44, 10.93, 13.9, 0.563, 0.546, 1.41, 1.24, 1.76]}","{'trans': ['MNN'], 'ke': [2243], 'rsf': [0.183]}",83,#ff1493,#9e4fb5,Poor metals,#b2df8a +Po,6,16.0,5,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [93105, 16939, 16244, 13814, 4149, 3854, 3302, 2798, 2683, 995, 851, 705, 500, 473, 184, 184, 177, 132, 104, 31, 31], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.97, 2.07, 6.62, 9.4, 13.87, 11.9, 15.14, 0.584, 0.566, 1.5, 1.36, 1.95]}","{'trans': [], 'ke': [], 'rsf': []}",84,#ff1493,#ab5c00,Metalloids,#33a02c +At,6,17.0,6,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [95730, 17493, 16785, 14214, 4317, 4008, 3426, 2909, 2787, 1042, 886, 740, 533, 507, 210, 210, 195, 148, 115, 40, 40], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.96, 2.04, 6.77, 9.65, 14.29, 12.92, 16.44, 0.605, 0.584, 1.58, 1.49, 2.14]}","{'trans': [], 'ke': [], 'rsf': []}",85,#ff1493,#754f45,Halogens,#fdbf6f +Rn,6,18.0,2,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s'], 'be': [98404, 18049, 17337, 14619, 4482, 4159, 3538, 3022, 2892, 1097, 929, 768, 567, 541, 238, 238, 214, 164, 127, 48, 48, 26], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 2, 6.92, 9.9, 14.7, 14, 17.81, 0.625, 0.602, 1.67, 1.62, 2.33, 0.1129]}","{'trans': [], 'ke': [], 'rsf': []}",86,#ffffff,#428296,Noble gases,#bbbb88 +Fr,7,1.0,3,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [101137, 18639, 17907, 15031, 4652, 4327, 3663, 3136, 3000, 1153, 980, 810, 603, 577, 268, 268, 234, 182, 140, 58, 58, 34, 15, 15], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.97, 7.07, 10.16, 15.11, 15.12, 19.24, 0.645, 0.618, 1.77, 1.75, 2.53, 0.1257, 0.0966, 0.24]}","{'trans': [], 'ke': [], 'rsf': []}",87,#ffffff,#420066,Alkali metals,#a6cee3 +Ra,7,2.0,4,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [103922, 19237, 18484, 15444, 4822, 4490, 3792, 3248, 3105, 1208, 1058, 879, 636, 603, 299, 299, 254, 200, 153, 68, 68, 44, 19, 19], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.91, 7.2, 10.4, 15.53, 16.3, 20.74, 0.665, 0.633, 1.86, 1.88, 2.73, 0.1383, 0.1099, 0.286]}","{'trans': [], 'ke': [], 'rsf': []}",88,#ffffff,#007d00,Alkaline earth metals,#1f78b4 +Ac,7,3.0,10,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [106755, 19840, 19083, 15871, 5002, 4656, 3909, 3370, 3219, 1269, 1080, 890, 675, 639, 319, 319, 272, 215, 167, 80, 80], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.86, 7.33, 10.61, 15.93, 17.53, 22.3, 0.684, 0.647, 1.95, 2.02, 2.94]}","{'trans': [], 'ke': [], 'rsf': []}",89,#ffffff,#70abfa,Actinides,#6a3d9a +Th,7,100.0,10,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [109651, 20472, 19693, 16300, 5182, 4830, 4046, 3491, 3332, 1330, 1168, 966.4, 712.1, 675.2, 342.4, 333.1, 290, 229, 182, 92.5, 85.4, 41.4, 24.5, 16.6], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.95, 1.9, 7.46, 10.82, 16.31, 18.81, 23.94, 0.702, 0.66, 2.05, 2.15, 3.15, 0.1625, 0.1325, 0.366]}","{'trans': [], 'ke': [], 'rsf': []}",90,#ff1493,#00baff,Actinides,#6a3d9a +Pa,7,100.0,10,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2'], 'be': [112601, 21105, 20314, 16733, 5367, 5001, 4174, 3611, 3442, 1387, 1224, 1007, 743, 708, 371, 360, 310, 232, 232, 94, 94], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.92, 1.74, 7.61, 11.04, 16.47, 20.12, 25.6, 0.718, 0.667, 2.13, 2.25, 3.29]}","{'trans': [], 'ke': [], 'rsf': []}",91,#ffffff,#00a1ff,Actinides,#6a3d9a +U,7,100.0,10,"{'trans': ['1s', '2s', '2p1/2', '2p3/2', '3s', '3p1/2', '3p3/2', '3d3/2', '3d5/2', '4s', '4p1/2', '4p3/2', '4d3/2', '4d5/2', '4f5/2', '4f7/2', '5s', '5p1/2', '5p3/2', '5d3/2', '5d5/2', '6s', '6p1/2', '6p3/2'], 'be': [115606, 21757, 20948, 17166, 5548, 5182, 4303, 3728, 3552, 1439, 1271, 1043, 778.3, 736.2, 388.2, 377.4, 321, 257, 192, 102.8, 94.2, 43.9, 26.8, 16.8], 'rsf': [0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 1.9, 1.68, 7.71, 11.25, 17.05, 21.5, 27.36, 0.732, 0.674, 2.22, 2.36, 3.46, 0.1682, 0.133, 0.376]}","{'trans': [], 'ke': [], 'rsf': []}",92,#ff1493,#008fff,Actinides,#6a3d9a diff --git a/Python/elements.py b/Python/elements.py deleted file mode 100644 index 6e30739..0000000 --- a/Python/elements.py +++ /dev/null @@ -1,6 +0,0 @@ -class Transition: - def __init__(self, symbol, alka, aes): - self.symbol = symbol - self.alka = alka - self.aes = aes - diff --git a/Python/generate_elems_csv.py b/Python/generate_elems_csv.py new file mode 100644 index 0000000..f83be5f --- /dev/null +++ b/Python/generate_elems_csv.py @@ -0,0 +1,45 @@ +import os +import pandas as pd +from mendeleev.fetch import fetch_table + + +def generate_elements_csv(xps): + """ + Generate a CSV file of element properties based on a pandas dataframe containing XPS data. + + Parameters: + xps (pandas.DataFrame): A pandas dataframe containing XPS data for each element. The dataframe should have + columns 'symbol', 'alka.trans', 'alka.be', 'alka.rsf', 'aes.trans', 'aes.ke', + and 'aes.rsf'. + + Returns: + None: This function generates a CSV file of element properties, but does not return anything. + + Raises: + IndexError: If the symbol for an element in the XPS data is not found in the Mendeleev table. + + """ + mendeleev_pt = fetch_table('elements') + mendeleev_series = fetch_table('series') + + df = pd.DataFrame(columns=['symbol', 'period', 'group_id', 'series_id', 'alka', 'aes', 'atomic_number', 'cpk_color', 'jmol_color', 'series_name', 'series_color']) + + for _, elem in xps.iterrows(): + index = mendeleev_pt.index[mendeleev_pt['symbol'] == elem.symbol].tolist()[0] + mendeleev_pt_copy = mendeleev_pt.copy() + mendeleev_pt_copy.loc[mendeleev_pt_copy['group_id'].isna(), 'group_id'] = 100 + row = pd.Series([elem.symbol, mendeleev_pt['period'][index], mendeleev_pt_copy['group_id'][index], mendeleev_pt['series_id'][index], {'trans': elem['alka.trans'], 'be': elem['alka.be'], 'rsf': elem['alka.rsf']}, {'trans': elem['aes.trans'], 'ke': elem['aes.ke'], 'rsf': elem['aes.rsf']}, mendeleev_pt['atomic_number'][index], mendeleev_pt['cpk_color'][index], mendeleev_pt['jmol_color'][index], mendeleev_series['name'].values[mendeleev_pt['series_id'][index]-1], mendeleev_series['color'].values[mendeleev_pt['series_id'][index]-1]], index=df.columns) + df = pd.concat([df, pd.DataFrame([row])], ignore_index=True) + + # Save CSV file relative to the script location + script_dir = os.path.dirname(os.path.abspath(__file__)) + csv_path = os.path.join(script_dir, '../Databases/elements.csv') + df.to_csv(csv_path, index=False) + + +if __name__ == '__main__': + # Read CSV file relative to the script location + script_dir = os.path.dirname(os.path.abspath(__file__)) + csv_path = os.path.join(script_dir, '../Databases/xps_data.csv') + xps = pd.read_csv(csv_path) + generate_elements_csv(xps) diff --git a/Python/helpers.py b/Python/helpers.py index ca5de07..0fb4ff4 100644 --- a/Python/helpers.py +++ b/Python/helpers.py @@ -1,3 +1,5 @@ +from PyQt5.QtGui import QDoubleValidator, QValidator +from PyQt5.QtWidgets import QItemDelegate, QLineEdit from lmfit.models import ExponentialGaussianModel, SkewedGaussianModel, SkewedVoigtModel, DoniachModel, \ BreitWignerModel, LognormalModel from lmfit.models import GaussianModel, LorentzianModel, VoigtModel, PseudoVoigtModel, ThermalDistributionModel, \ @@ -93,6 +95,93 @@ def model_selector(index: int, strind: str, index_pk: int): else: raise ValueError(f"No model found for index {index}.") +class DoubleValidator(QDoubleValidator): + """Subclass of QDoubleValidator that emits a signal if the input is not valid.""" + + # Define a custom signal that will be emitted when the input is not valid. + validationChanged = QtCore.pyqtSignal(list) + + def validate(self, input_str, pos): + state, input_str, pos = super().validate(input_str, pos) + if input_str == "" and state == QValidator.Acceptable: + state = QValidator.Intermediate + validate_state = [state, input_str, pos] + self.validationChanged.emit(validate_state) + return state, input_str, pos + + +class TableItemDelegate(QItemDelegate): + """Delegate class for QTableWidget cells that validates user input. + + This class creates a line edit widget as the editor for each cell in a + QTableWidget. It adds a DoubleValidator to the line edit widget to ensure + that the user input is a valid double (floating-point) value. + + Attributes: + None + + Methods: + createEditor(parent, option, index): Creates a line edit widget as the + editor for the cell at the specified index. Returns the editor. + + """ + + def createEditor(self, parent, option, index): + """Create a line edit widget as the editor for the cell at the specified index. + + Args: + parent (QWidget): The parent widget of the editor. + option (QStyleOptionViewItem): The style options for the editor. + index (QModelIndex): The model index of the cell being edited. + + Returns: + editor (QLineEdit): The line edit widget used as the editor. + + """ + self.editor = QLineEdit(parent) + self.editor.setToolTip('Only double values are valid inputs!') + validator = DoubleValidator() + self.editor.setValidator(validator) + validator.validationChanged.connect(self.onValidationChanged) + return self.editor + + def onValidationChanged(self, validate_return): + """Display a message box when the user enters an invalid input.""" + state = validate_return[0] + if state == QValidator.Invalid: + print('Value ' + validate_return[1] + " was entered. However, only double values are valid!") + + +class DoubleLineEdit(QLineEdit): + """Custom QLineEdit widget that uses DoubleValidator to validate user input.""" + + def __init__(self, parent=None): + super().__init__(parent) + self.validator = DoubleValidator() + self.setValidator(self.validator) + self.validator.validationChanged.connect(self.onValidationChanged) + + def onValidationChanged(self, validate_return): + """Display a message box when the user enters an invalid input.""" + state = validate_return[0] + if state == QValidator.Invalid: + print('Value ' + validate_return[1] + " was entered. However, only double values are valid!") + + +class SubWindow(QtWidgets.QWidget): + def __init__(self, params_tab): + super(SubWindow, self).__init__() + self.layout = QtWidgets.QGridLayout(self) + self.resize(800, 500) + self.setWindowTitle("Limits") + self.layout.addWidget(params_tab, 0, 0, 5, 4) + + +class LayoutHline(QtWidgets.QFrame): + def __init__(self): + super(LayoutHline, self).__init__() + self.setFrameShape(self.HLine) + self.setFrameShadow(self.Sunken) class Window_CrossSection(QtWidgets.QWidget): """ @@ -159,7 +248,7 @@ def load_elements(self): """ dirPath = os.path.dirname(os.path.abspath(__file__)) temp_elements=[] - with open (dirPath+'/../CrossSections/cross_sections.csv') as f: + with open (dirPath+'/../Databases/CrossSections/cross_sections.csv') as f: next(f) lines=f.read().splitlines() for line in lines: diff --git a/Python/main.py b/Python/main.py index ccc3c21..01ce29a 100644 --- a/Python/main.py +++ b/Python/main.py @@ -3,26 +3,17 @@ import ast import math -import os import sys import pickle - +import webbrowser import matplotlib.pyplot as plt -import numpy as np import pandas as pd -from PyQt5 import QtWidgets, QtCore -from PyQt5.QtCore import QThreadPool, QRunnable, pyqtSlot, QTime, QRegExp, Qt -from PyQt5.QtGui import QRegExpValidator, QDoubleValidator, QColor, QValidator -from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QItemDelegate, QCheckBox, QLineEdit, \ - QMessageBox +from PyQt5.QtCore import QTime +from PyQt5.QtGui import QValidator +from PyQt5.QtWidgets import QItemDelegate, QLineEdit from PyQt5.QtGui import QDoubleValidator -from PyQt5.QtCore import Qt, QLocale, QRegExp, pyqtSignal - +from usrmodel import TougaardBG, ShirleyBG, SlopeBG from lmfit import Model -from lmfit.models import ExponentialGaussianModel, SkewedGaussianModel, SkewedVoigtModel, DoniachModel, \ - BreitWignerModel, LognormalModel -from lmfit.models import GaussianModel, LorentzianModel, VoigtModel, PseudoVoigtModel, ThermalDistributionModel, \ - PolynomialModel, StepModel from matplotlib import style from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar @@ -30,122 +21,33 @@ import vamas_export as vpy import xpspy as xpy from periodictable import PeriodicTable -from usrmodel import ConvGaussianDoniachDublett, ConvGaussianDoniachSinglett, FermiEdgeModel, singlett, fft_convolve from scipy import integrate -from scipy import interpolate from helpers import * import threading import traceback # error handling import logging # error handling -# style.use('ggplot') -style.use('seaborn-pastel') +# style.use('ggplot') +style.use('seaborn-v0_8-colorblind') dictBG = { - '0': 'static ShirleyBG (+Polynomial BG)', - '100': 'active ShirleyBG (+Polynomial BG)', - '1': 'static TougaardBG (+Polynomial BG)', - '101': 'active TougaardBG (+Polynomial BG)', + '0': 'static Shirley BG', + '100': 'active Shirley BG ', + '1': 'static Tougaard BG', + '101': 'active Tougaard BG', '2': 'Polynomial BG', - '3': 'arctan (+Polynomial BG)', - '4': 'Error function (+Polynomial BG)', - '5': 'CutOff (+Polynomial BG)', + '3': 'arctan', + '4': 'Error function', + '5': 'CutOff', + '6': 'Slope BG', } -class DoubleValidator(QDoubleValidator): - """Subclass of QDoubleValidator that emits a signal if the input is not valid.""" - - # Define a custom signal that will be emitted when the input is not valid. - validationChanged = QtCore.pyqtSignal(list) - - def validate(self, input_str, pos): - state, input_str, pos = super().validate(input_str, pos) - if input_str == "" and state == QValidator.Acceptable: - state = QValidator.Intermediate - validate_state=[state, input_str, pos] - self.validationChanged.emit(validate_state) - return state, input_str, pos - - -class TableItemDelegate(QItemDelegate): - """Delegate class for QTableWidget cells that validates user input. - - This class creates a line edit widget as the editor for each cell in a - QTableWidget. It adds a DoubleValidator to the line edit widget to ensure - that the user input is a valid double (floating-point) value. - - Attributes: - None - - Methods: - createEditor(parent, option, index): Creates a line edit widget as the - editor for the cell at the specified index. Returns the editor. - - """ - - def createEditor(self, parent, option, index): - """Create a line edit widget as the editor for the cell at the specified index. - - Args: - parent (QWidget): The parent widget of the editor. - option (QStyleOptionViewItem): The style options for the editor. - index (QModelIndex): The model index of the cell being edited. - - Returns: - editor (QLineEdit): The line edit widget used as the editor. - - """ - self.editor = QLineEdit(parent) - self.editor.setToolTip('Only double values are valid inputs!') - validator = DoubleValidator() - self.editor.setValidator(validator) - validator.validationChanged.connect(self.onValidationChanged) - return self.editor - - def onValidationChanged(self, validate_return): - """Display a message box when the user enters an invalid input.""" - state=validate_return[0] - if state == QValidator.Invalid: - print('Value '+validate_return[1]+" was entered. However, only double values are valid!") - -class DoubleLineEdit(QLineEdit): - """Custom QLineEdit widget that uses DoubleValidator to validate user input.""" - - def __init__(self, parent=None): - super().__init__(parent) - self.validator = DoubleValidator() - self.setValidator(self.validator) - self.validator.validationChanged.connect(self.onValidationChanged) - - - def onValidationChanged(self, validate_return): - """Display a message box when the user enters an invalid input.""" - state = validate_return[0] - if state == QValidator.Invalid: - print('Value ' + validate_return[1] + " was entered. However, only double values are valid!") - -class SubWindow(QtWidgets.QWidget): - def __init__(self, params_tab): - super(SubWindow, self).__init__() - self.layout = QtWidgets.QGridLayout(self) - self.resize(800, 500) - self.setWindowTitle("Limits") - self.layout.addWidget(params_tab, 0, 0, 5, 4) - - -class LayoutHline(QtWidgets.QFrame): - def __init__(self): - super(LayoutHline, self).__init__() - self.setFrameShape(self.HLine) - self.setFrameShadow(self.Sunken) - class PrettyWidget(QtWidgets.QMainWindow): def __init__(self): super(PrettyWidget, self).__init__() # super(PrettyWidget, self).__init__() self.rows_lightened = 1 - self.idx_bg = None self.export_out = None self.export_pars = None self.pre = [[], [], [], []] @@ -182,7 +84,7 @@ def __init__(self): self.initUI() def initUI(self): - self.version = 'LG4X: LMFit GUI for XPS curve fitting v2.0.3' + self.version = 'LG4X: LMFit GUI for XPS curve fitting v2.0.4' self.floating = '.4f' self.setGeometry(700, 500, 1600, 900) self.center() @@ -191,8 +93,6 @@ def initUI(self): 'Copyright (C) 2022, Julian Hochhaus, TU Dortmund University') self.pt = PeriodicTable() self.pt.setWindowTitle('Periodic Table') - self.pt.elementEmitted.connect(self.handleElementClicked) - self.pt.selectedElements = [] # data template # self.df = pd.DataFrame() self.df = [] @@ -201,7 +101,7 @@ def initUI(self): self.idx_imp = 0 - self.idx_bg = 0 + self.idx_bg = [2] self.idx_pres = 0 self.addition = 0 @@ -279,7 +179,7 @@ def initUI(self): # btn_preset_ckedge.setShortcut('Ctrl+Shift+') btn_preset_ckedge.triggered.connect(lambda: self.clickOnBtnPreset(idx=6)) - btn_preset_ptable = QtWidgets.QAction('&Periodic Table', self) + btn_preset_ptable = QtWidgets.QAction('Periodic &Table', self) # btn_preset_ptable.setShortcut('Ctrl+Shift+') btn_preset_ptable.triggered.connect(lambda: self.clickOnBtnPreset(idx=7)) @@ -289,45 +189,67 @@ def initUI(self): presetMenu.addAction(btn_preset_save) presetMenu.addAction(btn_preset_c1s) presetMenu.addAction(btn_preset_ckedge) - presetMenu.addAction(btn_preset_ptable) + menubar.addAction(btn_preset_ptable) self.bgMenu = menubar.addMenu('&Choose BG') - self.submenu_shirley = self.bgMenu.addMenu('&Shirley BG') - btn_bg_shirley_act = QtWidgets.QAction('&Active approach', self) - btn_bg_shirley_act.triggered.connect(lambda: self.clickOnBtnBG(idx=0, activeBG=True)) - btn_bg_shirley_static = QtWidgets.QAction('&Static approach', self) - btn_bg_shirley_static.triggered.connect(lambda: self.clickOnBtnBG(idx=0, activeBG=False)) - self.submenu_shirley.addAction(btn_bg_shirley_act) - self.submenu_shirley.addAction(btn_bg_shirley_static) - self.submenu_tougaard = self.bgMenu.addMenu('&Tougaard BG') - btn_bg_tougaard_act = QtWidgets.QAction('&Active approach', self) - btn_bg_tougaard_act.triggered.connect(lambda: self.clickOnBtnBG(idx=1, activeBG=True)) - btn_bg_tougaard_static = QtWidgets.QAction('&Static approach', self) - btn_bg_tougaard_static.triggered.connect(lambda: self.clickOnBtnBG(idx=1, activeBG=False)) - self.submenu_tougaard.addAction(btn_bg_tougaard_act) - self.submenu_tougaard.addAction(btn_bg_tougaard_static) - - btn_bg_polynomial = QtWidgets.QAction('&Polynomial BG', self) - btn_bg_polynomial.setShortcut('Ctrl+Alt+P') - btn_bg_polynomial.triggered.connect(lambda: self.clickOnBtnBG(idx=2)) - btn_bg_arctan = QtWidgets.QAction('&Arctan BG', self) - btn_bg_arctan.triggered.connect(lambda: self.clickOnBtnBG(idx=3)) - - btn_bg_erf = QtWidgets.QAction('&Erf BG', self) - btn_bg_erf.triggered.connect(lambda: self.clickOnBtnBG(idx=4)) - - btn_bg_vbm = QtWidgets.QAction('&VBM/Cutoff BG', self) - btn_bg_vbm.triggered.connect(lambda: self.clickOnBtnBG(idx=5)) + + self.btn_bg_shirley_act = QtWidgets.QAction('&Active &Shirley BG', self, checkable=True) + self.btn_bg_shirley_act.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_shirley_static = QtWidgets.QAction('&Static &Shirley BG', self, checkable=True) + self.btn_bg_shirley_static.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_tougaard_act = QtWidgets.QAction('&Active &Tougaard BG', self, checkable=True) + self.btn_bg_tougaard_act.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_tougaard_static = QtWidgets.QAction('&Static &Tougaard BG', self, checkable=True) + self.btn_bg_tougaard_static.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_polynomial = QtWidgets.QAction('&Polynomial BG', self, checkable=True) + self.btn_bg_polynomial.setShortcut('Ctrl+Alt+P') + self.btn_bg_polynomial.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_slope = QtWidgets.QAction('&Slope BG', self, checkable=True) + self.btn_bg_slope.setShortcut('Ctrl+Alt+S') + self.btn_bg_slope.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_arctan = QtWidgets.QAction('&Arctan BG', self, checkable=True) + self.btn_bg_arctan.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_erf = QtWidgets.QAction('&Erf BG', self, checkable=True) + self.btn_bg_erf.triggered.connect(self.clickOnBtnBG) + + self.btn_bg_vbm = QtWidgets.QAction('&VBM/Cutoff BG', self, checkable=True) + self.btn_bg_vbm.triggered.connect(self.clickOnBtnBG) + + # Add the checkable actions to the menu + self.bgMenu.addAction(self.btn_bg_shirley_act) + self.bgMenu.addAction(self.btn_bg_shirley_static) + self.bgMenu.addAction(self.btn_bg_tougaard_act) + self.bgMenu.addAction(self.btn_bg_tougaard_static) + self.bgMenu.addAction(self.btn_bg_polynomial) + self.bgMenu.addAction(self.btn_bg_slope) + self.bgMenu.addAction(self.btn_bg_arctan) + self.bgMenu.addAction(self.btn_bg_erf) + self.bgMenu.addAction(self.btn_bg_vbm) btn_tougaard_cross_section = QtWidgets.QAction('Tougaard &Cross Section ', self) btn_tougaard_cross_section.triggered.connect(self.clicked_cross_section) - - self.bgMenu.addAction(btn_bg_polynomial) - self.bgMenu.addAction(btn_bg_arctan) - self.bgMenu.addAction(btn_bg_erf) - self.bgMenu.addAction(btn_bg_vbm) self.bgMenu.addSeparator() self.bgMenu.addAction(btn_tougaard_cross_section) + + menubar.addSeparator() + links_menu= menubar.addMenu('&Help/Info') + #manual_link= QtWidgets.QAction('&Manual', self) + #manual_link.triggered.connect(lambda: webbrowser.open('https://julian-hochhaus.github.io/LG4X-V2/')) + #links_menu.addAction(manual_link) + github_link= QtWidgets.QAction('See on &Github', self) + github_link.triggered.connect(lambda: webbrowser.open('https://github.com/Julian-Hochhaus/LG4X-V2')) + links_menu.addAction(github_link) + about_link= QtWidgets.QAction('&How to cite', self) + about_link.triggered.connect(self.show_citation_dialog) + links_menu.addAction(about_link) + # central widget layout widget = QtWidgets.QWidget(self) self.setCentralWidget(widget) @@ -407,7 +329,7 @@ def initUI(self): hv_form.addRow("hv: ", self.hv_item) plot_settings_layout.addLayout(hv_form) wf_form = QtWidgets.QFormLayout() - self.wf_item =DoubleLineEdit() + self.wf_item = DoubleLineEdit() self.wf = 4 self.wf_item.insert(str(self.wf)) self.wf_item.textChanged.connect(self.update_com_vals) @@ -428,7 +350,7 @@ def initUI(self): layout_bottom_mid = QtWidgets.QVBoxLayout() # PolyBG Table list_bg_col = ['bg_c0', 'bg_c1', 'bg_c2', 'bg_c3', 'bg_c4'] - list_bg_row = ['Shirley (cv, it, k, c)', 'Tougaard(B, C, C*, D)', 'Polynomial', + list_bg_row = ['Shirley (cv, it, k, c)', 'Tougaard(B, C, C*, D, extend)', 'Polynomial', 'Slope(k)', 'arctan (amp, ctr, sig)', 'erf (amp, ctr, sig)', 'cutoff (ctr, d1-4)'] self.fitp0 = QtWidgets.QTableWidget(len(list_bg_row), len(list_bg_col) * 2) self.fitp0.setItemDelegate(self.delegate) @@ -438,7 +360,7 @@ def initUI(self): # set BG table checkbox for row in range(len(list_bg_row)): for col in range(len(list_bg_colh)): - if (row >= 2 or (row == 0 and 8 > col >= 4) or (row == 1 and col == 0)) and col % 2 == 0: + if (row == 2 or row>3 or (row==3 and col<2) or (row == 0 and 8 > col >= 4) or (row == 1 and col == 0)) and col % 2 == 0: item = QtWidgets.QTableWidgetItem() item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) item.setCheckState(QtCore.Qt.Unchecked) @@ -450,15 +372,17 @@ def initUI(self): self.fitp0.setItem(row, col, item) # set BG table default pre_bg = [['', 1e-06, '', 10, 2, 0.0003, 2, 1000, '', ''], - [2, 2866.0, '', 1643.0, '', 1.0, '', 1.0, '', ''], - [2, 0, 2, 0, 2, 0, 2, 0, 2, 0]] + [2, 2866.0, '', 1643.0, '', 1.0, '', 1.0, '', 50], + [2, 0, 2, 0, 2, 0, 2, 0, 2, 0], + [2,0.0,'','','', '', '', '', '', '', '']] # self.setPreset([0], pre_bg, []) self.fitp0.resizeColumnsToContents() self.fitp0.resizeRowsToContents() bg_fixedLayout = QtWidgets.QHBoxLayout() self.fixedBG = QtWidgets.QCheckBox('Keep background fixed') - self.displayChoosenBG.setText('Choosen Background: {}'.format(dictBG[str(self.idx_bg)])) + self.displayChoosenBG.setText( + 'Choosen Background: {}'.format('+ '.join([dictBG[str(idx)] for idx in self.idx_bg]))) self.displayChoosenBG.setStyleSheet("font-weight: bold") bg_fixedLayout.addWidget(self.displayChoosenBG) @@ -649,8 +573,45 @@ def initUI(self): # grid..addWidget(self.res_label, 7, 7, 1, 1) self.activeParameters() self.show() - - def lims_changed(self, row, column): + def show_citation_dialog(self): + citation_text = 'J. A. Hochhaus and H. Nakajima, LG4X-V2 (Zenodo, 2023), DOI:10.5281/zenodo.7871174' + msg_box = QtWidgets.QMessageBox(self) + msg_box.setWindowTitle('How to cite') + msg_box.setTextFormat(QtCore.Qt.RichText) + msg_box.setText(citation_text) + copy_button = msg_box.addButton('Copy to clipboard',QtWidgets.QMessageBox.AcceptRole) + open_zenodo_button = msg_box.addButton('Open on Zenodo(DOI)', QtWidgets.QMessageBox.ActionRole) + + msg_box.exec_() + if msg_box.clickedButton() == copy_button: + # Copy citation text to clipboard + QtWidgets.QApplication.clipboard().setText(citation_text) + elif msg_box.clickedButton() == open_zenodo_button: + # Open web link + url = 'https://zenodo.org/record/7871174' + webbrowser.open(url) + + def setButtonState(self, indices): + for i in indices: + if i==0: + self.btn_bg_shirley_static.setChecked(True) + elif i==1: + self.btn_bg_tougaard_static.setChecked(True) + elif i==2: + self.btn_bg_polynomial.setChecked(True) + elif i==3: + self.btn_bg_arctan.setChecked(True) + elif i==4: + self.btn_bg_erf.setChecked(True) + elif i==5: + self.btn_bg_vbm.setChecked(True) + elif i==6: + self.btn_bg_slope.setChecked(True) + elif i==100: + self.btn_bg_shirley_act.setChecked(True) + elif i==101: + self.btn_bg_tougaard_act.setChecked(True) + def lims_changed(self, row=0, column=0): """Handle the cellChanged signal emitted by fitp1 table (the limits table) Args: row (int): The row index of the changed cell. @@ -659,13 +620,12 @@ def lims_changed(self, row, column): Returns: None """ - item=self.fitp1_lims.item(row, column) - checked=False - for c in range(int(self.fitp1_lims.columnCount()/3)): + checked = False + for c in range(int(self.fitp1_lims.columnCount() / 3)): for r in range(self.fitp1_lims.rowCount()): - item=self.fitp1_lims.item(r,3*c) + item = self.fitp1_lims.item(r, 3 * c) if item is not None and item.checkState(): - checked=True + checked = True if checked: self.set_status('limit_set') else: @@ -688,10 +648,11 @@ def set_status(self, status): elif status == "limit_set": self.status_label.setStyleSheet("background-color: green; border-radius: 9px") self.status_text.setText("Limits active") - elif status=='at_zero': + elif status == 'at_zero': self.status_label.setStyleSheet("background-color: yellow; border-radius: 9px") self.status_text.setText("Limit at 0. ") - self.status_text.setToolTip('If one limit reaches zero, a warning is displayed. Usually, such a case is intended because several parameters such as the amplitude are limited to positive values. If e.g. one component gets an amplitude of 0 during the fit, the warning will be displayed.') + self.status_text.setToolTip( + "

If a limit reaches zero, a warning is displayed. Usually, such a case is intended because several parameters such as the amplitude and the assymetry are limited to positive values.

") else: self.status_label.setStyleSheet("background-color: blue; border-radius: 9px") self.status_text.setText("Error, Unknown state!") @@ -705,53 +666,51 @@ def clicked_cross_section(self): def setCrossSection(self, window): window.choosenElement() tougaard = window.tougaard_params + self.savePreset() for idx in range(4): self.pre[1][1][2 * idx + 1] = tougaard[idx] self.setPreset(self.pre[0], self.pre[1], self.pre[2], self.pre[3]) def activeParameters(self): - """ - - """ nrows = self.fitp0.rowCount() ncols = self.fitp0.columnCount() + for col in range(ncols): for row in range(nrows): - if not row == 2: - self.fitp0.item(row, col).setFlags(self.fitp0.item(row, - col).flags() & ~ QtCore.Qt.ItemIsEditable & ~QtCore.Qt.ItemIsEnabled & ~QtCore.Qt.ItemIsSelectable) - idx = self.idx_bg - for col in range(ncols): - for row in range(nrows): - if idx == 0: - if row == 0 and col < 4: + self.fitp0.item(row, col).setFlags(self.fitp0.item(row, + col).flags() & ~QtCore.Qt.ItemIsEditable & ~QtCore.Qt.ItemIsEnabled & ~QtCore.Qt.ItemIsSelectable) + + for idx in self.idx_bg: + for col in range(ncols): + for row in range(nrows): + if idx == 0 and row == 0 and col < 4: self.fitp0.item(row, col).setFlags(self.fitp0.item(row, col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) - if idx == 100: - if row == 0: + elif idx == 100 and row == 0: self.fitp0.item(row, col).setFlags(self.fitp0.item(row, col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) - if idx == 1: - if row == 1: + elif idx == 1 and row == 1: self.fitp0.item(row, col).setFlags(self.fitp0.item(row, col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) - if idx == 101: - if row == 1: + elif idx == 101 and row == 1: self.fitp0.item(row, col).setFlags(self.fitp0.item(row, col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) - if idx == 3: - if row == 3: + elif idx == 6 and row == 3 and col < 2: self.fitp0.item(row, col).setFlags(self.fitp0.item(row, col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) - if idx == 4: - if row == 4: + elif idx == 3 and row == 4: self.fitp0.item(row, col).setFlags(self.fitp0.item(row, col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) - if idx == 5: - if row == 5: + elif idx == 2 and row == 2: self.fitp0.item(row, col).setFlags(self.fitp0.item(row, col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) + elif idx == 4 and row == 5: + self.fitp0.item(row, col).setFlags(self.fitp0.item(row, + col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) + elif idx == 5 and row == 6: + self.fitp0.item(row, col).setFlags(self.fitp0.item(row, + col).flags() | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) nrows = self.fitp1.rowCount() ncols = self.fitp1.columnCount() ncols = int(ncols / 2) @@ -961,7 +920,7 @@ def raise_error(self, window_title: str, error_message: str) -> None: None """ self.error_dialog.setWindowTitle(window_title) - error_message = error_message+r'\n *******************\n'+traceback.format_exc() + error_message = error_message + r'\n *******************\n' + traceback.format_exc() self.error_dialog.showMessage(error_message) logging.error(error_message) @@ -1171,7 +1130,8 @@ def preset(self): try: self.loadPreset() except Exception as e: - return self.raise_error(window_title="Error: Could not load parameters!", error_message='Loading parameters failed. The following traceback may help to solve the issue:') + return self.raise_error(window_title="Error: Could not load parameters!", + error_message='Loading parameters failed. The following traceback may help to solve the issue:') # print(self.df[0], self.df[1], self.df[2]) if len(str(self.pre[0])) != 0 and len(self.pre[1]) != 0 and len(self.pre[2]) != 0 and len(self.pre) == 3: # old format, reorder data! @@ -1186,7 +1146,7 @@ def preset(self): self.addPreset() except Exception as e: return self.raise_error(window_title="Error: Could not add parameters!", - error_message='Adding parameters failed. The following traceback may help to solve the issue:') + error_message='Adding parameters failed. The following traceback may help to solve the issue:') # print(self.df[0], self.df[1], self.df[2]) if len(str(self.pre[0])) != 0 and len(self.pre[1]) != 0 and len(self.pre[2]) != 0 and len(self.pre) == 3: # old format, reorder data! @@ -1200,11 +1160,13 @@ def preset(self): try: self.savePreset() except Exception as e: - return self.raise_error(window_title="Error: Could not save parameters!", error_message='Save parameters failed. The following traceback may help to solve the issue:') + return self.raise_error(window_title="Error: Could not save parameters!", + error_message='Save parameters failed. The following traceback may help to solve the issue:') try: self.savePresetDia() except Exception as e: - return self.raise_error(window_title="Error: Could not save!", error_message='Saving data failed. The following traceback may help to solve the issue:') + return self.raise_error(window_title="Error: Could not save!", + error_message='Saving data failed. The following traceback may help to solve the issue:') if index == 5: # reformat inputs [bug] # load C1s component preset pre_bg = [[2, 295, 2, 275, '', '', '', '', '', ''], ['cv', 1e-06, 'it', 10, '', '', '', '', '', ''], @@ -1254,6 +1216,8 @@ def preset(self): self.setPreset([4], pre_bg, pre_pk) if index == 7: self.pt.show() + self.pt.refresh_button.clicked.connect(self.plot_pt) + self.pt.clear_button.clicked.connect(self.plot_pt) if not self.pt.isActiveWindow(): self.pt.close() self.pt.show() @@ -1264,9 +1228,8 @@ def preset(self): def setPreset(self, list_pre_com, list_pre_bg, list_pre_pk, list_pre_pk_lims=[[0, '', '']] * 19): if len(list_pre_com) == 1: - index_bg = list_pre_com[0] + pass else: - index_bg = list_pre_com[0] self.xmin = list_pre_com[1] self.xmin_item.setText(str(format(self.xmin, self.floating))) self.xmax = list_pre_com[2] @@ -1275,17 +1238,14 @@ def setPreset(self, list_pre_com, list_pre_bg, list_pre_pk, list_pre_pk_lims=[[0 self.hv_item.setText(str(format(self.hv, self.floating))) self.wf = list_pre_com[4] self.wf_item.setText(str(format(self.wf, self.floating))) - if len(str(index_bg)) > 0 and self.addition == 0: - if int(index_bg) < len(self.bgMenu.actions()) or int(index_bg) in [100, 101]: - # self.comboBox_bg.setCurrentIndex(int(index_bg)) - self.idx_bg = int(index_bg) - self.displayChoosenBG.setText('Choosen Background: {}'.format(dictBG[str(self.idx_bg)])) + self.displayChoosenBG.setText( + 'Choosen Background: {}'.format('+ '.join([dictBG[str(idx)] for idx in self.idx_bg]))) # load preset for bg if len(list_pre_bg) != 0 and self.addition == 0: for row in range(len(list_pre_bg)): for col in range(len(list_pre_bg[0])): item = self.fitp0.item(row, col) - if (row >= 2 or (row == 0 and 8 > col >= 4) or (row == 1 and col == 0)) and col % 2 == 0: + if (row == 2 or row>3 or (row==3 and col<2) or (row == 0 and 8 > col >= 4) or (row == 1 and col == 0)) and col % 2 == 0: if list_pre_bg[row][col] == 2: item.setCheckState(QtCore.Qt.Checked) else: @@ -1326,36 +1286,44 @@ def setPreset(self, list_pre_com, list_pre_bg, list_pre_pk, list_pre_pk_lims=[[0 else: self.fitp1.setCellWidget(row, col + colPosition * 2, comboBox) if list_pre_pk[row][col] != 0: - comboBox.setCurrentIndex(list_pre_pk[row][col] + colPosition) + if row==0: + comboBox.setCurrentIndex(int(list_pre_pk[row][col])) + else: + comboBox.setCurrentIndex(int(list_pre_pk[row][col] + colPosition)) else: - comboBox.setCurrentIndex(list_pre_pk[row][col]) + comboBox.setCurrentIndex(int(list_pre_pk[row][col])) else: - item = self.fitp1.item(row, col) if self.addition == 0: + item = self.fitp1.item(row, col) if str(list_pre_pk[row][col]) == '': item.setText('') else: item.setText(str(format(list_pre_pk[row][col], self.floating))) else: + item = self.fitp1.item(row, col+colPosition*2) if str(list_pre_pk[row][col]) == '': item.setText('') else: item.setText(str(format(list_pre_pk[row][col], self.floating))) + else: if row != 0 and row != 13 and row != 15 and row != 17 and row != 19 and row != 21 and row != 23 and row != 25: - item = self.fitp1.item(row, col) + if self.addition == 0: + item = self.fitp1.item(row, col) + else: + item = self.fitp1.item(row, col+colPosition*2) + item.setText('') if list_pre_pk[row][col] == 2: item.setCheckState(QtCore.Qt.Checked) else: item.setCheckState(QtCore.Qt.Unchecked) - if self.addition == 0: - item.setText('') - else: - self.fitp1.setItem(row, col + colPosition * 2, item) for row in range(len(list_pre_pk_lims)): for col in range(len(list_pre_pk_lims[0])): - item = self.fitp1_lims.item(row, col) + if self.addition == 0: + item = self.fitp1_lims.item(row, col) + else: + item = self.fitp1_lims.item(row, col+colPosition*3) if (col % 3) != 0: if str(list_pre_pk_lims[row][col]) == '': item.setText('') @@ -1366,7 +1334,8 @@ def setPreset(self, list_pre_com, list_pre_bg, list_pre_pk, list_pre_pk_lims=[[0 item.setCheckState(QtCore.Qt.Checked) else: item.setCheckState(QtCore.Qt.Unchecked) - + self.activeParameters() + self.lims_changed() def loadPreset(self): cfilePath, _ = QtWidgets.QFileDialog.getOpenFileName(self, 'Open data file', self.filePath, "DAT Files (*.dat)") if cfilePath != "": @@ -1377,6 +1346,11 @@ def loadPreset(self): file.close() # print(self.pre, type(self.pre)) self.pre = ast.literal_eval(temp_pre) + if type(self.pre[0][0])==int:#backwards compatibility for old presets which only allowed one single BG + self.idx_bg = [self.pre[0][0]] + else: + self.idx_bg = self.pre[0][0] + self.setButtonState(self.idx_bg) # self.pre = json.loads(self.pre) #json does not work due to the None issue # print(self.pre, type(self.pre)) # self.comboBox_pres.clear() @@ -1633,7 +1607,7 @@ def exportResults(self): self.rows_lightened) + "(if not using 2D detector, value is 1 and can be ignored!)\n") self.result.to_csv(f, index=False, mode='a') else: - with open(cfilePath.rsplit("_", 1)[0] + '.csv', 'w') as f: + with open(cfilePath.rsplit(".", 1)[0] + '.csv', 'w') as f: f.write('#No of rows lightened (2D detector)' + str( self.rows_lightened) + "(if not using 2D detector, value is 1 and can be ignored!)\n") self.result.to_csv(f, index=False, mode='a') @@ -1672,7 +1646,7 @@ def imp(self): self.list_vamas = vpy.list_vms(cfilePath) except Exception as e: return self.raise_error(window_title="Error: could not load VAMAS file.", - error_message='Loading VAMAS file failed. The following traceback may help to solve the issue:') + error_message='Loading VAMAS file failed. The following traceback may help to solve the issue:') self.list_file.extend(self.list_vamas) # print (self.list_file) @@ -1703,53 +1677,46 @@ def plot_pt(self): self.canvas.draw() self.repaint() # self.ax.texts.remove() - if self.pt.selectedElements: - if self.fitp0.item(0, 7).text() is not None and self.fitp0.item(0, 9).text() is not None: - if len(self.fitp0.item(0, 7).text()) > 0 and len(self.fitp0.item(0, 9).text()) > 0: - pe = float(self.fitp0.item(0, 7).text()) - wf = float(self.fitp0.item(0, 9).text()) - else: - pe = 1486.6 - wf = 4 - item = QtWidgets.QTableWidgetItem(str(pe)) - self.fitp0.setItem(0, 7, item) - item = QtWidgets.QTableWidgetItem(str(wf)) - self.fitp0.setItem(0, 9, item) + if self.pt.selected_elements: + if self.pre[0][3] != None and self.pre[0][4] != None: + pe = self.pre[0][3] + wf = self.pre[0][4] else: - pe = 1486.6 - wf = 4 - item = QtWidgets.QTableWidgetItem(str(pe)) - self.fitp0.setItem(0, 7, item) - item = QtWidgets.QTableWidgetItem(str(wf)) - self.fitp0.setItem(0, 9, item) + self.hv = 1486.6 + self.hv_item.insert(str(self.hv)) + self.wf = 4 + self.wf.insert(str(self.wf)) + ymin, ymax = self.ax.get_ylim() xmin, xmax = self.ax.get_xlim() - for obj in self.pt.selectedElements: - if len(obj.alka['trans']) > 0: - for orb in range(len(obj.alka['trans'])): + for obj in self.pt.selected_elements: + alka=ast.literal_eval(obj['alka'].values[0]) + if len(alka['trans']) > 0: + for orb in range(len(alka['trans'])): if xmin > xmax: - en = float(obj.alka['be'][orb]) + en = float(alka['be'][orb]) else: - en = pe - wf - float(obj.alka['be'][orb]) + en = pe - wf - float(alka['be'][orb]) if (xmin > xmax and xmin > en > xmax) or (xmin < xmax and xmin < en < xmax): elem_x = np.asarray([en]) - elem_y = np.asarray([float(obj.alka['rsf'][orb])]) - elem_z = obj.alka['trans'][orb] + elem_y = np.asarray([float(alka['rsf'][orb])]) + elem_z = alka['trans'][orb] # obj.symbol+elem_z, color="r", rotation="vertical") self.ax.text(elem_x, ymin + (ymax - ymin) * math.log(elem_y + 1, 10) / 2, - obj.symbol + elem_z, color="r", rotation="vertical") - if len(obj.aes['trans']) > 0: - for orb in range(len(obj.aes['trans'])): + obj['symbol'].values[0] + elem_z, color="r", rotation="vertical") + aes=ast.literal_eval(obj['aes'].values[0]) + if len(aes['trans']) > 0: + for orb in range(len(aes['trans'])): if xmin > xmax: - en = pe - wf - float(obj.aes['ke'][orb]) + en = pe - wf - float(aes['ke'][orb]) else: - en = float(obj.aes['ke'][orb]) + en = float(aes['ke'][orb]) if (xmin > xmax and xmin > en > xmax) or (xmin < xmax and xmin < en < xmax): elem_x = np.asarray([en]) - elem_y = np.asarray([float(obj.aes['rsf'][orb])]) - elem_z = obj.aes['trans'][orb] + elem_y = np.asarray([float(aes['rsf'][orb])]) + elem_z = aes['trans'][orb] # obj.symbol+elem_z, color="g", rotation="vertical") - self.ax.text(elem_x, ymin + (ymax - ymin) * math.log(elem_y + 1, 10), obj.symbol + elem_z, + self.ax.text(elem_x, ymin + (ymax - ymin) * math.log(elem_y + 1, 10), obj['symbol'].values[0] + elem_z, color="g", rotation="vertical") self.canvas.draw() @@ -1767,8 +1734,13 @@ def plot(self): # self.df = np.loadtxt(str(self.comboBox_file.currentText()), delimiter=',', skiprows=1) fileName = os.path.basename(self.comboBox_file.currentText()) if os.path.splitext(fileName)[1] == '.csv': - try: - self.df = np.loadtxt(str(self.comboBox_file.currentText()), delimiter=',', skiprows=1) + try: # change import, so that export file is detected + data = np.genfromtxt(str(self.comboBox_file.currentText()), dtype='str', delimiter=',', max_rows=2) + if all(elem in data for elem in ['x', 'raw_y', 'sum_fit']): + self.df = np.loadtxt(str(self.comboBox_file.currentText()), delimiter=',', skiprows=2, + usecols=(0, 1)) + else: + self.df = np.loadtxt(str(self.comboBox_file.currentText()), delimiter=',', skiprows=1) # self.df = pd.read_csv(str(self.comboBox_file.currentText()), dtype = float, skiprows=1, # header=None) strpe = np.loadtxt(str(self.comboBox_file.currentText()), dtype='str', delimiter=',', usecols=1, @@ -1782,7 +1754,7 @@ def plot(self): except Exception as e: return self.raise_error(window_title="Error: could not load .csv file.", - error_message='The input .csv is not in the correct format!. The following traceback may help to solve the issue:') + error_message='The input .csv is not in the correct format!. The following traceback may help to solve the issue:') else: @@ -1800,8 +1772,7 @@ def plot(self): self.rows_lightened = 1 except Exception as e: return self.raise_error(window_title="Error: could not load input file.", - error_message='The input file is not in the correct format!. The following traceback may help to solve the issue:') - + error_message='The input file is not in the correct format!. The following traceback may help to solve the issue:') # I have moved the error handling here directly to the import, there may exist situations, where already the # Import would fail. I still left the following error handling there, but I am not sure if there are cases @@ -1819,10 +1790,12 @@ def plot(self): return self.raise_error(window_title="Error: could not load .csv file.", error_message='The input .csv is not in the correct format!. The following traceback may help to solve the issue:') strpe = (str(strpe).split()) + if strpe[0] == 'PE:' and strpe[2] == 'eV': pe = float(strpe[1]) item = QtWidgets.QTableWidgetItem(str(pe)) - self.fitp0.setItem(0, 7, item) + self.fitp0.setItem(0, 9, item) + self.fitp0.setItem(0, 8, QtWidgets.QTableWidgetItem('Pass energy (eV)')) # plt.cla() self.ar.cla() self.ax.cla() @@ -1877,7 +1850,7 @@ def fit(self): # self.threadpool.start(self.fitter) except Exception as e: return self.raise_error(window_title="Error: Fitting failed!", - error_message='Fitting was not successful. The following traceback may help to solve the issue:') + error_message='Fitting was not successful. The following traceback may help to solve the issue:') else: print('No Data present, Switching to simulation mode!') if self.xmin is not None and self.xmax is not None and len(str(self.xmin)) > 0 and len(str(self.xmax)) > 0: @@ -1921,51 +1894,93 @@ def history_manager(self, pars): except IndexError: self.go_back_in_parameter_history = False return self.raise_error(window_title="Error: History empty!", - error_message='First entry in parameter history reached. No further steps saved. The following traceback may help to solve the issue:') + error_message='First entry in parameter history reached. No further steps saved. The following traceback may help to solve the issue:') else: self.savePreset() self.parameter_history_list.append([pars, self.pre]) return None - def clickOnBtnBG(self, idx, activeBG=False): - if not activeBG: - self.idx_bg = idx - else: - self.idx_bg = idx + 100 + def clickOnBtnBG(self): + checked_actions = [action for action in self.bgMenu.actions() if action.isChecked()] + idx_bg = set() + for checked_action in checked_actions: + if checked_action.text() == '&Static &Shirley BG': + idx_bg.add(0) + elif checked_action.text() == '&Active &Shirley BG' and '&Static &Shirley BG' in [checked_act.text() for + checked_act in + checked_actions]: + QtWidgets.QMessageBox.warning(self, 'Warning', 'You cannot choose both Active Shirley BG and Static ' + 'Shirley BG at the same time! Static Shirley BG set! To use Active Shirley BG, please uncheck Static ' + 'Shirley BG!') + checked_action.setChecked(False) + idx_bg.add(0) + elif checked_action.text() == '&Active &Shirley BG' and '&Static &Shirley BG' not in [checked_act.text() for + checked_act in + checked_actions]: + idx_bg.add(100) + elif checked_action.text() == '&Static &Tougaard BG': + idx_bg.add(1) + elif checked_action.text() == '&Active &Tougaard BG' and '&Static &Tougaard BG' in [ + checked_act.text() for checked_act in checked_actions]: + QtWidgets.QMessageBox.warning(self, 'Warning', + 'You cannot choose both Active Tougaard BG and Static Tougaard BG at ' + 'the same time! Static Tougaard BG set! To use Active Tougaard BG, ' + 'please uncheck Static Tougaard BG!') + idx_bg.add(1) + checked_action.setChecked(False) + elif checked_action.text() == '&Active &Tougaard BG' and '&Static &Tougaard BG' not in [checked_act.text() + for checked_act in + checked_actions]: + idx_bg.add(101) + elif checked_action.text() == '&Polynomial BG': + idx_bg.add(2) + elif checked_action.text() == '&Slope BG': + idx_bg.add(6) + elif checked_action.text() == '&Arctan BG': + idx_bg.add(3) + elif checked_action.text() == '&Erf BG': + idx_bg.add(4) + elif checked_action.text() == '&VBM/Cutoff BG': + idx_bg.add(5) + if len(checked_actions) == 0: + QtWidgets.QMessageBox.information(self, 'Info', 'No background was choosen, a polynomial BG was set as default.') + idx_bg.add(2) #if no background was selected, a polynomial will be used + self.idx_bg = sorted(idx_bg) + self.pre[0][0] = self.idx_bg - self.activeBG = activeBG - self.displayChoosenBG.setText('Choosen Background: {}'.format(dictBG[str(self.idx_bg)])) + self.displayChoosenBG.setText( + 'Choosen Background: {}'.format('+ '.join([dictBG[str(idx)] for idx in self.idx_bg]))) self.activeParameters() def write_pars(self, pars): return None - def bgSelector(self, x, y, mode): - if self.idx_bg == 0: + def bgSelector(self, x, y, mode, idx_bg): + if idx_bg == 0: shA = self.pre[1][0][1] shB = self.pre[1][0][3] pars = None bg_mod = xpy.shirley_calculate(x, y, shA, shB) - if self.idx_bg == 100: + if idx_bg == 100: if mode == "eva": shA = self.pre[1][0][1] shB = self.pre[1][0][3] pars = None bg_mod = xpy.shirley_calculate(x, y, shA, shB) else: - mod = Model(xpy.shirley, independent_vars=["y"], prefix='bg_') + mod = ShirleyBG(independent_vars=["y"], prefix='bg_shirley_') k = self.pre[1][0][5] const = self.pre[1][0][7] pars = mod.make_params() - pars['bg_k'].value = float(k) - pars['bg_const'].value = float(const) + pars['bg_shirley_k'].value = float(k) + pars['bg_shirley_const'].value = float(const) if self.pre[1][0][4] == 2: - pars['bg_k'].vary = False + pars['bg_shirley_k'].vary = False if self.pre[1][0][6] == 2: - pars['bg_const'].vary = False + pars['bg_shirley_const'].vary = False bg_mod = 0 - if self.idx_bg == 1: + if idx_bg == 1: toB = self.pre[1][1][1] toC = self.pre[1][1][3] toCd = self.pre[1][1][5] @@ -1979,47 +1994,66 @@ def bgSelector(self, x, y, mode): toM = 1 [bg_mod, bg_toB] = xpy.tougaard_calculate(x, y, toB, toC, toCd, toD, toM) self.pre[1][1][1] = bg_toB - if self.idx_bg == 101: - mod = Model(xpy.tougaard2, independent_vars=["x", "y"], prefix='bg_') + if idx_bg == 101: + mod = TougaardBG(independent_vars=["x", "y"], prefix='bg_tougaard_') if self.pre[1][1][1] is None or self.pre[1][1][3] is None or self.pre[1][1][5] is None \ - or self.pre[1][1][7] is None or len(str(self.pre[1][1][1])) == 0 or len(str(self.pre[1][1][3])) == 0 \ - or len(str(self.pre[1][1][5])) == 0 or len(str(self.pre[1][1][7])) == 0: + or self.pre[1][1][7] is None or self.pre[1][1][9] is None or len(str(self.pre[1][1][1])) == 0 or len(str(self.pre[1][1][3])) == 0 \ + or len(str(self.pre[1][1][5])) == 0 or len(str(self.pre[1][1][7]))==0 or len(str(self.pre[1][1][9])) == 0: pars = mod.guess(y, x=x, y=y) else: pars = mod.make_params() - pars['bg_B'].value = self.pre[1][1][1] + pars['bg_tougaard_B'].value = self.pre[1][1][1] if self.pre[1][1][0] == 2: - pars['bg_B'].vary = False - pars['bg_C'].value = self.pre[1][1][3] - pars['bg_C'].vary = False - pars['bg_C_d'].value = self.pre[1][1][5] - pars['bg_C_d'].vary = False - pars['bg_D'].value = self.pre[1][1][7] - pars['bg_D'].vary = False + pars['bg_tougaard_B'].vary = False + pars['bg_tougaard_C'].value = self.pre[1][1][3] + pars['bg_tougaard_C'].vary = False + pars['bg_tougaard_C_d'].value = self.pre[1][1][5] + pars['bg_tougaard_C_d'].vary = False + pars['bg_tougaard_D'].value = self.pre[1][1][7] + pars['bg_tougaard_D'].vary = False + pars['bg_tougaard_extend'].value=self.pre[1][1][9] + pars['bg_tougaard_extend'].vary = False bg_mod = 0 - if self.idx_bg == 3 or self.idx_bg == 4: - if self.idx_bg == 3: - mod = StepModel(prefix='bg_', form='arctan') - if self.idx_bg == 4: - mod = StepModel(prefix='bg_', form='erf') - if self.pre[1][self.idx_bg][1] is None or self.pre[1][self.idx_bg][3] is None or self.pre[1][self.idx_bg][ + if idx_bg == 3: + mod = StepModel(prefix='bg_arctan_', form='arctan') + if self.pre[1][idx_bg+1][1] is None or self.pre[1][idx_bg+1][3] is None or self.pre[1][idx_bg+1][ 5] is None \ - or len(str(self.pre[1][self.idx_bg][1])) == 0 or len(str(self.pre[1][self.idx_bg][3])) == 0 \ - or len(str(self.pre[1][self.idx_bg][5])) == 0: + or len(str(self.pre[1][idx_bg+1][1])) == 0 or len(str(self.pre[1][idx_bg+1][3])) == 0 \ + or len(str(self.pre[1][idx_bg+1][5])) == 0: pars = mod.guess(y, x=x) else: pars = mod.make_params() - pars['bg_amplitude'].value = self.pre[1][self.idx_bg][1] - if self.pre[1][self.idx_bg][0] == 2: - pars['bg_amplitude'].vary = False - pars['bg_center'].value = self.pre[1][self.idx_bg][3] - if self.pre[1][self.idx_bg][2] == 2: - pars['bg_center'].vary = False - pars['bg_sigma'].value = self.pre[1][self.idx_bg][5] - if self.pre[1][self.idx_bg][4] == 2: - pars['bg_sigma'].vary = False + pars['bg_arctan_amplitude'].value = self.pre[1][idx_bg+1][1] + if self.pre[1][idx_bg+1][0] == 2: + pars['bg_arctan_amplitude'].vary = False + pars['bg_arctan_center'].value = self.pre[1][idx_bg+1][3] + if self.pre[1][idx_bg+1][2] == 2: + pars['bg_arctan_center'].vary = False + pars['bg_arctan_sigma'].value = self.pre[1][idx_bg+1][5] + if self.pre[1][idx_bg+1][4] == 2: + pars['bg_arctan_sigma'].vary = False bg_mod = 0 - if self.idx_bg == 5: + if idx_bg == 4: + mod = StepModel(prefix='bg_step_', form='erf') + if self.pre[1][idx_bg+1][1] is None or self.pre[1][idx_bg+1][3] is None or self.pre[1][idx_bg+1][ + 5] is None \ + or len(str(self.pre[1][idx_bg+1][1])) == 0 or len(str(self.pre[1][idx_bg+1][3])) == 0 \ + or len(str(self.pre[1][idx_bg+1][5])) == 0: + pars = mod.guess(y, x=x) + else: + pars = mod.make_params() + pars['bg_step_amplitude'].value = self.pre[1][idx_bg+1][1] + if self.pre[1][idx_bg+1][0] == 2: + pars['bg_step_amplitude'].vary = False + pars['bg_step_center'].value = self.pre[1][idx_bg+1][3] + if self.pre[1][idx_bg+1][2] == 2: + pars['bg_step_center'].vary = False + pars['bg_step_sigma'].value = self.pre[1][idx_bg+1][5] + if self.pre[1][idx_bg+1][4] == 2: + pars['bg_step_sigma'].vary = False + bg_mod = 0 + + if idx_bg == 5: if (x[0] > x[-1] and y[0] > y[-1]) or (x[0] < x[-1] and y[0] < y[-1]): # VBM def poly2vbm(x, ctr, d1, d2, d3, d4): @@ -2031,38 +2065,38 @@ def poly2vbm(x, ctr, d1, d2, d3, d4): return (d1 * (x - ctr) + d2 * (x - ctr) ** 2 + d3 * (x - ctr) ** 3 + d4 * (x - ctr) ** 4) * ( x <= ctr) - mod = Model(poly2vbm, prefix='bg_') + mod = Model(poly2vbm, prefix='bg_vbm_') pars = mod.make_params() - if self.pre[1][self.idx_bg][1] is None or self.pre[1][self.idx_bg][3] is None or self.pre[1][self.idx_bg][ + if self.pre[1][idx_bg+1][1] is None or self.pre[1][idx_bg+1][3] is None or self.pre[1][idx_bg+1][ 5] is None \ - or self.pre[1][self.idx_bg][7] is None or self.pre[1][self.idx_bg][9] is None \ - or len(str(self.pre[1][self.idx_bg][1])) == 0 or len(str(self.pre[1][self.idx_bg][3])) == 0 \ - or len(str(self.pre[1][self.idx_bg][5])) == 0 or len(str(self.pre[1][self.idx_bg][7])) == 0 \ - or len(str(self.pre[1][self.idx_bg][9])) == 0: - pars['bg_ctr'].value = (x[0] + x[-1]) / 2 - pars['bg_d1'].value = 0 - pars['bg_d2'].value = 0 - pars['bg_d3'].value = 0 - pars['bg_d4'].value = 0 + or self.pre[1][idx_bg+1][7] is None or self.pre[1][idx_bg+1][9] is None \ + or len(str(self.pre[1][idx_bg+1][1])) == 0 or len(str(self.pre[1][idx_bg+1][3])) == 0 \ + or len(str(self.pre[1][idx_bg+1][5])) == 0 or len(str(self.pre[1][idx_bg+1][7])) == 0 \ + or len(str(self.pre[1][idx_bg+1][9])) == 0: + pars['bg_vbm_ctr'].value = (x[0] + x[-1]) / 2 + pars['bg_vbm_d1'].value = 0 + pars['bg_vbm_d2'].value = 0 + pars['bg_vbm_d3'].value = 0 + pars['bg_vbm_d4'].value = 0 else: - pars['bg_ctr'].value = self.pre[1][self.idx_bg][1] - if self.pre[1][self.idx_bg][0] == 2: - pars['bg_ctr'].vary = False - pars['bg_d1'].value = self.pre[1][self.idx_bg][3] - if self.pre[1][self.idx_bg][2] == 2: - pars['bg_d1'].vary = False - pars['bg_d2'].value = self.pre[1][self.idx_bg][5] - if self.pre[1][self.idx_bg][5] == 2: - pars['bg_d2'].vary = False - pars['bg_d3'].value = self.pre[1][self.idx_bg][7] - if self.pre[1][self.idx_bg][6] == 2: - pars['bg_d3'].vary = False - pars['bg_d4'].value = self.pre[1][self.idx_bg][9] - if self.pre[1][self.idx_bg][8] == 2: - pars['bg_d4'].vary = False + pars['bg_vbm_ctr'].value = self.pre[1][idx_bg+1][1] + if self.pre[1][idx_bg+1][0] == 2: + pars['bg_vbm_ctr'].vary = False + pars['bg_vbm_d1'].value = self.pre[1][idx_bg+1][3] + if self.pre[1][idx_bg+1][2] == 2: + pars['bg_vbm_d1'].vary = False + pars['bg_vbm_d2'].value = self.pre[1][idx_bg+1][5] + if self.pre[1][idx_bg+1][5] == 2: + pars['bg_vbm_d2'].vary = False + pars['bg_vbm_d3'].value = self.pre[1][idx_bg+1][7] + if self.pre[1][idx_bg+1][6] == 2: + pars['bg_vbm_d3'].vary = False + pars['bg_vbm_d4'].value = self.pre[1][idx_bg+1][9] + if self.pre[1][idx_bg+1][8] == 2: + pars['bg_vbm_d4'].vary = False bg_mod = 0 - if self.idx_bg == 2: - mod = PolynomialModel(4, prefix='bg_') + if idx_bg == 2: + mod = PolynomialModel(4, prefix='bg_poly_') bg_mod = 0 if self.pre[1][2][1] is None or self.pre[1][2][3] is None or self.pre[1][2][5] is None \ or self.pre[1][2][7] is None or self.pre[1][2][9] is None or len(str(self.pre[1][2][1])) == 0 \ @@ -2072,64 +2106,26 @@ def poly2vbm(x, ctr, d1, d2, d3, d4): else: pars = mod.make_params() for index in range(5): - pars['bg_c' + str(index)].value = self.pre[1][2][2 * index + 1] - if self.pre[1][2][2 * index] == 2: - pars['bg_c' + str(index)].vary = False - if self.fixedBG.isChecked(): - for par in pars: - pars[par].vary = False - return [mod, bg_mod, pars] - # Polynomial BG to be added for all BG - modp = PolynomialModel(4, prefix='pg_') - if self.pre[1][2][1] is None or self.pre[1][2][3] is None or self.pre[1][2][5] is None \ - or self.pre[1][2][7] is None or self.pre[1][2][9] is None or len(str(self.pre[1][2][1])) == 0 \ - or len(str(self.pre[1][2][3])) == 0 or len(str(self.pre[1][2][5])) == 0 \ - or len(str(self.pre[1][2][7])) == 0 or len(str(self.pre[1][2][9])) == 0: - if pars is None: - pars = modp.make_params() - mod = modp - for index in range(5): - pars['pg_c' + str(index)].value = 0 - # make all poly bg parameters fixed - for col in range(5): - self.pre[1][2][2 * col] = 0 - if self.fixedBG.isChecked(): - for par in pars: - pars[par].vary = False - return [mod, bg_mod, pars] - - else: - pars.update(modp.make_params()) - for index in range(5): - pars['pg_c' + str(index)].value = 0 - # make all poly bg parameters fixed - for col in range(5): - self.pre[1][2][2 * col] = 0 - - else: - if pars is None: - pars = modp.make_params() - mod = modp - for index in range(5): - pars['pg_c' + str(index)].value = self.pre[1][2][2 * index + 1] + pars['bg_poly_c' + str(index)].value = self.pre[1][2][2 * index + 1] if self.pre[1][2][2 * index] == 2: - pars['pg_c' + str(index)].vary = False - if self.fixedBG.isChecked(): - for par in pars: - pars[par].vary = False - return [mod, bg_mod, pars] + pars['bg_poly_c' + str(index)].vary = False + if idx_bg ==6: + mod=SlopeBG(independent_vars=['y'],prefix='bg_slope_') + bg_mod=0 + if self.pre[1][3][1] is None or len(str(self.pre[1][3][1])) == 0: + pars = mod.guess(y, x=x) else: - pars.update(modp.make_params()) - for index in range(5): - pars['pg_c' + str(index)].value = self.pre[1][2][2 * index + 1] - if self.pre[1][2][2 * index] == 2: - pars['pg_c' + str(index)].vary = False - mod += modp + pars = mod.make_params() + pars['bg_slope_k'].value = self.pre[1][3][1] + if self.pre[1][3][0] == 2: + pars['bg_slope_k'].vary = False if self.fixedBG.isChecked(): for par in pars: pars[par].vary = False return [mod, bg_mod, pars] + + def PeakSelector(self, mod): pars_all = [] ncomponent = self.fitp1.columnCount() @@ -2159,7 +2155,8 @@ def PeakSelector(self, mod): if self.pre[2][14][2 * index_pk] == 2: pars[strind + str(index_pk + 1) + '_center_diff'].vary = False if self.pre[2][16][2 * index_pk + 1] is not None and len(str(self.pre[2][16][2 * index_pk + 1])) > 0: - pars.add(strind + str(index_pk + 1) + "_amp_ratio", value=float(self.pre[2][16][2 * index_pk + 1]), min=0) + pars.add(strind + str(index_pk + 1) + "_amp_ratio", value=float(self.pre[2][16][2 * index_pk + 1]), + min=0) if self.pre[2][16][2 * index_pk] == 2: pars[strind + str(index_pk + 1) + '_amp_ratio'].vary = False if index == 0 or index == 2 or index == 4 or index == 5 or index == 6 or index == 7 or index == 8 or index == 12: @@ -2556,32 +2553,38 @@ def peak_limits(self, pars): 3 * index_pk + 2] return pars - def bgResult2Pre(self, out_params, mode): - if self.idx_bg == 100: - if mode != "eva": - self.pre[1][0][5] = out_params['bg_k'].value - self.pre[1][0][7] = out_params['bg_const'].value - if self.idx_bg == 101: - self.pre[1][1][1] = out_params['bg_B'].value - self.pre[1][1][3] = out_params['bg_C'].value - self.pre[1][1][5] = out_params['bg_C_d'].value - self.pre[1][1][7] = out_params['bg_D'].value - if self.idx_bg == 3 or self.idx_bg == 4: - self.pre[1][self.idx_bg][1] = out_params['bg_amplitude'].value - self.pre[1][self.idx_bg][3] = out_params['bg_center'].value - self.pre[1][self.idx_bg][5] = out_params['bg_sigma'].value - if self.idx_bg == 5: - self.pre[1][self.idx_bg][1] = out_params['bg_ctr'].value - self.pre[1][self.idx_bg][3] = out_params['bg_d1'].value - self.pre[1][self.idx_bg][5] = out_params['bg_d2'].value - self.pre[1][self.idx_bg][7] = out_params['bg_d3'].value - self.pre[1][self.idx_bg][9] = out_params['bg_d4'].value - if self.idx_bg == 2: - for index in range(5): - self.pre[1][self.idx_bg][2 * index + 1] = out_params['bg_c' + str(index)].value - if self.idx_bg != 2: - for index in range(5): - self.pre[1][2][2 * index + 1] = out_params['pg_c' + str(index)].value + def bgResult2Pre(self, out_params, mode, idx_bgs): + for idx_bg in idx_bgs: + if idx_bg == 6: + self.pre[1][3][1] = out_params['bg_slope_k'].value + if idx_bg == 100: + if mode != "eva": + self.pre[1][0][5] = out_params['bg_shirley_k'].value + self.pre[1][0][7] = out_params['bg_shirley_const'].value + if idx_bg == 101: + self.pre[1][1][1] = out_params['bg_tougaard_B'].value + self.pre[1][1][3] = out_params['bg_tougaard_C'].value + self.pre[1][1][5] = out_params['bg_tougaard_C_d'].value + self.pre[1][1][7] = out_params['bg_tougaard_D'].value + self.pre[1][1][9] = out_params['bg_tougaard_extend'].value + if idx_bg == 3: + self.pre[1][idx_bg+1][1] = out_params['bg_arctan_amplitude'].value + self.pre[1][idx_bg+1][3] = out_params['bg_arctan_center'].value + self.pre[1][idx_bg+1][5] = out_params['bg_arctan_sigma'].value + + if idx_bg == 4: + self.pre[1][idx_bg+1][1] = out_params['bg_step_amplitude'].value + self.pre[1][idx_bg+1][3] = out_params['bg_step_center'].value + self.pre[1][idx_bg+1][5] = out_params['bg_step_sigma'].value + if idx_bg == 5: + self.pre[1][idx_bg+1][1] = out_params['bg_vbm_ctr'].value + self.pre[1][idx_bg+1][3] = out_params['bg_vbm_d1'].value + self.pre[1][idx_bg+1][5] = out_params['bg_vbm_d2'].value + self.pre[1][idx_bg+1][7] = out_params['bg_vbm_d3'].value + self.pre[1][idx_bg+1][9] = out_params['bg_vbm_d4'].value + if idx_bg==2: + for index in range(5): + self.pre[1][2][2 * index + 1] = out_params['bg_poly_c' + str(index)].value def peakResult2Pre(self, out_params, mode): ncomponent = self.fitp1.columnCount() @@ -2628,7 +2631,7 @@ def peakResult2Pre(self, out_params, mode): self.pre[2][12][2 * index_pk + 1] = out_params[strind + str(index_pk + 1) + '_fct_coster_kronig'].value def result2Par(self, out_params, mode): - self.bgResult2Pre(out_params, mode) + self.bgResult2Pre(out_params, mode, self.idx_bg) self.peakResult2Pre(out_params, mode) def fillTabResults(self, x, y, out): @@ -2800,6 +2803,20 @@ def fillTabResults(self, x, y, out): self.res_tab.resizeRowsToContents() self.fitp1.resizeColumnsToContents() self.fitp1.resizeRowsToContents() + def BGModCreator(self, x,y,mode): + temp_res = self.bgSelector(x, y, mode=mode, idx_bg= self.idx_bg[0]) + mod=temp_res[0] + bg_mod=temp_res[1] + pars=temp_res[2] + + for idx_bg in self.idx_bg[1:]: + temp_res=self.bgSelector(x,y,mode,idx_bg) + mod += temp_res[0] + bg_mod += temp_res[1] + pars.update(temp_res[2]) + + return mod, bg_mod,pars + def ana(self, mode): self.savePreset() @@ -2865,7 +2882,9 @@ def ana(self, mode): raw_y = y.copy() # BG model selection and call shirley and tougaard # colPosition = self.fitp1.columnCount() - temp_res = self.bgSelector(x, y, mode=mode) + + + temp_res = self.BGModCreator(x, y, mode=mode) mod = temp_res[0] bg_mod = temp_res[1] pars = temp_res[2] @@ -2967,6 +2986,12 @@ def ana(self, mode): self.stats_tab.setItem(9, 0, item) self.stats_tab.resizeColumnsToContents() self.stats_tab.resizeRowsToContents() + sum_background=np.array([0.]*len(x)) + self.bg_comps=dict() + for key in comps: + if 'bg_' in key: + self.bg_comps[key]=comps[key] + sum_background+=comps[key] if mode == "sim": self.ar.set_title(r"Simulation mode", fontsize=11) if mode == 'eva': @@ -2980,30 +3005,12 @@ def ana(self, mode): # print(index_pk, color) strind = self.fitp1.cellWidget(0, 2 * index_pk + 1).currentText() strind = strind.split(":", 1)[0] - if self.idx_bg > 100: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_'], - comps['bg_'] + comps['pg_'], label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, comps['bg_'] + comps['pg_'], label='BG') - if self.idx_bg < 2 or self.idx_bg == 100: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + bg_mod + comps['pg_'], - bg_mod + comps['pg_'], label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + bg_mod + comps['pg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, bg_mod + comps['pg_'], label='BG') - if self.idx_bg == 2: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'], comps['bg_'], - label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'], comps['bg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, comps['bg_'], label='BG') - if 100 > self.idx_bg > 2: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_'], - comps['bg_'] + comps['pg_'], label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, comps['bg_'] + comps['pg_'], label='BG') + + self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + sum_background+bg_mod, + sum_background+bg_mod, label='C_' + str(index_pk + 1)) + self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + sum_background+bg_mod) + if index_pk == len_idx_pk - 1: + self.ax.plot(x, + sum_background+bg_mod, label='BG') self.ax.set_xlim(left=self.xmin) self.ar.set_xlim(left=self.xmin) self.ax.set_xlim(right=self.xmax) @@ -3021,32 +3028,11 @@ def ana(self, mode): for index_pk in range(len_idx_pk): strind = self.fitp1.cellWidget(0, 2 * index_pk + 1).currentText() strind = strind.split(":", 1)[0] - if self.idx_bg >= 100: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_'], - comps['bg_'] + comps['pg_'], label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, comps['bg_'] + comps['pg_'], label="BG") - if self.idx_bg < 2: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + bg_mod + comps['pg_'], - bg_mod + comps['pg_'], label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + bg_mod + comps['pg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, bg_mod + comps['pg_'], label="BG") - if self.idx_bg == 2: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'], comps['bg_'], - label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, comps['bg_'], label="BG") - if 100 > self.idx_bg > 2: - self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_'], - comps['bg_'] + comps['pg_'], label='C_' + str(index_pk + 1)) - self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + comps['bg_'] + comps['pg_']) - if index_pk == len_idx_pk - 1: - self.ax.plot(x, comps['bg_'] + comps['pg_'], label="BG") - - # + self.ax.fill_between(x, comps[strind + str(index_pk + 1) + '_'] + bg_mod+sum_background, + bg_mod+sum_background, label='C_' + str(index_pk + 1)) + self.ax.plot(x, comps[strind + str(index_pk + 1) + '_'] + bg_mod+sum_background) + if index_pk == len_idx_pk - 1: + self.ax.plot(x, + bg_mod+sum_background, label="BG") self.ax.set_xlim(left=self.xmin) self.ar.set_xlim(left=self.xmin) self.ax.set_xlim(right=self.xmax) @@ -3067,59 +3053,29 @@ def ana(self, mode): # make dataFrame and concat to export df_x = pd.DataFrame(x, columns=['x']) df_raw_y = pd.DataFrame(raw_y, columns=['raw_y']) - if self.idx_bg > 100: - df_y = pd.DataFrame(raw_y - comps['pg_'] - comps['bg_'], columns=['data-bg']) - df_pks = pd.DataFrame(out.best_fit - comps['pg_'] - comps['bg_'], columns=['sum_components']) - df_sum = pd.DataFrame(out.best_fit, columns=['sum_fit']) - elif self.idx_bg == 100: - if mode == 'eva': - df_y = pd.DataFrame(raw_y - comps['pg_'] - bg_mod, columns=['data-bg']) - df_pks = pd.DataFrame(out.best_fit - comps['pg_'] - bg_mod, columns=['sum_components']) - df_sum = pd.DataFrame(out.best_fit, columns=['sum_fit']) - else: - df_y = pd.DataFrame(raw_y - comps['pg_'] - comps['bg_'], columns=['data-bg']) - df_pks = pd.DataFrame(out.best_fit - comps['pg_'] - comps['bg_'], columns=['sum_components']) - df_sum = pd.DataFrame(out.best_fit, columns=['sum_fit']) - - elif self.idx_bg == 2: - df_y = pd.DataFrame(raw_y - bg_mod - comps['bg_'], columns=['data-bg']) - df_pks = pd.DataFrame(out.best_fit - comps['bg_'], columns=['sum_components']) - df_sum = pd.DataFrame(out.best_fit + comps['bg_'], columns=['sum_fit']) - else: - df_y = pd.DataFrame(raw_y - bg_mod - comps['pg_'], columns=['data-bg']) - df_pks = pd.DataFrame(out.best_fit - comps['pg_'], columns=['sum_components']) - df_sum = pd.DataFrame(out.best_fit + bg_mod, columns=['sum_fit']) - if self.idx_bg > 100: - df_b = pd.DataFrame(comps['pg_'] + comps['bg_'], columns=['bg']) - if self.idx_bg < 2: - df_b = pd.DataFrame(bg_mod + comps['pg_'], columns=['bg']) - if self.idx_bg == 2: - df_b = pd.DataFrame(comps['bg_'], columns=['bg']) - if 100 > self.idx_bg > 2: - df_b = pd.DataFrame(comps['bg_'] + comps['pg_'], columns=['bg']) - if self.idx_bg == 100: - df_b = pd.DataFrame(comps['bg_'], columns=['bg']) - if self.idx_bg == 2: - df_b_pg = pd.DataFrame(comps['bg_'], columns=['pg']) - else: - df_b_pg = pd.DataFrame(comps['pg_'], columns=['pg']) - self.result = pd.concat([df_x, df_raw_y, df_y, df_pks, df_b, df_b_pg, df_sum], axis=1) + df_y = pd.DataFrame(raw_y - sum_background-bg_mod, columns=['data-bg']) + df_pks = pd.DataFrame(out.best_fit - sum_background-bg_mod, columns=['sum_components']) + df_sum = pd.DataFrame(out.best_fit, columns=['sum_fit']) + df_b = pd.DataFrame(sum_background+bg_mod, columns=['bg']) + self.result = pd.concat([df_x, df_raw_y, df_y, df_pks, df_b, df_sum], axis=1) + df_bg_comps=pd.DataFrame.from_dict(self.bg_comps, orient='columns') + self.result=pd.concat([self.result, df_bg_comps], axis=1) for index_pk in range(int(self.fitp1.columnCount() / 2)): strind = self.fitp1.cellWidget(0, 2 * index_pk + 1).currentText() strind = strind.split(":", 1)[0] df_c = pd.DataFrame(comps[strind + str(index_pk + 1) + '_'], columns=[strind + str(index_pk + 1)]) self.result = pd.concat([self.result, df_c], axis=1) print(out.fit_report()) - lim_reached=False - at_zero=False + lim_reached = False + at_zero = False for key in out.params: - if (out.params[key].value==out.params[key].min or out.params[key].value==out.params[key].max) : - if out.params[key].value!=0: - lim_reached=True + if (out.params[key].value == out.params[key].min or out.params[key].value == out.params[key].max): + if out.params[key].value != 0: + lim_reached = True print('Limit reached for ', key) else: - at_zero=True - print(key, ' is at limit. Value is at 0.0. That was probably intended and can be ignored!' ) + at_zero = True + print(key, ' is at limit. Value is at 0.0. That was probably intended and can be ignored!') if at_zero: self.set_status('at_zero') @@ -3134,18 +3090,6 @@ def center(self): qr.moveCenter(cp) self.move(qr.topLeft()) - def handleElementClicked(self, elementObject, checked): - symbol = elementObject.symbol - if symbol == 'Clear': - self.pt.selectedElements = [] - elif symbol == 'Refresh': - pass - elif checked and elementObject not in self.pt.selectedElements: - self.pt.selectedElements.append(elementObject) - elif not checked: - self.pt.selectedElements.remove(elementObject) - self.plot_pt() - def closeEvent(self, event): event.accept() sys.exit(0) diff --git a/Python/periodictable.py b/Python/periodictable.py index 7fa288a..4528eac 100644 --- a/Python/periodictable.py +++ b/Python/periodictable.py @@ -1,61 +1,113 @@ -import sys -from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QCheckBox -from PyQt5.QtCore import pyqtSignal -from periodictableui import Ui_PeriodicTable -from elements import Transition -from elementdata import ElementData +from PyQt5.QtWidgets import QWidget, QPushButton, QGridLayout, QLabel, QHBoxLayout +import pandas as pd +import os -class PeriodicTable(QWidget): - # Custom signal defined here - elementEmitted = pyqtSignal(object, bool) +data = pd.read_csv(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'elements.csv')) +class PeriodicTable(QWidget): def __init__(self): super().__init__() + self.data = data + self.selected_elements = [] + self.selected_elements_names = [] + self.selected_buttons=[] + self.initUI() + + def initUI(self): + self.grid = QGridLayout() + self.grid.setSpacing(0) # Remove spacing between buttons + self.grid.setVerticalSpacing(0) + self.grid.setHorizontalSpacing(0) + for i in range(1, 8): + for j in range(1, 19): + symbol = self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['symbol'].values + if len(symbol) > 0: + button = QPushButton(symbol[0], self) + button.clicked.connect(lambda checked,s=self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]: self.toggleElementSelection(s)) + cpk_color = \ + self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['cpk_color'].values[0] + series_color = \ + self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['series_color'].values[0] + button.setStyleSheet("background-color: %s" % series_color) + button.setMinimumHeight(50) + button.setMaximumWidth(80) + self.grid.addWidget(button, i, j) + self.grid.setRowMinimumHeight(i, 50) + self.grid.setVerticalSpacing(0) + self.grid.setHorizontalSpacing(0) + self.setLayout(self.grid) + self.setGeometry(100, 100, 600, 500) + self.setWindowTitle('Clickable Periodic Table') + + + self.refresh_button = QPushButton('Refresh', self) + self.refresh_button.setStyleSheet("font-weight: bold; font-size: 16px") + self.refresh_button.clicked.connect(self.updateSelectedElements) + self.refresh_button.setMaximumHeight(50) + self.grid.addWidget(self.refresh_button, 1, 5,2,3) + + self.clear_button = QPushButton('Clear', self) + self.clear_button.setStyleSheet("font-weight: bold; font-size: 16px") + self.clear_button.clicked.connect(self.clearSelection) + self.clear_button.setMaximumHeight(50) + self.grid.addWidget(self.clear_button, 1, 8,2,3) + + # create legend + legend_layout = QHBoxLayout() + legend = QLabel(self) + legend.setText("Legend:") + legend.setStyleSheet("font-size: 16px; margin-top: 20px") + legend.move(50, 750) + colors = self.data['series_color'].unique() + + # add legend labels for each color used in the periodic table + for i, color in enumerate(colors): + label = QLabel(self) + label.setStyleSheet("background-color: %s; border: 1px solid black" % color) + label.setFixedSize(30, 30) + label.move(40 + i * 50, 780) + legend_layout.addWidget(label) + legend_text = QLabel(self) + legend_text.setText(self.data[(self.data['series_color']==color)]['series_name'].values[0]) + legend_text.setStyleSheet("font-size: 16px; margin-top: 20px") + legend_text.move(55 + i * 50, 785) + legend_layout.addWidget(legend_text) + self.grid.addLayout(legend_layout, 9, 1, 1, 18) + def toggleElementSelection(self, element): + if element['symbol'].values[0] in self.selected_elements_names: + self.selected_elements_names.remove(element['symbol'].values[0]) + self.selected_elements.remove(element) + print(self.selected_elements_names) + else: + self.selected_elements.append(element) + self.selected_elements_names.append(element['symbol'].values[0]) + for i in range(1, 8): + for j in range(1, 19): + symbol = self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['symbol'].values + if self.grid.itemAtPosition(i, j) is not None and len(symbol) > 0: + button = self.grid.itemAtPosition(i, j).widget() + cpk_color = \ + self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['cpk_color'].values[0] + series_color = \ + self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['series_color'].values[0] + if symbol in self.selected_elements_names: + button.setStyleSheet("border: 3px solid #FF0000; font-weight: bold; color: #FF0000") + else: + button.setStyleSheet("background-color: %s" % series_color) + def clearSelection(self): + self.selected_elements = [] + self.selected_elements_names = [] + for i in range(1, 8): + for j in range(1, 19): + if self.grid.itemAtPosition(i, j) is not None and not self.data[(self.data['period'] == i) & (self.data['group_id'] == j)].empty: + button = self.grid.itemAtPosition(i, j).widget() + cpk_color = \ + self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['cpk_color'].values[0] + series_color = \ + self.data[(self.data['period'] == i) & (self.data['group_id'] == j)]['series_color'].values[0] + button.setStyleSheet("background-color: %s" % series_color) + - self.ui = Ui_PeriodicTable() - self.ui.setupUi(self) - - # Element Objects - self.elements = ElementData().xps - self.periodicTable = {} - #self.selectedElements = [] - - for element in self.elements: - self.periodicTable[element['symbol']] = Transition(element['symbol'], element['alka'], element['aes']) - #print(element['symbol']) - - # Iterates through all of the UI object names and connects slots/signals - # This widget is highly dependent on the naming convention of the buttons - # and line edits, changing the names will break the function assignments - for name in dir(self.ui): - # Element buttons: - if 'ebtn' in name: - btn = getattr(self.ui, name) - btn.clicked[bool].connect(self.emitElement) - elif 'Clear' in name: - btn = getattr(self.ui, name) - btn.clicked.connect(self.emitElement) - elif 'Refresh' in name: - btn = getattr(self.ui, name) - btn.clicked.connect(self.emitElement) - - # Slot for element button clicked signal - # Emits custom signal with elemental symbol and boolean - def emitElement(self, checked): - symbol = self.sender().text() - elementObject = self.periodicTable[symbol] - self.elementEmitted.emit(elementObject, checked) - - if symbol == 'Clear': - for name in dir(self.ui): - # Element buttons: - if 'ebtn' in name: - btnc = getattr(self.ui, name) - btnc.setChecked(False) - -if __name__ == '__main__': - app = QApplication(sys.argv) - window = PeriodicTable() - window.show() - sys.exit(app.exec_()) + def updateSelectedElements(self): + return self.selected_elements diff --git a/Python/periodictableui.py b/Python/periodictableui.py deleted file mode 100644 index f66b548..0000000 --- a/Python/periodictableui.py +++ /dev/null @@ -1,675 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'periodictable.ui' -# -# Created by: PyQt5 UI code generator 5.9.2 -# -# WARNING! All changes made in this file will be lost! - -from PyQt5 import QtCore, QtGui, QtWidgets - -class Ui_PeriodicTable(object): - def setupUi(self, PeriodicTable): - PeriodicTable.setObjectName("PeriodicTable") - PeriodicTable.resize(570, 300) - font = QtGui.QFont() - font.setPointSize(13) - #font.setBold(False) - font.setWeight(75) - PeriodicTable.setFont(font) - self.Refresh = QtWidgets.QPushButton(PeriodicTable) - self.Refresh.setGeometry(QtCore.QRect(120, 10, 82, 40)) - self.Refresh.setCheckable(False) - self.Clear = QtWidgets.QPushButton(PeriodicTable) - self.Clear.setGeometry(QtCore.QRect(200, 10, 82, 40)) - self.Clear.setCheckable(False) - self.ebtnHe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnHe.setGeometry(QtCore.QRect(520, 10, 42, 40)) - self.ebtnHe.setCheckable(True) - self.ebtnHe.setObjectName("ebtnHe") - self.ebtnRa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnRa.setGeometry(QtCore.QRect(40, 190, 42, 40)) - self.ebtnRa.setCheckable(True) - self.ebtnRa.setObjectName("ebtnRa") - self.ebtnLu = QtWidgets.QPushButton(PeriodicTable) - self.ebtnLu.setGeometry(QtCore.QRect(520, 230, 42, 40)) - self.ebtnLu.setCheckable(True) - self.ebtnLu.setObjectName("ebtnLu") - self.ebtnGa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnGa.setGeometry(QtCore.QRect(370, 100, 42, 40)) - self.ebtnGa.setCheckable(True) - self.ebtnGa.setObjectName("ebtnGa") - self.ebtnCa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCa.setGeometry(QtCore.QRect(40, 100, 42, 40)) - self.ebtnCa.setCheckable(True) - self.ebtnCa.setObjectName("ebtnCa") - self.ebtnAu = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAu.setGeometry(QtCore.QRect(310, 160, 42, 40)) - self.ebtnAu.setCheckable(True) - self.ebtnAu.setObjectName("ebtnAu") - self.ebtnLa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnLa.setGeometry(QtCore.QRect(100, 230, 42, 40)) - self.ebtnLa.setCheckable(True) - self.ebtnLa.setObjectName("ebtnLa") - self.ebtnYb = QtWidgets.QPushButton(PeriodicTable) - self.ebtnYb.setGeometry(QtCore.QRect(490, 230, 42, 40)) - self.ebtnYb.setCheckable(True) - self.ebtnYb.setObjectName("ebtnYb") - self.ebtnW = QtWidgets.QPushButton(PeriodicTable) - self.ebtnW.setGeometry(QtCore.QRect(160, 160, 42, 40)) - self.ebtnW.setCheckable(True) - self.ebtnW.setObjectName("ebtnW") - self.ebtnBk = QtWidgets.QPushButton(PeriodicTable) - self.ebtnBk.setGeometry(QtCore.QRect(340, 260, 42, 40)) - self.ebtnBk.setCheckable(True) - self.ebtnBk.setObjectName("ebtnBk") - self.ebtnSc = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSc.setGeometry(QtCore.QRect(70, 100, 42, 40)) - self.ebtnSc.setCheckable(True) - self.ebtnSc.setObjectName("ebtnSc") - self.ebtnNi = QtWidgets.QPushButton(PeriodicTable) - self.ebtnNi.setGeometry(QtCore.QRect(280, 100, 42, 40)) - self.ebtnNi.setCheckable(True) - self.ebtnNi.setObjectName("ebtnNi") - self.ebtnBa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnBa.setGeometry(QtCore.QRect(40, 160, 42, 40)) - self.ebtnBa.setCheckable(True) - self.ebtnBa.setObjectName("ebtnBa") - self.ebtnBh = QtWidgets.QPushButton(PeriodicTable) - self.ebtnBh.setGeometry(QtCore.QRect(190, 190, 42, 40)) - self.ebtnBh.setCheckable(True) - self.ebtnBh.setObjectName("ebtnBh") - self.ebtnHs = QtWidgets.QPushButton(PeriodicTable) - self.ebtnHs.setGeometry(QtCore.QRect(220, 190, 42, 40)) - self.ebtnHs.setCheckable(True) - self.ebtnHs.setObjectName("ebtnHs") - self.ebtnHf = QtWidgets.QPushButton(PeriodicTable) - self.ebtnHf.setGeometry(QtCore.QRect(100, 160, 42, 40)) - self.ebtnHf.setCheckable(True) - self.ebtnHf.setObjectName("ebtnHf") - self.ebtnPr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPr.setGeometry(QtCore.QRect(160, 230, 42, 40)) - self.ebtnPr.setCheckable(True) - self.ebtnPr.setObjectName("ebtnPr") - self.ebtnV = QtWidgets.QPushButton(PeriodicTable) - self.ebtnV.setGeometry(QtCore.QRect(130, 100, 42, 40)) - self.ebtnV.setCheckable(True) - self.ebtnV.setObjectName("ebtnV") - self.ebtnN = QtWidgets.QPushButton(PeriodicTable) - self.ebtnN.setGeometry(QtCore.QRect(430, 40, 42, 40)) - self.ebtnN.setCheckable(True) - self.ebtnN.setObjectName("ebtnN") - self.ebtnFr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnFr.setGeometry(QtCore.QRect(10, 190, 42, 40)) - self.ebtnFr.setCheckable(True) - self.ebtnFr.setObjectName("ebtnFr") - self.ebtnGd = QtWidgets.QPushButton(PeriodicTable) - self.ebtnGd.setGeometry(QtCore.QRect(310, 230, 42, 40)) - self.ebtnGd.setCheckable(True) - self.ebtnGd.setObjectName("ebtnGd") - self.ebtnO = QtWidgets.QPushButton(PeriodicTable) - self.ebtnO.setGeometry(QtCore.QRect(460, 40, 42, 40)) - self.ebtnO.setCheckable(True) - self.ebtnO.setObjectName("ebtnO") - self.ebtnPt = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPt.setGeometry(QtCore.QRect(280, 160, 42, 40)) - self.ebtnPt.setCheckable(True) - self.ebtnPt.setObjectName("ebtnPt") - self.ebtnLi = QtWidgets.QPushButton(PeriodicTable) - self.ebtnLi.setGeometry(QtCore.QRect(10, 40, 42, 40)) - self.ebtnLi.setCheckable(True) - self.ebtnLi.setObjectName("ebtnLi") - self.ebtnP = QtWidgets.QPushButton(PeriodicTable) - self.ebtnP.setGeometry(QtCore.QRect(430, 70, 42, 40)) - self.ebtnP.setCheckable(True) - self.ebtnP.setObjectName("ebtnP") - self.ebtnXe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnXe.setGeometry(QtCore.QRect(520, 130, 42, 40)) - self.ebtnXe.setCheckable(True) - self.ebtnXe.setObjectName("ebtnXe") - self.ebtnPd = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPd.setGeometry(QtCore.QRect(280, 130, 42, 40)) - self.ebtnPd.setCheckable(True) - self.ebtnPd.setObjectName("ebtnPd") - self.ebtnDb = QtWidgets.QPushButton(PeriodicTable) - self.ebtnDb.setGeometry(QtCore.QRect(130, 190, 42, 40)) - self.ebtnDb.setCheckable(True) - self.ebtnDb.setObjectName("ebtnDb") - self.ebtnRb = QtWidgets.QPushButton(PeriodicTable) - self.ebtnRb.setGeometry(QtCore.QRect(10, 130, 42, 40)) - self.ebtnRb.setCheckable(True) - self.ebtnRb.setObjectName("ebtnRb") - self.ebtnBi = QtWidgets.QPushButton(PeriodicTable) - self.ebtnBi.setGeometry(QtCore.QRect(430, 160, 42, 40)) - self.ebtnBi.setCheckable(True) - self.ebtnBi.setObjectName("ebtnBi") - self.ebtnIn = QtWidgets.QPushButton(PeriodicTable) - self.ebtnIn.setGeometry(QtCore.QRect(370, 130, 42, 40)) - self.ebtnIn.setCheckable(True) - self.ebtnIn.setObjectName("ebtnIn") - self.ebtnS = QtWidgets.QPushButton(PeriodicTable) - self.ebtnS.setGeometry(QtCore.QRect(460, 70, 42, 40)) - self.ebtnS.setCheckable(True) - self.ebtnS.setObjectName("ebtnS") - self.ebtnNd = QtWidgets.QPushButton(PeriodicTable) - self.ebtnNd.setGeometry(QtCore.QRect(190, 230, 42, 40)) - self.ebtnNd.setCheckable(True) - self.ebtnNd.setObjectName("ebtnNd") - self.ebtnNa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnNa.setGeometry(QtCore.QRect(10, 70, 42, 40)) - self.ebtnNa.setCheckable(True) - self.ebtnNa.setObjectName("ebtnNa") - self.ebtnIr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnIr.setGeometry(QtCore.QRect(250, 160, 42, 40)) - self.ebtnIr.setCheckable(True) - self.ebtnIr.setObjectName("ebtnIr") - self.ebtnOs = QtWidgets.QPushButton(PeriodicTable) - self.ebtnOs.setGeometry(QtCore.QRect(220, 160, 42, 40)) - self.ebtnOs.setCheckable(True) - self.ebtnOs.setObjectName("ebtnOs") - self.ebtnPu = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPu.setGeometry(QtCore.QRect(250, 260, 42, 40)) - self.ebtnPu.setCheckable(True) - self.ebtnPu.setObjectName("ebtnPu") - self.ebtnTe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTe.setGeometry(QtCore.QRect(460, 130, 42, 40)) - self.ebtnTe.setCheckable(True) - self.ebtnTe.setObjectName("ebtnTe") - self.ebtnEs = QtWidgets.QPushButton(PeriodicTable) - self.ebtnEs.setGeometry(QtCore.QRect(400, 260, 42, 40)) - self.ebtnEs.setCheckable(True) - self.ebtnEs.setObjectName("ebtnEs") - self.ebtnCe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCe.setGeometry(QtCore.QRect(130, 230, 42, 40)) - self.ebtnCe.setCheckable(True) - self.ebtnCe.setObjectName("ebtnCe") - self.ebtnB = QtWidgets.QPushButton(PeriodicTable) - self.ebtnB.setGeometry(QtCore.QRect(370, 40, 42, 40)) - self.ebtnB.setCheckable(True) - self.ebtnB.setObjectName("ebtnB") - self.ebtnRe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnRe.setGeometry(QtCore.QRect(190, 160, 42, 40)) - self.ebtnRe.setCheckable(True) - self.ebtnRe.setObjectName("ebtnRe") - self.ebtnCs = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCs.setGeometry(QtCore.QRect(10, 160, 42, 40)) - self.ebtnCs.setCheckable(True) - self.ebtnCs.setObjectName("ebtnCs") - self.ebtnCd = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCd.setGeometry(QtCore.QRect(340, 130, 42, 40)) - self.ebtnCd.setCheckable(True) - self.ebtnCd.setObjectName("ebtnCd") - self.ebtnPb = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPb.setGeometry(QtCore.QRect(400, 160, 42, 40)) - self.ebtnPb.setCheckable(True) - self.ebtnPb.setObjectName("ebtnPb") - self.ebtnRn = QtWidgets.QPushButton(PeriodicTable) - self.ebtnRn.setGeometry(QtCore.QRect(520, 160, 42, 40)) - self.ebtnRn.setCheckable(True) - self.ebtnRn.setObjectName("ebtnRn") - self.ebtnY = QtWidgets.QPushButton(PeriodicTable) - self.ebtnY.setGeometry(QtCore.QRect(70, 130, 42, 40)) - self.ebtnY.setCheckable(True) - self.ebtnY.setObjectName("ebtnY") - self.ebtnU = QtWidgets.QPushButton(PeriodicTable) - self.ebtnU.setGeometry(QtCore.QRect(190, 260, 42, 40)) - self.ebtnU.setCheckable(True) - self.ebtnU.setObjectName("ebtnU") - self.ebtnBr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnBr.setGeometry(QtCore.QRect(490, 100, 42, 40)) - self.ebtnBr.setCheckable(True) - self.ebtnBr.setObjectName("ebtnBr") - self.ebtnC = QtWidgets.QPushButton(PeriodicTable) - self.ebtnC.setGeometry(QtCore.QRect(400, 40, 42, 40)) - self.ebtnC.setCheckable(True) - self.ebtnC.setObjectName("ebtnC") - self.ebtnHo = QtWidgets.QPushButton(PeriodicTable) - self.ebtnHo.setGeometry(QtCore.QRect(400, 230, 42, 40)) - self.ebtnHo.setCheckable(True) - self.ebtnHo.setObjectName("ebtnHo") - self.ebtnNp = QtWidgets.QPushButton(PeriodicTable) - self.ebtnNp.setGeometry(QtCore.QRect(220, 260, 42, 40)) - self.ebtnNp.setCheckable(True) - self.ebtnNp.setObjectName("ebtnNp") - self.ebtnEu = QtWidgets.QPushButton(PeriodicTable) - self.ebtnEu.setGeometry(QtCore.QRect(280, 230, 42, 40)) - self.ebtnEu.setCheckable(True) - self.ebtnEu.setObjectName("ebtnEu") - self.ebtnMn = QtWidgets.QPushButton(PeriodicTable) - self.ebtnMn.setGeometry(QtCore.QRect(190, 100, 42, 40)) - self.ebtnMn.setCheckable(True) - self.ebtnMn.setObjectName("ebtnMn") - self.ebtnGe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnGe.setGeometry(QtCore.QRect(400, 100, 42, 40)) - self.ebtnGe.setCheckable(True) - self.ebtnGe.setObjectName("ebtnGe") - self.ebtnAc = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAc.setEnabled(True) - self.ebtnAc.setGeometry(QtCore.QRect(100, 260, 42, 40)) - self.ebtnAc.setAcceptDrops(False) - self.ebtnAc.setCheckable(True) - self.ebtnAc.setChecked(False) - self.ebtnAc.setAutoDefault(False) - self.ebtnAc.setObjectName("ebtnAc") - self.ebtnAl = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAl.setGeometry(QtCore.QRect(370, 70, 42, 40)) - self.ebtnAl.setCheckable(True) - self.ebtnAl.setObjectName("ebtnAl") - self.ebtnSr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSr.setGeometry(QtCore.QRect(40, 130, 42, 40)) - self.ebtnSr.setCheckable(True) - self.ebtnSr.setObjectName("ebtnSr") - self.ebtnPo = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPo.setGeometry(QtCore.QRect(460, 160, 42, 40)) - self.ebtnPo.setCheckable(True) - self.ebtnPo.setObjectName("ebtnPo") - self.ebtnH = QtWidgets.QPushButton(PeriodicTable) - self.ebtnH.setGeometry(QtCore.QRect(10, 10, 42, 40)) - self.ebtnH.setCheckable(True) - self.ebtnH.setObjectName("ebtnH") - self.ebtnMg = QtWidgets.QPushButton(PeriodicTable) - self.ebtnMg.setGeometry(QtCore.QRect(40, 70, 42, 40)) - self.ebtnMg.setCheckable(True) - self.ebtnMg.setObjectName("ebtnMg") - self.ebtnNb = QtWidgets.QPushButton(PeriodicTable) - self.ebtnNb.setGeometry(QtCore.QRect(130, 130, 42, 40)) - self.ebtnNb.setCheckable(True) - self.ebtnNb.setObjectName("ebtnNb") - self.ebtnSe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSe.setGeometry(QtCore.QRect(460, 100, 42, 40)) - self.ebtnSe.setCheckable(True) - self.ebtnSe.setObjectName("ebtnSe") - self.ebtnFm = QtWidgets.QPushButton(PeriodicTable) - self.ebtnFm.setGeometry(QtCore.QRect(430, 260, 42, 40)) - self.ebtnFm.setCheckable(True) - self.ebtnFm.setObjectName("ebtnFm") - self.ebtnRu = QtWidgets.QPushButton(PeriodicTable) - self.ebtnRu.setGeometry(QtCore.QRect(220, 130, 42, 40)) - self.ebtnRu.setCheckable(True) - self.ebtnRu.setObjectName("ebtnRu") - self.ebtnZr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnZr.setGeometry(QtCore.QRect(100, 130, 42, 40)) - self.ebtnZr.setCheckable(True) - self.ebtnZr.setObjectName("ebtnZr") - self.ebtnCm = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCm.setGeometry(QtCore.QRect(310, 260, 42, 40)) - self.ebtnCm.setCheckable(True) - self.ebtnCm.setObjectName("ebtnCm") - self.ebtnAm = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAm.setGeometry(QtCore.QRect(280, 260, 42, 40)) - self.ebtnAm.setCheckable(True) - self.ebtnAm.setObjectName("ebtnAm") - self.ebtnNo = QtWidgets.QPushButton(PeriodicTable) - self.ebtnNo.setGeometry(QtCore.QRect(490, 260, 42, 40)) - self.ebtnNo.setCheckable(True) - self.ebtnNo.setObjectName("ebtnNo") - self.ebtnMt = QtWidgets.QPushButton(PeriodicTable) - self.ebtnMt.setGeometry(QtCore.QRect(250, 190, 42, 40)) - self.ebtnMt.setCheckable(True) - self.ebtnMt.setObjectName("ebtnMt") - self.ebtnTh = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTh.setGeometry(QtCore.QRect(130, 260, 42, 40)) - self.ebtnTh.setCheckable(True) - self.ebtnTh.setObjectName("ebtnTh") - self.ebtnK = QtWidgets.QPushButton(PeriodicTable) - self.ebtnK.setGeometry(QtCore.QRect(10, 100, 42, 40)) - self.ebtnK.setCheckable(True) - self.ebtnK.setObjectName("ebtnK") - self.ebtnMo = QtWidgets.QPushButton(PeriodicTable) - self.ebtnMo.setGeometry(QtCore.QRect(160, 130, 42, 40)) - self.ebtnMo.setCheckable(True) - self.ebtnMo.setObjectName("ebtnMo") - self.ebtnF = QtWidgets.QPushButton(PeriodicTable) - self.ebtnF.setGeometry(QtCore.QRect(490, 40, 42, 40)) - self.ebtnF.setCheckable(True) - self.ebtnF.setObjectName("ebtnF") - self.ebtnTc = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTc.setGeometry(QtCore.QRect(190, 130, 42, 40)) - self.ebtnTc.setCheckable(True) - self.ebtnTc.setObjectName("ebtnTc") - self.ebtnNe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnNe.setGeometry(QtCore.QRect(520, 40, 42, 40)) - self.ebtnNe.setCheckable(True) - self.ebtnNe.setObjectName("ebtnNe") - self.ebtnCo = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCo.setGeometry(QtCore.QRect(250, 100, 42, 40)) - self.ebtnCo.setCheckable(True) - self.ebtnCo.setObjectName("ebtnCo") - self.ebtnMd = QtWidgets.QPushButton(PeriodicTable) - self.ebtnMd.setGeometry(QtCore.QRect(460, 260, 42, 40)) - self.ebtnMd.setCheckable(True) - self.ebtnMd.setObjectName("ebtnMd") - self.ebtnSb = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSb.setGeometry(QtCore.QRect(430, 130, 42, 40)) - self.ebtnSb.setCheckable(True) - self.ebtnSb.setObjectName("ebtnSb") - self.ebtnTb = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTb.setGeometry(QtCore.QRect(340, 230, 42, 40)) - self.ebtnTb.setCheckable(True) - self.ebtnTb.setObjectName("ebtnTb") - self.ebtnTm = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTm.setGeometry(QtCore.QRect(460, 230, 42, 40)) - self.ebtnTm.setCheckable(True) - self.ebtnTm.setObjectName("ebtnTm") - self.ebtnEr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnEr.setGeometry(QtCore.QRect(430, 230, 42, 40)) - self.ebtnEr.setCheckable(True) - self.ebtnEr.setObjectName("ebtnEr") - self.ebtnCl = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCl.setGeometry(QtCore.QRect(490, 70, 42, 40)) - self.ebtnCl.setCheckable(True) - self.ebtnCl.setObjectName("ebtnCl") - self.ebtnAt = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAt.setGeometry(QtCore.QRect(490, 160, 42, 40)) - self.ebtnAt.setCheckable(True) - self.ebtnAt.setObjectName("ebtnAt") - self.ebtnCr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCr.setGeometry(QtCore.QRect(160, 100, 42, 40)) - self.ebtnCr.setCheckable(True) - self.ebtnCr.setObjectName("ebtnCr") - self.ebtnTa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTa.setGeometry(QtCore.QRect(130, 160, 42, 40)) - self.ebtnTa.setCheckable(True) - self.ebtnTa.setObjectName("ebtnTa") - self.ebtnRh = QtWidgets.QPushButton(PeriodicTable) - self.ebtnRh.setGeometry(QtCore.QRect(250, 130, 42, 40)) - self.ebtnRh.setCheckable(True) - self.ebtnRh.setObjectName("ebtnRh") - self.ebtnI = QtWidgets.QPushButton(PeriodicTable) - self.ebtnI.setGeometry(QtCore.QRect(490, 130, 42, 40)) - self.ebtnI.setCheckable(True) - self.ebtnI.setObjectName("ebtnI") - self.ebtnTl = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTl.setGeometry(QtCore.QRect(370, 160, 42, 40)) - self.ebtnTl.setCheckable(True) - self.ebtnTl.setObjectName("ebtnTl") - self.ebtnSn = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSn.setGeometry(QtCore.QRect(400, 130, 42, 40)) - self.ebtnSn.setCheckable(True) - self.ebtnSn.setObjectName("ebtnSn") - self.ebtnPa = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPa.setGeometry(QtCore.QRect(160, 260, 42, 40)) - self.ebtnPa.setCheckable(True) - self.ebtnPa.setObjectName("ebtnPa") - self.ebtnAr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAr.setGeometry(QtCore.QRect(520, 70, 42, 40)) - self.ebtnAr.setCheckable(True) - self.ebtnAr.setObjectName("ebtnAr") - self.ebtnSi = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSi.setGeometry(QtCore.QRect(400, 70, 42, 40)) - self.ebtnSi.setCheckable(True) - self.ebtnSi.setObjectName("ebtnSi") - self.ebtnSm = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSm.setGeometry(QtCore.QRect(250, 230, 42, 40)) - self.ebtnSm.setCheckable(True) - self.ebtnSm.setObjectName("ebtnSm") - self.ebtnFe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnFe.setGeometry(QtCore.QRect(220, 100, 42, 40)) - self.ebtnFe.setCheckable(True) - self.ebtnFe.setObjectName("ebtnFe") - self.ebtnKr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnKr.setGeometry(QtCore.QRect(520, 100, 42, 40)) - self.ebtnKr.setCheckable(True) - self.ebtnKr.setObjectName("ebtnKr") - self.ebtnBe = QtWidgets.QPushButton(PeriodicTable) - self.ebtnBe.setGeometry(QtCore.QRect(40, 40, 42, 40)) - self.ebtnBe.setCheckable(True) - self.ebtnBe.setObjectName("ebtnBe") - self.ebtnRf = QtWidgets.QPushButton(PeriodicTable) - self.ebtnRf.setGeometry(QtCore.QRect(100, 190, 42, 40)) - self.ebtnRf.setCheckable(True) - self.ebtnRf.setObjectName("ebtnRf") - self.ebtnLr = QtWidgets.QPushButton(PeriodicTable) - self.ebtnLr.setGeometry(QtCore.QRect(520, 260, 42, 40)) - self.ebtnLr.setCheckable(True) - self.ebtnLr.setObjectName("ebtnLr") - self.ebtnSg = QtWidgets.QPushButton(PeriodicTable) - self.ebtnSg.setGeometry(QtCore.QRect(160, 190, 42, 40)) - self.ebtnSg.setCheckable(True) - self.ebtnSg.setObjectName("ebtnSg") - self.ebtnHg = QtWidgets.QPushButton(PeriodicTable) - self.ebtnHg.setGeometry(QtCore.QRect(340, 160, 42, 40)) - self.ebtnHg.setCheckable(True) - self.ebtnHg.setObjectName("ebtnHg") - self.ebtnAs = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAs.setGeometry(QtCore.QRect(430, 100, 42, 40)) - self.ebtnAs.setCheckable(True) - self.ebtnAs.setObjectName("ebtnAs") - self.ebtnCu = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCu.setGeometry(QtCore.QRect(310, 100, 42, 40)) - self.ebtnCu.setCheckable(True) - self.ebtnCu.setObjectName("ebtnCu") - self.ebtnCf = QtWidgets.QPushButton(PeriodicTable) - self.ebtnCf.setGeometry(QtCore.QRect(370, 260, 42, 40)) - self.ebtnCf.setCheckable(True) - self.ebtnCf.setObjectName("ebtnCf") - self.ebtnTi = QtWidgets.QPushButton(PeriodicTable) - self.ebtnTi.setGeometry(QtCore.QRect(100, 100, 42, 40)) - self.ebtnTi.setCheckable(True) - self.ebtnTi.setObjectName("ebtnTi") - self.ebtnDy = QtWidgets.QPushButton(PeriodicTable) - self.ebtnDy.setGeometry(QtCore.QRect(370, 230, 42, 40)) - self.ebtnDy.setCheckable(True) - self.ebtnDy.setObjectName("ebtnDy") - self.ebtnPm = QtWidgets.QPushButton(PeriodicTable) - self.ebtnPm.setGeometry(QtCore.QRect(220, 230, 42, 40)) - self.ebtnPm.setCheckable(True) - self.ebtnPm.setObjectName("ebtnPm") - self.ebtnAg = QtWidgets.QPushButton(PeriodicTable) - self.ebtnAg.setGeometry(QtCore.QRect(310, 130, 42, 40)) - self.ebtnAg.setCheckable(True) - self.ebtnAg.setObjectName("ebtnAg") - self.ebtnZn = QtWidgets.QPushButton(PeriodicTable) - self.ebtnZn.setGeometry(QtCore.QRect(340, 100, 42, 40)) - self.ebtnZn.setCheckable(True) - self.ebtnZn.setObjectName("ebtnZn") - #self.label_3 = QtWidgets.QLabel(PeriodicTable) - #self.label_3.setGeometry(QtCore.QRect(100, 10, 231, 20)) - #font = QtGui.QFont() - #font.setPointSize(9) - #font.setBold(True) - #font.setWeight(75) - #self.label_3.setFont(font) - #self.label_3.setObjectName("label_3") - #self.label_4 = QtWidgets.QLabel(PeriodicTable) - #self.label_4.setGeometry(QtCore.QRect(580, 10, 231, 20)) - #font = QtGui.QFont() - #font.setPointSize(9) - #font.setBold(True) - #font.setWeight(75) - #self.label_4.setFont(font) - #self.label_4.setObjectName("label_4") - #self.ligCheckBox1 = QtWidgets.QCheckBox(PeriodicTable) - #self.ligCheckBox1.setGeometry(QtCore.QRect(570, 73, 21, 17)) - #self.ligCheckBox1.setText("") - #self.ligCheckBox1.setObjectName("ligCheckBox1") - #self.ligFormula1 = QtWidgets.QLineEdit(PeriodicTable) - #self.ligFormula1.setGeometry(QtCore.QRect(590, 71, 61, 20)) - #self.ligFormula1.setObjectName("ligFormula1") - #self.ligMass1 = QtWidgets.QLineEdit(PeriodicTable) - #self.ligMass1.setGeometry(QtCore.QRect(660, 71, 61, 20)) - #self.ligMass1.setReadOnly(True) - #self.ligMass1.setObjectName("ligMass1") - #self.ligClear1 = QtWidgets.QPushButton(PeriodicTable) - #self.ligClear1.setGeometry(QtCore.QRect(740, 70, 21, 23)) - #self.ligClear1.setObjectName("ligClear1") - #self.label_5 = QtWidgets.QLabel(PeriodicTable) - #self.label_5.setGeometry(QtCore.QRect(590, 50, 231, 20)) - #font = QtGui.QFont() - #font.setPointSize(9) - #font.setBold(True) - #font.setWeight(75) - #self.label_5.setFont(font) - #self.label_5.setObjectName("label_5") - #self.label_6 = QtWidgets.QLabel(PeriodicTable) - #self.label_6.setGeometry(QtCore.QRect(660, 50, 231, 20)) - #font = QtGui.QFont() - #font.setPointSize(9) - #font.setBold(True) - #font.setWeight(75) - #self.label_6.setFont(font) - #self.label_6.setObjectName("label_6") - #self.ligClear2 = QtWidgets.QPushButton(PeriodicTable) - #self.ligClear2.setGeometry(QtCore.QRect(740, 109, 21, 23)) - #self.ligClear2.setObjectName("ligClear2") - #self.ligCheckBox2 = QtWidgets.QCheckBox(PeriodicTable) - #self.ligCheckBox2.setGeometry(QtCore.QRect(570, 112, 21, 17)) - #self.ligCheckBox2.setText("") - #self.ligCheckBox2.setObjectName("ligCheckBox2") - #self.ligFormula2 = QtWidgets.QLineEdit(PeriodicTable) - #self.ligFormula2.setGeometry(QtCore.QRect(590, 110, 61, 20)) - #self.ligFormula2.setObjectName("ligFormula2") - #self.ligMass2 = QtWidgets.QLineEdit(PeriodicTable) - #self.ligMass2.setGeometry(QtCore.QRect(660, 110, 61, 20)) - #self.ligMass2.setReadOnly(True) - #self.ligMass2.setObjectName("ligMass2") - #self.ligMass3 = QtWidgets.QLineEdit(PeriodicTable) - #self.ligMass3.setGeometry(QtCore.QRect(660, 150, 61, 20)) - #self.ligMass3.setReadOnly(True) - #self.ligMass3.setObjectName("ligMass3") - #self.ligClear3 = QtWidgets.QPushButton(PeriodicTable) - #self.ligClear3.setGeometry(QtCore.QRect(740, 149, 21, 23)) - #self.ligClear3.setObjectName("ligClear3") - #self.ligCheckBox3 = QtWidgets.QCheckBox(PeriodicTable) - #self.ligCheckBox3.setGeometry(QtCore.QRect(570, 152, 21, 17)) - #self.ligCheckBox3.setText("") - #self.ligCheckBox3.setObjectName("ligCheckBox3") - #self.ligFormula3 = QtWidgets.QLineEdit(PeriodicTable) - #self.ligFormula3.setGeometry(QtCore.QRect(590, 150, 61, 20)) - #self.ligFormula3.setObjectName("ligFormula3") - - self.retranslateUi(PeriodicTable) - QtCore.QMetaObject.connectSlotsByName(PeriodicTable) - - def retranslateUi(self, PeriodicTable): - _translate = QtCore.QCoreApplication.translate - PeriodicTable.setWindowTitle(_translate("PeriodicTable", "PeriodicTable")) - self.Refresh.setText(_translate("PeriodicTable", "Refresh")) - self.Clear.setText(_translate("PeriodicTable", "Clear")) - self.ebtnHe.setText(_translate("PeriodicTable", "He")) - self.ebtnRa.setText(_translate("PeriodicTable", "Ra")) - self.ebtnLu.setText(_translate("PeriodicTable", "Lu")) - self.ebtnGa.setText(_translate("PeriodicTable", "Ga")) - self.ebtnCa.setText(_translate("PeriodicTable", "Ca")) - self.ebtnAu.setText(_translate("PeriodicTable", "Au")) - self.ebtnLa.setText(_translate("PeriodicTable", "La")) - self.ebtnYb.setText(_translate("PeriodicTable", "Yb")) - self.ebtnW.setText(_translate("PeriodicTable", "W")) - self.ebtnBk.setText(_translate("PeriodicTable", "Bk")) - self.ebtnSc.setText(_translate("PeriodicTable", "Sc")) - self.ebtnNi.setText(_translate("PeriodicTable", "Ni")) - self.ebtnBa.setText(_translate("PeriodicTable", "Ba")) - self.ebtnBh.setText(_translate("PeriodicTable", "Bh")) - self.ebtnHs.setText(_translate("PeriodicTable", "Hs")) - self.ebtnHf.setText(_translate("PeriodicTable", "Hf")) - self.ebtnPr.setText(_translate("PeriodicTable", "Pr")) - self.ebtnV.setText(_translate("PeriodicTable", "V")) - self.ebtnN.setText(_translate("PeriodicTable", "N")) - self.ebtnFr.setText(_translate("PeriodicTable", "Fr")) - self.ebtnGd.setText(_translate("PeriodicTable", "Gd")) - self.ebtnO.setText(_translate("PeriodicTable", "O")) - self.ebtnPt.setText(_translate("PeriodicTable", "Pt")) - self.ebtnLi.setText(_translate("PeriodicTable", "Li")) - self.ebtnP.setText(_translate("PeriodicTable", "P")) - self.ebtnXe.setText(_translate("PeriodicTable", "Xe")) - self.ebtnPd.setText(_translate("PeriodicTable", "Pd")) - self.ebtnDb.setText(_translate("PeriodicTable", "Db")) - self.ebtnRb.setText(_translate("PeriodicTable", "Rb")) - self.ebtnBi.setText(_translate("PeriodicTable", "Bi")) - self.ebtnIn.setText(_translate("PeriodicTable", "In")) - self.ebtnS.setText(_translate("PeriodicTable", "S")) - self.ebtnNd.setText(_translate("PeriodicTable", "Nd")) - self.ebtnNa.setText(_translate("PeriodicTable", "Na")) - self.ebtnIr.setText(_translate("PeriodicTable", "Ir")) - self.ebtnOs.setText(_translate("PeriodicTable", "Os")) - self.ebtnPu.setText(_translate("PeriodicTable", "Pu")) - self.ebtnTe.setText(_translate("PeriodicTable", "Te")) - self.ebtnEs.setText(_translate("PeriodicTable", "Es")) - self.ebtnCe.setText(_translate("PeriodicTable", "Ce")) - self.ebtnB.setText(_translate("PeriodicTable", "B")) - self.ebtnRe.setText(_translate("PeriodicTable", "Re")) - self.ebtnCs.setText(_translate("PeriodicTable", "Cs")) - self.ebtnCd.setText(_translate("PeriodicTable", "Cd")) - self.ebtnPb.setText(_translate("PeriodicTable", "Pb")) - self.ebtnRn.setText(_translate("PeriodicTable", "Rn")) - self.ebtnY.setText(_translate("PeriodicTable", "Y")) - self.ebtnU.setText(_translate("PeriodicTable", "U")) - self.ebtnBr.setText(_translate("PeriodicTable", "Br")) - self.ebtnC.setText(_translate("PeriodicTable", "C")) - self.ebtnHo.setText(_translate("PeriodicTable", "Ho")) - self.ebtnNp.setText(_translate("PeriodicTable", "Np")) - self.ebtnEu.setText(_translate("PeriodicTable", "Eu")) - self.ebtnMn.setText(_translate("PeriodicTable", "Mn")) - self.ebtnGe.setText(_translate("PeriodicTable", "Ge")) - self.ebtnAc.setText(_translate("PeriodicTable", "Ac")) - self.ebtnAl.setText(_translate("PeriodicTable", "Al")) - self.ebtnSr.setText(_translate("PeriodicTable", "Sr")) - self.ebtnPo.setText(_translate("PeriodicTable", "Po")) - self.ebtnH.setText(_translate("PeriodicTable", "H")) - self.ebtnMg.setText(_translate("PeriodicTable", "Mg")) - self.ebtnNb.setText(_translate("PeriodicTable", "Nb")) - self.ebtnSe.setText(_translate("PeriodicTable", "Se")) - self.ebtnFm.setText(_translate("PeriodicTable", "Fm")) - self.ebtnRu.setText(_translate("PeriodicTable", "Ru")) - self.ebtnZr.setText(_translate("PeriodicTable", "Zr")) - self.ebtnCm.setText(_translate("PeriodicTable", "Cm")) - self.ebtnAm.setText(_translate("PeriodicTable", "Am")) - self.ebtnNo.setText(_translate("PeriodicTable", "No")) - self.ebtnMt.setText(_translate("PeriodicTable", "Mt")) - self.ebtnTh.setText(_translate("PeriodicTable", "Th")) - self.ebtnK.setText(_translate("PeriodicTable", "K")) - self.ebtnMo.setText(_translate("PeriodicTable", "Mo")) - self.ebtnF.setText(_translate("PeriodicTable", "F")) - self.ebtnTc.setText(_translate("PeriodicTable", "Tc")) - self.ebtnNe.setText(_translate("PeriodicTable", "Ne")) - self.ebtnCo.setText(_translate("PeriodicTable", "Co")) - self.ebtnMd.setText(_translate("PeriodicTable", "Md")) - self.ebtnSb.setText(_translate("PeriodicTable", "Sb")) - self.ebtnTb.setText(_translate("PeriodicTable", "Tb")) - self.ebtnTm.setText(_translate("PeriodicTable", "Tm")) - self.ebtnEr.setText(_translate("PeriodicTable", "Er")) - self.ebtnCl.setText(_translate("PeriodicTable", "Cl")) - self.ebtnAt.setText(_translate("PeriodicTable", "At")) - self.ebtnCr.setText(_translate("PeriodicTable", "Cr")) - self.ebtnTa.setText(_translate("PeriodicTable", "Ta")) - self.ebtnRh.setText(_translate("PeriodicTable", "Rh")) - self.ebtnI.setText(_translate("PeriodicTable", "I")) - self.ebtnTl.setText(_translate("PeriodicTable", "Tl")) - self.ebtnSn.setText(_translate("PeriodicTable", "Sn")) - self.ebtnPa.setText(_translate("PeriodicTable", "Pa")) - self.ebtnAr.setText(_translate("PeriodicTable", "Ar")) - self.ebtnSi.setText(_translate("PeriodicTable", "Si")) - self.ebtnSm.setText(_translate("PeriodicTable", "Sm")) - self.ebtnFe.setText(_translate("PeriodicTable", "Fe")) - self.ebtnKr.setText(_translate("PeriodicTable", "Kr")) - self.ebtnBe.setText(_translate("PeriodicTable", "Be")) - self.ebtnRf.setText(_translate("PeriodicTable", "Rf")) - self.ebtnLr.setText(_translate("PeriodicTable", "Lr")) - self.ebtnSg.setText(_translate("PeriodicTable", "Sg")) - self.ebtnHg.setText(_translate("PeriodicTable", "Hg")) - self.ebtnAs.setText(_translate("PeriodicTable", "As")) - self.ebtnCu.setText(_translate("PeriodicTable", "Cu")) - self.ebtnCf.setText(_translate("PeriodicTable", "Cf")) - self.ebtnTi.setText(_translate("PeriodicTable", "Ti")) - self.ebtnDy.setText(_translate("PeriodicTable", "Dy")) - self.ebtnPm.setText(_translate("PeriodicTable", "Pm")) - self.ebtnAg.setText(_translate("PeriodicTable", "Ag")) - self.ebtnZn.setText(_translate("PeriodicTable", "Zn")) - #self.label_3.setText(_translate("PeriodicTable", "Step 1: Choose Elements To Include")) - #self.label_4.setText(_translate("PeriodicTable", "Optional: Custom Ligand")) - #self.ligClear1.setText(_translate("PeriodicTable", "x")) - #self.label_5.setText(_translate("PeriodicTable", "Formula")) - #self.label_6.setText(_translate("PeriodicTable", "Mass")) - #self.ligClear2.setText(_translate("PeriodicTable", "x")) - #self.ligClear3.setText(_translate("PeriodicTable", "x")) - - -if __name__ == "__main__": - import sys - app = QtWidgets.QApplication(sys.argv) - PeriodicTable = QtWidgets.QWidget() - ui = Ui_PeriodicTable() - ui.setupUi(PeriodicTable) - PeriodicTable.show() - sys.exit(app.exec_()) - diff --git a/Python/usrmodel.py b/Python/usrmodel.py index a46602f..f6e1d16 100644 --- a/Python/usrmodel.py +++ b/Python/usrmodel.py @@ -313,3 +313,185 @@ def guess(self, data, x=None, **kwargs): self.set_param_hint('sigma', value=(max(x) - min(x)) / len(x), min=0, max=2) params = self.make_params() return lmfit.models.update_param_vals(params, self.prefix, **kwargs) + + +bgrnd = [[], [], []] + + +def tougaard(x, y, B, C, C_d, D,extend=30, only_vary_B=True): + """ + Calculates the Tougaard background of an X-ray photoelectron spectroscopy (XPS) spectrum. + + The following implementation is based on the four-parameter loss function as suggested by R.Hesse (https://doi.org/10.1002/sia.3746). + In contrast to R.Hesse, the Tougaard background is not leveled + with the data using a constant, but the background on the high-energy side is extended. This approach was + found to lead to great convergence empirically, however, the length of the data extension remains arbitrary. + + To reduce computing time, as long as only B should be variated (which makes sense in most cases), if the loss function was already calculated, + only b is further optimized. + + Parameters + ---------- + x : array-like + 1D-array containing the x-values (energies) of the spectrum. + y : array-like + 1D-array containing the y-values (intensities) of the spectrum. + B : float + Scaling factor of the Tougaard background model. + C : float + C_d : float + D : float + extend : float, optional + Length of the data extension on the high-kinetic-energy side. Defaults to 30. + only_vary_B : bool, optional + Whether to only vary the scaling factor `B` when calculating the background. Defaults to True. + Varying all parameters of Tougaard background leads to instabilities and weird shaped backgrounds. + + + Returns + ------- + array-like + The Tougaard background of the XPS spectrum. + + See Also + ------- + The following implementation is based on the four-parameter loss function as suggested by R.Hesse [https://doi.org/10.1002/sia.3746]. + """ + global bgrnd + if np.array_equal(bgrnd[0], y) and only_vary_B and bgrnd[2][0]==extend: # only variating B and loss function was already calculated + return [B * elem for elem in bgrnd[1]] + else: + bgrnd[0] = y + bgrnd[2] = [extend] + bg = [] + delta_x = abs((x[-1] - x[0]) / len(x)) + len_padded = int(extend / delta_x) # sets expansion lenght, values between 15 to 50 work great + padded_x = np.concatenate((x, np.linspace(x[-1] + delta_x, x[-1] + delta_x * len_padded, len_padded))) + padded_y = np.concatenate((y, np.mean(y[-10:]) * np.ones(len_padded))) + for k in range(len(x)): + x_k = x[k] + bg_temp = 0 + for j in range(len(padded_y[k:])): + padded_x_kj = padded_x[k + j] + bg_temp += (padded_x_kj - x_k) / ((C + C_d * (padded_x_kj - x_k) ** 2) ** 2 + + D * (padded_x_kj - x_k) ** 2) * padded_y[k + j] * delta_x + bg.append(bg_temp) + bgrnd[1] = bg + return [B * elem for elem in bgrnd[1]] + + +class TougaardBG(lmfit.model.Model): + __doc__ = "Model of the 4 parameter loss function Tougaard. " \ + "The implementation is based on the four-parameter loss function as suggested by R.Hesse [https://doi.org/10.1002/sia.3746]. In addition, the extend parameter is introduced, which improves the agreement between data and Tougaard BG by extending the Data on the high-kinetic energy side (low binding energy side) by the mean intensity value at the rightmost kinetic energy scale. extend represents the length of the data extension on the high-kinetic-energy side in eV. Defaults to 30." + lmfit.models.COMMON_INIT_DOC + + def __init__(self, *args, **kwargs): + super().__init__(tougaard, *args, **kwargs) + self._set_paramhints_prefix() + + def _set_paramhints_prefix(self): + self.set_param_hint('B', value=2886, min=0) + self.set_param_hint('C', value=1643, min=0) + self.set_param_hint('C_d', value=1, min=0) + self.set_param_hint('D', value=1, min=0) + self.set_param_hint('extend', value=30, vary=False) + + def guess(self, data, x=None, **kwargs): + if x is None: + return + params = self.make_params(B=2886, C=1643, C_d=1, D=1) + return lmfit.models.update_param_vals(params, self.prefix, **kwargs) + + +def shirley(y, k, const): + """ + Calculates the Shirley background of an X-ray photoelectron spectroscopy (XPS) spectrum. + This implementation calculates the Shirley background by integrating the step characteristic of the spectrum. + + Parameters + ---------- + y : array-like + 1D-array containing the y-values (intensities) of the spectrum. + k : float + Slope of the step characteristic. + const : float + Constant offset of the step characteristic. + + Returns + ------- + array-like + The Shirley background of the XPS spectrum. + """ + n = len(y) + y_right = const + y_temp = y - y_right # step characteristic is better approximated, if only the step without background is integrated + bg = [] + for i in range(n): + bg.append(np.sum(y_temp[i:])) + return np.asarray([k * elem + y_right for elem in bg]) + + +class ShirleyBG(lmfit.model.Model): + __doc__ = "Model of the Shirley background for X-ray photoelectron spectroscopy (XPS) spectra." + lmfit.models.COMMON_INIT_DOC + def __init__(self, *args, **kwargs): + super().__init__(shirley, *args, **kwargs) + self._set_paramhints_prefix() + + def _set_paramhints_prefix(self): + self.set_param_hint('k', value=0.03, min=0) + self.set_param_hint('const', value=1000, min=0) + def guess(self, data, x=None, **kwargs): + if x is None: + return + params = self.make_params(k=0.03,const=1000) + return lmfit.models.update_param_vals(params, self.prefix, **kwargs) + + +def slope(y, k): + """ + Calculates the slope background of an X-ray photoelectron spectroscopy (XPS) spectrum. + The slope background has some similarities to the Shirley background, e.g. the slope background is calculated integrating the Shirley background from each data point to the + end. Afterwards, a slope parameter k is used for scaling the slope accordingly to the measured data. + + Parameters + ---------- + y : array-like + 1D-array containing the y-values (intensities) of the spectrum. + k : float + Slope of the linear function for determining the background. + + Returns + ------- + array-like + The slope background of the XPS spectrum. + + See Also + -------- + Slope Background implemented as suggested by A. Herrera-Gomez et al in [DOI: 10.1016/j.elspec.2013.07.006]. + """ + n = len(y) + y_right = np.min(y) + y_temp = y - y_right + temp = [] + bg = [] + for i in range(n): + temp.append(np.sum(y_temp[i:])) + for j in range(n): + bg.append(np.sum(temp[j:])) + return np.asarray([-k * elem for elem in bg]) + + +class SlopeBG(lmfit.model.Model): + __doc__ = "Model of the Slopey background for X-ray photoelectron spectroscopy (XPS) spectra. Slope Background implemented as suggested by A. Herrera-Gomez et al in [DOI: 10.1016/j.elspec.2013.07.006]." + lmfit.models.COMMON_INIT_DOC + + def __init__(self, *args, **kwargs): + super().__init__(slope, *args, **kwargs) + self._set_paramhints_prefix() + + def _set_paramhints_prefix(self): + self.set_param_hint('k', value=0.01) + + def guess(self, data, x=None, **kwargs): + if x is None: + return + params = self.make_params(k=0.01) + return lmfit.models.update_param_vals(params, self.prefix, **kwargs) \ No newline at end of file diff --git a/Python/xpspy.py b/Python/xpspy.py index f3752b4..d3c4382 100644 --- a/Python/xpspy.py +++ b/Python/xpspy.py @@ -76,7 +76,7 @@ def shirley_calculate(x, y, tol=1e-5, maxit=10): # print(any(x), any(y), (any(x) and any(y))) if not (any(x) and any(y)): print("One of the arrays x or y is empty. Returning zero background.") - return x * 0 + return np.asarray(x * 0) # Next ensure the energy values are *decreasing* in the array, # if not, reverse them. @@ -94,7 +94,7 @@ def shirley_calculate(x, y, tol=1e-5, maxit=10): # we can't use this algorithm, we return a zero background. if maxidx == 0 or maxidx >= len(y) - 1: print("Boundaries too high for algorithm: returning a zero background.") - return x * 0 + return np.asarray(x * 0) # Locate the minima either side of maxidx. lmidx = abs(y[0:maxidx] - y[0:maxidx].min()).argmin() @@ -142,10 +142,10 @@ def shirley_calculate(x, y, tol=1e-5, maxit=10): print("Max iterations exceeded before convergence.") if is_reversed: # print("Shirley BG: tol (ini = ", tol, ") , iteration (max = ", maxit, "): ", it) - return (yr + B)[::-1] + return np.asarray((yr + B)[::-1]) else: # print("Shirley BG: tol (ini = ", tol, ") , iteration (max = ", maxit, "): ", it) - return yr + B + return np.asarray(yr + B) def tougaard_calculate(x, y, tb=2866, tc=1643, tcd=1, td=1, maxit=100): @@ -154,7 +154,7 @@ def tougaard_calculate(x, y, tb=2866, tc=1643, tcd=1, td=1, maxit=100): # Sanity check: Do we actually have data to process here? if not (any(x) and any(y)): print("One of the arrays x or y is empty. Returning zero background.") - return [x * 0, tb] + return [np.asarray(x * 0), tb] # KE in XPS or PE in XAS if x[0] < x[-1]: @@ -193,66 +193,5 @@ def tougaard_calculate(x, y, tb=2866, tc=1643, tcd=1, td=1, maxit=100): print("Tougaard B:", tb, ", C:", tc, ", C':", tcd, ", D:", td) - return [y[len(y) - 1] + Btou, tb] + return [np.asarray(y[len(y) - 1] + Btou), tb] - -bgrnd = [[], []] - - -def tougaard2(x, y, B, C, C_d, D): - # returns an approximation of the Tougaard BG for a given parameterset - if np.array_equal(bgrnd[0], y): - return [B * elem for elem in bgrnd[1]] - else: - bgrnd[0] = y - bg = [] - delta_x = abs((x[-1] - x[0]) / len(x)) - extend=35 - len_padded = int(extend / delta_x) - # len_padded = 3*len(x) - padded_x = np.concatenate((x, np.linspace(x[-1] + delta_x, x[-1] + delta_x * len_padded, len_padded))) - padded_y = np.concatenate((y,np.mean(y[-10:]) * np.ones(len_padded))) - for k in range(len(x)): - x_k = x[k] - bg_temp = 0 - for j in range(len(padded_y[k:])): - padded_x_kj = padded_x[k + j] - bg_temp += (padded_x_kj - x_k) / ((C + C_d * (padded_x_kj - x_k) ** 2) ** 2 - + D * (padded_x_kj - x_k) ** 2) * padded_y[k + j] * delta_x - bg.append(bg_temp) - bgrnd[1] = bg - return [B * elem for elem in bgrnd[1]] - - -def tougaard(x, y, B, C, C_d, D): - # returns an approximation of the Tougaard BG for a given parameterset - if np.array_equal(bgrnd[0], y): - return [[B * elem for elem in bgrnd[1]], B] - else: - bgrnd[0] = y - bg = [] - delta_x = abs((x[-1] - x[0]) / len(x)) - len_padded = int(50 / delta_x ) - # len_padded = 3*len(x) - padded_x = np.concatenate((x, np.linspace(x[-1] + delta_x, x[-1] + delta_x * len_padded, len_padded))) - padded_y = np.concatenate((y, np.mean(y[-1:]) * np.ones(len_padded))) - for k in range(len(x)): - x_k = x[k] - bg_temp = 0 - for j in range(len(padded_y[k:])): - padded_x_kj = padded_x[k + j] - bg_temp += (padded_x_kj - x_k) / ((C + C_d * (padded_x_kj - x_k) ** 2) ** 2 - + D * (padded_x_kj - x_k) ** 2) * padded_y[k + j] * delta_x - bg.append(bg_temp) - bgrnd[1] = bg - return [[B * elem for elem in bg], B] - - -def shirley(y, k, const): - n = len(y) - y_right = const - y_temp = y - y_right - bg = [] - for i in range(n): - bg.append(np.sum(y_temp[i:])) - return [k * elem + y_right for elem in bg] diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index f40fbd8..0000000 --- a/docs/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -_site -.sass-cache -.jekyll-cache -.jekyll-metadata -vendor diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index 086a5c9..0000000 --- a/docs/404.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -permalink: /404.html -layout: default ---- - - - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index 03d4000..0000000 --- a/docs/Gemfile +++ /dev/null @@ -1,35 +0,0 @@ -source "https://rubygems.org" -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! -#gem "jekyll", "~> 4.3.2" -# This is the default theme for new Jekyll sites. You may change this to anything you like. -gem "minima", "~> 2.5" -# If you want to use GitHub Pages, remove the "gem "jekyll"" above and -# uncomment the line below. To upgrade, run `bundle update github-pages`. -gem "github-pages", "~> 228", group: :jekyll_plugins -# If you have any plugins, put them here! -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.12" -end - -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -platforms :mingw, :x64_mingw, :mswin, :jruby do - gem "tzinfo", ">= 1", "< 3" - gem "tzinfo-data" -end - -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] - -# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem -# do not have a Java counterpart. -gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] - -gem "webrick", "~> 1.8" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock deleted file mode 100644 index 083298a..0000000 --- a/docs/Gemfile.lock +++ /dev/null @@ -1,271 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (7.0.4.3) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.11.1) - colorator (1.1.0) - commonmarker (0.23.9) - concurrent-ruby (1.2.2) - dnsruby (1.61.9) - simpleidn (~> 0.1) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - ethon (0.16.0) - ffi (>= 1.15.0) - eventmachine (1.2.7) - execjs (2.8.1) - faraday (2.7.4) - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.2) - ffi (1.15.5) - ffi (1.15.5-x64-unknown) - forwardable-extended (2.6.0) - gemoji (3.0.1) - github-pages (228) - github-pages-health-check (= 1.17.9) - jekyll (= 3.9.3) - jekyll-avatar (= 0.7.0) - jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.4.0) - jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.15.1) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.13.0) - jekyll-include-cache (= 0.2.1) - jekyll-mentions (= 1.6.0) - jekyll-optional-front-matter (= 0.3.2) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.16.0) - jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.3) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.8.0) - jekyll-sitemap (= 1.4.0) - jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.2.0) - jekyll-theme-cayman (= 0.2.0) - jekyll-theme-dinky (= 0.2.0) - jekyll-theme-hacker (= 0.2.0) - jekyll-theme-leap-day (= 0.2.0) - jekyll-theme-merlot (= 0.2.0) - jekyll-theme-midnight (= 0.2.0) - jekyll-theme-minimal (= 0.2.0) - jekyll-theme-modernist (= 0.2.0) - jekyll-theme-primer (= 0.6.0) - jekyll-theme-slate (= 0.2.0) - jekyll-theme-tactile (= 0.2.0) - jekyll-theme-time-machine (= 0.2.0) - jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.12.0) - kramdown (= 2.3.2) - kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.4) - mercenary (~> 0.3) - minima (= 2.5.1) - nokogiri (>= 1.13.6, < 2.0) - rouge (= 3.26.0) - terminal-table (~> 1.4) - github-pages-health-check (1.17.9) - addressable (~> 2.3) - dnsruby (~> 1.60) - octokit (~> 4.0) - public_suffix (>= 3.0, < 5.0) - typhoeus (~> 1.3) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (1.12.0) - concurrent-ruby (~> 1.0) - jekyll (3.9.3) - addressable (~> 2.4) - colorator (~> 1.0) - em-websocket (~> 0.5) - i18n (>= 0.7, < 2) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 2.0) - kramdown (>= 1.17, < 3) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 4) - safe_yaml (~> 1.0) - jekyll-avatar (0.7.0) - jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.1.1) - coffee-script (~> 2.2) - coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.4.0) - commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.4.0) - commonmarker (~> 0.23.7) - jekyll (~> 3.9.0) - jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 5.0) - jekyll-default-layout (0.1.4) - jekyll (~> 3.0) - jekyll-feed (0.15.1) - jekyll (>= 3.7, < 5.0) - jekyll-gist (1.5.0) - octokit (~> 4.2) - jekyll-github-metadata (2.13.0) - jekyll (>= 3.4, < 5.0) - octokit (~> 4.0, != 4.4.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-mentions (1.6.0) - html-pipeline (~> 2.3) - jekyll (>= 3.7, < 5.0) - jekyll-optional-front-matter (0.3.2) - jekyll (>= 3.0, < 5.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.3.0) - jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.16.0) - jekyll (>= 3.3, < 5.0) - jekyll-relative-links (0.6.1) - jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.3) - addressable (~> 2.0) - jekyll (>= 3.5, < 5.0) - jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) - rubyzip (>= 1.3.0, < 3.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-swiss (1.0.0) - jekyll-theme-architect (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.6.0) - jekyll (> 3.5, < 5.0) - jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.3) - jekyll (>= 3.3, < 5.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - jemoji (0.12.0) - gemoji (~> 3.0) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - kramdown (2.3.2) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.4) - listen (3.8.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - mercenary (0.3.6) - mini_portile2 (2.8.1) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - minitest (5.18.0) - nokogiri (1.14.3) - mini_portile2 (~> 2.8.0) - racc (~> 1.4) - nokogiri (1.14.3-x86_64-linux) - racc (~> 1.4) - octokit (4.25.1) - faraday (>= 1, < 3) - sawyer (~> 0.9) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (4.0.7) - racc (1.6.2) - rb-fsevent (0.11.2) - rb-inotify (0.10.1) - ffi (~> 1.0) - rexml (3.2.5) - rouge (3.26.0) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) - safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) - addressable (>= 2.3.5) - faraday (>= 0.17.3, < 3) - simpleidn (0.2.1) - unf (~> 0.1.4) - terminal-table (1.6.0) - typhoeus (1.4.0) - ethon (>= 0.9.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unf_ext (0.0.8.2-x64-unknown) - webrick (1.8.1) - -PLATFORMS - x64-unknown - x86_64-linux - -DEPENDENCIES - github-pages (~> 228) - http_parser.rb (~> 0.6.0) - jekyll-feed (~> 0.12) - minima (~> 2.5) - tzinfo (>= 1, < 3) - tzinfo-data - wdm (~> 0.1.1) - webrick (~> 1.8) - -BUNDLED WITH - 2.4.10 diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 5541552..0000000 --- a/docs/_config.yml +++ /dev/null @@ -1,75 +0,0 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole blog, values -# which you are expected to set up once and rarely edit after that. If you find -# yourself editing this file very often, consider using Jekyll's data files -# feature for the data you need to update frequently. -# -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'bundle exec jekyll serve'. If you change this file, please restart the server process. -# -# If you need help with YAML syntax, here are some quick references for you: -# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml -# https://learnxinyminutes.com/docs/yaml/ -# -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. - -title: LG4X-V2 -author: Julian Hochhaus -email: julian.hochhaus@tu-dortmund.de -description: >- # this means to ignore newlines until "baseurl:" - LG4X-V2 is an open-source GUI for X-ray photoemission spectroscopy (XPS) curve fitting based on the python lmfit package. It streamlines the fitting process for easier validation and consistency. It is inspired by its predecessor software LG4X by Hideki Nakajima. -#baseurl: "" # the subpath of your site, e.g. /blog -#url: "" # the base hostname & protocol for your site, e.g. http://example.com -linkedin: julian-hochhaus -ORCID: 0000-0002-8328-607X -github_username: Julian-Hochhaus - - - -# The keywords to associate with your website, for SEO purposes -keywords: "XPS,lmfit,GUI,open-source, curve fitting, spectra analysis, XAS, open-source software, graphical user interface, X-ray photoemission spectroscopy, XPS curve fitting, fitting procedure, data analysis, Julian Hochhaus, Hideki Nakajima " - -# Build settings -theme: minima -plugins: - - jekyll-feed - - jekyll-seo-tag - -# Theme-specific settings - -minima: - - -header_pages: - - pages/setup.markdown - - pages/guide.markdown - - pages/about.markdown - - - -markdown: kramdown - -# Exclude from processing. -# The following items will not be processed, by default. -# Any item listed under the `exclude:` key here will be automatically added to -# the internal "default list". -# -# Excluded items can be processed by explicitly listing the directories or -# their entries' file path in the `include:` list. -# -# exclude: -# - .sass-cache/ -# - .jekyll-cache/ -# - gemfiles/ -# - Gemfile -# - Gemfile.lock -# - node_modules/ -# - vendor/bundle/ -# - vendor/cache/ -# - vendor/gems/ -# - vendor/ruby/ diff --git a/docs/_posts/2023-03-30-welcome-to-jekyll.markdown b/docs/_posts/2023-03-30-welcome-to-jekyll.markdown deleted file mode 100644 index 2ab304c..0000000 --- a/docs/_posts/2023-03-30-welcome-to-jekyll.markdown +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: post -title: "Welcome to Jekyll!" -date: 2023-03-30 12:28:36 +0200 -categories: jekyll update ---- -You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. - -Jekyll requires blog post files to be named according to the following format: - -`YEAR-MONTH-DAY-title.MARKUP` - -Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works. - -Jekyll also offers powerful support for code snippets: - -{% highlight ruby %} -def print_hi(name) - puts "Hi, #{name}" -end -print_hi('Tom') -#=> prints 'Hi, Tom' to STDOUT. -{% endhighlight %} - -Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. - -[jekyll-docs]: https://jekyllrb.com/docs/home -[jekyll-gh]: https://github.com/jekyll/jekyll -[jekyll-talk]: https://talk.jekyllrb.com/ diff --git a/docs/index.markdown b/docs/index.markdown deleted file mode 100644 index 0671507..0000000 --- a/docs/index.markdown +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Feel free to add content and custom Front Matter to this file. -# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults - -layout: home ---- diff --git a/docs/pages/about.markdown b/docs/pages/about.markdown deleted file mode 100644 index 58ca59d..0000000 --- a/docs/pages/about.markdown +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page -title: About -permalink: /pages/about/ -order: -1 ---- - -This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/) - -You can find the source code for Minima at GitHub: -[jekyll][jekyll-organization] / -[minima](https://github.com/jekyll/minima) - -You can find the source code for Jekyll at GitHub: -[jekyll][jekyll-organization] / -[jekyll](https://github.com/jekyll/jekyll) - - -[jekyll-organization]: https://github.com/jekyll diff --git a/docs/pages/guide.markdown b/docs/pages/guide.markdown deleted file mode 100644 index 7383491..0000000 --- a/docs/pages/guide.markdown +++ /dev/null @@ -1,6 +0,0 @@ ---- -layout: page -title: User Guide -permalink: /pages/guide/ ---- - diff --git a/docs/pages/setup.markdown b/docs/pages/setup.markdown deleted file mode 100644 index 0e4a5d1..0000000 --- a/docs/pages/setup.markdown +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: page -title: Setup -permalink: /pages/setup/ -order : 1 ---- - diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d985ff7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +asteval>=0.9.28 +lmfit>=1.1.0 +matplotlib>=3.6 +numpy>=1.19 +pandas>=2.0 +PyQt5>=5.15 +scipy>=1.6 +uncertainties>=3.1.4 diff --git a/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_fit.csv b/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_fit.csv deleted file mode 100644 index ca4de7b..0000000 --- a/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_fit.csv +++ /dev/null @@ -1,269 +0,0 @@ -x,y,fit,bg,g1 -85.0409,296.27574070664275,2116.823891088721,1385.0,2116.823891088721 -85.0819,296.30616332261906,2117.0412538743963,1385.0,2117.0412538743963 -85.1228,296.34153468828634,2117.2939743695897,1385.0,2117.2939743695897 -85.1638,296.38165383769393,2117.580616717537,1385.0,2117.580616717537 -85.2048,296.4261412986374,2117.8984696742264,1385.0,2117.8984696742264 -85.2457,296.47448488153753,2118.243873759691,1385.0,2118.243873759691 -85.2866,296.5260942835672,2118.612611392278,1385.0,2118.612611392278 -85.3276,296.5803563385908,2119.0003016371134,1385.0,2119.0003016371134 -85.3685,296.6366875544404,2119.4027755731845,1385.0,2119.4027755731845 -85.4095,296.6945677069351,2119.816316315091,1385.0,2119.816316315091 -85.4505,296.7535622529184,2120.2378191491853,1385.0,2120.2378191491853 -85.4914,296.8133292766604,2120.6648411640645,1385.0,2120.6648411640645 -85.5323,296.8736132395681,2121.0955565936447,1385.0,2121.0955565936447 -85.5733,296.93423243561807,2121.5286671890353,1385.0,2121.5286671890353 -85.6142,296.9950645801292,2121.9632992535444,1385.0,2121.9632992535444 -85.6552,297.0560309060783,2122.3988900144113,1385.0,2122.3988900144113 -85.6962,297.11708321253997,2122.835095086808,1385.0,2122.835095086808 -85.7371,297.17819339749593,2123.2717136880983,1385.0,2123.2717136880983 -85.778,297.2393457653351,2123.7086336766524,1385.0,2123.7086336766524 -85.819,297.30053191226466,2124.1457950092517,1385.0,2124.1457950092517 -85.8599,297.3617475327144,2124.5831669235595,1385.0,2124.5831669235595 -85.9009,297.4229904786538,2125.0207340723787,1385.0,2125.0207340723787 -85.9419,297.4842596953872,2125.458488920144,1385.0,2125.458488920144 -85.9828,297.5455546623922,2125.896427747839,1385.0,2125.896427747839 -86.0238,297.6068751139642,2126.3345486570643,1385.0,2126.3345486570643 -86.0647,297.66822091352094,2126.7728506719723,1385.0,2126.7728506719723 -86.1056,297.7295919993459,2127.2113333516086,1385.0,2127.2113333516086 -86.1466,297.79098835983643,2127.649996613076,1385.0,2127.649996613076 -86.1876,297.8524100201415,2128.088840636059,1385.0,2128.088840636059 -86.2285,297.9138570226285,2128.527865723264,1385.0,2128.527865723264 -86.2695,297.97532941726854,2128.9670722317214,1385.0,2128.9670722317214 -86.3104,298.03682726430384,2129.4064605918493,1385.0,2129.4064605918493 -86.3513,298.0983506017525,2129.8460310752794,1385.0,2129.8460310752794 -86.3923,298.15989946541254,2130.2857839377784,1385.0,2130.2857839377784 -86.4333,298.2214738751079,2130.7257193209857,1385.0,2130.7257193209857 -86.4742,298.2830738261831,2131.1658371916387,1385.0,2131.1658371916387 -86.5152,298.3446993013152,2131.606137425969,1385.0,2131.606137425969 -86.5561,298.40635028504687,2132.0466199135362,1385.0,2132.0466199135362 -86.597,298.4680267489797,2132.4872844514402,1385.0,2132.4872844514402 -86.638,298.52972868298866,2132.9281309673415,1385.0,2132.9281309673415 -86.679,298.5914560932138,2133.3691595051087,1385.0,2133.3691595051087 -86.7199,298.65320901036,2133.81037028412,1385.0,2133.81037028412 -86.7609,298.71498749913695,2134.2517637667133,1385.0,2134.2517637667133 -86.8018,298.77679165252573,2134.6933406172175,1385.0,2134.6933406172175 -86.8427,298.8386215860472,2135.1351016610024,1385.0,2135.1351016610024 -86.8837,298.90047742095356,2135.577047764388,1385.0,2135.577047764388 -86.9246,298.9623592713132,2136.0191797423677,1385.0,2136.0191797423677 -86.9656,299.024267230892,2136.461498264878,1385.0,2136.461498264878 -87.0066,299.08620136429494,2136.9040037935065,1385.0,2136.9040037935065 -87.0475,299.14816170379754,2137.346696558855,1385.0,2137.346696558855 -87.0884,299.21014825104567,2137.7895765726826,1385.0,2137.7895765726826 -87.1294,299.27216099170187,2138.2326437325514,1385.0,2138.2326437325514 -87.1703,299.33419990263724,2138.6758978732105,1385.0,2138.6758978732105 -87.2113,299.3962649472332,2139.1193387330286,1385.0,2139.1193387330286 -87.2523,299.4583561070277,2139.5629661800986,1385.0,2139.5629661800986 -87.2932,299.5204733594402,2140.006780053087,1385.0,2140.006780053087 -87.3341,299.58261669031276,2140.4507802508388,1385.0,2140.4507802508388 -87.3751,299.64478610371043,2140.8949668023984,1385.0,2140.8949668023984 -87.416,299.7069816125941,2141.339339800368,1385.0,2141.339339800368 -87.457,299.7692032244688,2141.783899298369,1385.0,2141.783899298369 -87.498,299.8314509731584,2142.2286455380654,1385.0,2142.2286455380654 -87.5389,299.8937248874994,2142.6735787254884,1385.0,2142.6735787254884 -87.5798,299.9560250062191,2143.1186991373343,1385.0,2143.1186991373343 -87.6208,300.01835138600745,2143.564007178642,1385.0,2143.564007178642 -87.6617,300.08070408994615,2144.0095033001153,1385.0,2144.0095033001153 -87.7027,300.1430831744634,2144.4551879049213,1385.0,2144.4551879049213 -87.7437,300.2054887060158,2144.9010614678764,1385.0,2144.9010614678764 -87.7846,300.2679207303955,2145.3471243161575,1385.0,2145.3471243161575 -87.8255,300.33037927569353,2145.7933766504666,1385.0,2145.7933766504666 -87.8665,300.3928643443753,2146.239818488419,1385.0,2146.239818488419 -87.9074,300.45537590394815,2146.6864495978625,1385.0,2146.6864495978625 -87.9484,300.5179138927774,2147.1332695384313,1385.0,2147.1332695384313 -87.9894,300.5804782256116,2147.580277701022,1385.0,2147.580277701022 -88.0303,300.64306881009435,2148.027473425769,1385.0,2148.027473425769 -88.0713,300.70568555902696,2148.4748560896574,1385.0,2148.4748560896574 -88.1122,300.76832840219015,2148.9224251909864,1385.0,2148.9224251909864 -88.1531,300.83099729425896,2149.3701804059183,1385.0,2149.3701804059183 -88.1941,300.89369221579557,2149.8181215955756,1385.0,2149.8181215955756 -88.2351,300.9564131698278,2150.26624878159,1385.0,2150.26624878159 -88.276,301.0191601677325,2150.7145620452475,1385.0,2150.7145620452475 -88.317,301.0819332237694,2151.1630614884307,1385.0,2151.1630614884307 -88.3579,301.1447323587406,2151.6117472597653,1385.0,2151.6117472597653 -88.3988,301.20755758400696,2152.0606194404227,1385.0,2152.0606194404227 -88.4398,301.27040892218554,2152.5096781919965,1385.0,2152.5096781919965 -88.4808,301.33328640609534,2152.9589237489713,1385.0,2152.9589237489713 -88.5217,301.39619008668103,2153.4083564753346,1385.0,2153.4083564753346 -88.5627,301.4591200430154,2153.857976936045,1385.0,2153.857976936045 -88.6036,301.52207637813376,2154.3077858672655,1385.0,2154.3077858672655 -88.6445,301.58505921491815,2154.757784146962,1385.0,2154.757784146962 -88.6855,301.6480686798848,2155.207972679064,1385.0,2155.207972679064 -88.7264,301.7111048909894,2155.658352306338,1385.0,2155.658352306338 -88.7674,301.77416794479365,2156.108923718697,1385.0,2156.108923718697 -88.8084,301.8372579077694,2156.559687391067,1385.0,2156.559687391067 -88.8493,301.9003748132655,2157.0106435617176,1385.0,2157.0106435617176 -88.8902,301.9635186633424,2157.461792245371,1385.0,2157.461792245371 -88.9312,302.0266894437385,2157.91313334013,1385.0,2157.91313334013 -88.9721,302.0898871312198,2158.364666679994,1385.0,2158.364666679994 -89.0131,302.1531116888043,2158.8163920007346,1385.0,2158.8163920007346 -89.0541,302.2163630980034,2159.268309170255,1385.0,2159.268309170255 -89.095,302.27964133613125,2159.72041802647,1385.0,2159.72041802647 -89.1359,302.3429463890824,2160.1727184685983,1385.0,2160.1727184685983 -89.1769,302.40627826131464,2160.625210528491,1385.0,2160.625210528491 -89.2178,302.4696369663478,2161.077894302744,1385.0,2161.077894302744 -89.2588,302.53302251214444,2161.5307698482484,1385.0,2161.5307698482484 -89.2998,302.59643493347915,2161.983837413459,1385.0,2161.983837413459 -89.3407,302.6598742600454,2162.437097210531,1385.0,2162.437097210531 -89.3816,302.72334053161427,2162.8905495236186,1385.0,2162.8905495236186 -89.4226,302.78683380625625,2163.344194767624,1385.0,2163.344194767624 -89.4635,302.8503541485536,2163.798033403971,1385.0,2163.798033403971 -89.5045,302.9139016163117,2164.252065845668,1385.0,2164.252065845668 -89.5455,302.9774762775525,2164.7062925787154,1385.0,2164.7062925787154 -89.5864,303.04107817924626,2165.1607139387056,1385.0,2165.1607139387056 -89.6273,303.1047073503305,2165.6153301323907,1385.0,2165.6153301323907 -89.6683,303.1683637936368,2166.070141180002,1385.0,2166.070141180002 -89.7092,303.23204747638243,2166.5251468473134,1385.0,2166.5251468473134 -89.7502,303.2957583360975,2166.980346687992,1385.0,2166.980346687992 -89.7912,303.35949628625156,2167.4357400837976,1385.0,2167.4357400837976 -89.8321,303.423261233076,2167.8913263647737,1385.0,2167.8913263647737 -89.8731,303.48705308805717,2168.34710489851,1385.0,2168.34710489851 -89.914,303.55087177997916,2168.8030751761853,1385.0,2168.8030751761853 -89.9549,303.6147172629865,2169.259236870173,1385.0,2169.259236870173 -89.9959,303.6785895175974,2169.7155898412784,1385.0,2169.7155898412784 -90.0369,303.7424885472161,2170.1721341138255,1385.0,2170.1721341138255 -90.0778,303.8064143637519,2170.6288697729033,1385.0,2170.6288697729033 -90.1188,303.87036698205173,2171.0857969245894,1385.0,2171.0857969245894 -90.1597,303.93434642362706,2171.542915722578,1384.8103775109762,2171.542915722578 -90.2006,303.9983527003715,2172.0002262518483,1384.5397264261142,2172.0002262518483 -90.2416,304.06238583564823,2172.4577286793224,1384.2478619218714,2172.4577286793224 -90.2826,304.1264458632146,2172.915423246191,1383.9689385579668,2172.915423246191 -90.3235,304.1905328352967,2173.3733103255963,1383.7309039318982,2173.3733103255963 -90.3645,304.2546468327793,2173.831390495443,1383.5625117340503,2173.831390495443 -90.4054,304.3187879609612,2174.289664508067,1383.4684751202947,2174.289664508067 -90.4463,304.3829563453626,2174.7481332602824,1383.3518968874805,2174.7481332602824 -90.4873,304.4471521152075,2175.206797675365,1383.1266550855457,2175.206797675365 -90.5282,304.51137539099796,2175.6656586142763,1382.8158889977035,2175.6656586142763 -90.5692,304.57562627144017,2176.1247167822494,1382.5271954937057,2176.1247167822494 -90.6102,304.63990482458416,2176.5839726654867,1382.251451009326,2176.5839726654867 -90.6511,304.7042110847303,2177.0434265090553,1381.8864622986755,2177.0434265090553 -90.692,304.7685450542951,2177.503078330222,1381.526765694623,2177.503078330222 -90.733,304.8329067190484,2177.962928027315,1381.1242956824835,2177.962928027315 -90.7739,304.89729605557693,2178.422975433052,1380.606550179878,2178.422975433052 -90.8149,304.9617130263667,2178.883220279404,1380.0700995759091,2178.883220279404 -90.8559,305.02615761254435,2179.343662431525,1379.3720468333129,2179.343662431525 -90.8968,305.09062979057103,2179.804301721236,1378.541356681405,2179.804301721236 -90.9377,305.15512954487656,2180.265138037289,1377.6639904205208,2180.265138037289 -90.9787,305.21965687747166,2180.7261713940525,1376.6804197443912,2180.7261713940525 -91.0196,305.284211797412,2181.187401856226,1375.5753554507482,2181.187401856226 -91.0606,305.34879430439696,2181.648829421663,1374.454900901921,2181.648829421663 -91.1016,305.4134044206651,2182.110454249251,1373.2757544051938,2182.110454249251 -91.1425,305.4780421562133,2182.5722764104175,1371.8177080580836,2182.5722764104175 -91.1834,305.5427075224889,2183.0342959869504,1370.0994995411504,2183.0342959869504 -91.2244,305.60740054149016,2183.4965131360223,1368.147941616722,2183.4965131360223 -91.2653,305.6721212356224,2183.9589280177133,1366.0004928104258,2183.9589280177133 -91.3063,305.73686961302997,2184.4215406902144,1363.4709744256534,2184.4215406902144 -91.3473,305.8016457014463,2184.8843513516745,1360.530149397783,2184.8843513516745 -91.3882,305.86644951443395,2185.3473600989946,1357.3822429395273,2185.3473600989946 -91.4291,305.93128106645975,2185.810567035537,1353.9067781160165,2185.810567035537 -91.4701,305.99614038306163,2186.273972343765,1349.9184531852532,2186.273972343765 -91.511,306.0610274917433,2186.737576220185,1345.454066703657,2186.737576220185 -91.552,306.1259424087463,2187.201378780842,1340.223462610571,2187.201378780842 -91.593,306.19088517369073,2187.6653803088093,1334.085335948753,2187.6653803088093 -91.6339,306.25585581733577,2188.129581023857,1327.0645579285533,2188.129581023857 -91.6748,306.3208543772604,2188.5939811944772,1318.7349614222785,2188.5939811944772 -91.7158,306.3858809053231,2189.058581191188,1308.7926447453578,2189.058581191188 -91.7567,306.4509354548377,2189.5233813949035,1297.0689992413304,2189.5233813949035 -91.7977,306.5160180648689,2189.9883820847335,1282.8250929295366,2189.9883820847335 -91.8387,306.5811287759734,2190.4535835504457,1265.9727899617922,2190.4535835504457 -91.8796,306.64626759895356,2190.9189858692216,1246.0611218053975,2190.9189858692216 -91.9205,306.71143451985546,2191.384588941363,1221.8379298587595,2191.384588941363 -91.9615,306.77662949057174,2191.850392423152,1193.7258178160682,2191.850392423152 -92.0024,306.8418524357585,2192.3163957762763,1161.936724984758,2192.3163957762763 -92.0434,306.90710325699615,2192.7825982975473,1125.4970735841223,2192.7825982975473 -92.0844,306.9723818506318,2193.2489992463898,1085.19744570011,2193.2489992463898 -92.1253,307.03768814353043,2193.71559810027,1042.6084762064627,2193.71559810027 -92.1663,307.10302210645807,2194.1823946503177,998.3732125011907,2194.1823946503177 -92.2072,307.16838374701365,2194.6493889508265,954.182182748506,2194.6493889508265 -92.2481,307.23377314699474,2195.1165815862196,912.6119315396784,2195.1165815862196 -92.2891,307.2991904137158,2195.5839733232365,874.2544550408147,2195.5839733232365 -92.33,307.3646356794053,2196.05156510662,838.9828240811458,2196.05156510662 -92.371,307.4301090816342,2196.5193579192837,807.7650804088902,2196.5193579192837 -92.412,307.4956107364313,2196.987352590226,780.3659230358442,2196.987352590226 -92.4529,307.5611407252471,2197.4555497013944,755.8150554992562,2197.4555497013944 -92.4938,307.62669909771336,2197.923949607395,734.4752505626843,2197.923949607395 -92.5348,307.6922858765449,2198.392552470522,715.8603598383656,2198.392552470522 -92.5757,307.757901067205,2198.8613583298093,699.5698307300647,2198.8613583298093 -92.6167,307.8235446529456,2199.3303670655932,685.5396187106134,2199.3303670655932 -92.6577,307.88921662902345,2199.7995786439865,673.5182870273316,2199.7995786439865 -92.6986,307.9549169810929,2200.268992962492,663.3580371595845,2200.268992962492 -92.7395,308.02064570037624,2200.7386099583946,654.2929866796741,2200.7386099583946 -92.7805,308.08640279502634,2201.208429689946,646.2491962870993,2201.208429689946 -92.8214,308.15218828128957,2201.6784522732223,639.6353353884665,2201.6784522732223 -92.8624,308.2180021688924,2202.1486777777154,633.7255907349493,2202.1486777777154 -92.9034,308.2838444949953,2202.6191064689315,628.3440889298064,2202.6191064689315 -92.9443,308.34971529128416,2203.0897385732565,623.634124310255,2203.0897385732565 -92.9852,308.4156145998179,2203.560574391193,619.468958822357,2203.560574391193 -93.0262,308.48154248161575,2204.0316143587106,615.7404493006552,2204.0316143587106 -93.0671,308.547499004442,2204.5028589599683,612.3860905515878,2204.5028589599683 -93.1081,308.61348422902273,2204.9743086288418,609.3754803915527,2204.9743086288418 -93.1491,308.67949822669743,2205.445963875035,606.6418983236895,2205.445963875035 -93.19,308.74554104696324,2205.917825052194,604.1436949011148,2205.917825052194 -93.2309,308.8116127206363,2206.3898923804936,601.7619960230593,2206.3898923804936 -93.2719,308.8777132515196,2206.862165887105,599.6095736090757,2206.862165887105 -93.3128,308.94384260663975,2207.3346453364406,597.6057957690884,2207.3346453364406 -93.3538,309.0100007225933,2207.8073302754974,595.6567382827684,2207.8073302754974 -93.3948,309.0761875117782,2208.280220078378,593.9426203476954,2208.280220078378 -93.4357,309.1424028804248,2208.753314075119,592.3251098305224,2208.753314075119 -93.4767,309.20864674242387,2209.2266116504898,590.6934084438219,2209.2266116504898 -93.5176,309.27491903332293,2209.7001123439913,589.2289611702863,2209.7001123439913 -93.5585,309.3412197197015,2210.1738159168426,587.8934957402269,2210.1738159168426 -93.5995,309.4075488023807,2210.647722374909,586.5477155112627,2210.647722374909 -93.6405,309.4739063142063,2211.121831952867,585.3451941029983,2211.121831952867 -93.6814,309.54029230381036,2211.596144998182,584.2801978452535,2211.596144998182 -93.7224,309.6067068270591,2212.0706619100047,583.2360384839609,2212.0706619100047 -93.7633,309.6731499505845,2212.545383164407,582.2785962120018,2212.545383164407 -93.8042,309.73962171690187,2213.02030906515,581.3522434957982,2213.02030906515 -93.8452,309.80612216609984,2213.4954398986592,580.3517470363264,2213.4954398986592 -93.8862,309.8726513209983,2213.9707758279756,579.3910060365274,2213.9707758279756 -93.9271,309.9392091779671,2214.4463168271654,578.5554054285649,2214.4463168271654 -93.9681,310.00579571969234,2214.922062772523,577.7218949375812,2214.922062772523 -94.009,310.0724109308751,2215.3980135547417,576.9528007340153,2215.3980135547417 -94.0499,310.1390547822367,2215.874168964631,576.2499651041891,2215.874168964631 -94.0909,310.2057272642494,2216.3505289341174,575.5163297869683,2216.3505289341174 -94.1319,310.27242838496244,2216.827093520711,574.8454761641703,2216.827093520711 -94.1728,310.3391581789745,2217.303862971613,574.2402841574112,2217.303862971613 -94.2138,310.405916717637,2217.7808377966116,573.6693787481157,2217.7808377966116 -94.2547,310.4727041028506,2218.2580187237654,573.1864471488924,2218.2580187237654 -94.2956,310.5395204608785,2218.735406655196,572.7060365828943,2218.735406655196 -94.3366,310.6063659241813,2219.2130025373053,572.1760451653915,2219.2130025373053 -94.3775,310.67324061745694,2219.6908072610313,571.6695821995943,2219.6908072610313 -94.4185,310.74014464346664,2220.1688215605805,571.1780144970899,2220.1688215605805 -94.4595,310.80707807346306,2220.647045945037,570.6591350204795,2220.647045945037 -94.5004,310.8740409437571,2221.125480673835,570.1898110192803,2221.125480673835 -94.5413,310.9410332575571,2221.6041257698957,569.7850099144717,2221.6041257698957 -94.5823,311.0080550007825,2222.0829811326194,569.3334857192558,2222.0829811326194 -94.6232,311.07510614980947,2222.5620465932157,568.971179075463,2222.5620465932157 -94.6642,311.1421866663393,2223.0413218780504,568.6803866418819,2223.0413218780504 -94.7052,311.2092965314878,2223.5208068522006,568.3292366092969,2223.5208068522006 -94.7461,311.2764357215091,2224.0005013460077,567.9954247746161,2224.0005013460077 -94.787,311.34360422094665,2224.480405249037,567.7091206563408,2224.480405249037 -94.828,311.4108020326189,2224.9605185814257,567.4251314417374,2224.9605185814257 -94.8689,311.47802916656894,2225.44084141493,567.1287381842101,2225.44084141493 -94.9099,311.5452856227556,2225.9213737492564,566.8930027056995,2225.9213737492564 -94.9509,311.61257142358386,2226.4021157444813,566.6616510599032,2226.4021157444813 -94.9918,311.6798865757993,2226.8830674488036,566.4228547525236,2226.8830674488036 -95.0327,311.747231079683,2227.364228864228,566.1909027107242,2227.364228864228 -95.0737,311.8146049257123,2227.845599922719,565.8882322783221,2227.845599922719 -95.1146,311.8820080532769,2228.3271801912306,565.6053805473113,2228.3271801912306 -95.1556,311.949440264414,2228.808968255362,565.4230100864827,2228.808968255362 -95.1966,312.0169011018688,2229.2909608481286,565.274973579361,2229.2909608481286 -95.2375,312.08438949134904,2229.7731502939537,565.1009050263981,2229.7731502939537 -95.2784,312.1519031058145,2230.255519966656,564.9326018186678,2230.255519966656 -95.3194,312.219437160873,2230.7380356828226,564.7361356750956,2230.7380356828226 -95.3603,312.28698226954793,2231.2206303746066,564.4591037517465,2231.2206303746066 -95.4013,312.3545207480864,2231.7031776955478,564.2291587500545,2231.7031776955478 -95.4423,312.4220210078745,2232.1854519520684,564.0806405624255,2232.1854519520684 -95.4832,312.48942901241026,2232.6670670654476,563.9246807513885,2232.6670670654476 -95.5241,312.5566563297569,2233.1473912092792,563.6877757850465,2233.1473912092792 -95.5651,312.6235652681512,2233.6254406067183,563.4360358461332,2233.6254406067183 -95.606,312.6899522366989,2234.0997606463657,563.2871537757609,2234.0997606463657 -95.647,312.75552948711925,2234.5682954311264,563.1524460570965,2234.5682954311264 -95.688,312.8199127910877,2235.0282997355707,562.9652229576745,2235.0282997355707 -95.7289,312.8826150441753,2235.47629330752,562.7742749032412,2235.47629330752 -95.7698,312.94305162545163,2235.9080991612027,562.6113588825126,2235.9080991612027 -95.8108,313.0005648206149,2236.3190180750635,562.4662751765528,2236.3190180750635 -95.8517,313.0544663972344,2236.7041327823413,562.3385372266223,2236.7041327823413 -95.8927,313.1040899409991,2237.058681901857,562.2337747051663,2237.058681901857 -95.9337,313.14885787014504,2237.3785387411126,562.09272236722,2237.3785387411126 -95.9746,313.1883418213161,2237.6606427397537,562.0,2237.6606427397537 diff --git a/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_fit.txt b/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_fit.txt deleted file mode 100644 index b69cd45..0000000 --- a/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_fit.txt +++ /dev/null @@ -1,62 +0,0 @@ -LG4X: lmfit gui for xps curve fitting ver. 0.082 - -[[Data file]] - -/mnt/c/Users/Julian Hochhaus/Promotion/Auswertung/Spektren Strahlzeit 2103/210512_Au_Sn_12min/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0.csv - -[[Fit results]] - -pg_c0 0.0 -pg_c1 0.0 -pg_c2 0.0 -pg_c3 0.0 - - g1 -amplitude 142895.53 -center 284.6 -sigma 0.25 -gamma 0.02 -fwhm nan -height nan -fraction nan -skew nan -q nan - -[[LG4X parameters]] - -[0, [[0, 85.0409, 0, 95.9746, 'pt', 101.0, 'hn', 1486.6, 'wf', 4.0], ['cv', 1e-06, 'it', 10.0, '', '', '', '', '', ''], ['B', 2866.0, 'C', 1643.0, 'C*', 1.0, 'D', 1.0, '', ''], [2, 0.0, 2, 0.0, 2, 0.0, 2, 0.0, '', ''], [0, '', 0, '', 0, '', 0, '', '', ''], [0, '', 0, '', 0, '', 0, '', '', ''], [0, '', 0, '', 0, '', 0, '', '', ''], [0, '', 0, '', 0, '', 0, '', '', '']], [['', 10], [2, 284.6], [2, 0.25], [2, 0.02], [0, 142895.526], [2, 0.5], [2, 0.0], [2, 0.0], [2, 0.026], [2, 0.1], [2, 0.7], [2, 0.2], [2, 1.0], ['', 0], [2, 0.1], ['', 0], [2, 0.5], ['', 0], [2, 1.0], ['', 0], [2, 1.0], ['', 0], [2, 1.0], ['', 0], [2, 1.0], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, '']]] - -[[lmfit parameters]] - -Parameters([('pg_c0', ), ('pg_c1', ), ('pg_c2', ), ('pg_c3', ), ('g1_center_diff', ), ('g1_amp_ratio', ), ('g1_soc_ratio', ), ('g1_height_r_ratio', ), ('g1_gaussian_ratio', ), ('g1_lorentzian_ratio', ), ('g1_amplitude', ), ('g1_sigma', ), ('g1_gamma', ), ('g1_gaussian_sigma', ), ('g1_center', ), ('g1_soc', ), ('g1_height_ratio', ), ('g1_factor_sigma_doniach', )]) - -[[Model]] - (Model(polynomial, prefix='pg_') + Model(dublett, prefix='g1_')) -[[Fit Statistics]] - # fitting method = leastsq - # function evals = 4 - # data points = 268 - # variables = 1 - chi-square = 3.9376e+09 - reduced chi-square = 14747516.2 - Akaike info crit = 4424.76297 - Bayesian info crit = 4428.35396 -[[Variables]] - pg_c0: 0 (fixed) - pg_c1: 0 (fixed) - pg_c2: 0 (fixed) - pg_c3: 0 (fixed) - g1_center_diff: 0.1 (fixed) - g1_amp_ratio: 0.5 (fixed) - g1_soc_ratio: 1 (fixed) - g1_height_r_ratio: 1 (fixed) - g1_gaussian_ratio: 1 (fixed) - g1_lorentzian_ratio: 1 (fixed) - g1_amplitude: 142895.526 +/- 15402.4317 (10.78%) (init = 20000) - g1_sigma: 0.25 (fixed) - g1_gamma: 0.02 (fixed) - g1_gaussian_sigma: 0.2 (fixed) - g1_center: 284.6 (fixed) - g1_soc: 0.1 (fixed) - g1_height_ratio: 0.7 (fixed) - g1_factor_sigma_doniach: 1 (fixed) \ No newline at end of file diff --git a/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_pars.dat b/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_pars.dat deleted file mode 100644 index 4e32d23..0000000 --- a/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0_pars.dat +++ /dev/null @@ -1 +0,0 @@ -[0, [[0, 85.0409, 0, 95.9746, 'pt', 101.0, 'hn', 1486.6, 'wf', 4.0], ['cv', 1e-06, 'it', 10.0, '', '', '', '', '', ''], ['B', 2866.0, 'C', 1643.0, 'C*', 1.0, 'D', 1.0, '', ''], [2, 0.0, 2, 0.0, 2, 0.0, 2, 0.0, '', ''], [0, '', 0, '', 0, '', 0, '', '', ''], [0, '', 0, '', 0, '', 0, '', '', ''], [0, '', 0, '', 0, '', 0, '', '', ''], [0, '', 0, '', 0, '', 0, '', '', '']], [['', 10], [2, 284.6], [2, 0.25], [2, 0.02], [0, 3.0], [2, 0.5], [2, 0.0], [2, 0.0], [2, 0.026], [2, 0.1], [2, 0.7], [2, 0.2], [2, 1.0], ['', 0], [2, 0.1], ['', 0], [2, 0.5], ['', 0], [2, 1.0], ['', 0], [2, 1.0], ['', 0], [2, 1.0], ['', 0], [2, 1.0], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, '']]] \ No newline at end of file diff --git a/test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0.csv b/test/Highres_Au4f_hv_180_testfile.csv similarity index 100% rename from test/210310_highres_Au_Sn_12min_12w_Au4f_180_0G_01_0_0.csv rename to test/Highres_Au4f_hv_180_testfile.csv diff --git a/test/FK.csv b/test/Highres_FK_hv_180.csv similarity index 100% rename from test/FK.csv rename to test/Highres_FK_hv_180.csv diff --git a/test/Survey_Au_hv_700.csv b/test/Survey_Au_hv_700.csv new file mode 100644 index 0000000..a3a6d4d --- /dev/null +++ b/test/Survey_Au_hv_700.csv @@ -0,0 +1,537 @@ +60.0,44239.0 +61.2296,47616.0 +62.4591,46052.0 +63.6887,43709.0 +64.9182,42282.0 +66.1478,40604.0 +67.3773,40609.0 +68.6068,41508.0 +69.8364,40924.0 +71.066,43247.0 +72.2955,47129.0 +73.525,46192.0 +74.7546,44454.0 +75.9841,40893.0 +77.2137,35944.0 +78.4433,31740.0 +79.6728,28799.0 +80.9023,25632.0 +82.1319,23560.0 +83.3614,22127.0 +84.591,20285.0 +85.8205,19436.0 +87.0501,18418.0 +88.2797,17823.0 +89.5092,17459.0 +90.7387,16932.0 +91.9683,16622.0 +93.1978,16362.0 +94.4274,16125.0 +95.6569,16058.0 +96.8865,16035.0 +98.1161,15551.0 +99.3456,15359.0 +100.575,15062.0 +101.805,14933.0 +103.034,14756.0 +104.264,14648.0 +105.493,14240.0 +106.723,14204.0 +107.952,13953.0 +109.182,14122.0 +110.412,13645.0 +111.641,13361.0 +112.871,13571.0 +114.1,13331.0 +115.33,13215.0 +116.559,12978.0 +117.789,12927.0 +119.018,12639.0 +120.248,12644.0 +121.477,12729.0 +122.707,12537.0 +123.937,12365.0 +125.166,12354.0 +126.396,12173.0 +127.625,12148.0 +128.855,12140.0 +130.084,12316.0 +131.314,12092.0 +132.543,12015.0 +133.773,11922.0 +135.003,11870.0 +136.232,11600.0 +137.462,11615.0 +138.691,11639.0 +139.921,11666.0 +141.15,11664.0 +142.38,11675.0 +143.609,11514.0 +144.839,11664.0 +146.069,11895.0 +147.298,11985.0 +148.528,11836.0 +149.757,11793.0 +150.987,11629.0 +152.216,11932.0 +153.446,12087.0 +154.675,12421.0 +155.905,12421.0 +157.134,11846.0 +158.364,11000.0 +159.594,10389.0 +160.823,10098.0 +162.053,10053.0 +163.282,9909.0 +164.512,9760.0 +165.741,9731.0 +166.971,9452.0 +168.2,9358.0 +169.43,9558.0 +170.659,9367.0 +171.889,8922.0 +173.119,8863.0 +174.348,8542.0 +175.578,8441.0 +176.807,8350.0 +178.037,8481.0 +179.266,8380.0 +180.496,8465.0 +181.725,8317.0 +182.955,8249.0 +184.185,8369.0 +185.414,8244.0 +186.644,8233.0 +187.873,8276.0 +189.103,8146.0 +190.332,8082.0 +191.562,8115.0 +192.791,8223.0 +194.021,8057.0 +195.25,8047.0 +196.48,8034.0 +197.71,7863.0 +198.939,7928.0 +200.169,7957.0 +201.398,8141.0 +202.628,8040.0 +203.857,7906.0 +205.087,8033.0 +206.316,8152.0 +207.546,9461.0 +208.776,8870.0 +210.005,7674.0 +211.235,7559.0 +212.464,7772.0 +213.694,7893.0 +214.923,8118.0 +216.153,10424.0 +217.382,8462.0 +218.612,7434.0 +219.841,7260.0 +221.071,7242.0 +222.301,7222.0 +223.53,7209.0 +224.76,7038.0 +225.989,7310.0 +227.219,7110.0 +228.448,7211.0 +229.678,7277.0 +230.907,7230.0 +232.137,7072.0 +233.367,7178.0 +234.596,7365.0 +235.826,7239.0 +237.055,7356.0 +238.285,7301.0 +239.514,7492.0 +240.744,7532.0 +241.973,7762.0 +243.203,7509.0 +244.432,7463.0 +245.662,7311.0 +246.892,7426.0 +248.121,7245.0 +249.351,7220.0 +250.58,7111.0 +251.81,7092.0 +253.039,7124.0 +254.269,7089.0 +255.498,7236.0 +256.728,7160.0 +257.958,7112.0 +259.187,7154.0 +260.417,6918.0 +261.646,6923.0 +262.876,7043.0 +264.105,6835.0 +265.335,6960.0 +266.564,6752.0 +267.794,6800.0 +269.024,6680.0 +270.253,6696.0 +271.483,6713.0 +272.712,6792.0 +273.942,6622.0 +275.171,6474.0 +276.401,6631.0 +277.63,6591.0 +278.86,6598.0 +280.089,6693.0 +281.319,6653.0 +282.549,6630.0 +283.778,6648.0 +285.008,6467.0 +286.237,6656.0 +287.467,6663.0 +288.696,6529.0 +289.926,6667.0 +291.155,6770.0 +292.385,6662.0 +293.615,6581.0 +294.844,6632.0 +296.074,6650.0 +297.303,6618.0 +298.533,6598.0 +299.762,6487.0 +300.992,6651.0 +302.221,6576.0 +303.451,6593.0 +304.68,6659.0 +305.91,6647.0 +307.14,6486.0 +308.369,6851.0 +309.599,6755.0 +310.828,6808.0 +312.058,6684.0 +313.287,6682.0 +314.517,6723.0 +315.746,6806.0 +316.976,6797.0 +318.205,6745.0 +319.435,6833.0 +320.665,7010.0 +321.894,6718.0 +323.124,6754.0 +324.353,6780.0 +325.583,6817.0 +326.812,6930.0 +328.042,6955.0 +329.271,6845.0 +330.501,6771.0 +331.731,6917.0 +332.96,6870.0 +334.19,6895.0 +335.419,7090.0 +336.649,7068.0 +337.878,7043.0 +339.108,7107.0 +340.337,7150.0 +341.567,7272.0 +342.796,7508.0 +344.026,7653.0 +345.256,8092.0 +346.485,8623.0 +347.715,9746.0 +348.944,9890.0 +350.174,8759.0 +351.403,7937.0 +352.633,7660.0 +353.862,7130.0 +355.092,7006.0 +356.322,6920.0 +357.551,6914.0 +358.781,6928.0 +360.01,7240.0 +361.24,7340.0 +362.469,7716.0 +363.699,8634.0 +364.928,10174.0 +366.158,12094.0 +367.387,11096.0 +368.617,8742.0 +369.847,7341.0 +371.076,6601.0 +372.306,6133.0 +373.535,5803.0 +374.765,5676.0 +375.994,5431.0 +377.224,5288.0 +378.453,5199.0 +379.683,5335.0 +380.913,5086.0 +382.142,5144.0 +383.372,5004.0 +384.601,5020.0 +385.831,4999.0 +387.06,4976.0 +388.29,5016.0 +389.519,4851.0 +390.749,4963.0 +391.978,4959.0 +393.208,4938.0 +394.438,4850.0 +395.667,4931.0 +396.897,4832.0 +398.126,5033.0 +399.356,4862.0 +400.585,4870.0 +401.815,4815.0 +403.044,4795.0 +404.274,4839.0 +405.504,4780.0 +406.733,4895.0 +407.963,4843.0 +409.192,4931.0 +410.422,4707.0 +411.651,4712.0 +412.881,4925.0 +414.11,4659.0 +415.34,4937.0 +416.57,4867.0 +417.799,4996.0 +419.029,4925.0 +420.258,4906.0 +421.488,4926.0 +422.717,4818.0 +423.947,4867.0 +425.176,4905.0 +426.406,5027.0 +427.635,4950.0 +428.865,5128.0 +430.095,5355.0 +431.324,5578.0 +432.554,5500.0 +433.783,5429.0 +435.013,5201.0 +436.242,4927.0 +437.472,5212.0 +438.701,5144.0 +439.931,5427.0 +441.16,5342.0 +442.39,5087.0 +443.62,4951.0 +444.849,5031.0 +446.079,5015.0 +447.308,5031.0 +448.538,5051.0 +449.767,5156.0 +450.997,4944.0 +452.226,5082.0 +453.456,5113.0 +454.686,5051.0 +455.915,4974.0 +457.145,4897.0 +458.374,5132.0 +459.604,5033.0 +460.833,5154.0 +462.063,5200.0 +463.292,5172.0 +464.522,5049.0 +465.751,5188.0 +466.981,5074.0 +468.211,5085.0 +469.44,5148.0 +470.67,5089.0 +471.899,5116.0 +473.129,5145.0 +474.358,5301.0 +475.588,5232.0 +476.817,5149.0 +478.047,5199.0 +479.277,5209.0 +480.506,5219.0 +481.736,5213.0 +482.965,5255.0 +484.195,5235.0 +485.424,5239.0 +486.654,5193.0 +487.883,5267.0 +489.113,5241.0 +490.342,5309.0 +491.572,5348.0 +492.802,5303.0 +494.031,5277.0 +495.261,5391.0 +496.49,5360.0 +497.72,5325.0 +498.949,5554.0 +500.179,5395.0 +501.408,5456.0 +502.638,5512.0 +503.868,5451.0 +505.097,5547.0 +506.327,5504.0 +507.556,5529.0 +508.786,5703.0 +510.015,5523.0 +511.245,5631.0 +512.474,5635.0 +513.704,5431.0 +514.933,5691.0 +516.163,5751.0 +517.393,5686.0 +518.622,5548.0 +519.852,5703.0 +521.081,5881.0 +522.311,5853.0 +523.54,5814.0 +524.77,5833.0 +525.999,5861.0 +527.229,5881.0 +528.459,5947.0 +529.688,5899.0 +530.918,5952.0 +532.147,6011.0 +533.377,5979.0 +534.606,6011.0 +535.836,6219.0 +537.065,6052.0 +538.295,6214.0 +539.524,6210.0 +540.754,6202.0 +541.984,6223.0 +543.213,6415.0 +544.443,6263.0 +545.672,6446.0 +546.902,6459.0 +548.131,6373.0 +549.361,6346.0 +550.59,6546.0 +551.82,6515.0 +553.05,6518.0 +554.279,6666.0 +555.509,6640.0 +556.738,6683.0 +557.968,6568.0 +559.197,6729.0 +560.427,6683.0 +561.656,6949.0 +562.886,6877.0 +564.115,7000.0 +565.345,7145.0 +566.575,6980.0 +567.804,7251.0 +569.034,7062.0 +570.263,7323.0 +571.493,7102.0 +572.722,7438.0 +573.952,7354.0 +575.181,7411.0 +576.411,7453.0 +577.641,7673.0 +578.87,7879.0 +580.1,7751.0 +581.329,8019.0 +582.559,8002.0 +583.788,7875.0 +585.018,8084.0 +586.247,8153.0 +587.477,8096.0 +588.707,8481.0 +589.936,8453.0 +591.166,8383.0 +592.395,8334.0 +593.625,8081.0 +594.854,8067.0 +596.084,7959.0 +597.313,8270.0 +598.543,8075.0 +599.772,8245.0 +601.002,8640.0 +602.232,8812.0 +603.461,8911.0 +604.691,8855.0 +605.92,8892.0 +607.15,9157.0 +608.379,9103.0 +609.609,9131.0 +610.838,10541.0 +612.068,17317.0 +613.298,60550.0 +614.527,25254.0 +615.757,18508.0 +616.986,73332.0 +618.216,24264.0 +619.445,4079.0 +620.675,2253.0 +621.904,1679.0 +623.134,1373.0 +624.363,1255.0 +625.593,1349.0 +626.823,1408.0 +628.052,1251.0 +629.282,1074.0 +630.511,968.0 +631.741,887.0 +632.97,832.0 +634.2,866.0 +635.429,835.0 +636.659,821.0 +637.888,931.0 +639.118,920.0 +640.348,1119.0 +641.577,1273.0 +642.807,1526.0 +644.036,1654.0 +645.266,1475.0 +646.495,1201.0 +647.725,863.0 +648.954,818.0 +650.184,710.0 +651.414,626.0 +652.643,561.0 +653.873,559.0 +655.102,553.0 +656.332,533.0 +657.561,500.0 +658.791,492.0 +660.02,517.0 +661.25,477.0 +662.479,525.0 +663.709,499.0 +664.939,495.0 +666.168,511.0 +667.398,541.0 +668.627,490.0 +669.857,518.0 +671.086,528.0 +672.316,556.0 +673.545,622.0 +674.775,657.0 +676.005,902.0 +677.234,802.0 +678.464,518.0 +679.693,485.0 +680.923,501.0 +682.152,473.0 +683.382,491.0 +684.611,537.0 +685.841,517.0 +687.07,569.0 +688.3,543.0 +689.53,551.0 +690.759,598.0 +691.989,709.0 +693.218,1235.0 +694.448,2154.0 +695.677,2156.0 +696.907,2396.0 +698.136,2491.0 +699.366,1027.0 +700.596,451.0 +701.825,185.0 +703.055,185.0 +704.284,177.0 +705.514,156.0 +706.743,200.0 +707.973,175.0 +709.202,158.0 +710.432,143.0 +711.661,157.0 +712.891,161.0 +714.121,180.0 +715.35,158.0 +716.58,158.0 +717.809,165.0 +719.039,167.0 diff --git a/test/fk.png b/test/fk.png deleted file mode 100644 index af783d3..0000000 Binary files a/test/fk.png and /dev/null differ