Skip to main content

NanofinderParser


Documentation Status License - BSD-3-Clause
PyPI - Version PyPI - Downloads PyPI - Python Version
GitHub commit activity GitHub commits since latest release GitHub last commit GitHub Release Date
CI - Tests CD - Publish GitHub stars GitHub forks GitHub issues
Linting - Ruff Formatter - Ruff Types - Mypy

GitHub · PyPI · Docs · Issues

Parse and process Raman and photoluminescence (PL) data files generated by Nanofinder instruments.



Features

  • Parse SMD (Scanned Measurement Data) mapping files produced by NanoFinder instruments
  • Parse MDT files, which hold individual spectra and 2-D maps rather than a mapping
  • Convert spectral data between different units (nm, cm-1, eV, Raman shift)
  • Export parsed data to CSV files or pandas DataFrames

Installation

From PyPI

pip install nanofinderparser

or

uv add nanofinderparser

From Source

git clone https://github.com/psolsfer/nanofinderparser.git
cd nanofinderparser
uv sync

Usage

Quick Start

Here's a simple example of how to use NanofinderParser in python:

from pathlib import Path
from nanofinderparser import load_smd

# Load an SMD file
file_path = Path("path/to/your/smd/file.smd")
mapping_data = load_smd(file_path)

# Access basic information
print(f"Laser wavelength: {mapping_data.laser_wavelength} nm")
print(f"Map size: {mapping_data.map_size}")

# Export data to CSV
mapping_data.to_csv(path=Path("output"), spectral_units="raman_shift")

Individual spectra are saved by NanoFinder as MDT files, which are loaded with load_mdt:

from pathlib import Path
from nanofinderparser import load_mdt

spectra = load_mdt(Path("path/to/your/mdt/file.mdt"))

for spectrum in spectra:
    print(spectrum.title, spectrum.get_spectral_axis("raman_shift"), spectrum.data)

You can also use NanofinderParser from the command line:

# Convert an SMD file to CSV
nanofinderparser convert path/to/your/smd/file.smd output_folder --units nm

# Convert an MDT file of individual spectra to CSV
nanofinderparser convert-mdt path/to/your/mdt/file.mdt output_folder --units nm

# Display information about a file
nanofinderparser info path/to/your/smd/file.smd
nanofinderparser info-mdt path/to/your/mdt/file.mdt

For more detailed usage instructions, please refer to the documentation.

Command Line Interface

nanofinderparser --help

Python API

import nanofinderparser

# TODO: Add usage examples

Development

Setup

git clone https://github.com/psolsfer/nanofinderparser.git
cd nanofinderparser
uv sync

Install the prek git hook

uv run prek install

Running Tests

uv run pytest

Code Quality

uv run ruff check .
uv run ruff format .
uv run mypy src/nanofinderparser

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Credits

This package was created with Copier and the Copier PyPackage uv project template.

Release files for nanofinderparser 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nanofinderparser 0.7.0
File Size Uploaded
nanofinderparser-0.7.0.tar.gz 52.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nanofinderparser 0.7.0
File Interpreter ABI Platform
nanofinderparser-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 111.7 kB

Release files / nanofinderparser-0.7.0.tar.gz

Download URL nanofinderparser-0.7.0.tar.gz
Size 52.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0a119937442514f41099b704cf36cc049fcffd00ba93714e0f14cceb48464eef
BLAKE2b-256 checksum
How to use checksums
0a61176df07fce4411b280b11b9f22bc0dc55789ce977f80edf7cfae1a5d1b8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.

Transparency log

Release files / nanofinderparser-0.7.0-py3-none-any.whl

Download URL nanofinderparser-0.7.0-py3-none-any.whl
Size 58.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52bbacc13eebcec3d124898147ba46ae35ed98b468229e725c7ec54fc46c0a32
BLAKE2b-256 checksum
How to use checksums
607f1950c483175ba86cc3e60dccf31fe9c026c5e9398214c02354928cea3f2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page