| name | pump-performance-db |
| description | Access manufacturer pump curves and specifications from Grundfos, KSB, and other databases |
| category | databases |
| domain | mechanical |
| complexity | basic |
| dependencies | [] |
Pump Performance Database
Access manufacturer pump curves and specifications from Grundfos, KSB, and other major pump manufacturers. This skill provides methods for querying pump performance data, parsing manufacturer databases, and creating custom pump libraries.
Overview of Pump Databases
Pump performance databases contain critical information for pump selection and analysis:
- Performance Curves: Flow rate (Q) vs. Head (H) relationships
- Efficiency Curves: Efficiency vs. flow rate
- NPSH Requirements: Net Positive Suction Head Required vs. flow rate
- Power Curves: Power consumption vs. flow rate
- Pump Curves: Multiple impeller diameters and speeds
- Physical Specifications: Size, weight, connection types
- Operating Limits: Temperature, pressure, fluid compatibility
- Selection Data: Model numbers, materials of construction
Manufacturer Resources
Grundfos Product Center
Website: https://product-selection.grundfos.com/
Features:
- Comprehensive product catalog
- WebCAPS online selection tool
- Downloadable product data
- Performance curve exports
- 3D CAD models
- Pump configuration tools
Data Access:
- Web-based selection interface
- PDF datasheets with curves
- Excel export capabilities
- API access (limited, requires partnership)
- Desktop software: Grundfos Product Center (offline)
Typical Data Format:
- Curve data often in proprietary formats
- PDF datasheets require parsing/digitizing
- Some Excel exports with tabular data
KSB EasySelect
Website: https://www.ksb.com/en-us/products-and-solutions/tools-services/easyselect
Features:
- Extensive pump catalog
- Selection based on duty point
- Multiple pump types (centrifugal, positive displacement)
- Performance curve visualization
- Technical documentation
Data Access:
- Web-based selection tool
- Downloadable PDF datasheets
- Limited direct data export
- Desktop application available
Flowserve Pump Selector
Website: https://www.flowserve.com/
Features:
- Industrial pump selection
- Custom engineered pumps
- Extensive API and process pump catalog
- Material selection guidance
Data Access:
- Contact local representative for selection
- PDF technical literature
- Custom quotes for specific applications
- Limited online selection tools
ITT/Goulds Selection Tools
Website: https://www.gouldspumps.com/
Features:
- Industrial and commercial pump selection
- i-ALERT condition monitoring integration
- Performance curve data
- Application-specific pump series
Data Access:
- Goulds Pump Expert software (downloadable)
- Online product catalog
- PDF literature and curves
- Technical support for custom selections
Other Manufacturer Resources
- Xylem/Bell & Gossett: System Syzer web tool
- Armstrong: Pump Manager software
- Wilo: Wilo-Select online selection
- Sulzer: Blue Box online configurator
- Pentair: AquaSuite selection software
- Ebara: E-COMS selection software
Web Scraping Considerations
Legal and Ethical Considerations
Before scraping manufacturer websites:
- Review Terms of Service (ToS)
- Check for robots.txt restrictions
- Respect rate limiting
- Consider requesting API access
- Evaluate if data use complies with licensing
Technical Approaches
PDF Parsing:
import pdfplumber
import re
import numpy as np
from scipy.interpolate import interp1d
Web Scraping Tools:
- BeautifulSoup for HTML parsing
- Selenium for JavaScript-heavy sites
- Requests for API-like interfaces
- Tabula for PDF table extraction
Challenges:
- Dynamic content loading
- Authentication requirements
- CAPTCHA systems
- Frequent website structure changes
- Data in image format requiring OCR/digitization
API Access
Commercial APIs
Most major manufacturers do not provide public APIs. API access typically requires:
- Partnership Agreements: OEM or distributor relationships
- Enterprise Licensing: Large-scale procurement agreements
- Software Integration: Building applications with manufacturer SDKs
Alternative Data Sources
Third-Party Aggregators:
- Pump selection software (e.g., Selecore, PumpBase)
- Industry databases (requires subscription)
- Engineering software integrations (AFT, PIPE-FLO)
Open Data Projects:
- Research institutions
- University pump databases
- Community-contributed libraries
Data Format and Parsing
Typical Pump Data Structure
{
"model": "CR 10-5",
"manufacturer": "Grundfos",
"type": "Vertical Multistage Centrifugal",
"impeller_diameter": 116,
"speed": 2900,
"stages": 5,
"performance_curve": {
"flow": [0, 2, 4, 6, 8, 10, 12],
"head": [48, 47, 45, 42, 38, 32, 24],
"efficiency": [0, 45, 62, 70, 72, 68, 55],
"power": [0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.7]
},
"npsh_required": {
"flow": [0, 2, 4, 6, 8, 10, 12],
"npsh": [0.5, 0.6, 0.8, 1.2, 1.8, 2.6, 3.6]
},
"specifications": {
"min_flow": 0,
"max_flow": 12,
"max_head": 48,
"max_pressure": 16,
"max_temperature": 120,
"connection_size": "DN 32/25",
"materials": {
"casing": "Cast Iron",
"impeller": "Stainless Steel",
"shaft": "Stainless Steel"
}
}
}
Parsing Tabular Data
From Excel/CSV:
import pandas as pd
df = pd.read_excel('pump_data.xlsx', sheet_name='Performance')
flow = df['Flow_m3h'].values
head = df['Head_m'].values
efficiency = df['Efficiency_pct'].values
From PDF Tables:
import tabula
tables = tabula.read_pdf('datasheet.pdf', pages='all')
performance_data = tables[0]
Curve Digitization
Manual Digitization:
Automated Approaches:
import cv2
from skimage import morphology
import matplotlib.pyplot as plt
img = cv2.imread('pump_curve.png', 0)
Custom Pump Database Creation
Database Structure
SQLite Database Example:
CREATE TABLE manufacturers (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
website TEXT
);
CREATE TABLE pump_models (
id INTEGER PRIMARY KEY,
manufacturer_id INTEGER,
model_number TEXT NOT NULL,
pump_type TEXT,
speed_rpm INTEGER,
stages INTEGER,
impeller_diameter_mm REAL,
FOREIGN KEY (manufacturer_id) REFERENCES manufacturers(id)
);
CREATE TABLE performance_curves (
id INTEGER PRIMARY KEY,
pump_id INTEGER,
flow_m3h REAL,
head_m REAL,
efficiency_pct REAL,
power_kw REAL,
npsh_m REAL,
FOREIGN KEY (pump_id) REFERENCES pump_models(id)
);
CREATE TABLE specifications (
id INTEGER PRIMARY KEY,
pump_id INTEGER,
spec_name TEXT,
spec_value TEXT,
spec_unit TEXT,
FOREIGN KEY (pump_id) REFERENCES pump_models(id)
);
JSON Database Format
{
"database_version": "1.0",
"last_updated": "2025-11-07",
"manufacturers": [
{
"id": "grundfos",
"name": "Grundfos",
"pumps": [
{
"model": "CR 10-5",
"type": "vertical_multistage",
"performance": { ... },
"specifications": { ... }
}
]
}
]
}
Adding Pump Data Programmatically
import sqlite3
import json
class PumpDatabase:
def __init__(self, db_path='pump_database.db'):
self.conn = sqlite3.connect(db_path)
self.create_tables()
def add_pump(self, manufacturer, model, pump_type, curve_data, specs):
"""Add a new pump to the database"""
cursor = self.conn.cursor()
cursor.execute(
"INSERT OR IGNORE INTO manufacturers (name) VALUES (?)",
(manufacturer,)
)
cursor.execute(
"SELECT id FROM manufacturers WHERE name = ?",
(manufacturer,)
)
mfg_id = cursor.fetchone()[0]
cursor.execute("""
INSERT INTO pump_models
(manufacturer_id, model_number, pump_type, speed_rpm, stages)
VALUES (?, ?, ?, ?, ?)
""", (mfg_id, model, pump_type,
specs.get('speed'), specs.get('stages')))
pump_id = cursor.lastrowid
for i, flow in enumerate(curve_data['flow']):
cursor.execute("""
INSERT INTO performance_curves
(pump_id, flow_m3h, head_m, efficiency_pct, power_kw)
VALUES (?, ?, ?, ?, ?)
""", (pump_id, flow, curve_data['head'][i],
curve_data['efficiency'][i], curve_data['power'][i]))
self.conn.commit()
Adding Proprietary Pump Data
Data Collection Methods
-
Manufacturer Datasheets:
- Download PDF datasheets
- Extract curve data (digitize if necessary)
- Record specifications
-
Factory Test Data:
- Witness test reports
- Performance verification data
- Actual vs. guaranteed performance
-
Field Measurements:
- Installed pump performance
- In-service efficiency
- Degradation tracking
-
Custom/Modified Pumps:
- Trimmed impellers
- VFD operation at different speeds
- Special configurations
Data Organization
proprietary_pumps/
├── manufacturer_name/
│ ├── model_series/
│ │ ├── model_variant_1.json
│ │ ├── model_variant_2.json
│ │ └── datasheets/
│ │ ├── model_variant_1.pdf
│ │ └── model_variant_2.pdf
│ └── metadata.json
└── custom_pumps/
├── project_name/
│ ├── pump_1.json
│ └── test_data.csv
└── metadata.json
Version Control for Pump Data
{
"model": "CR 10-5",
"data_version": "2.1",
"last_updated": "2025-11-07",
"source": "Grundfos Product Center 2025",
"verified": true,
"verification_date": "2025-10-15",
"notes": "Updated efficiency curve based on factory test data"
}
Best Practices
-
Data Validation:
- Verify curve data makes physical sense
- Check for discontinuities or errors
- Compare against multiple sources when possible
-
Units Management:
- Store data in consistent units (SI preferred)
- Document unit conventions
- Provide conversion utilities
-
Interpolation:
- Use appropriate interpolation for curve queries
- Avoid extrapolation beyond curve limits
- Mark interpolated vs. actual data points
-
Updates and Maintenance:
- Track manufacturer updates
- Version control for database changes
- Archive deprecated models
-
Documentation:
- Source all data properly
- Record assumptions and limitations
- Maintain audit trail for critical selections
Example Workflows
Pump Selection Workflow
- Define Requirements: Flow rate, head, fluid properties
- Query Database: Search for suitable pumps
- Filter Results: By type, size, efficiency
- Evaluate Performance: Check operating point on curve
- Verify NPSH: Ensure adequate suction conditions
- Review Specifications: Materials, temperature, pressure ratings
- Generate Report: Document selection basis
Database Maintenance Workflow
- Monitor Manufacturer Updates: Check for new models/data
- Download New Data: Acquire latest datasheets
- Parse and Validate: Extract and verify curve data
- Update Database: Add new models, update existing
- Version Control: Commit changes with notes
- Notify Users: Document significant changes
Limitations and Considerations
- Manufacturer data copyright: Respect intellectual property
- Data accuracy: Verify critical selections with manufacturer
- Tolerances: Published curves have manufacturing tolerances
- Operating conditions: Curves are for specific fluids (usually water)
- Application-specific: Consult manufacturer for special applications
- Warranty implications: Unofficial data may void warranties
Related Skills
pump-curves: Working with performance curves
pump-selection: Systematic pump selection process
hydraulic-analysis: System curve and operating point analysis
npsh-analysis: Net Positive Suction Head calculations