diff --git a/.vitepress/config.js b/.vitepress/config.js
index 2ed3014..ac10f5e 100644
--- a/.vitepress/config.js
+++ b/.vitepress/config.js
@@ -2,7 +2,7 @@ import { defineConfig } from 'vitepress'
// https://vitepress.dev/reference/site-config
export default defineConfig({
- title: "XMapTools Documentation",
+ title: "XMapTools 4.5 Documentation",
description: "Free and versatile software solution for chemical maps analysis",
base: "/Documentation/",
@@ -20,6 +20,7 @@ export default defineConfig({
},
{ text: 'EPMA', link: '/doc-epma' },
{ text: 'LA-ICP-MS', link: '/doc-laicpms' },
+ { text: 'External Functions', link: '/doc-ext-functions' },
{ text: 'Tutorials', link: '/tutorials' },
{ text: 'Videos', link: '/videos' }
],
@@ -42,11 +43,32 @@ export default defineConfig({
{ text: 'Data conversion', link: '/doc-epma#data-conversion-for-epma' },
{ text: 'Generation of mosaics', link: '/doc-epma#generation-of-mosaics' },
{ text: 'Importing calibrated data', link: '/doc-epma#importing-calibrated-data-from-epma-and-sem' },
+ { text: 'Classification', link: '/doc-epma#classification' },
+ { text: 'Calibration (EPMA)', link: '/doc-epma#calibration-epma' },
+ ]
+ },
+ { text: 'LA-ICP-MS', link: '/doc-laicpms',
+ items: [
+ { text: 'File formats', link: '/doc-laicpms#file-formats-and-data-types' },
+ { text: 'Converter module', link: '/doc-laicpms#converter-module' },
+ { text: 'Calibration', link: '/doc-laicpms#calibration' },
+ ]
+ },
+ { text: 'External Functions', link: '/doc-ext-functions',
+ items: [
+ { text: 'Structural formulas', link: '/doc-ext-functions#structural-formulas' },
+ { text: 'Thermobarometry', link: '/doc-ext-functions#thermobarometry-and-other-methods' },
]
},
- { text: 'LA-ICP-MS', link: '/doc-laicpms' },
]
- }
+ },
+ {
+ text: 'Other resources',
+ items: [
+ { text: 'Tutorials', link: '/tutorials' },
+ { text: 'Videos', link: '/videos' },
+ ]
+ },
],
socialLinks: [
@@ -55,7 +77,7 @@ export default defineConfig({
footer: {
message: 'XMapTools - Quantitative compositional mapping',
- copyright: 'Copyright © 2025 XMapTools'
+ copyright: 'Copyright © 2025–2026 XMapTools'
}
}
})
\ No newline at end of file
diff --git a/doc-epma.md b/doc-epma.md
index 50e4c7e..19fa4a5 100644
--- a/doc-epma.md
+++ b/doc-epma.md
@@ -12,11 +12,22 @@ __EPMA & SEM__:
- [Generation of mosaics](#generation-of-mosaics)
- [Grid mosaic](#grid-mosaic)
- [Real mosaic](#real-mosaic)
+- [Importing data](#importing-data-using-the-import-module)
- [Importing calibrated data (EPMA & SEM)](#importing-calibrated-data-from-epma-and-sem)
- [Step 1: Adding calibrated maps](#step-1-adding-calibrated-maps)
- [Step 2: Data conversion (optional)](#step-2-data-conversion-optional)
- [Step 3: Classification of quantitative data](#step-3-classification-of-quantitative-data)
- [Step 4: Splitting a merged dataset](#step-4-splitting-a-merged-dataset-using-a-maskfile)
+- [Classification](#classification)
+ - [Classification parameters & algorithms](#classification-parameters-algorithms)
+ - [Training and classification](#training-and-classification)
+ - [Filtering options](#filtering-options)
+ - [Mask analysis & visualisation](#mask-analysis-visualisation)
+- [Calibration (EPMA)](#calibration-epma)
+ - [Standard data](#standard-data)
+ - [Map calibration](#map-calibration)
+ - [Calibration assistant (EPMA)](#calibration-assistant-epma)
+ - [Local bulk compositions](#local-bulk-compositions)
## Data compatibility for EPMA
@@ -324,7 +335,7 @@ _Figure: This is an example of a mosaic grid for 13 maps, arranged in three colu
### Real mosaic
-The Generate Mosaic in Original Coordinate System
button merges several maps into a referenced system based on their original coordinates. It also calculates the coordinates of the new map for the Standards.txt file. This means that spot analyses from the same microprobe session can be provided directly and used to calibrate the mosaic.
+The Generate Mosaic in Original Coordinate System
button merges several maps into a referenced system based on their original coordinates. It also calculates the coordinates of the new map for the Standards.txt file. This means that spot analyses from the same microprobe session can be provided directly and used to calibrate the mosaic.
To create a referenced mosaic:
@@ -442,8 +453,254 @@ _Figure: Select a mask file, then click on the dataset of interest (here Importe
_Figure: Results are stored in the category Quanti_
+## Classification
+### Classification parameters & algorithms
+These tools are used to select an algorithm and maps to be used for classification.
+
+#### Chemical system: how to add/remove maps?
+
+The goal is to set the map input of the classification function. It is not required to use all available maps for classification; maps containing only noise are usually excluded.
+
+The list of maps used by the classification function is displayed in the text field. The button _Add Maps for Classification_ adds all maps available in the intensity tab of the primary menu. The button _Edit Selected Map_ can have two modes: add (plus icon) or eliminate (minus icon) depending on whether the map selected in the primary menu is already available in the list or not. Clicking "plus" adds the selected map, whereas clicking "minus" eliminates the selected map from the list.
+
+#### Algorithm selection
+
+The machine learning algorithm used for classification can be selected via the algorithm menu available in the section _Classification Parameters_.
+
+The following algorithms are available:
+
+- **Random Forest**: An ensemble learning method for classification constructing a multitude of decision trees during training. The output of the random forest is the class selected by most trees (majority vote).
+- **Discriminant Analysis**: Classification method that assumes that different classes generate data based on different Gaussian distributions. To train a classifier, it estimates the parameters of a Gaussian distribution for each class.
+- **Naive Bayes**: Classification algorithm applying density estimation to the data and generating a probability model. The decision rule is based on the Bayes theorem.
+- **Support Vector Machine**: Data points (p-dimensional vector) are separated into n classes by separating them with a (p-1)-dimensional hyperplane. The algorithm chooses the hyperplane so that the distance from it to the nearest data point on each side is maximised.
+- **Classification Tree**: A decision tree is used as predictive model to classify the input features into classes via a series of decision nodes. Each leaf of the tree is labelled with a class.
+- **k-Nearest Neighbour**: An object is classified by a plurality vote of its neighbours, with the object being assigned to the class most common among its k nearest neighbours.
+- **k-Means**: Classification method that aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest cluster centroid, serving as a prototype of the cluster.
+
+#### Principal component analysis (PCA) — Optional
+
+The principal components of a collection of points in a real coordinate space are a sequence of vectors consisting of best-fitting lines, each of them defined as one that minimizes the average squared distance from the points to the line. These directions constitute an orthonormal basis in which different individual dimensions of the data are linearly uncorrelated. The first principal component can equivalently be defined as a direction that maximizes the variance of the projected data. Principal component analysis (PCA) is the process of computing the principal components and using them to perform a change of basis on the data.
+
+The button _Generate Maps of the Principal Components (PCA)_ generates a map for each principal component and stores them in the section Other of the primary menu.
+
+If the tick-box _incl. PCA_ is selected, the maps of principal components are included as additional dimensions for the classification. Example: if 8 intensity maps are considered, a total of 14 maps of PC are added to the classification input, 7 for a normal PCA and 7 for a normalised PCA.
+
+### Training and classification
+
+A training set must be selected in the secondary menu in order to activate the classification button.
+
+The button _Classify_ (Train a Classifier & Classify) trains a new classifier and performs the classification using the algorithm selected in the menu and the specified set of maps.
+
+Once the classification is achieved, a new mask file is generated and stored under _Mask files_ in the secondary menu. The mask file is automatically selected and the mask image displayed in the main figure.
+
+### Filtering options
+
+The following options apply to a given mask file. Select a mask file in the secondary menu to apply changes.
+
+Select the option to hide pixels having a class probability lower than a given threshold for the selected mask file. Set the probability threshold used for hiding pixels. This value should range between 0 and 1.
+
+The button _Create new mask file with pixels filtered by probability_ generates a new mask file after filtering. This option replaces the BCR correction available in XMapTools 3 and is more adequate as only the misclassified pixels are excluded.
+
+### Mask analysis & visualisation
+
+The modes of each class within a given region-of-interest can be exported using the tools provided in this section. Modes are given as surface percentage calculated using the number of pixels of each class. For minerals, this can be eventually extrapolated to volume fraction as discussed in Lanari & Engi (2017).
+
+Select the ROI shape to be used to extract the local modes from the dropdown menu.
+
+The button _Add ROI_ allows a new region-of-interest (ROI) to be drawn on the figure. Note that a mask file must be selected before activating this mode. Results are displayed in the right window as a table containing the modes and number of pixels for each class and as a pie diagram.
+
+The following ROI shapes are available:
+
+- **Rectangle**: click to select the first corner and drag the mouse to the opposite corner defining a rectangle
+- **Polygon**: click successively on the image to draw a polygon; right-clicking validates and closes automatically the shape
+
+The button _Plot Compositions_ generates a plot using the data selected in the primary menu (either intensity, or a merged map) and the mask file selected in the secondary menu.
+
+
+## Calibration (EPMA)
+
+The following steps are required to convert raw data (e.g. X-ray maps) into maps of chemical composition:
+
+- Import standard data as spot analyses for the calibration of EPMA data
+- Check/adjust/add standard data
+- Calibrate using the Calibration Assistant for EPMA data
+
+### Standard data
+
+The spot analyses used as internal standards in the calibration of EPMA data are referred to as "standards" in the following as they permit to define a calibration curve that correlates X-ray intensities to composition (e.g. expressed in oxide/element wt%).
+
+It is necessary to import the standards from a standard file, check their positions and eventually correct, check the chemical compositions and eventually create new standards. All these steps can be achieved in XMapTools 4.
+
+#### File Standards.txt
+
+The file Standards.txt contains (i) the map coordinates and (ii) the spot analyses used for the standardisation. The map coordinates must be listed within a single row below the keyword `>1`. The oxide order is set below the keyword `>2`. X and Y must be the two last labels and must be listed in this specific order. The internal standards analyses are listed below the keyword `>3` corresponding to the oxide order defined above (keyword `>2`).
+
+```
+>1 Here paste the image coordinates (Xmin Xmax Ymax Ymin)
+56.739 57.239 43.691 43.371
+
+>2 Here define the oxides order
+SiO2 MgO FeO Al2O3 X Y
+
+>3 Here paste the analyses
+25.4800 11.260 29.050 21.1400 1.4800 68.310 39.999
+52.9400 3.5300 3.0200 24.2300 0.0197 68.310 39.535
+52.5800 3.6300 2.7900 24.7200 0.0195 68.331 39.511
+```
+
+#### Import standards
+
+The button _Import_ (Import spots for Standards (from file)) is used to import standards from a file.
+
+The box _Import from Standards.txt_ is selected by default allowing the file 'Standards.txt' to be read automatically. If the file containing the standard data has a different name, unselect the box and it will be possible to select a file in the Pick a file pop-up window. At the moment all standards need to be stored within a single file. It is not possible to import standards from different files as existing standards will be eliminated when a new file is loaded.
+
+Once loaded, standards are displayed on the main map with a label including the spot number and several plots are produced and shown in the category "Standards" of the live display module. You can get this global visualisation at any stage by selecting _Standards (Spots)_ in the Secondary Menu. Three plots are produced if an element is selected in the primary menu, from top to bottom: (1) a plot showing intensity/composition versus sequence of standard to visualise if there is a good match between the standard compositions and the intensity values of the matching pixels; (2 and 3) two correlation maps, one for the selected element in the primary menu and a second one considering all elements.
+
+#### Adjusting standard positions
+
+To adjust the positions, display the map of a diagnostic element (Intensity) and select _Standards (Spots)_ in the secondary menu. The two correlation maps should show a maximum value in yellow and the blue spot representing the current position should be centred on this optimum.
+
+To adjust the position of the standards (all at once), put the mouse cursor over the blue circle showing up a transparent circle. Click on it and move the blue circle to the new position. The values in the two white fields on top will be adjusted. Then click on the button _Refresh_ (important) to update the standard positions. The _Refresh_ button is only available when standard positions have been changed and need to be saved.
+
+Note: If no good correlation exists for a given element, the higher value of the second figure could not represent the optimal position.
+
+#### Adding new standard point(s)
+
+It is possible to add new standard points directly in XMapTools. Note that these will not be saved to the file Standards.txt, and if the file is loaded again all changes will be lost.
+
+The button _Add standard point_ adds a new standard at selected coordinates, set by clicking on the map after pressing the button. Compositional data can be filled directly in the table, when this standard is selected.
+
+Procedure:
+
+- Select an element map (e.g. SiO₂ for adding a spot of quartz) and select the item _Standards (Spots)_ in the secondary menu
+- Press the button _Add Standard Point_
+- Click on the map at the position to add the new standard point
+- (Optional) It is possible to adjust the position of any manual standard by moving the blue spot (transparent circle) or its label (cross-shaped cursor)
+- The new standard point is automatically selected in the Secondary Menu and the composition table shown on the right side
+- You can enter manually the oxide (wt%) composition of the new standard in the column 'wt%' in blue. The X-ray intensity of the corresponding pixel is already available in the 'Int' column
+- There is nothing more to do — all data are automatically saved
+- (Optional) You can rename any standard by double clicking on its name in the secondary menu
+
+### Map calibration
+
+A calibration step, also known as standardisation, is required to convert intensity maps into compositional maps (Lanari et al. 2019).
+
+All minerals/objects are calibrated at the same time in XMapTools 4. Therefore it is required to select a _Mask File_ in the Secondary Menu to activate the button _Calibrate_.
+
+The approach implemented in XMapTools 4 provides a module for auto multi-phase calibration. The button _Calibrate_ opens the Calibration Assistant for EPMA Data. This button is only available when a mask file is selected in the Secondary Menu.
+
+For more detailed information on the Calibration Assistant, refer to the embedded documentation accessible from the assistant.
+
+### Calibration assistant (EPMA)
+
+The new approach implemented in XMapTools 4 provides a module for auto multi-phase calibration.
+
+#### Strategy: advantages and pitfalls
+
+An auto calibration is performed considering all spot analyses and all masks when you press the button _Calibrate_. The new algorithm performs first a general fit including all standards and then adjusts the calibration for each mineral. All calibration curves, including those for the general fit are accessible via the tree menu.
+
+If you press the button _Apply Standardization_, all calibrated maps, for each mineral as well as a merged map are created and sent back to XMapTools. It seems magic, but it is not, so first make sure that you check the quality of the calibration curves determined by the auto function.
+
+The auto function works if all minerals have been measured with at least a few spot analyses and if there is at least one mineral with a composition above 1 wt% for each element. If a mineral or other feature (e.g. fracture) has no spot analyses, the program extrapolates a calibration from the general fit, therefore "predicting" a composition. At this stage, this composition is likely to be wrong because matrix effects are ignored!
+
+If you close the Calibration Assistant window, neither calibrated data nor calibration settings are saved. If you press _Apply Standardisation_, all maps are sent to XMapTools.
+
+#### Displaying calibration curves
+
+Use the tree menu located on the left side to navigate through the list of minerals and elements and to display calibration curves.
+
+If you select a mineral in the tree menu, a single map showing the sum of elements/oxides (total wt%) is displayed. The plot in the central part shows all calibration curves, for all the elements of the selected mineral. Some data are shown in a table:
+
+- **El.**: shows the element name (of the map), the total of the median mineral composition considering all pixels (sum(wt%)) and the total of the peak position (Peak(SumOx))
+- **#(std)**: shows the number of internal standards used for calibrating this phase
+- **med(it)**: shows the median intensity value of the selected mineral for each element
+- **med(wt)_s**: shows the median standard composition (spot analyses)
+- **peak(wt)_m**: shows the median composition of the calibrated map
+- **k-factor**: quantifies the difference between the calibration obtained during the general fit and the final calibration of the selected mineral. A value of 1 means that both are identical
+- **Slope**: of the calibration curve of each element
+- **Background**: value for each element
+
+To display a specific calibration curve (for a given element), unfold the menu by clicking on the small arrow on the left side of the mineral name and select an element. The corresponding calibration curve is displayed as well as the correspondent quantitative map (oxide wt%).
+
+#### Adjusting a calibration curve
+
+When an element is selected the button _Adjust_ appears above the tree menu. Clicking on this button displays two fields containing the values for background and slope. Values can be changed manually by typing new values in the corresponding field. Press enter to calculate and display the new calibration curve on the plot (this operation can take a few seconds).
+
+#### Displaying results of the general fit
+
+By selecting the _General fit_ (last option in the tree menu), a plot with the calibration curves for all the elements is displayed. No adjustment on the calibration curves in the general fit is possible. This fit is automatically performed first by the program and no longer used once the calibration of each mineral is achieved.
+
+#### Apply calibration
+
+After checking each calibration curve and adjusting if necessary, use the button _Apply standardization_ to generate the calibrated maps.
+
+By applying the standardisation, the option _Quanti_ in the Primary Menu becomes available. There, the quantitative maps in element/oxide wt% of each phase can be displayed.
+
+The option _Merged_ in the Primary Menu also becomes available after the standardisation. A set of merged maps (i.e., quantitative maps in oxide wt% for all the phases considered together) is automatically generated.
+
+#### Notes
+
+Red spots show outliers that are not considered in the calculation of the calibration curves.
+
+By hovering the cursor on the images, an image menu will appear on the upper right. This menu includes options to zoom, save and copy the images.
+
+### Local bulk compositions
+
+A local bulk composition (abbreviation: LBC) represents the bulk composition of a spatial domain in a rock determined by integrating pixel compositions. As discussed in Lanari and Engi (2017), it is necessary to apply a density correction prior to exporting any local bulk composition.
+
+To export local bulk compositions the following steps should be employed:
+
+- Generate a density map
+- Generate a merged map (if not available yet)
+- Select an area of interest to extract the local bulk composition
+
+#### Generate a density map
+
+A density map is a map containing density data for each pixel of a map. It is calculated for a given mask file. Select a mask file in the secondary menu.
+
+The button _Generate Density Map_ (from a mask file) allows a density map to be generated from the selected mask file. A mask file should be selected to activate the button. Pressing this button opens a window with predefined average density values (provided that the mineral name was recognised and a reference value available in the internal database; when full names of minerals in English are used, the mineral should be recognised).
+
+Note: mineral density values can be obtained from the website [webmineral.com](http://www.webmineral.com/).
+
+A density map will be created and stored under the category _Other_ in the Primary Menu with the name 'Density [maskfile_name]'.
+
+#### Generate a merged map
+
+Merged maps are maps for which all pixels hold a chemical composition. A merged map is automatically created by the standardisation function in XMapTools 4. If you need to create a merged map manually, follow the procedure below.
+
+In the primary menu, unfold _Quanti_ and select a quanti map (mineral). The button _Merge_ (Merge Quanti Data) in the section Calibrate becomes available. In the window that pops up, select the quanti maps to be merged. Select 'Ok' to generate the merged maps that will be stored in the category _Merged_.
+
+#### Select ROI and calculate LBC
+
+A local bulk composition can be calculated from a region-of-interest (ROI). The ROI can be a rectangle or a polygon. The density correction is automatically applied.
+
+Select a merged map in the primary menu and display an element. In the dropdown menu, select the wanted ROI shape: _Rectangle ROI_ or _Polygon ROI_.
+
+The button _Add a ROI for LBC extraction_ allows a region-of-interest (ROI) to be drawn on the figure. If _Rectangle ROI_ is selected, click on a corner, hold and drag to draw a rectangle. If _Polygon ROI_ is selected, click on the image to draw the polygon and close by selecting the first point or right-clicking.
+
+When a ROI is available, the table containing the local bulk composition appears in the live display module. The first column shows the element list, whereas compositions are listed in the column composition (unit: wt%). Below the table, a pie chart shows the repartition of the elements/oxides by weight.
+
+The ROI can be edited and the composition values in the table and the pie chart are automatically updated.
+
+The density map used is shown in a dropdown menu located in the live display module.
+
+The button _Copy Data to clipboard_ may be used to copy the LBC data from the table. The button _Save_ may be used to save the LBC data as a .txt file.
+
+#### Approximation of uncertainties for LBC
+
+An uncertainty approximation similar to what is described in Lanari and Engi (2017) is available.
+
+Select a merged map and create a Rectangle ROI. Define the number of simulations _Sim_ (default 100) and the shift _Px_ in pixel (default 20). The shape will be randomly displaced and resized using two random variables calculated from the shift value (assuming a Gaussian distribution and the value of Px as 1 sigma expressed in number of pixels). Click on the button _Calculate uncertainties using Monte-Carlo_.
+
+The areas used to approximate an uncertainty are plotted in a new figure and the result is shown in the table of the live display module. The column _composition_ shows the original local bulk composition (selected ROI). The column _2std_ shows the 2 standard deviation value (note that the distributions are usually Gaussian as shown by Lanari & Engi (2017)). The last column shows the mean value of all compositions. This value should match the composition of the original ROI. If not, this means that a Gaussian distribution cannot be assumed for this element and the uncertainty is not correct.
+
+### References
+
+- De Andrade, V., Vidal, O., Lewin, E., O'Brien, P., Agard, P. (2006). Quantification of electron microprobe compositional maps of rock thin sections: an optimized method and examples. Journal of Metamorphic Geology, 24, 655–668.
+- Lanari, P., & Engi, M. (2017). Local bulk composition effects on metamorphic mineral assemblages, Reviews in Mineralogy and Geochemistry, 83, 55–102.
+- Lanari, P., Vho, A., Bovay, T., Airaghi, L., Centrella, S. (2019). Quantitative compositional mapping of mineral phases by electron probe micro-analyser. Geological Society of London, Special Publications, 478, 39–63.
diff --git a/doc-ext-functions.md b/doc-ext-functions.md
new file mode 100644
index 0000000..ac4f2f0
--- /dev/null
+++ b/doc-ext-functions.md
@@ -0,0 +1,489 @@
+# External Functions
+
+XMapTools includes a set of external functions for calculating structural formulas, thermobarometry and other methods. Source code for all functions is available on the XMapTools GitHub repository.
+
+## Table of contents
+
+- [Structural formulas](#structural-formulas)
+- [Thermobarometry and other methods](#thermobarometry-and-other-methods)
+ - [Map-mode](#map-mode)
+ - [Multi-equilibrium](#multi-equilibrium)
+
+
+## Structural formulas
+
+The following structural formula functions are available in XMapTools. Each function calculates structural formulas and end-member proportions on a specified oxygen basis.
+
+### Aluminosilicate > AlSil. (SF, 5-Ox. basis)
+
+XMapTools External Function: structural formula of aluminosilicates. Version without loop & all Fe as Fe₂O₃. 5 Oxygen-basis.
+
+### Amphibole > CaAmp (SF, 23-Ox. basis)
+
+XMapTools External Function: structural formula of Ca-amphibole. Fe₂O₃ added as possible input. Ti ordered onto M2 (Raase 1974).
+
+| End-member | T1(4) | T2(2) | M2(2) | M13(2) | M4(2) | A(1) |
+|---|---|---|---|---|---|---|
+| Glaucophane (Gln) | Si₄ | Si₄ | Al,Al | Mg,Mg,Mg | Na,Na | V |
+| Tremolite (Tr) | Si₄ | Si₄ | Mg,Mg | Mg,Mg,Mg | Ca,Ca | V |
+| F-tremolite (Ftr) | Si₄ | Si₄ | Fe,Fe | Fe,Fe,Fe | Ca,Ca | V |
+| Tschermakite (Ts) | Si₄ | Si₂,Al₂ | Al,Al | Mg,Mg,Mg | Ca,Ca | V |
+| Pargasite (Prg) | Si₄ | Si₂,Al₂ | Mg,Al | Mg,Mg,Mg | Ca,Ca | Na |
+
+Other: Ti, Mn. 23 Oxygen-basis.
+
+### Amphibole > CaAmp_Fe3+ (SF, 23-Ox. basis)
+
+XMapTools External Function: structural formula of Ca-amphibole with Fe³⁺ estimation. 23 Oxygen-basis. **Not tested.**
+
+### Biotite > Bt+ (SF, 11-Ox. basis)
+
+XMapTools External Function: structural formula of biotite. Fe₂O₃ added as possible input. Ti assumed to be ordered onto M2, Al onto M1, Mn added (ordered onto M12).
+
+| End-member | T1(2) | T2(2) | M1(1) | M2(2) | A(1) |
+|---|---|---|---|---|---|
+| Phlogopite | Si,Si | Si,Al | Mg | Mg,Mg | K |
+| Annite | Si,Si | Si,Al | Fe | Fe,Fe | K |
+| Eastonite | Si,Si | Al,Al | Al | Mg,Mg | K |
+| Siderophyllite | Si,Si | Al,Al | Al | Fe,Fe | K |
+| Ti-biotite | Si,Si | Si,Al | Mg | Ti,Mg | K |
+| Mn-biotite | Si,Si | Si,Al | Mn | Mn,Mn | K |
+
+11 Oxygen-basis.
+
+### Brucite > Brc (SF, 1-Ox. basis)
+
+XMapTools External Function: structural formula of brucite. Version without loop & Fe₂O₃ as possible input. As₂O₃ is used instead of As₂O₅ in XMapTools 3.4.2. 1 Oxygen-basis.
+
+### Chlorite > Chl (SF, 14-Ox. basis)
+
+XMapTools External Function: structural formula of chlorite. Ferri-sudoite added; Trincal & Lanari (2016) Clay Min. 51, 675–689. Fe₂O₃ added as possible input. 1 Input: XFe3 = Fe3/(Fe2+Fe3).
+
+| End-member | T1(2) | T2(2) | M1(1) | M2-M3(4) | M4(1) |
+|---|---|---|---|---|---|
+| Amesite (Ame) | Si,Si | Al,Al | Al | Mg₄ | Al |
+| Fe-Amesite (fAme) | Si,Si | Al,Al | Al | Fe₄ | Al |
+| Clinochlore (Clc) | Si,Si | Si,Al | Mg | Mg₄ | Al |
+| Daphnite (Dph) | Si,Si | Si,Al | Fe | Fe₄ | Al |
+| Sudoite (Sud) | Si,Si | Si,Al | V | Mg₂,Al₂ | Al |
+| FerriSudoite (fSud) | Si,Si | Si,Al | V | Mg₂,Fe₂ | Al |
+| AlfreeChl (afchl) | Si,Si | Si,Si | Mg | Mg₄ | Mg |
+
+14 Oxygen-basis.
+
+### Chloritoid > Ctd (SF, 12-Ox. basis)
+
+XMapTools External Function: structural formula of chloritoid. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | T1(2) | T2(3) | M1(1) | M2(2) |
+|---|---|---|---|---|
+| Mg-chloritoid (Ctd) | Si,Si | Al₃ | Al | Mg,Mg |
+| Fe-chloritoid (fCtd) | Si,Si | Al₃ | Al | Fe,Fe |
+| Mn-chloritoid (mCtd) | Si,Si | Al₃ | Al | Mn,Mn |
+
+12 Oxygen-basis.
+
+### Chromite > Chr (SF, 32-Ox. basis)
+
+XMapTools External Function: structural formula of chromite. Version without loop & Fe₂O₃ as possible input. Fe³⁺ estimated using Droop (1987). 32 Oxygen-basis. **Not tested in this version.**
+
+### Clinopyroxene > Cpx (SF, 6-Ox. basis)
+
+XMapTools External Function: structural formula of clinopyroxene. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | T1(2) | M1(1) | M2(1) |
+|---|---|---|---|
+| Jadeite (Jd) | Si,Si | Al | Na |
+| Diopside (Di) | Si,Si | Mg | Ca |
+| Hedenbergite (Hd) | Si,Si | Fe | Ca |
+| Ca-Tschermak (Cats) | Si,Al | Al | Ca |
+
+6 Oxygen-basis.
+
+### Clinopyroxene > Cpx_Fe3+ (SF, 6-Ox. basis)
+
+XMapTools External Function: structural formula of clinopyroxene with Fe³⁺ estimation.
+
+| End-member | T1(2) | M1(1) | M2(1) |
+|---|---|---|---|
+| Jadeite (Jd) | Si,Si | Al | Na |
+| Diopside (Di) | Si,Si | Mg | Ca |
+| Hedenbergite (Hd) | Si,Si | Fe² | Ca |
+| Ca-Tschermak (Cats) | Si,Al | Al | Ca |
+| Acmite (Acm) | Si,Si | Fe³ | Na |
+
+6 Oxygen-basis.
+
+### Cordierite > Crd (SF, 18-Ox. basis)
+
+XMapTools External Function: structural formula of cordierite. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | T1(2) | T2(3) | M1(2) |
+|---|---|---|---|
+| Mg-Cordierite (Crd) | Si₅ | Al₄ | Mg,Mg |
+| Fe-Cordierite (fCrd) | Si₅ | Al₄ | Fe,Fe |
+| Mn-Cordierite (mCrd) | Si₅ | Al₄ | Mn,Mn |
+
+18 Oxygen-basis.
+
+### Epidote > Ep (SF, 12.5-Ox. basis)
+
+XMapTools External Function: structural formula of epidote. Version without loop & all iron as Fe³⁺.
+
+| End-member | T1(3) | M1(1) | M2(1) | M3(1) | A1(2) |
+|---|---|---|---|---|---|
+| Epidote (Ep) | Si₃ | Al | Al | Fe | Ca,Ca |
+| Fe-epidote (fEp) | Si₃ | Fe | Al | Fe | Ca,Ca |
+| Zoisite (Zo) | Si₃ | Al | Al | Al | Ca,Ca |
+| Mn-epidote (mEp) | Si₃ | Al | Al | Mn | Ca,Ca |
+
+12.5 Oxygen-basis.
+
+### Feldspar > Fsp (SF, 8-Ox. basis)
+
+XMapTools External Function: structural formula of feldspar. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | T1(2) | T2(2) | M1(1) |
+|---|---|---|---|
+| Albite (Ab) | Si,Si | Si,Al | Na |
+| Anorthite (An) | Si,Si | Al,Al | Ca |
+| Sanidine (Sn) | Si,Si | Si,Al | K |
+
+8 Oxygen-basis.
+
+### Garnet > Grt (SF, 12-Ox. basis)
+
+XMapTools External Function: structural formula of garnet. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | X(3) | Y(2) | O/T(3) |
+|---|---|---|---|
+| Almandine (Alm) | Fe₃ | Al₂ | (SiO₄)₃ |
+| Pyrope (Prp) | Mg₃ | Al₂ | (SiO₄)₃ |
+| Grossular (Grs) | Ca₃ | Al₂ | (SiO₄)₃ |
+| Spessartine (Sps) | Mn₃ | Al₂ | (SiO₄)₃ |
+
+12 Oxygen-basis.
+
+### Garnet > Grt_Fe3+ (SF, 12-Ox. basis)
+
+XMapTools External Function: structural formula of garnet with Fe³⁺ estimation. Method of Droop (1987) implemented.
+
+| End-member | X(3) | Y(2) | O/T(3) |
+|---|---|---|---|
+| Almandine (Alm) | Fe₃ | Al₂ | (SiO₄)₃ |
+| Pyrope (Prp) | Mg₃ | Al₂ | (SiO₄)₃ |
+| Grossular (Grs) | Ca₃ | Al₂ | (SiO₄)₃ |
+| Spessartine (Sps) | Mn₃ | Al₂ | (SiO₄)₃ |
+| Andradite (And) | Ca₃ | Fe₂ | (SiO₄)₃ |
+
+12 Oxygen-basis.
+
+### Ilmenite > Ilm (SF, 3-Ox. basis)
+
+XMapTools External Function: structural formula of ilmenite. Approximation of Fe³⁺ and Fe²⁺; works fine with Ca-Na-K ignored.
+
+| End-member | Formula |
+|---|---|
+| Ilmenite (Ilm) | Fe(1)Ti(1)O(3) |
+| Mn-Ilmenite (mIlm) | Mn(1)Ti(1)O(3) |
+| Hematite (Hem) | Fe(2)O(3) |
+
+3 Oxygen-basis.
+
+### Magnetite > Mag (SF, 4-Ox./3-cat. basis)
+
+XMapTools External Function: structural formula of magnetite. Version without loop & Fe₂O₃ as possible input. Normalized to 3 cations (assuming 4 oxygen). 4 Oxygen-basis.
+
+### Olivine > Ol (SF, 4-Ox. basis)
+
+XMapTools External Function: structural formula of olivine. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | Formula |
+|---|---|
+| Forsterite (Fo) | Mg(2)Si(1)O(4) |
+| Fayalite (Fa) | Fe(2)Si(1)O(4) |
+| Tephroite (Tep) | Mn(2)Si(1)O(4) |
+
+4 Oxygen-basis.
+
+### Orthopyroxene > Opx (SF, 3-Ox. basis)
+
+XMapTools External Function: structural formula of orthopyroxene. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | T1(1) | M1(1) |
+|---|---|---|
+| Enstatite (En) | Si₂ | Mg₂ |
+| Ferrosilite (Fs) | Si₂ | Fe₂ |
+| Tschermak-px (Mgts) | Si,Al | Al,Mg |
+
+3 Oxygen-basis.
+
+### Rutile > Rt (SF, 2-Ox. basis)
+
+XMapTools External Function: structural formula of rutile. Version without loop & Fe₂O₃ as possible input. 2 Oxygen-basis.
+
+### Serpentine > Srp (SF, 14-Ox. basis)
+
+XMapTools External Function: structural formula of serpentine. Number of oxygen changed from 14.5 to 14. Ratio Si/(Si+Fe+Mg) added. Version without loop & Fe₂O₃ as possible input. 14 Oxygen-basis.
+
+### Spinel > Spl (SF, 4-Ox. basis)
+
+XMapTools External Function: structural formula of spinel. Version without loop & Fe₂O₃ as possible input. Fe³⁺ estimated using Droop (1987).
+
+**Al spinels (AlSpinel):**
+
+| End-member | X(1) | Y(2) |
+|---|---|---|
+| Hercynite (Hc) | Fe | Al₂ |
+| Spinel (Spl) | Mg | Al₂ |
+| Galaxite (Glx) | Mn | Al₂ |
+| Gahnite (Ghn) | Zn | Al₂ |
+
+**Cr spinels (CrSpinel):**
+
+| End-member | X(1) | Y(2) |
+|---|---|---|
+| Chromite (Chr) | Fe | Cr₂ |
+| Magnesiochromite (mChr) | Mg | Cr₂ |
+| Nichromite (Nic) | Ni | Cr₂ |
+
+**Fe spinels (FeSpinel):**
+
+| End-member | X(1) | Y(2) |
+|---|---|---|
+| Magnesioferrite (Mfr) | Mg | Fe₂ |
+| Magnetite (Mag) | Fe | Fe₂ |
+| Ulvospinel (tSpl) | Ti | Fe₂ |
+| Jacobsite (Jac) | Mn | Fe₂ |
+| Franklinite (Frk) | Zn | Fe₂ |
+| Trevorite (Tre) | Ni | Fe₂ |
+
+**Olivine spinels (OlSpinel):**
+
+| End-member | X(1) | Y(2) |
+|---|---|---|
+| Ringwoodite (Rwd) | Si | Mg₂ |
+
+4 Oxygen-basis. Calculated assuming equipartition of Fe²⁺/Mg²⁺/Mn²⁺/Zn²⁺/Ni. **Not tested.**
+
+### Staurolite > St (SF, 22-Ox. basis)
+
+XMapTools External Function: structural formula of staurolite. Version without loop & Fe₂O₃ as possible input.
+
+| End-member | Z(11) | Y(2) | X(4) |
+|---|---|---|---|
+| Staurolite (St) | Si(4)Al(7) | Al,Al | Fe₄ |
+| Mg-Staurolite (Mst) | Si(4)Al(7) | Al,Al | Mg₄ |
+| Mn-Staurolite (MnSt) | Si(4)Al(7) | Al,Al | Mn₄ |
+
+24 Oxygen-basis.
+
+### White mica > Mica (SF, 11-Ox. basis)
+
+XMapTools External Function: structural formula of white mica (generic). Version without loop & Fe₂O₃ as possible input.
+
+| End-member | T1(2) | T2(2) | M1(1) | M2(2) | A(1) |
+|---|---|---|---|---|---|
+| Celadonite-Mg (Cel) | Si,Si | Si,Si | V | Al,Mg | K |
+| Celadonite-Fe (fCel) | Si,Si | Si,Si | V | Al,Fe | K |
+| Muscovite (Ms) | Si,Si | Si,Al | V | Al,Al | K |
+| Paragonite (Pg) | Si,Si | Si,Al | V | Al,Al | Na |
+| Pyrophyllite (Prl) | Si,Si | Si,Si | V | Al,Al | V |
+
+Not considered: Biotite (Si,Si | Si,Al | MgFe | MgFeTi | K). 11 Oxygen-basis.
+
+
+## Thermobarometry and other methods
+
+Function headers for thermobarometry and other methods. Source code is available on the XMapTools GitHub repository. Several functions are taken from the PTtoolbox package of Joshua Laughton.
+
+### Map-mode
+
+#### Amphibole > T.Amp (all calibrations)
+
+XMapTools External Function: amphibole thermobarometry. 23 Oxygen-basis.
+
+Output variables:
+- **T_HB94**: Holland & Blundy (1994) – no quartz
+- **T_HB94q**: Holland & Blundy (1994) – with quartz
+
+#### Biotite > T.Bt (all calibrations)
+
+XMapTools External Function: biotite thermobarometry. 22 Oxygen-basis.
+
+Output variables:
+- **T_W20**: Wu & Chen (2015)
+- **T_H05**: Henry et al. (2005)
+
+#### Chlorite > T.Chl (all calibrations)
+
+XMapTools External Function: chlorite thermometry (all calibrations). Fe₂O₃ added as possible input. 14 Oxygen-basis.
+
+Output variables:
+- **T_L14_2**: Lanari et al. (2014) Contrib. Miner. Petrol. 167:167–968 (LWV2)
+- **T_B13**: Bourdelle et al. (2013) Contrib. Miner. Petrol. 165:723–735
+- **T_ZF95**: Zang & Fyfe (1995) Miner. Depos. 30:30–38
+- **T_HV91**: Hillier & Velde (1991) Clay Miner. 26:149–168
+- **T_J91**: Jowett (1991) Program Abstr. 16:A62
+- **T_C88**: Cathelineau (1988) Clay Miner. 23:471–485
+- **T_KM87**: Kranidiotis & MacLean (1987) Econ. Geol. 82:1898–1911
+- **T_CN85**: Cathelineau & Nieva (1985) Contrib. Miner. Petrol. 91:235–244
+
+#### Monazite > Age.Mz (Montel 1996)
+
+XMapTools External Function: monazite geochronology.
+
+Output variables:
+- **Age_M96**: Montel (1996)
+
+Input variables: ThO₂, UO₂ and PbO in wt% (use the converter if your data were calibrated in a different format).
+
+#### Quartz > T.Qz (all calibrations)
+
+XMapTools External Function: quartz thermobarometry (all calibrations).
+
+Output variables:
+- **T_WW06**: Wark & Watson (2006)
+- **T_KO08**: Kawasaki & Osanai (2008)
+- **T_T10**: Thomas et al. (2010)
+- **T_HA12**: Huang & Audétat (2012)
+- **T_O22**: Osborne et al. (2022) CPM 177:31
+
+Input variables: TiO₂ (wt%).
+
+#### Rutile > T.Rt (all calibrations)
+
+XMapTools External Function: rutile thermobarometry (all calibrations).
+
+Output variables:
+- **T_Z04**: Zack et al. (2004)
+- **T_W06**: Watson et al. (2006)
+- **T_FW07**: Ferry & Watson (2007), CMP 154:429–437
+- **T_T07**: Tomkins et al. (2007)
+
+Input variables: ZrO₂ (wt%).
+
+#### Titanite > T.Ttn (all calibrations)
+
+XMapTools External Function: titanite thermometry (all calibrations).
+
+Output variables:
+- **T_H08**: Hayden et al. (2008)
+
+#### White mica > P.Phg (all calibrations)
+
+XMapTools External Function: phengite barometry. 11 Oxygen-basis.
+
+Output variables:
+- **P_MS87**: Massone & Schreyer (1987)
+
+#### Zircon > T.Zrn (all calibrations)
+
+XMapTools External Function: zircon thermobarometry (all calibrations).
+
+Output variables:
+- **T_W06**: Watson et al. (2006)
+- **T_FW07**: Ferry & Watson (2007), CMP 154:429–437
+
+### Multi-equilibrium
+
+#### Amphibole > T.Grt-Hbl (all calibrations)
+
+XMapTools External Function: Garnet-Hornblende thermometry. 12 Oxygen-basis for Garnet, 23 Oxygen-basis for Hornblende.
+
+Output variables:
+- **T_GP84**: Graham & Powell (1984)
+- **T_Per85**: Perchuk et al. (1985)
+- **T_Pow85**: Powell (1985)
+- **T_R00**: Ravna (2000)
+
+#### Biotite > T.Grt-Bt (all calibrations)
+
+XMapTools External Function: Garnet-Biotite thermometry. 12 Oxygen-basis for Garnet, 11 Oxygen-basis for Biotite.
+
+Output variables:
+- **T_T76**: Thompson (1976)
+- **T_GA77**: Goldman & Albee (1977)
+- **T_HL77**: Holdaway & Lee (1977)
+- **T_FS78**: Ferry & Spear (1978)
+- **T_HS82**: Hodges & Spear (1982)
+- **T_PL83**: Perchuk & Lavrent'eva (1983)
+- **T_GS84**: Ganguly & Saxena (1984)
+- **T_IM85**: Indares & Martignole (1985)
+- **T_P85**: Perchuk et al. (1985)
+- **T_D91**: Dasgupta et al. (1991)
+- **T_B92**: Bhattacharya et al. (1992)
+
+#### Chlorite > T.Grt-Chl (all calibrations)
+
+XMapTools External Function: Garnet-Chlorite thermometry. 12 Oxygen-basis for Garnet, 14 Oxygen-basis for Chlorite.
+
+Output variables:
+- **T_DH86**: Dickenson & Hewitt (1986)
+- **T_G90**: Grambling (1990)
+- **T_P91**: Perchuk (1991)
+
+#### Clinopyroxene > T.Grt-Cpx (all calibrations)
+
+XMapTools External Function: Garnet-Clinopyroxene thermometry. 12 Oxygen-basis for Garnet, 6 Oxygen-basis for Clinopyroxene.
+
+Output variables:
+- **T_MH72**: Mysen & Heier (1972)
+- **T_RG74**: Raheim & Green (1974)
+- **T_MG78**: Mori & Green (1978)
+- **T_EG79**: Ellis & Green (1979)
+- **T_S79**: Saxena (1979)
+- **T_D80**: Dahl (1980)
+- **T_P85**: Powell (1985)
+- **T_K88**: Krogh (1988)
+- **T_A94**: Ai (1994)
+- **T_R00**: Ravna (2000)
+- **T_N09**: Nakamura (2009)
+
+#### Cordierite > T.Grt-Crd (all calibrations)
+
+XMapTools External Function: Garnet-Cordierite thermometry. 12 Oxygen-basis for Garnet, 18 Oxygen-basis for Cordierite.
+
+Output variables:
+- **T_C71**: Currie (1971)
+- **T_T76**: Thompson (1976)
+- **T_HL77**: Holdaway & Lee (1977)
+- **T_P85**: Perchuk et al. (1985)
+- **T_B88**: Bhattacharya et al. (1988)
+- **T_B93**: Bhattacharya (1993)
+
+#### Ilmenite > T.Grt-Ilm (all calibrations)
+
+XMapTools External Function: Garnet-Ilmenite thermometry. 12 Oxygen-basis for Garnet, 3 Oxygen-basis for Ilmenite. **Not tested.**
+
+Output variables:
+- **T_P87**: Pownceby et al. (1987)
+- **T_P91**: Pownceby et al. (1991)
+- **T_M10**: Martin et al. (2010)
+
+#### Orthopyroxene > T.Grt-Opx (all calibrations)
+
+XMapTools External Function: Garnet-Orthopyroxene thermometry. 12 Oxygen-basis for Garnet, 6 Oxygen-basis for Orthopyroxene.
+
+Output variables:
+- **T_MG78**: Mori & Green (1978)
+- **T_D80**: Dahl (1980)
+- **T_R83**: Raith et al. (1983)
+- **T_H84**: Harley (1984)
+- **T_LG84**: Lee & Ganguly (1984)
+- **T_SB84**: Sen & Bhattacharya (1984)
+- **T_P85**: Perchuk et al. (1985)
+- **T_LG88**: Lee & Ganguly (1988)
+- **T_AP89**: Aranovich & Podlesskii (1989)
+- **T_PL90**: Perchuk & Lavrente'va (1990)
+- **T_B91**: Bhattacharya et al. (1991)
+
+#### White Mica > T.Grt-Ph (all calibrations)
+
+XMapTools External Function: Garnet-Phengite thermometry. 12 Oxygen-basis for Garnet, 11 Oxygen-basis for Phengite.
+
+Output variables:
+- **T_KR88**: Krogh & Raheim (1978)
+- **T_GH82**: Green & Hellman (1982)
+- **T_HF88**: Hynes & Forest (1988)
+- **T_W02**: Wu et al. (2002)
diff --git a/doc-laicpms.md b/doc-laicpms.md
index 09c4245..ec42629 100644
--- a/doc-laicpms.md
+++ b/doc-laicpms.md
@@ -1,11 +1,22 @@
-# XMapTools documentation
+# XMapTools documentation for LA-ICP-MS
## Table of contents
-
-__LA-ICP-MS__:
+__LA-ICP-MS__:
- [File format LA-ICP-MS](#file-format-la-icp-ms)
- [Converter for LA-ICP-MS data](#converter-for-la-icp-ms-data)
+ - [Step 1: Load datafile(s)](#step-1-load-datafile-s)
+ - [Step 2: Adjust time shift](#step-2-adjust-time-shift)
+ - [Step 3: Extract integrations & plot data](#step-3-extract-integrations-plot-data)
+ - [Step 4: Apply background correction](#step-4-apply-background-correction)
+ - [Step 5: Select primary standard(s)](#step-5-select-primary-standard-s)
+ - [Step 6: Select and check secondary standard](#step-6-select-and-check-secondary-standard)
+ - [Step 7: Generate map files](#step-7-generate-map-files)
+- [Log generator module](#log-generator-module)
+- [Calibration](#calibration)
+ - [Import standard maps](#import-standard-maps)
+ - [Calibrate intensity data](#calibrate-intensity-data)
+ - [Calibration assistant (LA-ICPMS)](#calibration-assistant-la-icpms)
@@ -82,8 +93,64 @@ Time in Seconds ,Mg/25,Al/27,P/31,Ca/42
## Converter for LA-ICP-MS data
+The Converter for LA-ICP-MS data can read LA-ICP-MS mapping data natively and generate intensity and standard maps for XMapTools (Markmann et al. 2024).
+
+Main steps to import LA-ICP-MS data:
+
+- Import files including a data file from the mass spectrometer containing timestamps and intensity data, and optionally a log file from the laser system
+- Adjust the time shift to synchronise the two data sets
+- Generate a log file (if not available) using the Log Generator module
+- Extract integrations for each measurement
+- Apply a background correction using one of the available functions
+- Select primary standard(s) and fit to generate a primary standard intensity function
+- Select secondary standard(s) and check the quality of standardisation for each element selected as an internal standard
+- Generate maps using the interpolation method described in Markmann et al. (2024) for unknowns and standards, and export map files.
+
+### Step 1: Load datafile(s)
+
+The import tools are located at the top of the module. The data format can be selected from the first dropdown menu and the file format (single or multiple) from the second dropdown menu. The data from a measurement session can be contained in a single file or multiple files. If multiple files are selected, it is recommended that you select the last file first and then hold SHIFT while selecting the first file, not vice versa. For the laser, deselect the log file option if no compatible log file is available. In this case, the Log Generator module will appear when the _Load Datafiles_ button is pressed.
+
+Once appropriate options have been selected, press the _Load Datafiles_ button to select: (1) a single data file from the mass spectrometer containing timestamps and intensity data (e.g. Data.csv) or multiple files (see warning above), and (2) if the Log File option is enabled, immediately after a corresponding log file (e.g. Log.csv) from the laser system (tested with RESONETICS only).
+
+### Step 2: Adjust time shift
+
+The value of the time shift can be adjusted to synchronise the data file with the log file. In the main figure, the total signal is plotted together with the laser on/off signals given in the log file (vertical red lines). The shift value is automatically adjusted by XMapTools when the data is imported. If necessary, adjust the value until both signals are synchronised.
+
+### Step 3: Extract integrations & plot data
+
+Once the value of the time shift is optimised, press the _Extract Integrations_ button to automatically extract all the analyses listed in the log file. They should appear in the Integration tree menu on the left of the window after extraction.
+
+### Step 4: Apply background correction
+
+The integrations for fitting a background correction are automatically selected for each measurement. They are listed in a tree menu (integration menu) located on the left and can be plotted by selecting an item under the category Background.
+
+#### Display/edit integrations for background
+To view and edit integrations, select the first measurement in the tree menu. The display is automatically adjusted to zoom in on the selected integration. If you select a different measurement in the tree menu, the integration will be displayed in the centre of the plot. The program automatically excludes a fraction of sweeps at the beginning and at the end of each background measurement (default value is 10 %). This value can be changed manually if required. It is also possible to manually edit the duration of an integration by changing the limit values available as Sweep (min and max).
+#### Background interpolation
+
+Select a method for fitting the background in the BACKGROUND section below the plot. It is recommended to display the signal _Raw\_Sum_ and to adjust the display to show the entire background signal. The following functions are available: (1) linear, (2) polynomial, (3) step function, (4) spline. Step function is recommended for background correction. Press the button _Apply_ to apply the background correction. You cannot change the background correction once it has been applied.
+
+### Step 5: Select primary standard(s)
+
+The background-corrected (BackCorr) signal is displayed when a background correction has been applied. Corrected data are available from the Plot menu. Select the measurement to be used as the primary standard from the PRIMARY STANDARD dropdown menu. The integration name should match the name of a standard file containing the composition of this standard (e.g. NIST612 or GSD-1g). It is also possible to add custom files using the options available in the lower left panel, but this process must be repeated each time the converter is used. Integrations can be edited using the same strategy as for background integration (see above).
+
+Then select an interpolation method. A spline function is usually the best method to approximate instrument drift during the measurement, especially when reconstructing maps (Markmann et al. 2024). A step function can also be used in some cases, but this can result in sharp transitions between lines in the final map. Press the _Apply_ button to validate and interpolate the primary standard signal. If the standard is not automatically recognised, a window will open with a list of all available standards. It is possible to define additional interpolations to be used as primary standards. After pressing the _Apply_ button it is possible to define a new interpolation for the same material or for a different material by selecting the _Yes_ option. If you do not wish to define any further interpolations to be used as primary standards, select _No (Continue)_.
+
+### Step 6: Select and check secondary standard
+
+Select the measurements to be used as the secondary standard using the dropdown menu under SECONDARY STANDARD. Integrations can be edited using the same strategy as for background integration and primary standard (see above). Use the _Int. Std_ dropdown menu to select an element to be used as a reference for calculating the composition of the secondary standard. This choice has no effect at this stage on the map calibration performed in XMapTools (another element can be used). But here it is possible to quickly check the calibration using the secondary standard for several elements used as internal standard.
+
+### Step 7: Generate map files
+
+Maps can be generated from raster measurements after background correction, adjustment of the primary reference material(s) and checking of the secondary reference material(s). Use the dropdown menu in MAPS (SCANS) to select the raster measurements to be used to construct the map. Integrations cannot be edited. Press the _Apply_ button to validate and generate the maps. Three buttons become available.
+
+### References
+
+Markmann, T.A., Lanari, P., Piccoli, F., Pettke, T., Tamblyn, R., Tedeschi, M., Lueder, M., Kunz, B., Riel, N., and Laughton, J. (2024). Multi-phase quantitative compositional mapping by LA-ICP-MS: analytical approach and data reduction protocol implemented in XMapTools. Chemical Geology, 646, 121895.
+
+For more detailed information on the LA-ICPMS Converter, refer to the embedded documentation available within the program.
@@ -92,11 +159,68 @@ Time in Seconds ,Mg/25,Al/27,P/31,Ca/42
## Log generator module
-When the log generator module is used the time shift should be set to zero.
+When the log generator module is used the time shift should be set to zero.
+
+
+## Calibration
+
+Intensity maps obtained by LA-ICPMS can be calibrated to element/oxide compositions. The following steps can be followed:
+
+- Import standard maps
+- Calibrate intensity data
+- Generate spider plots
+
+### Import standard maps
+
+Only standard maps generated by the Converter for LA-ICPMS data can be imported and used to calibrate LA-ICPMS maps in XMapTools 4.
+
+The button _Import_ (Import Maps for Standards (from file)) is used to open a window in which the file 'MapStandards_Import.mat' must be selected.
+
+Once standard data are imported they become available under the category _Standards (Maps)_ in the Secondary Menu. Select an element to plot a map corresponding to the intensity of the primary standard material.
+
+### Calibrate intensity data
+
+As for EPMA, the calibration tool for LA-ICPMS data requires a mask file, so the _Calibrate_ button is only available when a mask file is selected in the Secondary Menu.
+
+The button _Calibrate_ (Open LA-ICP-MS Calibration Tools) opens the calibration assistant.
+
+For more detailed information on the Calibration Assistant, refer to the embedded documentation accessible from the assistant.
+
+### Calibration assistant (LA-ICPMS)
+
+The approach implemented in XMapTools 4 provides a module for mineral calibration based on the reference composition of an element (internal standard). Unlike other programs, the composition of the reference element can be variable in the mineral.
+
+#### Step-by-step guide
+
+- Select the mineral to be calibrated using the dropdown menu _Mineral_
+- Select the element to be used as internal standard using the dropdown menu _Internal Standard_
+- Decide if you want to use a fixed or variable composition using one of the option _Fixed composition_ or _Variable composition_ (see below)
+
+#### Case 1: Fixed composition
+
+This mode is valid if an element is chemically unzoned in the selected mineral and you want to use it as internal standard (e.g. SiO₂ in garnet).
+
+You can use the _Internal Composition Converter_ tool to convert the composition of the internal standard in µg/g of element. Enter a value in oxide wt% and the converter will automatically translate this value to µg/g. Note that the value in the field for _Fixed composition_ changes when a new conversion is performed; there is no need to copy the value from one field to the other.
+
+Press the button _Apply standardisation_ to generate the compositional maps that will be available in the category _Quanti_ of the Primary Menu. The maps are expressed in µg/g of elements. You can convert them into wt% of oxides using the internal converter. Right-click on a quanti file and select the option _Convert_. Choose the conversion in the Converter Window.
+
+#### Case 2: Variable composition
+
+This mode is optimal for minerals that are zoned in all major elements (e.g. phengite). Average intensities of several ROI can be picked from the map and attributed to different compositions.
+
+The button _Pick a ROI (circle)_ activates the mode to draw a ROI with a circle shape. Draw a circle on the map in a region showing a constant intensity.
+
+Set the average composition in wt% of oxide in the _Internal Composition Converter_ tool. Then click in the table on the first and second row of Pt-1; values will be automatically added to the table.
+
+Move the ROI to another area, for example with lower values in intensity/composition, adjust the value for wt% of oxide and click in both lines the table to create Pt-2.
+Press the button _Apply standardisation_ to generate the compositional maps that will be available in the category _Quanti_ of the Primary Menu. The maps are expressed in µg/g of elements. You can convert them into wt% of oxides using the internal converter. Right-click on a quanti file and select the option _Convert_. Choose the conversion in the Converter Window. Note: After converting the maps, the name of the maps can be changed (this is not done by the converter).
+### Generate spider plots
+The button _Spider_ (Open Spider Module) opens the module Spider Plot. This button is only available when a quanti file or any map within a quanti file is selected in the primary menu.
+For more detailed information on the Spider Module, refer to the embedded documentation accessible from the module.
diff --git a/index.md b/index.md
index 6d0c52f..6a1b703 100644
--- a/index.md
+++ b/index.md
@@ -4,8 +4,8 @@ layout: home
hero:
name: XMapTools 4.5
- text: Quantitative compositional mapping
- tagline: Free and versatile software solution for chemical maps analysis
+ text: Compositional mapping
+ tagline: Free and versatile software solution for quantitative chemical maps analysis.
actions:
- theme: brand
text: Installation
@@ -17,7 +17,7 @@ hero:
text: Developer repository
link: https://github.com/xmaptools/XMapTools_Developers
image:
- src: /assets/Logo_2025_square_512.Xsq7Ybeo.png
+ src: /assets/Logo_2025_square_512.png
alt: XMapTools
features:
@@ -45,9 +45,11 @@ It provides numerical tools and packages implemented in a guided and versatile e
For example, XMapTools includes a wide range of data processing options including routines for classification, segmentation, calibration and visualisation via single and multi-channel maps or via binary, ternary and spider diagrams.
+
+
-
+
diff --git a/installation_guide.md b/installation_guide.md
index be7c8de..15a17a1 100644
--- a/installation_guide.md
+++ b/installation_guide.md
@@ -16,6 +16,9 @@ This guide covers how to install and update XMapTools 4.5 and future releases on
- [Update Only (Windows)](#update-only-windows)
- [Show Information (Windows)](#show-information-windows)
- [Troubleshooting](#troubleshooting)
+ - [XMapTools suddenly not opening (Windows)](#xmaptools-suddenly-not-opening-windows)
+ - [Unfreeze XMapTools in case of error](#unfreeze-xmaptools-in-case-of-error)
+ - [Uninstalling XMapTools (Windows)](#uninstalling-xmaptools-windows)
## Prerequisites
@@ -236,6 +239,25 @@ Then re-run the installation or update command.
Make sure you are running PowerShell **as Administrator**. Right-click the PowerShell icon and select *Run as Administrator*.
+### XMapTools suddenly not opening (Windows)
+
+If XMapTools was working previously and suddenly stops opening, this can be caused by a corrupted MATLAB Runtime installation or a Windows update that modified system paths. Try the following:
+
+1. Perform a full reinstallation using the `--install` flag
+2. If the issue persists, uninstall the MATLAB Runtime (see [Delete Old Runtime Libraries](#delete-old-runtime-libraries)) and reinstall
+
+### Unfreeze XMapTools in case of error
+
+If XMapTools becomes unresponsive during an operation, a dialog box may appear with **OK** and **Cancel** buttons. Click **Cancel** to cancel the current operation and unfreeze XMapTools. Clicking **OK** may restart the operation and keep XMapTools frozen.
+
+### Uninstalling XMapTools (Windows)
+
+To fully uninstall XMapTools on Windows:
+
+1. Open **Settings → Apps & Features** (or **Control Panel → Programs and Features**)
+2. Find **XMapTools** in the list and click **Uninstall**
+3. Optionally, uninstall the **MATLAB Runtime** from the same list if no other MATLAB-based applications require it
+
---
## Quick Reference
diff --git a/public/assets/Logo_2025_square_512.png b/public/assets/Logo_2025_square_512.png
new file mode 100644
index 0000000..bd13bf4
Binary files /dev/null and b/public/assets/Logo_2025_square_512.png differ
diff --git a/src/assets/Logo_2025_square_512.png b/src/assets/Logo_2025_square_512.png
new file mode 100644
index 0000000..bd13bf4
Binary files /dev/null and b/src/assets/Logo_2025_square_512.png differ
diff --git a/tutorials.md b/tutorials.md
index 310df84..ac8582e 100644
--- a/tutorials.md
+++ b/tutorials.md
@@ -9,9 +9,13 @@ Follow the steps in this tutorial to familiarise yourself with the EPMA data red
A video tutorial is also available on YouTube and Bilibili:
-
+
### Dataset description
@@ -52,16 +56,17 @@ When the program is ready, a dialog box opens; pick the working directory __Tuto
### Import maps
-1. In the first workspace "PROJECT & IMPORT", click on the "Import" button (Import Maps) to open the Import Tool module.
@@ -72,12 +77,12 @@ Classification is the step used to create a classified image in which each pixel
Additional information about the classification in XMapTools can be found in : Lanari, P., Tedeschi, M., (2025). Chemical map classification in XMapTools. _Applied Computing and Geosciences_, __25__, 100230 [Download].
1. Set the active workspace to CLASSIFY.
-2. Create a new training set. In the secondary tree menu, select the category "Training Set (Classification)" and press the button "Add" available in the CLASSIFY workspace to add phase definitions. Select in the list the phases: Biotite, Garnet, Plagioclase, Quartz; then click "Apply".