Source code for autopew.io.EPMA.JEOL

"""
Export function for the JEOL field-emission gun electron probe microanalyser (EPMA)
using "probe for EPMA".
"""
import csv
from pathlib import Path

import numpy as np
import pandas as pd


[docs]def write_pos( df, filepath=Path("./exportedpoints.pos"), encoding="cp1252", z=10.7, **kwargs ): """ Export an dataframe of coordinates to a .pos file. Parameters ------------ df : :class:`pandas.DataFrame` Dataframe containing points to serialise. filepath : :class:`str` | :class:`pathlib.Path` Filepath for export. encoding : :class:`str` Encoding for the output file. z : :class:`int` Optional specification of default focus value to use. Returns -------- :class:`pandas.DataFrame` """ # requires FOCUS, X, Y, spotnames # lets save them so we can directly import them pos = pd.DataFrame( index=df.index, columns=[ "two", "index", "label", "X", "Y", "Z", "type1", "type2", "type3", "type4", "blank", ], ) pos["two"] = 2 pos["index"] = df.index + 1 pos["label"] = df["name"].apply(lambda x: '"' + str(x) + '"') pos["X"] = df["x"] pos["Y"] = df["y"] pos["Z"] = z pos["type1"] = 0 pos["type2"] = 1 pos["type3"] = 0 pos["type4"] = 0 pos["blank"] = '""' # export to text file with no blank row at end s = pos.to_csv(None, quoting=csv.QUOTE_NONE, index=False, header=False) s = s.replace("\r\n", "\n") s = "0,0,0,0\n0,0,0,0\n0,0,0,0\n" + s with open(str(filepath), "w") as f: # str for Python 3.5 compatibility f.write(s[:-1])