Skip to main content

A python module to analyze surface roughness

Project description


PyPI version DOI Documentation Status

surfalize is a python package for analyzing microscope topography measurement data in terms of surface roughness and other topographic parameters. It is intended primarily for microtextured surfaces and is supposed to replace software packages such as MountainsMap, MultiFileAnalyzer and Gwyddion for the most common tasks.

Disclaimer

The authors make no guarantees for the correctness of any results obtained using this package. The package is an early work in progress and may introduce changes to both implementation details and public API at any point in time. Any results should be validated against established software to verify their correctness, especially when they are intended to be used for scientific publications.

Some parts of the package are more mature and some are in early development stage. Currently, Gaussian filtering and Profile parameters might suffer from some implementation errors and might not be entirely compliant with ISO standards. Care should be taken when relying on these specific functionalities.

How to install

To install the latest release of surfalize, run the following command:

pip install surfalize

If you want to build from source, clone this git repository and run the following command in the root folder of the cloned repository.

pip install .

However, you will need to have both Cython and a C-Compiler installed (MSVC on Windows, gcc on Linux, MinGW is not supported currently). If you install in editable mode using

pip install -e .

be aware that a change of the pyx files does not reinvoke the Cython build process.

Documentation

The documentation is hosted on readthedocs.

Currently supported file formats

Manufacturer Format Reading Writing
Keyence .vk4, .vk6, .vk7 Yes No
Leica .plu Yes No
Sensofar .plu, .plux Yes No
Digital Surf .sur Yes Yes
KLA Zeta .zmg Yes No
Wyko .opd Yes No
Nanofocus .nms Yes No
Alicona .al3d Yes Yes
Digital Surf .sdf Yes No
General .xyz Yes No

Supported roughness parameters

This package aims to implement all parameters defined in ISO 25178. Currently, the following parameters are supported:

Category Parameter Full name Validated against
Height Sa Arithmetic mean height Gwyddion, MountainsMap
Sq Root mean square height Gwyddion, MountainsMap
Sp Maximum peak height Gwyddion, MountainsMap
Sv Maximum valley depth Gwyddion, MountainsMap
Sz Maximum height Gwyddion, MountainsMap
Ssk Skewness Gwyddion, MountainsMap
Sku Kurtosis Gwyddion, MountainsMap
Hybrid Sdr1 Developed interfacial area ratio Gwyddion2, MountainsMap
Sdq Root mean square gradient MountainsMap
Spatial Sal Autocorrelation length -
Str Texture aspect ratio -
Functional Sk Core roughness depth MountainsMap
Spk Reduced peak height MountainsMap
Svk Reduced dale height MountainsMap
Smr1 Material ratio 1 MountainsMap
Smr2 Material ratio 2 MountainsMap
Sxp Peak extreme height MountainsMap
Functional (volume) Vmp Peak material volume MountainsMap
Vmc Core material volume MountainsMap
Vvv Dale void volume MountainsMap
Vvc Core void volume MountainsMap

1 Per default, Sdr calculation uses the algorithm proposed by ISO 25178 and also used by MountainsMap By keyword argument, the Gwyddion algorithm can be used instead.
2 Gwyddion does not support Sdr calculation directly, but calculates surface area and projected area.

Supported parameters of 1d-periodic surfaces

Additionally, this package supports the calculation of non-standard parameters for periodic textured surfaces with one- dimensional periodic structures. The following parameters can be calculated:

Parameter Description
Period Dominant spatial period of the 1d-surface texture
Depth Peak-to-valley depth of the 1d-texture profiles
Aspect ratio Ratio of peak-to-valley depth to spatial period
Homogeneity Homogeneity factor (0 < H < 1) calculated from Gini analysis
Orientation Clockwise angle of the dominant texture to the vertical axis

Supported operations

Operation Description
Leveling Subtraction of least squares fit to a plane
Zeroing Sets the lowest datapoint of the surface to zero
Centering Sets the average value of the surface elevation to zero
Zooming Magnifies the surface by a specified factor
Cropping Crops the surface in a specified rectangle
Rotation Rotates the surface by a specified angle in degrees
Alignment Aligns the surface with the dominant texture direction by rotation
Outlier removal Removes outliers outside n standard deviation from the mean
Thresholding Thresholding based on areal material ratio
Filtering Applies a Gaussian highpass, lowpass or bandpass filter

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

surfalize-0.9.0-cp312-cp312-win_amd64.whl (217.6 kB view details)

Uploaded CPython 3.12 Windows x86-64

surfalize-0.9.0-cp311-cp311-win_amd64.whl (215.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

surfalize-0.9.0-cp310-cp310-win_amd64.whl (215.6 kB view details)

Uploaded CPython 3.10 Windows x86-64

surfalize-0.9.0-cp39-cp39-win_amd64.whl (243.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

File details

Details for the file surfalize-0.9.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for surfalize-0.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 276491086cf83edff3707d57f6abe30545d1f4ebf2dfc4fa36521006d1c8ab85
MD5 5fee0eb2fe90d1701ecdbbe65dddb7a8
BLAKE2b-256 9337ab9f1529b1c8b5ae27ab4576c85f701af2792faa3efb54ee68228bd8970c

See more details on using hashes here.

File details

Details for the file surfalize-0.9.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for surfalize-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c8f2b67208f97b840d133104ce9c72fad21aa039917e60cd2e729216b3328eaa
MD5 31fc7245c4b59d4af973e48f539cc2ee
BLAKE2b-256 1f9d7e0e565ca682959f365830950b1f453354511a0342b24beb15208d8d2fa0

See more details on using hashes here.

File details

Details for the file surfalize-0.9.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for surfalize-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 44c07f458e3b5abfe83b7ef541edb72e6c00a184631f197f5ce0ae59e2ca49c3
MD5 6ddb25ed843be1935f4ac3603fe121dd
BLAKE2b-256 81293e4abec06dfc155513a3eb25f55407d74f2cb3d16f48fbe18fc118dbb508

See more details on using hashes here.

File details

Details for the file surfalize-0.9.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: surfalize-0.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 243.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.1

File hashes

Hashes for surfalize-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8c53bc3cd1c05ce35cb13875a892c1a103eb6c04456269a152bf64e30c12a8a2
MD5 36b998459e5f82a2b9c3e65f942bcd1f
BLAKE2b-256 cbe0c36a8c54637bff455accbcf3fa6502b9ced70bdf57471f0ba2741219c0de

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page