Merge plot notebooks for both Olympus/Sciaps

main
Jeff Moe 2022-05-27 16:51:00 -06:00
parent 032f8f5a49
commit 0e92e91d0e
7 changed files with 46 additions and 148 deletions

View File

@ -1,129 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# witzit-plot-x555 --- What In The Zap Is That? AI categorization of spectra from LIBS/XRF analyzers.\n",
"#\n",
"# Copyright (C) 2019-2022, Jeff Moe\n",
"#\n",
"# This program is free software: you can redistribute it and/or modify\n",
"# it under the terms of the GNU General Public License as published by\n",
"# the Free Software Foundation, either version 3 of the License, or\n",
"# (at your option) any later version.\n",
"#\n",
"# This program is distributed in the hope that it will be useful,\n",
"# but WITHOUT ANY WARRANTY; without even the implied warranty of\n",
"# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n",
"# GNU General Public License for more details.\n",
"#\n",
"# You should have received a copy of the GNU General Public License\n",
"# along with this program. If not, see <http://www.gnu.org/licenses/>.\n",
"#\n",
"# Plotting Application.\n",
"# https://spacecruft.org/spacecruft/witzit\n",
"#\n",
"# Based on wut?\n",
"# https://spacecruft.org/spacecruft/satnogs-wut"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import locale"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"locale.setlocale(locale.LC_ALL, \"en_US.utf8\")\n",
"plt.rcParams['axes.formatter.use_locale'] = True"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"template = pd.read_csv('template/sciaps-x555.csv')\n",
"mca = pd.read_csv('examples/golden_buffalo.mca', skiprows=21)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df=template.join(mca)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(df)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sns.set_theme()\n",
"plt.figure(facecolor='xkcd:off white', figsize=(15, 8))\n",
"g=sns.lineplot(x=\"energy (eV)\", y=\"2048\", data=df, linestyle='-', linewidth=1, color='xkcd:pale orange')\n",
"g.set_title('XRF Spectrum'.format('seaborn'), color='xkcd:cornflower blue', fontsize='large', fontweight='bold')\n",
"g.set_xlabel('energy (eV)', color='xkcd:goldenrod', fontsize='large', fontweight='bold')\n",
"g.set_ylabel('Counts', color='xkcd:cerulean', fontsize='large', fontweight='bold')\n",
"g.patch.set_alpha(1.0)\n",
"g.set_facecolor('xkcd:powder blue')\n",
"plt.xlim(0,50000)\n",
"plt.ylim(0,100000)\n",
"plt.tight_layout()\n",
"plt.savefig(\"xrf-spectrum.png\", dpi=72, transparent=False, facecolor='xkcd:off white', edgecolor=g.get_facecolor())\n",
"plt.show()\n",
"plt.close()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -8,7 +8,7 @@
},
"outputs": [],
"source": [
"# witzit-plot-vanta --- What In The Zap Is That? AI categorization of spectra from LIBS/XRF analyzers.\n",
"# witzit-plot --- What In The Zap Is That? AI categorization of spectra from LIBS/XRF analyzers.\n",
"#\n",
"# Copyright (C) 2019-2022, Jeff Moe\n",
"#\n",
@ -41,7 +41,24 @@
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import locale"
"import locale\n",
"import sys\n",
"import re"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Olympus Vanta-M XRF Example\n",
"#datafile=('examples/olympus-vanta.csv')\n",
"# SciAps X-555 XRF Example\n",
"#datafile=('examples/sciaps-x555.mca')\n",
"# Fail examples\n",
"#datafile=('examples/foo.csv')\n",
"#datafile=('examples/sciaps-x555.csv')"
]
},
{
@ -60,21 +77,31 @@
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv('examples/olympus-vanta.csv', header = 0,\n",
" skiprows=39,\n",
" names=('eV', 'Counts'),\n",
" usecols = [0, 1])\n",
"with open(datafile) as f:\n",
" firstline = f.readline().rstrip()\n",
"\n",
"df['eV'] = df['eV'] * 1000"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(df)"
"if firstline == 'File Version = 2':\n",
" print('SciAps X-555 XRF MCA')\n",
" template = pd.read_csv('template/sciaps-x555-ev.csv', header=0,\n",
" skiprows=0,\n",
" usecols = [0])\n",
" mca = pd.read_csv(datafile, skiprows=21, header=0,\n",
" usecols = [0])\n",
" df=template.join(mca)\n",
" df.rename(columns = {'2048':'Counts'}, inplace = True)\n",
"\n",
"elif re.match(re.compile('Date,*'), firstline):\n",
" print('Olympus Vanta-M XRF')\n",
" df = pd.read_csv(datafile, header=0,\n",
" skiprows=39,\n",
" names=('energy (eV)', 'Counts'),\n",
" usecols = [0, 1])\n",
" df['energy (eV)'] = df['energy (eV)'] * 1000\n",
"\n",
"elif re.match(re.compile('\"Date\",*'), firstline):\n",
" print('Possibly SciAps X-555 XRF CSV, not processed. Use .mca file instead of .csv.')\n",
"else:\n",
" print('Unknown file type.')\n"
]
},
{
@ -85,7 +112,7 @@
"source": [
"sns.set_theme()\n",
"plt.figure(facecolor='xkcd:off white', figsize=(15, 8))\n",
"g=sns.lineplot(x=\"eV\", y=\"Counts\", data=df, linestyle='-', linewidth=1, color='xkcd:pale orange', legend=False)\n",
"g=sns.lineplot(x=\"energy (eV)\", y=\"Counts\", data=df, linestyle='-', linewidth=1, color='xkcd:pale orange', legend=False)\n",
"g.set_title('XRF Spectrum'.format('seaborn'), color='xkcd:cornflower blue', fontsize='large', fontweight='bold')\n",
"g.set_xlabel('energy (eV)', color='xkcd:goldenrod', fontsize='large', fontweight='bold')\n",
"g.set_ylabel('Counts', color='xkcd:cerulean', fontsize='large', fontweight='bold')\n",
@ -94,7 +121,7 @@
"plt.xlim(0,50000)\n",
"plt.ylim(0,100000)\n",
"plt.tight_layout()\n",
"plt.savefig(\"xrf-spectrum-vanta.png\", dpi=72, transparent=False, facecolor='xkcd:off white', edgecolor=g.get_facecolor())\n",
"plt.savefig(\"tmp/xrf-spectrum.png\", dpi=72, transparent=False, facecolor='xkcd:off white', edgecolor=g.get_facecolor())\n",
"plt.show()\n",
"plt.close()"
]

View File

@ -24,7 +24,7 @@
# witzit-load [filename]
# Examples:
# witzit-load ./examples/olympus-vanta.csv
# witzit-load ./examples/golden_buffalo.mca
# witzit-load ./examples/sciaps-x555.mca
import pandas as pd
import sys