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.txtpython interface/query_interface.py --rpm 1700 --flow 25python main.pyfrom 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 RPMSee 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