Skip to main content

Read and analyze surface topographies

Project description

Build Status

Ask DeepWiki

SurfaceTopography

Read and analyze surface topographies with Python. This code implements basic classes for handling uniform and nonuniform surface topography data. It contains a rich set of import filters for experimental surface topography data. Surface topographies can be easily analyzed using standard (rms height, power spectrum, ...) and some special purpose (autocorrelation function, variable bandwidth analysis, ...) statistical techniques.

Quick Start

from SurfaceTopography import read_topography

# Read a topography file (format is auto-detected)
topography = read_topography('surface.opd')

# Get basic properties
print(f"Grid size: {topography.nb_grid_pts}")
print(f"Physical size: {topography.physical_sizes}")
print(f"RMS height: {topography.rms_height_from_area()}")

# Compute the power spectral density (PSD)
q, psd = topography.power_spectrum_from_profile()

# Compute the autocorrelation function (ACF)
r, acf = topography.autocorrelation_from_profile()

# Plot the topography
import matplotlib.pyplot as plt
plt.pcolormesh(*topography.positions_and_heights())
plt.colorbar(label='Height')
plt.show()

Supported File Formats

SurfaceTopography supports over 35 file formats from commercial surface profilometers:

Format Description
al3d Alicona AL3D files
asc ASCII text files (generic)
bcr BCR-STM files
datx Zygo DATX files
di Digital Instruments / Bruker AFM files
ezd Nanosurf EZD files
frt FRT profilometer files
gwy Gwyddion GWY files
h5 HDF5 files
hgt NASA SRTM HGT elevation files
ibw Igor Pro binary wave files (Asylum Research)
jpk JPK Instruments files
lext Olympus LEXT files
mat MATLAB .mat files
metropro Zygo MetroPro files
mi Park Systems / Molecular Imaging files
mitutoyo Mitutoyo surface roughness files
mnt Digital Surf Mountains MNT files
nc NetCDF files
nmm PTB NMM files
nms Nanofocus NMS files
npy NumPy binary files
oir Olympus OIR files
opd Wyko OPD files
opdx Wyko OPDx files
os3d Digital Metrology OmniSurf3D files
plu Sensofar PLU files
plux Sensofar PLUX files
poir Olympus POIR (zip) files
ps Keyence profilometer files
sdf ISO 25178-71 SDF files
sur Digital Surf SUR files
tmd TrueMap TMD files
vk Keyence VK files
wsxm WSxM files
x3p ISO 25178-72 X3P files
xyz XYZ point cloud files
zmg KLA Zeta ZMG files
zon Keyence ZON files

If you use this code, please cite:

Documentation

This README file contains a brief introduction into the code. The full documentation can be found at https://contactengineering.github.io/SurfaceTopography/.

Installation

Detailed instruction for the installation are provided in the documentation. If you want to install from source you need to run git submodule update --init after a fresh checkout.

The most basic configuration of SurfaceTopography installs all requirements autonomously python3 -m pip install SurfaceTopgography

If you need an editable install (e.g. for development purposes), make sure you disable build isolation:

python3 -m pip install --no-build-isolation -e .

You need to manually install ninja, meson-python, pytest, runtests, DiscoverVersion and numpy before:

python3 -m pip install ninja meson-python pytest runtests DiscoverVersion numpy

Funding

Development of this project is funded by the European Research Council within Starting Grant 757343 and by the Deutsche Forschungsgemeinschaft within projects PA 2023/2 and EXC 2193.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

surfacetopography-1.21.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

surfacetopography-1.21.1-cp314-cp314-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.14Windows x86-64

surfacetopography-1.21.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

surfacetopography-1.21.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

surfacetopography-1.21.1-cp314-cp314-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

surfacetopography-1.21.1-cp313-cp313-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.13Windows x86-64

surfacetopography-1.21.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

surfacetopography-1.21.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

surfacetopography-1.21.1-cp313-cp313-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

surfacetopography-1.21.1-cp312-cp312-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.12Windows x86-64

surfacetopography-1.21.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

surfacetopography-1.21.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

surfacetopography-1.21.1-cp312-cp312-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

surfacetopography-1.21.1-cp311-cp311-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.11Windows x86-64

surfacetopography-1.21.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

surfacetopography-1.21.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

surfacetopography-1.21.1-cp311-cp311-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

surfacetopography-1.21.1-cp310-cp310-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10Windows x86-64

surfacetopography-1.21.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

surfacetopography-1.21.1-cp310-cp310-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file surfacetopography-1.21.1.tar.gz.

File metadata

  • Download URL: surfacetopography-1.21.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for surfacetopography-1.21.1.tar.gz
