Gwyddion is a modular multiplatform software for SPM data analysis. The main idea behind Gwyddion developement is to provide modular program for 2D data analysis that could be easily extended by modules and plug-ins. Moreover, the status of free software enables to provide source codes to developers and users, which makes the further program improvement easier.
The current version Gwyddion provides at least the following visualization and processing functions (this list is updated occasionally):
Thanks to the Free Software/Open Source nature of Gwyddion, all formulas, methods and algorithms are public and open. Anyone wishing to study or compare the fine calculation details that are beyond the scope of the user guide can read the actual implementation.
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.
Gwyddion 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 dialogs remeber 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 color 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 non-free environments also exists, although not to such level.
We would like to support as many AFM, STM, …, profilometer and general height-field formats as possible, of course. If you want your own format to be supported, please read the file format situation description.
| File Format | Extensions | Supported By | Read | Write |
|---|---|---|---|---|
| APE Research | .dat | apefile module | Yes | No |
| ASCII data (raw) | rawfile, asciiexport modules | Yes | Yes(1) | |
| Assing AFM | .afm | assing-afm module | Yes | Yes |
| Image Metrology BCR, BCRF | .bcr, .bcrf | bcrfile module | Yes | No |
| Binary data (raw) | rawfile module | Yes | No | |
| Burleigh v2.1 | .img | burleigh module | Yes | No |
| Burleigh BII | .bii | burleigh_bii module | Yes | No |
| Burleigh export | .txt, .bin | burleigh_exp module | Yes | No |
| Createc | .dat | createc module | Yes | No |
| DME Rasterscope | .img | dmefile module | Yes | No |
| ECS | .img | ecsfile module | Yes | No |
| Gwyddion native | .gwy | gwyfile module | Yes | Yes |
| PSI HDF4 | .hdf | hdf4file module | Yes | No |
| Hitachi AFM | .afm | hitachi-afm module | Yes | No |
| Intematix SDF | .sdf | intematix module | Yes | No |
| JEOL SPM | .tif | jeol module | Yes | No |
| JPK Instruments | .jpk | jpkscan module | Yes | No |
| ADE Phase Shift MapVue | .map | mapvue module | Yes | No |
| Zygo binary MetroPro | .dat | metropro module | Yes | No |
| MicroProf FRT | .txt | microprof module | Yes | No |
| Micromap | .sdfa | sdfile module | Yes | No |
| Molecular Imaging MI | .mi | mifile module | Yes | No |
| Molecular Imaging STP | .stp | stpfile module | Yes | No |
| Nanonis | .sxm | nanonis module | Yes | No |
| Nanoscope | nanoscope, nanoscope-ii modules(2) | Yes | No | |
| Nanosurf | .ezd, .nid | ezdfile module | Yes | No |
| Nanotop | .spm | nanotop module | Yes | No |
| GXSM netCDF | .nc | netcdf module | Yes | No |
| NT-MDT | .mdt | nt-mdt module | Yes | No |
| Olympus LEXT OLS3000 | .ols | ols module | Yes | No |
| Omicron Scala | .par + data | omicron module | Yes | No |
| Omicron MATRIX | .mtrx + data | omicronmatrix module | Yes | No |
| Wyko Vision OPD and ASC | .opd, .asc | opdfile module | Yes | No |
| Pacific Nanotechnology PNI | .pni | pnifile module | Yes | No |
| Pixmap images | .png, .jpeg, .ppm, .tga(3) | pixmap module | Yes | Yes(4) |
| PSIA | .tiff | psia module | Yes | No |
| Quesant | .afm | quesant module | Yes | No |
| RHK Technology SM2 | .sm2 | rhk-spm32 module | Yes | No |
| RHK Technology SM3 | .sm3 | rhk-sm3 module | Yes | No |
| Seiko | .xqd | seiko module | Yes | No |
| Sensofar | .plu | sensofar module | Yes | No |
| Sensolytics | .dat | sensolytics module | Yes | No |
| Scanning Probe Microscopy Markup Language | .xml | spml module | Yes | No |
| Shimadzu | shimadzu module | Yes | No | |
| IonScope SICM | .img | sicmfile module | Yes | No |
| SPIP ASCII export | .asc | spipasc module | Yes | No |
| Surfstand Surface Data File | .sdf | sdfile module | Yes | Yes |
| CSM Surf | .sur | surffile module | Yes | No |
| Surface Imaging Systems | .sis | sis module | Yes | No |
| STMPRG | stmprg module | Yes | No | |
| Unisoku | .hdr + .dat | unisoku module | Yes | No |
| Veeco Instruments | .zfr, .trf, .zfp, … | spmlab module | Yes | No |
| Veeco Instruments FLT | .flt | spmlabf module | Yes | No |
| WITec | .wit | witfile module | Yes | No |
| WSxM (Nanotec) | .tom, .stp | wsxmfile module | Yes | No |
(1) Only a simple data-matrix format si currently supported.
(2) Nanoscope II and Nanoscope III (and newer) are two distinct file formats, nanoscope loads the newer files while nanoscope-ii loads the old version II files.
(3) And others, namely for import. The exact list depends on formats supported by libraries on particular platforms.
(4) Though this is usually lossy. Export to pixmap graphics is intended for presentational purpose mainly.
The data processing abilities depend on loaded modules abilities. There are already quite a few modules present in the package. However it is possible to add more data processing capabilities to your Gwyddion installation simply by installing new data processing modules, even from third parties.
In a similar way, you can write your own modules, test them on your Gwyddion installation and then send them to other Gwyddion users.
The same statements are valid also for plug-ins that represent other way how to improve Gwyddion. Writing plug-ins can be little bit easier (you can use any programming language, for example). However, you can not use existing Gwyddion data processing functions and widgets when writing plug-ins.
There is documentation on module and plug-in writing available as a part of libgwymodule documentation, sample plug-ins in C/C++, Perl, Python, Ruby, and Pascal are distributed directly with Gwyddion source code, and there is also a sample standalone module available.
An on-line version of module browser is available, in two forms: dynamic, with description pop-ups (needs a modern WWW browser) and a plain expanded table.
If you have any problems or questions concerning module or plug-in developement, do not hesitate to ask us.