[![Downloads](https://static.pepy.tech/badge/pyspm)](https://pepy.tech/project/pyspm)
[![PyPi version](https://img.shields.io/pypi/v/pySPM)](https://pypi.python.org/pypi/pySPM/)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.998575.svg)](https://doi.org/10.5281/zenodo.998575)
# pySPM
pySPM is a Python library in order to read, handle and plot Scanning Probe Microscopy
(SPM) images as well as ToF-SIMS data.
Supported SPM file formats:
* Nanoscan .xml file format
* Bruker
* Iontof ToF-SIMS fileformats:
* ITA
* ITM
* ITS
* Nanonis SXM file
## Important
This library is offered as it is and is still in development. Please note that reading
the raw data was done by reverse
engineering and guessing and not with a manual as the file format is proprietary. It
seems to work well with the data
used by the developer of this library, but there is **NO GUARANTEE** that this library
will work correctly with your own
specific data.
If you find bugs and issues, please report them to the
developer: https://github.com/scholi/pySPM/issues
## Installation
### From PyPI
```bash
pip install pySPM
```
### From GitHub
#### With poetry
```bash
poetry add git+https://github.com/scholi/pySPM.git
```
#### With pip
```bash
pip install git+https://github.com/scholi/pySPM.git
```
### Optional dependencies
`PyQT5` for GUI controls.
## Documentation
The documentation is still in its early stage
[read the documentation](https://nbviewer.jupyter.org/github/scholi/pySPM/blob/master/doc/pySPM%20Documentation.ipynb)
There is also
a [short introduction to pySPM for ToF-SIMS data](https://nbviewer.jupyter.org/github/scholi/pySPM/blob/master/doc/Introduction%20to%20pySPM%20for%20ToF-SIMS%20data.ipynb)
## Citing
If you use this library for your work, please think about citing it.
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.998575.svg)](https://doi.org/10.5281/zenodo.998575)
Olivier Scholder. (2018, November 28). scholi/pySPM: pySPM v0.2.16 (Version v0.2.16).
Zenodo. http://doi.org/10.5281/zenodo.998575
## News
### ITA files are writable
From now on you can, not only view the ita files, but you can also write them by
supplying the parameter
_readable=False_ to _pySPM.ITA_ or _pySPM.ITM_. For the moment this is still a
non-user-friendly procedure, but you can
edit each ITStr Block with the ```edit_block()``` function. Be careful, because if the
new data has a different size
than the old one, a new block is created, but the old one is also kept. This means that
your ITA file size will grow.
You can also add new channels and images with the more user-friendly
function ```pySPM.ITA.add_new_images()```.
:warning: It is highly advised to copy the ita file before making any change. You can
use the following code to copy the
ita in a temporary ita before making any change.
```python
from shutil import copyfile
import pySPM
filename = "scanfile.ita"
copyfile(src=filename, dst="temp.ita")
A = pySPM.ITA("temp.ita", readonly=False)
```
### New tools
The library comes with three scripts to make your life easier. Those scripts are located
in your python folder in the
Scripts directory. You can also run them from the command line.
#### stability
Allows you to select a measurement folder and display the Emission Current and
Suppressor voltage in function of the
time/scan number.
This allows you to verify the stability of your source during your measurements.
![stability_screenshot](doc/images/Capture_stability.png)
see the [wiki](../../wiki/stability) for more info
#### plotter
Allows you to plot the parameter logged by your logfile. If SurfaceLab is running this
script will detect which logfile
is beeing saved and will display the values live (the plot is refreshed every 3s in
order add the new data). You can
also provide as first argument the logfile path (or in windows you can drag&drop the
logfile over the plotter app).
![plotter_screenshot](doc/images/Capture_plotter.png)
see the [wiki](../../wiki/plotter) for more info
#### timer
If you are using SurfaceLab, this app will display a small progressbar of your
measurement and will calculate the
remaining time in function of the elapsed time, the total number of scans and the
elapsed number of scan.
![timer_screenshot](doc/images/Capture_timer.png)
see the [wiki](../../wiki/timer) for more info
#### spectra
This tool can display spectra, visualize rapidly peaks assignment and perform fast mass
calibration.
You can give an ITA filename as argument or if none a GUI filedialog will ask you for
one. You will then see your
spectrum.
You can navigate with the scroll of the mouse to zoom in & out. You can use the
keyboard <kbd>+</kbd> and <kbd>-</kbd>
to shift your spectra by ±1 Dalton. You can use left-mouse-button and drag to shift your
spectra. You can perform very
quick mass calibration by Right-Mouse-Click on one measurement peak (hold the mouse) the
move to the element mark you
want to assign your peak and release the mouse. The mass calibration values should then
be updated on the left table and
the mass calibration performed live so that you can see immediately the changes.
![spectra_screenshot](doc/images/Capture_spectra.png)
see the [wiki](../../wiki/spectra) for more info
Raw data
{
"_id": null,
"home_page": "https://github.com/scholi/pySPM",
"name": "pyspm",
"maintainer": "Dinesh Pinto",
"docs_url": null,
"requires_python": ">=3.10,<3.13",
"maintainer_email": "annual.fallout_0z@icloud.com",
"keywords": "ToF,SIMS,ION-ToF,SPM,SFM,SXM,AFM,KPFM,PCA,ITA,imaging,ITM,Bruker,Nanonis",
"author": "Olivier Scholder",
"author_email": "o.scholder@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/63/3d/a3a7c4b4b5d9515a5b5921e93fba70b8b53a6c0533f255d5c7fdc123d5b5/pyspm-0.6.1.tar.gz",
"platform": null,
"description": "[![Downloads](https://static.pepy.tech/badge/pyspm)](https://pepy.tech/project/pyspm)\n[![PyPi version](https://img.shields.io/pypi/v/pySPM)](https://pypi.python.org/pypi/pySPM/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.998575.svg)](https://doi.org/10.5281/zenodo.998575)\n\n# pySPM\n\npySPM is a Python library in order to read, handle and plot Scanning Probe Microscopy \n(SPM) images as well as ToF-SIMS data.\n\nSupported SPM file formats:\n\n* Nanoscan .xml file format\n* Bruker\n* Iontof ToF-SIMS fileformats:\n * ITA\n * ITM\n * ITS\n* Nanonis SXM file\n\n## Important\n\nThis library is offered as it is and is still in development. Please note that reading\nthe raw data was done by reverse\nengineering and guessing and not with a manual as the file format is proprietary. It\nseems to work well with the data\nused by the developer of this library, but there is **NO GUARANTEE** that this library\nwill work correctly with your own\nspecific data.\n\nIf you find bugs and issues, please report them to the\ndeveloper: https://github.com/scholi/pySPM/issues\n\n## Installation\n\n### From PyPI\n\n```bash\npip install pySPM\n```\n\n### From GitHub\n\n#### With poetry\n\n```bash\npoetry add git+https://github.com/scholi/pySPM.git\n```\n\n#### With pip\n\n```bash\npip install git+https://github.com/scholi/pySPM.git\n```\n\n### Optional dependencies\n\n`PyQT5` for GUI controls.\n\n## Documentation\n\nThe documentation is still in its early stage\n[read the documentation](https://nbviewer.jupyter.org/github/scholi/pySPM/blob/master/doc/pySPM%20Documentation.ipynb)\n\nThere is also\na [short introduction to pySPM for ToF-SIMS data](https://nbviewer.jupyter.org/github/scholi/pySPM/blob/master/doc/Introduction%20to%20pySPM%20for%20ToF-SIMS%20data.ipynb)\n\n## Citing\n\nIf you use this library for your work, please think about citing it.\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.998575.svg)](https://doi.org/10.5281/zenodo.998575)\n\nOlivier Scholder. (2018, November 28). scholi/pySPM: pySPM v0.2.16 (Version v0.2.16).\nZenodo. http://doi.org/10.5281/zenodo.998575\n\n## News\n\n### ITA files are writable\n\nFrom now on you can, not only view the ita files, but you can also write them by\nsupplying the parameter\n_readable=False_ to _pySPM.ITA_ or _pySPM.ITM_. For the moment this is still a\nnon-user-friendly procedure, but you can\nedit each ITStr Block with the ```edit_block()``` function. Be careful, because if the\nnew data has a different size\nthan the old one, a new block is created, but the old one is also kept. This means that\nyour ITA file size will grow.\nYou can also add new channels and images with the more user-friendly\nfunction ```pySPM.ITA.add_new_images()```.\n:warning: It is highly advised to copy the ita file before making any change. You can\nuse the following code to copy the\nita in a temporary ita before making any change.\n\n```python\nfrom shutil import copyfile\nimport pySPM\n\nfilename = \"scanfile.ita\"\ncopyfile(src=filename, dst=\"temp.ita\")\nA = pySPM.ITA(\"temp.ita\", readonly=False)\n```\n\n### New tools\n\nThe library comes with three scripts to make your life easier. Those scripts are located\nin your python folder in the\nScripts directory. You can also run them from the command line.\n\n#### stability\n\nAllows you to select a measurement folder and display the Emission Current and\nSuppressor voltage in function of the\ntime/scan number.\nThis allows you to verify the stability of your source during your measurements.\n![stability_screenshot](doc/images/Capture_stability.png)\n\nsee the [wiki](../../wiki/stability) for more info\n\n#### plotter\n\nAllows you to plot the parameter logged by your logfile. If SurfaceLab is running this\nscript will detect which logfile\nis beeing saved and will display the values live (the plot is refreshed every 3s in\norder add the new data). You can\nalso provide as first argument the logfile path (or in windows you can drag&drop the\nlogfile over the plotter app).\n![plotter_screenshot](doc/images/Capture_plotter.png)\n\nsee the [wiki](../../wiki/plotter) for more info\n\n#### timer\n\nIf you are using SurfaceLab, this app will display a small progressbar of your\nmeasurement and will calculate the\nremaining time in function of the elapsed time, the total number of scans and the\nelapsed number of scan.\n![timer_screenshot](doc/images/Capture_timer.png)\n\nsee the [wiki](../../wiki/timer) for more info\n\n#### spectra\n\nThis tool can display spectra, visualize rapidly peaks assignment and perform fast mass\ncalibration.\nYou can give an ITA filename as argument or if none a GUI filedialog will ask you for\none. You will then see your\nspectrum.\nYou can navigate with the scroll of the mouse to zoom in & out. You can use the\nkeyboard <kbd>+</kbd> and <kbd>-</kbd>\nto shift your spectra by \u00b11 Dalton. You can use left-mouse-button and drag to shift your\nspectra. You can perform very\nquick mass calibration by Right-Mouse-Click on one measurement peak (hold the mouse) the\nmove to the element mark you\nwant to assign your peak and release the mouse. The mass calibration values should then\nbe updated on the left table and\nthe mass calibration performed live so that you can see immediately the changes.\n![spectra_screenshot](doc/images/Capture_spectra.png)\n\nsee the [wiki](../../wiki/spectra) for more info\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Library to handle SPM and ToF-SIMS data",
"version": "0.6.1",
"project_urls": {
"Documentation": "https://nbviewer.org/github/scholi/pySPM/blob/master/doc/pySPM%20Documentation.ipynb",
"Homepage": "https://github.com/scholi/pySPM",
"Repository": "https://github.com/scholi/pySPM"
},
"split_keywords": [
"tof",
"sims",
"ion-tof",
"spm",
"sfm",
"sxm",
"afm",
"kpfm",
"pca",
"ita",
"imaging",
"itm",
"bruker",
"nanonis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "297f2811b310097fca5fac4822338e22d015831ad9bfe6a0cdf14fdd8d6daf61",
"md5": "c7cb9b06575d4477e484cf94173a0933",
"sha256": "a4bab8dec2980d242ae49a7835375de0622ed326a91a15efe436296f6f423683"
},
"downloads": -1,
"filename": "pyspm-0.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c7cb9b06575d4477e484cf94173a0933",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<3.13",
"size": 283263,
"upload_time": "2024-02-09T16:46:47",
"upload_time_iso_8601": "2024-02-09T16:46:47.177161Z",
"url": "https://files.pythonhosted.org/packages/29/7f/2811b310097fca5fac4822338e22d015831ad9bfe6a0cdf14fdd8d6daf61/pyspm-0.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "633da3a7c4b4b5d9515a5b5921e93fba70b8b53a6c0533f255d5c7fdc123d5b5",
"md5": "cd8559406cf00aefb64915787c904ff9",
"sha256": "6ad518815603a0b390a15370c611bc5ff34d9b64310fac47931885cc234560c1"
},
"downloads": -1,
"filename": "pyspm-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "cd8559406cf00aefb64915787c904ff9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<3.13",
"size": 272359,
"upload_time": "2024-02-09T16:46:49",
"upload_time_iso_8601": "2024-02-09T16:46:49.551829Z",
"url": "https://files.pythonhosted.org/packages/63/3d/a3a7c4b4b5d9515a5b5921e93fba70b8b53a6c0533f255d5c7fdc123d5b5/pyspm-0.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-09 16:46:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "scholi",
"github_project": "pySPM",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pyspm"
}