Closed drix00 closed 5 years ago
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.
Merging #13 into master will increase coverage by
0.25%
. The diff coverage is100%
.
@@ 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%) |
:arrow_down: |
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.
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 d5e5baf7ad3597927a606d8b438187624b3e25e2.
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 6098b3e6413e5fc4e6122a0e0a70183e4bb8dc77
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.
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?
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.
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.
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.
I created two issues to cover the remaining tasks:
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.
Two main issues remain with the DTSA data:
For me the last issues need to be resolve before merging with the master branch. The first one can be resolve after merging.