Data Science

Gwyddion – SPM data visualization and analysis

Gwyddion is a modular program for SPM (scanning probe microscopy) data visualization and analysis. Primarily it is intended for the analysis of height fields obtained by scanning probe microscopy techniques (AFM, MFM, STM, SNOM/NSOM) and it supports a lot of SPM data formats. However, it can be used for general height field and (greyscale) image processing, for instance for the analysis of profilometry data or thickness maps from imaging spectrophotometry.

Gwyddion provides a large number of data processing functions, including all the standard statistical characterization, levelling and data correction, filtering or grain marking functions. And since the developers are active SPM users, the program also contains a number of specific, uncommon, odd and experimental data processing methods they found useful.

This is free and open source software.

Features include:

  • Large set of visualization and processing functions including:
    • Visualization: false colour representation with different types of mapping.
    • Shaded, logarithmical, gradient, edge-detected, and local contrast representation, local rank transformation, Canny lines, zero crossing.
    • OpenGL 3D data display: false colour or material representation.
    • User-editable false colour gradients and OpenGL materials.
    • Basic operations: rotation, flipping, inversion, data arithmetic, cropping, resampling, binning, thresholding, wraping, extending
    • 2D levelling: plane, three-point, facet, polynomial background removal, plane
    • Scan line corrections: mean, median, trimmed mean, median difference, matching of flat segments, polynomial, levelling along user-defined lines.
    • Value reading: local value reading with slope and curvature measurement, distance and angle measurement.
    • Profile extraction with possible averaging in the orthogonal direction: along scanning axes and along arbitrary lines.
    • Extraction of angularly averaged profiles with automated centring, profiles from multiple images simultaneously, good mean profile from repeated scanning of the same feature.
    • Filtering: mean, median, trimmed mean, conservative denoise, Kuwahara, minimum, maximum, Gaussian, simple sharpening, k-th rank, checker pattern removal.
    • Alternative sequential filters: opening, closing.
    • Statistical characteristics: basic quantities Sa, Sq, mean, median, range, skew and kurtosis, projected and surface area, quick correlation length estimation, entropy.
    • Statistical distributions and histograms: height and angle distributions, 2D slope distribution, 2D angle distribution, Minkowski functionals, area scale graph, local range.
    • Correlation functions and spectral densities: 1D autocorrelation, 2D autocorrelation, 1D height-height correlation (structure function), 1D power spectral density, radial spectral density, 2D spectral density.
    • Facet orientation analysis and measurement.
    • Statistical characterisation of areas under arbitrary masks.
    • Row/column statistical quantities.
    • ISO roughness parameter evaluation.
    • Grain marking: threshold-based, Otsu’s threshold, watershed, segmentation, logistic regression, based on edge detection.
    • Grain measurement: boundary, surface, volume, equivalent ellipses, inscribed and circumscribed circles, Martin diameter and more, individual grain measurement.
    • Grain property statistics: summarisation, statistics, distributions, parameter correlations.
    • Grain filtering: touching edges, by arbitrary properties.
    • Mask editing: adding, removing and intersecting with rectangles and ellipses, growing and shrinking, filling holes, extraction, inversion.
    • Mask combination using logical operations.
    • Basic morphological operations with masks: erosion, dilation, opening, closing, thinning.
    • Alternative sequential filters of masks: opening, closing.
    • Euclidean distance transform with masks.
    • Integral transforms: 2D fast Fourier transform (FFT), log-φ FFT representation, 2D continuous wavelet transform (CWT), 2D discrete wavelet transform (DWT).
    • Corrections based on integral transforms: DWT denoising, 1D FFT filtering, 2D FFT filtering, 2D frequency splitting, XY denoising.
    • Fractal dimension analysis.
    • Local data correction by interpolation of bad spots, individual masked regions.
    • Marking of global outliers and local outliers.
    • Laplace and fractal interpolation.
    • Marking of scars (strokes) and inverted lines.
    • Mutual cropping of non-intersecting parts of images.
    • Automatic XY plane rotation correction.
    • Affine distortion correction.
    • Arbitrary polynomial deformation in XY plane.
    • Deformation using a general displacement-field.
    • Fast scan axis drift correction.
    • Extraction of data along a spline path.
    • Measurement of lattice parameters, step height in amphitheare/terrace structures, global curvature.
    • General convolution filter with user-defined kernel.
    • Image convolution and deconvolution.
    • Merging, immersion, and stitching of images.
    • Tip modelling, blind estimation, dilation and erosion, certainty map.
    • Magnetic force microscopy (MFM) data recalculation/conversion, simulation, field shifting.
    • Transfer function estimation and fitting.
    • Measurement simulation: PID loop, lateral force.
    • Data processing using neural networks.
    • Simple SEM image simulation.
    • Artificial data generation using: Fourier (frequency space) synthesis, object placement, fibre placement, dynamic spherical particle simulation, dynamic elongated particle simulation, pileup of 3D shapes, predefined patterns (ridges, holes, steps, amphitheatre), columnar film growth simulation, classic ballistic deposition, wave interference, randomized Voronoi/Delaunay lattices, non-equilibrium Ising model, diffusion-limited aggregation, solution of coupled non-linear PDEs, annealing of multi-component mixture, fractional brownian motion, approximation of phase separated structures, tiling with avoidance.
    • Addition of artificial point and line noise.
    • Data modification to enforce given statistical distribution.
    • Finding relation between two images.
    • Graph curve function fitting, critical dimension determination.
    • Manual measurements on graph curves.
    • Graph curve cutting, alignment, levelling, logscale transformation.
    • Location of peaks in graph curves.
    • Force-distance curve fitting.
    • Statistical quantities and distributions for graph curves.
    • Single point spectroscopy support.
    • Volume data support, summarization and extraction of lower-dimensional data.
    • Volume force-distance curve fitting.
    • XYZ data as native data.
    • Regularisation of XYZ data to images and some rudimentary XYZ data processing.
    • Curve maps, representing a set of curves in each pixel.
    • Axis scale calibration
  • All calculations are performed in double precision, and Gwyddion native data format (.gwy) stores data in double precision too. Under normal circumstances, no information is ever lost due to the limited precision or range of values. The Gwyddion data format can contain an arbitrary number of images, graphs, spectra or volume data.
  • Uses a fairly general physical unit system, there are no built-in limitations on the types of physical quantities data (and lateral dimensions) can represent. Units of slopes, areas, volumes, and other derived quantities are correctly calculated. SI unit system is used whenever possible.
  • Tools and other dialogues remember their parameters, not only between tool invocations within one session, but also across sessions. Gwyddion native file format (.gwy) supports saving all data specific settings: false colour palette, masks, presentations, selections, associated 3D view parameters, graphs associated with that data and their settings, etc.
  • Most Gwyddion library functions are available in the Python interface pygwy. Gwyddion can be extended by file and processing modules written in Python.
  • Gwyddion is well integrated to free desktop environments such as GNOME, XFce or KDE, including e.g. menus, file type associations and automated SPM file thumbnailing. Certain integration to other desktop environments also exists, although not to such level.
  • Many functions support OpenMP parallelisation and can utilise multithreaded processing. This is the default in the program and can be enabled when utilising Gwyddion libraries.
  • Supports about 140 microscopy and image formats, namely for reading. Several formats can be also written.

Website: gwyddion.net
Support:
Developer: David Nečas and many others
License: GNU General Public License v2.0

Gwyddion in action
Click image for full size

Gwyddion is written in C. Learn C with our recommended free books and free tutorials.


Popular series
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
The Big List of Active Linux Distros is a large compilation of actively developed Linux distributions.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
GamesAwesome Free Linux Games Tools showcases a series of tools that making gaming on Linux a more pleasurable experience. This is a new series.
Artificial intelligence iconMachine Learning explores practical applications of machine learning and deep learning from a Linux perspective. We've written reviews of more than 40 self-hosted apps. All are free and open source.
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
Alternatives to popular CLI tools showcases essential tools that are modern replacements for core Linux utilities.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
AudioSurveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal.
Saving Money with LinuxSaving Money with Linux looks at how you can reduce your energy bills running Linux.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Linux Around The WorldLinux Around The World showcases usergroups that are relevant to Linux enthusiasts. Great ways to meet up with fellow enthusiasts.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Read our Comment FAQ.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments