Files
tono/GWYDDION_FEATURE_GAP.md

10 KiB
Raw Blame History

Gwyddion Feature Gap — tono

Comprehensive comparison against Gwyddion r29630. Excludes force curves, force volumes, and spectroscopic measurements. Grouped by priority for typical SPM workflows.


Completed

All features from the original gap analysis are implemented:

# Feature Gwyddion Source tono Node
1 Line Correction linecorrect.c, linematch.c LineCorrection
2 Scar Removal scars.c ScarRemoval
3 Facet Leveling facet-level.c FacetLevelField
4 Morphological Mask Ops mask_morph.c MaskMorphology
5 1D FFT Filter fft_filter_1d.c FFTFilter
6 2D FFT Filter fft_filter_2d.c FFTFilter
7 Autocorrelation (ACF) acf2d.c ACF2D
8 PSDF psdf2d.c PSDF
9 Fractal Dimension fractal.c FractalDimension
10 Curvature curvature.c Curvature
11 Grain Distance Transform mask_edt.c GrainDistanceTransform
12 Watershed Segmentation grain_wshed.c WatershedSegmentation
13 Rotate / Flip rotate.c, basicops.c RotateField, FlipField
14 Crop crop.c CropResizeField
15 Correlation / Pattern Matching crosscor.c, maskcor.c CrossCorrelate, TemplateMatch
16 Slope Distribution slope_dist.c SlopeDistribution
17 Grain Filtering grain_filter.c GrainFilter
18 Field Arithmetic arithmetic.c FieldArithmetic
19 Spot Removal spotremove.c SpotRemoval
20 Tip Modeling / Deconvolution tip_blind.c, tip_model.c TipModel, TipDeconvolution, BlindTipEstimate
21 Radial Profile rprofile tool RadialProfile
22 Wavelet Transform dwt.c, cwt.c WaveletDenoise
23 Scale / Resample scale.c, resample.c Resample
24 Gradient gradient.c Gradient
25 Custom Convolution convolution_filter.c CustomConvolution
26 Local Contrast Enhancement local_contrast.c LocalContrast
27 Drift Correction drift.c DriftCorrection
28 Affine Correction correct_affine.c AffineCorrection
29 MFM Analysis mfm_*.c MFMAnalysis
30 Lattice Measurement measure_lattice.c LatticeMeasurement
31 Hough Transform hough.c HoughTransform
32 Image Stitching merge.c, stitch.c ImageStitch
33 Facet Analysis facet_analysis.c FacetAnalysis
34 Shape Fitting fit-shape.c ShapeFitting
35 Synthetic Surface Generation *_synth.c SyntheticSurface
36 Entropy entropy.c Entropy
38 Deconvolution deconvolve.c Deconvolution
39 Canny / Harris Detection filters.c FeatureDetection
40 Kuwahara Filter filters.c KuwaharaFilter

Remaining Gaps

High Value — Core SPM workflow features

# Feature Gwyddion Source tono Node Status
41 Terrace Fitting terracefit.c TerraceFit DONE
42 Laplace Interpolation laplace.c LaplaceInterpolation DONE
43 Fractal Interpolation fraccor.c FractalInterpolation DONE
44 Median Background Subtraction median-bg.c MedianBackground DONE
45 Flatten Base flatten_base.c FlattenBase DONE
46 Level Individual Grains level_grains.c LevelGrains DONE
47 Grain Marking by Criteria grain_mark.c GrainMark DONE
48 Grain Property Distributions grain_dist.c GrainDistributions DONE
49 Grain Summary Statistics grain_summary.c GrainSummary DONE
50 Outlier Masking outliers.c OutlierMask DONE
51 Scan Line Reordering reorder.c ScanLineReorder DONE

Medium Value — Analysis and correction

# Feature Gwyddion Source tono Node Status
52 Perspective Correction correct_perspective.c PerspectiveCorrection DONE
53 Polynomial Distortion polydistort.c PolynomialDistortion DONE
54 Frequency Splitting freq_split.c FrequencySplit DONE
55 Phase/Value Wrapping wrapvalue.c WrapValue DONE
56 Shaded Presentation shade.c Shade DONE
57 Pixel Binning binning.c PixelBinning DONE
58 Extend / Pad extend.c ExtendPad DONE
59 Tilt tilt.c Tilt DONE
60 Trimmed Mean Filter trimmed-mean.c TrimmedMean DONE
61 Rank Filter rank-filter.c RankFilter DONE
62 Zero Crossing Detection zero_crossing.c ZeroCrossing DONE
63 Log-Polar PSDF psdf_logphi.c LogPolarPSDF DONE
64 Grain Edge Detection grain_edge.c GrainEdge DONE
65 Grain Cross-Correlation grain_cross.c GrainCross DONE
66 Mutual Crop mcrop.c MutualCrop DONE
67 Immerse Detail immerse.c ImmerseDetail DONE
68 Multiple Profiles multiprofile.c MultipleProfiles DONE
69 Straighten Path straighten_path.c StraightenPath DONE
70 Relate Two Fields relate.c RelateFields DONE

