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.22.0.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.22.0-cp314-cp314-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.14Windows x86-64

surfacetopography-1.22.0-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.22.0-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.22.0-cp314-cp314-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

surfacetopography-1.22.0-cp313-cp313-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.13Windows x86-64

surfacetopography-1.22.0-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.22.0-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.22.0-cp313-cp313-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

surfacetopography-1.22.0-cp312-cp312-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.12Windows x86-64

surfacetopography-1.22.0-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.22.0-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.22.0-cp312-cp312-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

surfacetopography-1.22.0-cp311-cp311-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.11Windows x86-64

surfacetopography-1.22.0-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.22.0-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.22.0-cp311-cp311-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

surfacetopography-1.22.0-cp310-cp310-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.10Windows x86-64

surfacetopography-1.22.0-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.22.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

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

surfacetopography-1.22.0-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.22.0.tar.gz.

File metadata

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

File hashes

Hashes for surfacetopography-1.22.0.tar.gz
Algorithm Hash digest
SHA256 ffc05032949582477f2a5c9762d96e10e1cc616df18877ce449424921930b060
MD5 e0e26e0273f0e2e05391d7f7ab9e5eef
BLAKE2b-256 550dd2111661683c5b74594e1cf560ae1624814924c6434688b448fd172927bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 768ed665f1622899a68df31c0c94ec71b851c5cc5d976053abc6339da82e44a4
MD5 54663e5ed66176c5f513f1fe7a4258d4
BLAKE2b-256 6fa3c3ea980079e89a891a2ac440397cbd84d95c39ec2595465a3305556566d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75e2237390b67c14a92add7b926aa56e09027f6dd67edd518da4246898de8721
MD5 06fe2434686337ba631c26516ab44593
BLAKE2b-256 f5123360ebce68630c0da482dc8347c2a7e64d97d75ee0a1cd2419ed2635184a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d937204ff2cb5526bb2387bb0d3240b4260f8c6d37b1400d4f1a18e40f5f4bbf
MD5 0020caec06dc98e3e2d10bb8836784f3
BLAKE2b-256 6a216f48be2f091bfe32e057ff0fad7dff4539ffefd10e32d78f9f3bca0328b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 869ab62db71dd04f0a3796dd5643cb2d76b2b592415ab72dff8c6b73219cfbb5
MD5 d08b98ffbe15d4f0ce90bf1f683d022b
BLAKE2b-256 9aebc9822a12b152ccf6f6ca7792fe779593204d2fc22984cf12f1f0b866d6b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ba7953809a48eeda2bec66588973efd4ce33b28f5815ad68f618506e6da9b369
MD5 5122491b69ff9de6d1779d0ca98e6d1f
BLAKE2b-256 1df4919e8528505bd2af3f127b960378715670ec90ec594e1fd587e988050d03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c4351a86885c0f6a98f8ee08471e9a68ecb39ec289cc89a8d8c49d6683fde739
MD5 515bd79fa25567e44ecc5a02f3f446dd
BLAKE2b-256 1f9c6e9530b9fef8d36ba28fea32c3300a1f631bacf982c39e9ee14b77521e01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b4c8be3d13ebef2cdffc1f62b2427914a8212ddebbdacd6cb595d90be26c3a74
MD5 0c2bf3ccc0e6aba0697766b8e2d94e6f
BLAKE2b-256 98d0b92c4146afaff4302c9ce281820bb9914b0ec6577402a23ee10d71215bc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 555876f0b217de2298b6c160173972229549c7bde58b47948d52c9d0f8c3017f
MD5 7c9b897e347d8da25e1897efa63cdc21
BLAKE2b-256 415c225c3acbc4c7fd42b9bad30c50fffc75ab3006f53071dede85ffab8f1a23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e26144f7a0267b28da7bb8fb860469c9d1f61d1c00616eaa45588c63d426f0ce
MD5 16a4e04012c0f4678d507f111d72c8fd
BLAKE2b-256 d26fec0e8d546312f14fd6b8277d7dd5863846dbdde3d32e67b3b623e4b3ccc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42acc84741b1b9a82fcd8c4409fc855de90bd625e64932b11682fe7696b307cb
MD5 f48908073a71c90cc5e6c584192f5148
BLAKE2b-256 9909cac9f700bebed5a2bd250832a49837b5c8ad6c65ef0c2bb29c15f4c23295

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6124e6c3254384e7613df95def0768742a1f9a11a5bd65d13b4c5f48573607c2
MD5 54c383de4880c6c26669ccf76e02d0f2
BLAKE2b-256 aff3ce719f0c266e818f212ed8d069c7ccc8cda2e8bb4658e866499c28219ce6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d5d1bd3f7a3747fe3c303a9cec426187a8b39282b4314153e43c9331cd1fdc8b
MD5 4f6088d6835b198b0f12fd621f8a7e49
BLAKE2b-256 452b6fc900c3b5a02529e393adfac9474ca169f69f1f693264e5010029f4e1ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 26aa707a9cfd4534680dec79b780c99d68bf99b5b673dc9def475d18fbb0f28a
MD5 600215155b0980aa696dcd25b82fe708
BLAKE2b-256 64f723a98784006369e4dbe2dcbb1d8b40ef02ec656e474314a8ab5bce2ef042

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 116cfee530e9bddd14fe43357d9f284a9e96d5e267f3bb63676a75ca054e6ec8
MD5 27466a78c46959cd0bf042f671d210e7
BLAKE2b-256 210684b2fb16035872a4629c244d2d8e95479d8d9c2ffbe7f592d72a01d544cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ab85a15b06234cd73f98870b600db0075883d876e3a3546e34fa247accb646b
MD5 3b985b774b87e99b8b2a708d82d80ad5
BLAKE2b-256 0e7bb6577a086979967089d05342d0405df5673fd2fcccac73c982f7c72cee3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d8947ab8486fd610fce7c6fd4bfbbada563caa88f2cf51811a6204246c2b5b2d
MD5 521fb4e7aaa321f0776ef54be6c9c1bf
BLAKE2b-256 0b4558e6c301effca390506f1383c1428b87aba251b5fc758ed173f0703275b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2ddfd3ad75bb64f92a700c019d0f1addcb9f3c416d9f4e0c856ef535db3f5940
MD5 10b48f5d568c94b296d9afd117d95505
BLAKE2b-256 9dae2bd805eb55be5e6515ac9162c273b6c58418df00540c2b9eb8cc6bf9e9e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a93783f03541fcb01c63cc92dbe5c2e75112cbde16b0c116072471a8b60cb43
MD5 8cba5c2d5fc76ee4dbfad1202a86625d
BLAKE2b-256 f678610023e56d6889b95930e3f4f8dbc31f5a813758ece854a5f78447d99d7c

See more details on using hashes here.

File details

Details for the file surfacetopography-1.22.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 28eb0efa07d799a55bfc4e13b71a77cf00060a280ecab9024c4a2c1d592e846c
MD5 3c94f8aeec5d8c7b055f5293e14ae9b3
BLAKE2b-256 2d2bc8acad148ca2a498a996ce619492818cdadc435430e2c7cf7c0d9df42878

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for surfacetopography-1.22.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 380c2b73abdc538e78753f5f308837410ee767c4143579d30d8bfaed31ea7ea2
MD5 ca650b11cdcf8d8c329f16f1c049baa3
BLAKE2b-256 063ad32ffb65ec00abdc7dc179e34ced68f43fb705d163dfa1579b363a5a3b05

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