RockJockML

RockJockML is a program that does quantitative phase analysis of whole rocks and sediments, based on powder X-ray diffraction data. It is based on the old RockJock program created by Dennis Eberl at the U.S. Geological Survey, and uses the full-pattern fitting method, meaning that it models a sample XRD pattern as a linear combination of experimental patterns of standards in a database.  From the optimized pattern, it can derive the weight percent content of the sample with respect to the standard phases included in the analysis.  

Whereas the original RockJock was programmed in Microsoft Excel®, using Visual Basic for Applications and the Solver add-in, RockJockML is programmed in MATLAB®.  This gives the newer program a few advantages.  First, RockJockML runs much, much faster--model optimization takes about 1 second, as opposed to about 5-45 minutes for the Excel version of RockJock.  Since each analysis typically requires several model adjustments and optimizations, the older program can be unwieldy, whereas RockJockML users can make model adjustments and see the results in essentially real time.  Second, MathWorks (the company that produces MATLAB) has been much better than Microsoft about making new releases backwards compatible.  Many current users of the old RockJock program have to keep an old computer running Windows 7 or earlier and Excel 2007 or 2003 to keep it going.  Finally, you don't need a MATLAB license to run this program, because MATLAB can export standalone versions for Mac, Windows, or Linux operating systems.  If you do have a MATLAB license, the code is freely available, so you can customize it to do whatever freaky stuff you want.  (If you work at a university, ask your IT people if you have a site license.)  

The purpose of RockJockML is not just to replace the old Excel version--we want to improve on it by providing more help to the user for making accurate analyses.  We have added several features to the program to make this possible, and are working on applying machine learning techniques to make the process more automated.  The "ML" in the name stands for both "MATLAB" and "Machine Learning."  

Site Map