Skip to content

Conversation

@drix00
Copy link
Member

@drix00 drix00 commented Mar 14, 2019

I have added the original DTSA x-ray data.
The reference is: C.E. Fiori and C.R. Swyt and R.L. Myklebust, NIST/NIH Desk Top Spectrum Analyzer, 1992, https://www.cstl.nist.gov/div837/Division/outputs/DTSA/oldDTSA.htm.
The download links are not working, but it is from these files I have extracted the data into csv file.

The line is only given in Siegbahn notation, so I use the IUPAC Jerkins reference already implemented in the project to convert the line label to IUPAC notation. But I have to make this choice of conversion as they are not defined in Jerkins reference. I use the table 5 in J. A. BEARDEN Rev. Mod. Phys. 39, 78 (1967) as a guide to do the conversion. For the line with two initial subshells, I use the lowest energy subshell (higher subshell number). i.e., for O4,5 I use L3-O5. I did check the energy different between the two initial subshells and they are less than 100 eV in all cases.

  • Lb5 -> L3-O4,5 use L3-O5
  • Lg11 -> L1-N5
  • Lu -> L3-N6,7 use L3-N7
  • Mz1 -> M5-N3
  • Mz2 -> M4-N2

Two main issues remain with the DTSA data:

  • How to include satellite line data in the pyxray database?
    • The notation is a little strange and not uniform.
  • The fraction is relative to the main peak in each family: Ka1 is 1 for the K lines, La1 is 1 for the L lines. I use the XrayTransitionProbability, but we should create a new property these values.

For me the last issues need to be resolve before merging with the master branch. The first one can be resolve after merging.

drix00 added 5 commits March 7, 2019 15:25
The subshell data were extracted from the original DTSA software and put in csv file.
The url still work, but not the link and download.
https://www.cstl.nist.gov/div837/Division/outputs/DTSA/oldDTSA.htm
Using J. A. BEARDEN Rev. Mod. Phys. 39, 78 – Published 1 January 1967 as
reference for Siegbahn to IUPAC notation.
Lb5 -> L3-O4,5 use L3-O5
Lg11 -> L1-N5
Lu -> L3-N6,7 use L3-N7
Mz1 -> M5-N3
Mz2 -> M4-N2
@drix00 drix00 self-assigned this Mar 14, 2019
@drix00 drix00 requested a review from ppinard March 14, 2019 23:35
Need to add explicit build of the database in the configuration file.
@drix00
Copy link
Member Author

drix00 commented Mar 15, 2019

I found and correct why the Travis build fail on dtsa branch.
I try on linux and all test pass, but I did need to rebuild the project, i.e., python3 setup.py build.
I try to delete the cache on Travis and restart the build, but it still fail.
I add a explicit build command in the install section of the Travis configuration and now the build pass. See commit 1e7d715.

@codecov-io
Copy link

codecov-io commented Mar 17, 2019

Codecov Report

Merging #13 into master will increase coverage by 0.25%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff            @@
##           master     #13      +/-   ##
=========================================
+ Coverage   93.24%   93.5%   +0.25%     
=========================================
  Files          34      38       +4     
  Lines        3466    3619     +153     
=========================================
+ Hits         3232    3384     +152     
- Misses        234     235       +1
Impacted Files Coverage Δ
pyxray/parser/test_bearden1967.py 100% <100%> (ø)
pyxray/parser/bearden1967.py 100% <100%> (ø)
pyxray/parser/test_dtsa.py 100% <100%> (ø)
pyxray/parser/dtsa.py 100% <100%> (ø)
pyxray/data.py 91.22% <0%> (-1.76%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 499b1a6...6098b3e. Read the comment docs.

@ppinard
Copy link
Member

ppinard commented Mar 17, 2019

The fraction is relative to the main peak in each family: Ka1 is 1 for the K lines, La1 is 1 for the L lines. I use the XrayTransitionProbability, but we should create a new property these values.

There is the property XrayTransitionRelativeWeight. I think this corresponds to the value in the DTSA table. I updated the code to use this property in commit d5e5baf.

Another thing is that the parsers should not rely on the database functions to find X-ray transition, elements, etc. This is a limitation at the moment because nothing guarantees the order the parsers are executed. It can also be a problem because it involves reading and writing the database at the same time. Similarly as the JEOL parser, I added a lookup table in DTSA that converts the Siegbahn notation in the DTSA csv to a tuple of atomic subshells. See commit 6098b3e

Note I also merged changes where the descriptors and properties are now dataclasses which were introduced in Python 3.7 with a backport to Python 3.6.

@drix00 if you agree with the changes, I agree with the pull request.

@ppinard
Copy link
Member

ppinard commented Mar 17, 2019

How to include satellite line data in the pyxray database? The notation is a little strange and not uniform.

Yes this is an issue. How is the physics describing satellite emission?

@drix00
Copy link
Member Author

drix00 commented Mar 17, 2019

The fraction is relative to the main peak in each family: Ka1 is 1 for the K lines, La1 is 1 for the L lines. I use the XrayTransitionProbability, but we should create a new property these values.

There is the property XrayTransitionRelativeWeight. I think this corresponds to the value in the DTSA table. I updated the code to use this property in commit d5e5baf.

Another thing is that the parsers should not rely on the database functions to find X-ray transition, elements, etc. This is a limitation at the moment because nothing guarantees the order the parsers are executed. It can also be a problem because it involves reading and writing the database at the same time. Similarly as the JEOL parser, I added a lookup table in DTSA that converts the Siegbahn notation in the DTSA csv to a tuple of atomic subshells. See commit 6098b3e

Note I also merged changes where the descriptors and properties are now dataclasses which were introduced in Python 3.7 with a backport to Python 3.6.

@drix00 if you agree with the changes, I agree with the pull request.

I agree with the changes. I should have check in more detail all properties.

@drix00
Copy link
Member Author

drix00 commented Mar 17, 2019

How to include satellite line data in the pyxray database? The notation is a little strange and not uniform.

Yes this is an issue. How is the physics describing satellite emission?

I did not work with satellite line in practice. But in reference book like Reed green book (1993), the
satellite line are defined as "doubly ionized atoms". Double ionization is produced by electron bombardment or Auger effect (maybe also from Coster-Kronig transition). However, they seem to include line affected by bounding effect as satellite line. So a more general definition of "satellite line" is lines not corresponding to any transition identifiable in the energy level diagram.
From the point of view of pyxray, we need to have a way to define a line with an energy and label, but without clear transition from two atomic subshells.

@drix00
Copy link
Member Author

drix00 commented Mar 17, 2019

Another thing is that the parsers should not rely on the database functions to find X-ray transition, elements, etc. This is a limitation at the moment because nothing guarantees the order the parsers are executed. It can also be a problem because it involves reading and writing the database at the same time. Similarly as the JEOL parser, I added a lookup table in DTSA that converts the Siegbahn notation in the DTSA csv to a tuple of atomic subshells. See commit 6098b3e

When I started planing different library related to x-ray microanalysis, I separate the notation like Siegbahn and IUPAC and the x-ray line property in two projects. Maybe it could help the parsers code to have either two projects or two databases.

@ppinard
Copy link
Member

ppinard commented Mar 24, 2019

I created two issues to cover the remaining tasks:

@ppinard ppinard merged commit 775b6cf into master Mar 24, 2019
@ppinard ppinard deleted the dtsa branch March 24, 2019 14:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants