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 image 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 image 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. +
+ XMapTools Logo -

+
XMapTools Logo 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: -XMapTools Tutorial for EPMA +
+ +
+ +Located in China? Watch this video on Bilibili + -XMapTools Tutorial for EPMA ### 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. drawing + +1. In the first workspace "PROJECT & IMPORT", click on the "Import" image button (Import Maps) to open the Import Tool module. 2. Select all the map files to be imported and click on the button "Open". Note that you can select all the text files available in the folder and XMapTools will find out which ones can be imported as maps. 3. In the tab "Corrections", change the value of dwell time to 120 ms. 4. Press the "Import Data" button. ### X-ray data visualization (Part 1) -1. Quickly go through the maps and use the auto-contrast option or the live frequency polygon (see figure below) to adjust the lower and upper limits of the color bar. Note that the color bar settings are available in the "Options" workspace. drawing +1. Quickly go through the maps and use the auto-contrast image button or the live frequency polygon (see figure below) to adjust the lower and upper limits of the color bar. Note that the color bar settings are available in the "Options" workspace. 2. Eliminate the maps which are not needed because they do not contain any important information (Ce, Cr, Ni, S). To eliminate a map, select the map in the primary tree menu, then right click on the name and select "Delete". -3. Save your project using either the "Save" button available in the "PROJECT & IMPORT" workspace or in the menu "File" > "Save Project". drawing +3. Save your project using either the "Save" image button available in the "PROJECT & IMPORT" workspace or in the menu "File" > "Save Project". Data visualization @@ -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". drawing +2. Create a new training set. In the secondary tree menu, select the category "Training Set (Classification)" and press the "Add" image button available in the CLASSIFY workspace to add phase definitions. Select in the list the phases: Biotite, Garnet, Plagioclase, Quartz; then click "Apply". 3. Add training data for each phase: - Select a training class in the training set. - - Adjust display (optional): select an element to be display and eventually use the zoom and pan features to adjust the field of view. drawing drawing + - Adjust display (optional): select an element to be display and eventually use the zoom image and pan image buttons to adjust the field of view. - Select a ROI type in the dropdown menu among "Rectangle ROI", "Polygon ROI", "Ellipse ROI" and "Circle ROI". - - Finally, press the "Add a ROI" button and immediately click and drag (or click for polygon) over the map to create the ROI. How to draw a ROI in XMapTools: drawing + - Finally, press the "Add a ROI" image button and immediately click and drag (or click for polygon) over the map to create the ROI. How to draw a ROI in XMapTools: - 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-click or double-click to validate and close automatically the shape. - Ellipse: click to select the first point and drag the mouse to a second point defining the long axis of an ellipse. @@ -87,13 +92,13 @@ Additional information about the classification in XMapTools can be found in : L 6. Add new phase definitions for sillimanite and sudoite (low temperature chlorite here replacing cordierite). Add training data for each phase (see step 3 above). 7. Restore the view using either the button "Reset Zoom & Pan" or the button "Restore view" available near the top-right corner of the main figure. 8. In classification parameters: - - Add all maps in the list for classification. Select an element to display in the primary tree menu and use the "Add all" button to add all maps at once. drawing - - Eliminate La from the list; select La_EDS in the primary tree menu and press the button "Take La_EDS out". drawing - - You can calculate PCA maps using the "Generate Maps of the Principal Component" button. The maps of principal components are listed in the category "Other" available in the primary tree menu. drawing + - Add all maps in the list for classification. Select an element to display in the primary tree menu and use the "Add all" image button to add all maps at once. + - Eliminate La from the list; select La_EDS in the primary tree menu and press the "Take La_EDS out" image button. + - You can calculate PCA maps using the "Generate Maps of the Principal Component" image button. The maps of principal components are listed in the category "Other" available in the primary tree menu. - Select the data type "Maps" (other data types are described in Lanari & Tedeschi 2025). - Select the map scaling method "Robust"; select the option "reproducibility" and set the seed value to 1. 9. Select the algorithm "Random Forest" and set the option corresponding to the maximum number of trees to 50. -10. Select the phase definition object "PhaseDef_1" in the secondary tree menu and press the button "Classify". drawing +10. Select the phase definition object "PhaseDef_1" in the secondary tree menu and press the "Classify" image button. 11. Select a mask file to display the mineral map. 12. Check the results of the classification (for Random Forest): - Are all training pixels classified in the true class? If not, the training set should be adjusted accordingly. @@ -107,18 +112,18 @@ Additional information about the classification in XMapTools can be found in : L 1. Select a mask file. 2. Select the ROI shape "rectangle" using the dropdown menu in "Mask analysis and visualization" -3. Press the "Add a ROI to export mask modes" button and immediately click and drag over the map to create the ROI. drawing +3. Press the "Add a ROI to export mask modes" image button and immediately click and drag over the map to create the ROI. 4. Adjust the shape to obtain the modes of the entire map. __If the editing mode is disabled, press once the "Ctrl" key__ on your keyboard and try again editing the shape of the ROI. -5. Save the modes using the button save in the composition tab on the right. drawing -6. Note that you can also copy the data to the clipboard using the button copy. Paste the data in a spreadsheet software program. drawing -7. Eliminate the ROI using the function "Reset ROI". drawing +5. Save the modes using the save image button in the composition tab on the right. +6. Note that you can also copy the data to the clipboard using the copy image button. Paste the data in a spreadsheet software program. +7. Eliminate the ROI using the "Reset ROI" image button. 8. For comparaison purposes (don't use that method for publications!), calculate pseudo modes using the point counting method: - Set the number of points to 500. - Unselect the Monte-Carlo option. - - Extract several successive sets of pseudo modes using the point counting method by clicking on the "Generate pseudo-modes" button and copy the results in a spreadsheet software program. _Note: now you know why this method should not be used._ drawing + - Extract several successive sets of pseudo modes using the point counting method by clicking on the "Generate pseudo-modes" image button and copy the results in a spreadsheet software program. _Note: now you know why this method should not be used._ 9. Calculate pseudo modes using the point counting method and Monte Carlo to calculate uncertainties on the results (_note: what is never done with point counting_): - Set the number of points to 300. - - Select the Monte-Carlo optionExtract pseudo modes and uncertainties using the "Generate pseudo-modes" button and copy the results in a spreadsheet software program. drawing + - Select the Monte-Carlo optionExtract pseudo modes and uncertainties using the "Generate pseudo-modes" image button and copy the results in a spreadsheet software program. - You can repeat this calculation for several number of points (e.g. 500, 750, 1000) and copy the results in a spreadsheet software program. ### Analytical standardisation @@ -134,18 +139,18 @@ The calibration method used by XMapTools is described in Lanari, P., Vho, A., Bo 1. Set the active workspace to "CALIBRATE". 2. Display an intensity map showing a maximum of minerals (e.g. Al). 3. Select the option "Import standards.txt" in "EPMA STANDARD DATA". -4. Click on the "Import" button. Note that the color of the spot labels can be changed in the options of the "Project & Import" workspace. drawing -5. Select the element Mg to estimate the quality of the position. The diagrams on the right show correlation maps with the center of the image being the position of the spots on the map. In this case the original position is good and there is no need to change it. (Optional) you can try to shift the spot position in the correlation plot of the element and then to press "apply". To restore the original position, you can simply load the standard data again using the import function. drawing drawing +4. Click on the "Import" image button. Note that the color of the spot labels can be changed in the options of the "Project & Import" workspace. +5. Select the element Mg to estimate the quality of the position. The diagrams on the right show correlation maps with the center of the image being the position of the spots on the map. In this case the original position is good and there is no need to change it. (Optional) you can try to shift the spot position in the correlation plot of the element and then to press "apply" image. To restore the original position, you can simply load the standard data again using the import image button. 6. Add two additional internal standard values for quartz (not measured): - Display the silicon map by selecting Si in the primary tree menu. - Select the category "Standards (Spots)" in the secondary tree menu. - Adjust the view using zoom and pan (optional) - - Press the "Add" button available in the "CALIBRATE" workspace select a pixel of quartz by clicking on the main image. drawing + - Press the "Add" image button available in the "CALIBRATE" workspace select a pixel of quartz by clicking on the main image. - Set the composition to 100 wt% of SiO2 in the table available in the "Standard" tab. - Note that the new standard is listed at the bottom of the secondary tree menu under "Standards (Spots)". Selecting this internal standard display the location and the composition. 7. Calibrate the intensity element maps into maps of wt% of oxide: - Select a mask file in the secondary tree menu. - - In the "CALIBRATE" workspace, press the button "Calibrate" to open the Calibration assistant for EPMA data. drawing + - In the "CALIBRATE" workspace, press the "Calibrate" image button to open the Calibration assistant for EPMA data. - Check the calibration curves by displaying the curve for each element of each mineral. - Use the button "Adjust (Manual)" to modify the calibration curve in case the calibration algorithm failed to set a proper calibration curveSelect the option "Apply to all masks". - Press the button "Apply Standardization" to calibrate all maps and send the data to XMapTools. @@ -159,19 +164,19 @@ _Note: The video tutorial (see above) provides more tricks and explanations abou 1. We need first to create a density map for the mask file used for calibration: - Select a mask file in the secondary tree menu. - - In the "CALIBRATE" workspace, press the "Density" button to automatically generate a density map. drawing + - In the "CALIBRATE" workspace, press the "Density" image button to automatically generate a density map. - Enter average density values for each phase. Note that average values are automatically proposed if the mineral name used is available in the XMapTools database. - You can display the density map in that is listed under the category "Other" in the primary tree menu. 2. Display a merged map by selecting an oxide in the category "Merged" of the primary tree menu. -3. Select "Rectangle ROI", then press the "Add ROI" button and immediately click and drag over the map to create the ROI. drawing +3. Select "Rectangle ROI", then press the "Add ROI" image button and immediately click and drag over the map to create the ROI. 4. For this exercise, reshape the ROI to about ¾ of the map surface. If the editing mode is disabled, press once the "Ctrl" key and try again editing the shape of the ROI. 5. Save the local bulk composition. -6. Set the number of simulations to 100 and the shift value expressed in number of pixels to 20 and press the "Calculate the uncertainties using Monte Carlo" button. drawing +6. Set the number of simulations to 100 and the shift value expressed in number of pixels to 20 and press the "Calculate the uncertainties using Monte Carlo" image button. 7. Save the results and the figure (File > Save As…). 8. Change the ROI to cover the entire map and export the new bulk composition. Compare the composition with the one previously obtained for the smaller domain. 9. Create a new merged map "garnet-excluded" containing only pixel compositions of biotite, plagioclase, quartz, sillimanite and sudoite and export the local bulk composition: - Select the item "Biotite" in the category "Quanti" of the primary tree menu. - - Press the "Merge" button. drawing + - Press the "Merge" image button. - Select all mineral except Garnet and press the "Apply" button. - Rename the merged map into "Merged_noGrt". - Export a local bulk composition of the entire area. @@ -182,9 +187,9 @@ The method to extract local bulk composition is described in Lanari, P., & Engi, 1. Set the active workspace to "FUNCTIONS". 2. In "Normalization & Structural Formula", select "Function", "Biotite" and "Bt (SF, 11-Ox. basis)". -3. Display the function description by clicking on the yellow help button. drawing +3. Display the function description by clicking on the yellow help image button. 4. Select "Biotite" in the category "Quanti" of the primary tree menu -5. Press the "Apply" button to calculate the maps of structural formula for biotite. drawing +5. Press the "Apply" image button to calculate the maps of structural formula for biotite. 6. Display the maps of structural formula "Biotite Bt (SF, 11-Ox. basis)" available in the category "Results" of the primary tree menu. 7. Generate an image showing the maps of Si, Ti and XMg in biotite: - In the menu, select in the menu: Image > Multi-Selection Mode. @@ -206,7 +211,7 @@ The method to extract local bulk composition is described in Lanari, P., & Engi, - Select any result in "Biotite Bt (SF, 11-Ox. basis)". - In the menu, select: Modules > Generator. - Type the following equation in the field that calculates Mg (apfu): "Mg = Mg_M1 + Mg_M2". - - Press the "Generate" button. drawing + - Press the "Generate" image button. - Activate the multi-selection mode. - Select the maps Mg in garnet and Mg in biotite; both are expressed in apfu. - In the menu "Image", select the option "Add Multi-Layer Image (shared-scale)". @@ -215,7 +220,7 @@ The method to extract local bulk composition is described in Lanari, P., & Engi, 14. Calculate temperature maps using Ti-in-biotite thermometry: - In the FUNCTIONS workspace, activate the "Map mode" in the section "Thermobarometry and other methods", select "Biotite" and "T.Bt (all calibrations)". - Select "Biotite" in the category "Quanti". - - Press the "Apply" button available in the section "Thermobarometry and other methods". drawing + - Press the "Apply" image button available in the section "Thermobarometry and other methods". - Set the pressure to 6 kbar (0.6 GPa). - Display the map T_H05. - Save a single image containing the temperature map T_H05. @@ -223,13 +228,13 @@ The method to extract local bulk composition is described in Lanari, P., & Engi, - Select the merge map "Merged_RandomForest". - Adjust the view using zoom and pan (optional). - In the workspace "FUNCTIONS", activate the "Multi-equilibrium" mode in the section "Thermobarometry and other methods", select "Biotite" or "Garnet" and "T.Bt (all calibrations)". - - Display the map FeOSelect "Circle ROI", then press the "Add ROI" button. drawing + - Display the map FeOSelect "Circle ROI", then press the "Add ROI" image button. - Set the pressure to 6 kbar (0.6 GPa). - Select a ROI for garnet and then a ROI for biotite. - - Results are displayed in a table for all calibrations. Check the help function to obtain the references. drawing - - Save the results using the "Save" button available above the table. drawing + - Results are displayed in a table for all calibrations. Check the help function image to obtain the references. + - Save the results using the "Save" image button available above the table. - Adjust the position of the ROI and extract the new temperature. - - Click on the "Reset ROI" button. drawing + - Click on the "Reset ROI" image button. ### Sampling tools and chemical diagrams @@ -245,7 +250,7 @@ The method to extract local bulk composition is described in Lanari, P., & Engi, - In the menu, select Sampling > Strip and click on the image to create rectangle. - Adjust the rotation and the position of the rectangle to sample from rim to core of a garnet grain. - Save the results and compare the profile obtained with the ones obtained using the transect tool. - - Reset ROI using the button. drawing + - Reset ROI using the image button. 3. Generate a binary plot for biotite: - Select any map of the structural formula of biotite. - In the menu select Modules > Data Vizualisation. diff --git a/videos.md b/videos.md index 127b048..f13d9bd 100644 --- a/videos.md +++ b/videos.md @@ -1,3 +1,44 @@ # Videos -Links to XMapTools videos +Watch our videos to find out more and learn how to use XMapTools. + +## Table of contents + +- [LA-ICP-MS data reduction in XMapTools 4.3](#la-icp-ms-data-reduction-in-xmaptools-4-3) +- [Introduction talk to XMapTools 4 for EPMA](#introduction-talk-to-xmaptools-4-for-epma) +- [XMapTools Course 1 – How to get started (EPMA)?](#xmaptools-course-1-–-how-to-get-started-epma) +- [XMapTools 4 Special Event – December 2021](#xmaptools-4-special-event-–-december-2021) + + +## LA-ICP-MS data reduction in XMapTools 4.3 + +
+ +
+ +Located in China? Watch this video on Bilibili + + +## Introduction talk to XMapTools 4 for EPMA + +
+ +
+ +Located in China? Watch this video on Bilibili + + +## XMapTools Course 1 – How to get started (EPMA)? + +
+ +
+ +Located in China? Watch this video on Bilibili + + +## XMapTools 4 Special Event – December 2021 + +
+ +