Skip to content

Latest commit

 

History

History

README.md

FRASTA Examples

This directory contains example scripts demonstrating the advanced processing capabilities of FRASTA-toolbox.

Contents

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.py

Creates 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.py

Output: Results are saved in output/ subdirectory as PNG files.


Quick Start

# From project root directory
cd examples

# Run interactive examples
python advanced_processing.py

# Generate visualizations
python visualization.py

# Check output
ls output/

Generated Visualizations

After running visualization.py, you'll find in output/:

  1. filter_comparison.png - Comparison of noise reduction techniques
  2. leveling_comparison.png - Tilt and curvature removal
  3. registration_demo.png - Automatic surface alignment (4-panel)
  4. rotation_demo.png - Grid rotation at different angles
  5. edge_preservation.png - Edge-preserving filtering demonstration

Requirements

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.


Documentation

For detailed documentation on the processing functions used in these examples, see:


Extending Examples

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)

Troubleshooting

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'

License

Same as FRASTA-toolbox main project (see LICENSE).