This directory contains example scripts demonstrating the advanced processing capabilities of FRASTA-toolbox.
Interactive examples showing usage of advanced filtering, morphology, and transformation functions:
- Bilateral filtering (edge-preserving smoothing)
- Median filtering (spike removal)
- Plane leveling (tilt removal)
- Polynomial form removal (curvature correction)
- Surface rotation
- Automatic surface registration
- Grid rescaling
- Robust Gaussian filtering
Run:
python examples/advanced_processing.pyCreates visual comparisons demonstrating the effects of different processing techniques. Generates publication-quality plots showing:
- Filter comparison (original vs bilateral vs median)
- Leveling and polynomial correction effects
- Automatic registration demonstration
- Grid rotation examples
- Edge preservation comparison (Gaussian vs Bilateral)
Run:
python examples/visualization.pyOutput: Results are saved in output/ subdirectory as PNG files.
# From project root directory
cd examples
# Run interactive examples
python advanced_processing.py
# Generate visualizations
python visualization.py
# Check output
ls output/After running visualization.py, you'll find in output/:
filter_comparison.png- Comparison of noise reduction techniquesleveling_comparison.png- Tilt and curvature removalregistration_demo.png- Automatic surface alignment (4-panel)rotation_demo.png- Grid rotation at different anglesedge_preservation.png- Edge-preserving filtering demonstration
All examples require the standard FRASTA dependencies:
- numpy
- scipy
- scikit-learn
- matplotlib (for visualizations)
These are installed automatically with pip install -r requirements.txt from the project root.
For detailed documentation on the processing functions used in these examples, see:
Feel free to modify these scripts to test with your own data:
# Load your data
from frasta.io.loaders import load_csv_data
grid, xi, yi, px_x, px_y = load_csv_data('your_scan.csv')
# Apply processing
from frasta.processing import bilateral_filter
filtered = bilateral_filter(grid, sigma_spatial=5.0, sigma_range=10.0,
px_x=px_x, px_y=px_y)Import errors: Make sure to run from examples directory or add parent to path:
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))Matplotlib backend issues: If plots don't display, try:
import matplotlib
matplotlib.use('TkAgg') # or 'Qt5Agg'Same as FRASTA-toolbox main project (see LICENSE).