A reusable, parametric Python tool for interpolating and visualizing centrifugal pump performance curves at any speed (RPM) and flow, using 2D interpolation.
- Interpolate pump curves (flow vs power, efficiency, NPSH, head) for any speed (RPM) and flow within the data range
- Visualize all curves interactively (Plotly)
- Query interface for CLI or module usage
- Easily replaceable JSON data
- Add new parameters from a spec sheet easily
pump_interpolator/
├── data/
│ └── example_pump_data.json
├── core/
│ └── interpolate.py
├── viz/
│ └── interactive_plot.py
├── interface/
│ └── query_interface.py
├── main.py
├── requirements.txt
└── README.md
pip install -r requirements.txt
python interface/query_interface.py --rpm 1700 --flow 25
python main.py
from core.interpolate import PumpCurve
from viz.interactive_plot import plot_pump_curves, plot_interpolated_curves
pump = PumpCurve('data/example_pump_data.json')
plot_pump_curves(pump) # Show all original data
plot_interpolated_curves(pump, 1700) # Show interpolated curves at 1700 RPM
See data/example_pump_data.json
for the required structure. All speeds must use the same flow points. To add new parameters (e.g., temperature, impeller diameter), add them to each curve and update the code to interpolate them.
Developed for UTTHUNGA internship