Algorithm Hash digest
SHA256 764e095a71384b9e46c54e7e3b2822dd1e8652dc62b6168215d4a0d07b779fc0
MD5 e6c96e7b364ed8b8813911b5feaef54e
BLAKE2b-256 4a4f8f247df77e032f6cc0c4bca8b624130119982e52bc220df31ec466ec6275

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ddbcc3ce9ba19ec63c001fb0be38748629410c8cc7ec531f638b3429593e4430
MD5 e7ee2d15e521eb39c87bb4852beef978
BLAKE2b-256 a34105557fc5279e83222c3d71e407068db8681a8279c20ff3a687cf8b8e6b8b

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a743b3da59ea6aa171abf0a4d9d6d7015a782dabaf9cfdb021c1db4001ea404
MD5 4c1af95076709f9e5e786ab5627353d9
BLAKE2b-256 5167f7323d30144a08abe7edf4db75287dec06a23138c15757682aa1e64e7109

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35e6554e54999ed4a550295bc5a1db99469bf5d1516cf613170fa8402d32dda0
MD5 f608d34448c7ec7f2426e673c85b4470
BLAKE2b-256 dabba8a4ea13d6914af94f594c847bd47de24ef1d847af3af31bb284dffbe0a7

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9a92cfe700b74e728344948054df73e7c332dd7aa6fdcad98a3bd92989b0e08f
MD5 972e9065ed9219b005f1e4e23cd634ba
BLAKE2b-256 1d14d57526b9d81e5df892c8f84423283613be5004ad3c69cf81cde9acf6476b

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a4a6ce6dd38eb8656e7c8a67b77260badab1fcc63b7d4042e269148ca6c127bf
MD5 51cba5900ebb0824301cb879a7b6614c
BLAKE2b-256 f2d1023a77cea767bf9d5adc91381561058e6fc46aaf647894d988440b9d2370

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 500b0dcca9fae2baa13aaf42fadb4807514a85ac5505710c40c52f558f09c8b4
MD5 c3977af721ea1ab8fb2a8d3f60a00fba
BLAKE2b-256 3880a7c7b617ae2daf4285eadd98c96b8e7c79b6ec6630356b7a65235700a0f2

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 71dadef239527cffbc7cfb55f736bb1d7f1292c96b5b677c9e3baa2bc27a41e4
MD5 bf4ee8a879d3ef8435444f4762714fb8
BLAKE2b-256 abedf582dd323414cab7bc9133b3554bcc5d66deb60cdee072032f60a6846a83

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d2b6135029abe807e2e9e167421ec8c566156568a32c39246416a6154de96d88
MD5 1966b49bb8e7e9d9070722b403b3cd26
BLAKE2b-256 4407c082f6f714665b2ee7050b8ffdd9ff1e120281fce175e383cf8be9c4a0c2

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 287555ab343fd0ce060964cda8818ed03656316ed2ddab074d5e93e71b5bd7c7
MD5 6ff2d336325755e6315c60adf55f9ace
BLAKE2b-256 008491b77b30ba1f4d844c82691172288e38c603323447de224c28fb5310f7d9

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e66c3c3d657fae22d90a2d8b8c2f0b00404b21fc87249617967e88c26dd38b9c
MD5 b5107a7e00d807f726597eab8005d227
BLAKE2b-256 c4eb0786a82d7e31c4c1a9cda50eec1eb78464e42d1fd0de319c9a072965d3aa

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 aae31c8a489baf61e7dbcbe9280fabee37bd7ca40bb27cbf86b4ff1a8c47f504
MD5 2e0bb5613bf7807a528cd8f1ceaf2b72
BLAKE2b-256 7044aba9d12abeaafc23bba56c6efe868a5cf9465435b6c6c477af2fcaf443e3

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c2a4b1752cd8ea86d8741d5be6ea6227ea47ec8e5b47fa8264a7f21063d9810e
MD5 f3279547c97064647ccb16f8dea6501f
BLAKE2b-256 ed78ef830e0031232ef5949df7b7db557d2a98d630384d6831968b252a583862

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c8c2dafbb3fb5060f30dec99ffbfc7bce76b63b296b6ab07b4136db2d5bb672b
MD5 480a31c357672be7b48550434a3f0b9c
BLAKE2b-256 6d7038468ad82e78882794f705c39a0f8f06a3f24201550898ea43dd5a8c49eb

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12304c4337307bf29ba1ff73f748024dfbe8335c61629bd346532514b684d663
MD5 5f39f5612e65525b373f235b6abd4646
BLAKE2b-256 e8c68812caa62f2b3f4f996611f01931430f2ac44756e5d3f49dfaca703b3aa9

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b9af231f3e039f222c81fde7abfa009a4cb44b000ef971e16eb97f8180a731fb
MD5 5ee166cbaec44ac9a5c34a595b76f702
BLAKE2b-256 6d82f4211115ab9ca9a49435349f29fcd057d1d40664e369bdf4f0ed124e599f

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fb503b1093657f027571792ba658f19da5db3502ed7b4d7ad33a993589338a58
MD5 f2195e7f0d73e0d6ac0568b9a8501a6a
BLAKE2b-256 76810951ce747350f954a59939f84cd03fe122088a625e9599544fa1a2d3264e

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8b26537a104d2bd7318b3d89b2a5005d2b8d4432b12f33d77b281acd95f6dc5c
MD5 ec0f26489a5dc4c779f0304d02fe9939
BLAKE2b-256 d36ed7235ef40b4471a0195a3000c641441fa8ca50c99a2bfd7649f4fa44767c

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72a2abf621a699e66a8bb379e2810fafc026a115623ba1caacf2cf35054618f3
MD5 d11b52bde9e88150ef00e0c7f2df1ec7
BLAKE2b-256 29f2c1ac3b28a973cf2e31054e738769d90034157c531e4f34f0562187511f69

See more details on using hashes here.

File details

Details for the file surfacetopography-1.21.1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.21.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 be17cd76714e550be890709dcacf1d0f656bcd7c5c43c30b3e79e7f6b115bd27
MD5 2251f8b0b0aa50d527437582998dface
BLAKE2b-256 5af2233e284c51213c6bad3836c55db250fed74cab1c8e32160cd32156da7bd5

See more details on using hashes here.

Supported by

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