SPM Mode-Specific

# Feature Gwyddion Source tono Node Status
71 PFM Analysis pfm.c PFMAnalysis DONE
72 Lateral Force Simulation latsim.c LateralForceSim DONE
73 SEM Simulation semsim.c SEMSimulation DONE
74 Scanning Microwave Microscopy smm.c, smm_apply.c SMMAnalysis DONE
75 MFM Current Simulation mfm_current.c MFMCurrentSimulation DONE
76 MFM Domain Generation mfm_parallel.c MFMDomainGeneration DONE

Lower Priority — Specialized or niche

# Feature Gwyddion Source Description
77 Mark Disconnected Regions mark_disconn.c Mask topologically isolated surface regions using threshold and radius criteria.
78 Mask Shift mask_shift.c Translate mask by pixel offset in any direction.
79 Mask Noisify mask_noisify.c Add random perturbation to mask boundaries. Useful for testing mask sensitivity.
80 DWT Anisotropy dwtanisotropy.c Quantify surface anisotropy using discrete wavelet transform decomposition.
81 Displacement Field displfield.c Distort images using displacement fields (Gaussian, tear, image-based). Simulates scanning artifacts.
82 Pixel Classification classify.c Classify pixels into categories using decision trees on height, slope, and curvature criteria.
83 Neural Network Classification neural.c Train and apply neural networks for pixel-level feature classification.
84 Logistic Classification logistic.c Classify features using logistic regression on Gaussian derivative features.
85 Super-Resolution superresolution.c Combine multiple aligned low-resolution scans to produce a higher-resolution image.
86 PSF Estimation psf.c, psf-fit.c Estimate and fit point spread functions from image features for deconvolution.
87 Tip Shape from Features tipshape.c Estimate SPM tip shape from known calibration feature convolutions.
88 Presentation Ops presentationops.c Manage presentation overlays (extract, attach, remove presentation layers).
89 Calibration Coefficients calcoefs_*.c, calibrate.c Load, create, and apply lateral/height calibration corrections.
90 Distribution Coercion coerce.c Transform data distribution to match target (uniform, Gaussian, custom).
91 Grain Selection Visualization grain_makesel.c Visualize grains as discs, circles, or bounding boxes for selection.

Synthesis — Additional surface generation patterns

All 22 synthesis patterns added to the existing SyntheticSurface node (28 patterns total):

# Pattern Gwyddion Source tono Pattern Status
92 Columnar col_synth.c columnar DONE
93 Objects obj_synth.c objects DONE
94 Fibres fibre_synth.c fibres DONE
95 Waves wave_synth.c waves DONE
96 Dunes dune_synth.c dunes DONE
97 Domains domain_synth.c domains DONE
98 Ballistic Deposition bdep_synth.c ballistic DONE
99 Particle Deposition deposit_synth.c deposition DONE
100 Rod Deposition roddeposit_synth.c rods DONE
101 Diffusion Aggregation diff_synth.c dla DONE
102 Discs disc_synth.c discs DONE
103 Plateaus plateau_synth.c plateaus DONE
104 Pileups pileup_synth.c pileups DONE
105 Annealing anneal_synth.c annealing DONE
106 Lattice (Voronoi) lat_synth.c voronoi DONE
107 Phase Separation phase_synth.c spinodal DONE
108 PDE Patterns cpde_synth.c pde DONE
109 Spectral (FFT) fft_synth.c spectral DONE
110 Residues residue_synth.c residues DONE
111 Noise Distributions lno_synth.c, noise_synth.c noise DONE
112 Periodic Patterns pat_synth.c periodic DONE
113 WFR Patterns wfr_synth.c wfr DONE

File Format Support

Gwyddion supports 155+ file format modules. tono currently handles a smaller set. Major format gaps (not exhaustive):

Format Gwyddion Source Vendor/Description
Bruker Nanoscope nanoscope.c, nanoscope-ii.c Bruker/Veeco/DI SPM files
Park Systems parkafm.c Park Systems SPM files
RHK rhk-sm4.c, rhk-spm32.c RHK Technology SPM files
Omicron omicron.c, omicronflat.c Omicron/Scienta SPM files
Asylum Research asylum.c Asylum Research (Igor Pro)
WITec witec-asc.c WITec SPM/Raman files
JEOL jeol.c JEOL SPM files
ISO 28600 iso28600.c Standard SPM exchange format
Zygo zygo.c Zygo surface profiler
ASCII matrix asciiexport.c Generic ASCII grid import/export

Summary

Category Count Status
Originally tracked (140) 40 39 done, 1 excluded (force curves)
High Value (4151) 11 All 11 done
Medium Value (5270) 19 All 19 done
SPM Mode-Specific (7176) 6 All 6 done
Lower Priority (7791) 15 Pending
Synthesis Patterns (92113) 22 All 22 done
File Formats 10+ Pending

97 of 98 tracked features implemented. 15 remaining gaps identified (lower priority + file formats).