Skip to content

bshepp/fieldvector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FieldVector

Generic 2D scalar field patch similarity search using gradient, statistical, and spectral features with HNSW indexing.

Note: Forked from terravector and generalized for any 2D scalar field data.

Overview

FieldVector converts any 2D scalar field (temperature, pressure, density, etc.) into searchable vector embeddings. Each patch gets a "fingerprint" based on gradient structure, statistical moments, and spectral content. An HNSW index enables O(log N) similarity queries across millions of patches.

Use cases:

  • Find similar patterns in simulation output
  • Detect anomalies in sensor data
  • Compare fields across different experiments
  • Match patterns in climate/weather data
  • Quality control in manufacturing (surface inspection)

Installation

git clone https://github.com/bshepp/fieldvector.git
cd fieldvector
pip install -r requirements.txt

Quick Start

Desktop Viewer

python viewer.py path/to/field.npy path/to/index.idx

Web UI

python app.py

Command Line

# Build index from 2D array
python cli.py build field.npy --patch-size 64 --output field.idx

# Build with gradient preset
python cli.py build field.npy --config gradient --output grad.idx

# Query for similar patches
python cli.py query field.idx --patch 42 --k 10

Signature Types

Statistical Features

Patch-level statistics:

  • Mean, variance, skewness, kurtosis
  • Min, max, range, median
  • Percentiles

Gradient Features

Spatial derivative analysis:

  • Gradient magnitude statistics
  • Gradient direction histogram
  • Laplacian (curvature)
  • Divergence, curl (for vector fields)

Spectral Features

Frequency domain analysis:

  • FFT power spectrum
  • Directional FFT
  • Dominant frequencies

Decomposition Features

Signal processing:

  • Multi-scale decomposition
  • Wavelet features
  • Morphological filtering

Presets

Preset Features Use Case
default Statistical + Gradient General purpose
statistical Full statistics Distribution matching
gradient Gradient focus Edge/flow patterns
spectral FFT features Periodic patterns
hybrid All features Maximum discrimination

Supported Formats

  • NumPy (.npy, .npz) - Primary format
  • NetCDF (.nc) - Climate/scientific data
  • HDF5 (.h5, .hdf5) - Large datasets
  • TIFF (.tif) - Image-like data

Requirements

  • Python 3.8+
  • numpy, scipy, scikit-image
  • nmslib (HNSW implementation)
  • xarray, h5py, netCDF4 (optional, for format support)
  • gradio, napari (UI)

License

Apache 2.0

Citation

@software{fieldvector2025,
  author = {Shepp, B.},
  title = {FieldVector: 2D Scalar Field Patch Similarity Search},
  year = {2025},
  url = {https://github.com/bshepp/fieldvector}
}

About

Convert 2D scalar fields into searchable vector embeddings using statistical, gradient, spectral, texture, and structural features. HNSW-indexed similarity search for any 2D numeric grid — geoscience, remote sensing, microscopy, simulation, or mathematics.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages