Predictive utility pole failure analysis and maintenance optimization platform
Project description
polerisk
Predictive utility pole failure analysis and maintenance optimization platform
What You Get
polerisk provides comprehensive tools for analyzing utility pole health, predicting failures, and optimizing maintenance schedules. Built for utility companies, infrastructure managers, and risk analysts who need data-driven insights for pole management.
Key Capabilities
🔍 Risk Assessment
- Analyze pole condition and failure probability
- Multi-factor risk scoring (age, material, weather exposure, load)
- Historical failure pattern analysis
- Predictive maintenance scheduling
📊 Data-Driven Insights
- Statistical analysis of pole populations
- Geospatial visualization of risk hotspots
- Time series analysis for degradation patterns
- Cost-benefit analysis for maintenance prioritization
🤖 Machine Learning Models
- Failure prediction models
- Anomaly detection for unusual deterioration
- Risk clustering and pattern recognition
- Custom model training on your data
📈 Reporting & Visualization
- Interactive dashboards
- Exportable reports (PDF, CSV, HTML)
- Map-based visualizations
- Custom analytics for your KPIs
Installation
pip install polerisk
Optional Packages
Install additional capabilities based on your needs:
# For enhanced performance
pip install polerisk[performance]
# For machine learning features
pip install polerisk[ml]
# For web dashboard
pip install polerisk[web]
# For cloud deployment
pip install polerisk[cloud]
# Install everything
pip install polerisk[all]
Quick Start
import polerisk
# Load your pole data
poles = polerisk.load_data('pole_inventory.csv')
# Assess risk for all poles
risk_assessment = polerisk.assess_risk(poles)
# Get high-risk poles
high_risk = risk_assessment[risk_assessment['risk_score'] > 0.7]
# Generate maintenance schedule
schedule = polerisk.optimize_maintenance(
high_risk,
budget=100000,
time_horizon='1year'
)
# Export results
schedule.to_csv('maintenance_plan.csv')
polerisk.generate_report(schedule, output='report.html')
Core Features
Risk Analysis
# Calculate failure probability
risk_scores = polerisk.calculate_risk(
poles,
factors=['age', 'material', 'weather_exposure', 'load'],
weights='auto' # or specify custom weights
)
# Identify critical infrastructure
critical = polerisk.identify_critical_poles(
poles,
criteria=['customer_impact', 'replacement_cost', 'failure_risk']
)
Predictive Modeling
# Train a failure prediction model
model = polerisk.train_model(
historical_data,
target='failure_within_year',
model_type='random_forest'
)
# Predict failures
predictions = model.predict(current_poles)
# Evaluate model performance
metrics = model.evaluate(test_data)
print(f"Accuracy: {metrics['accuracy']:.2%}")
Geospatial Analysis
# Create risk heat map
risk_map = polerisk.create_risk_map(
poles,
base_map='openstreetmap',
cluster_radius=5 # km
)
# Export interactive map
risk_map.save('pole_risk_map.html')
# Find poles in high-risk zones
zones = polerisk.identify_risk_zones(poles, threshold=0.8)
Maintenance Optimization
# Optimize maintenance schedule
optimal_plan = polerisk.optimize_maintenance(
poles,
budget=500000,
constraints={
'max_poles_per_month': 100,
'min_risk_threshold': 0.6,
'region_balance': True
}
)
# Calculate ROI
roi = polerisk.calculate_roi(
optimal_plan,
avoided_failures=estimated_failures,
failure_cost=avg_failure_cost
)
Data Requirements
polerisk works with standard pole inventory data:
Minimum Required Fields:
- Pole ID
- Location (latitude/longitude or address)
- Installation date or age
- Material type
Recommended Fields for Better Analysis:
- Inspection history
- Maintenance records
- Load data
- Weather exposure
- Soil conditions
- Previous failures
Supported Data Formats:
- CSV, Excel
- JSON, GeoJSON
- Shapefiles
- SQL databases
- REST APIs
Use Cases
Utility Companies
- Reduce unexpected outages by 40-60%
- Optimize maintenance budgets
- Prioritize inspections based on risk
- Comply with regulatory requirements
Infrastructure Managers
- Long-term asset planning
- Capital expenditure optimization
- Risk-based decision making
- Performance benchmarking
Risk Analysts
- Portfolio-level risk assessment
- Scenario analysis and modeling
- Cost-benefit analysis
- Regulatory reporting
Performance
- Analyze 100,000+ poles in seconds
- Real-time risk scoring
- Parallel processing for large datasets
- Cloud-scalable architecture
Support
- 📚 Documentation: polerisk.readthedocs.io
- 🐛 Issues: github.com/kylejones200/polerisk/issues
- 💬 Discussions: github.com/kylejones200/polerisk/discussions
- 📧 Contact: kyletjones@gmail.com
Requirements
- Python 3.12 or higher
- Standard data science libraries (automatically installed)
License
MIT License - Free for commercial and personal use.
Ready to optimize your pole maintenance?
pip install polerisk
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file polerisk-1.1.0.tar.gz.
File metadata
- Download URL: polerisk-1.1.0.tar.gz
- Upload date:
- Size: 145.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4009bc2b14be19d2e2050934e9ce7c5b8c4c90a4c871d2fbe5a7efd05f6e29e9
|
|
| MD5 |
c7fc6dcdded8b0a56cdb7938074f81a9
|
|
| BLAKE2b-256 |
8534308a399360de202d2225882457db96e1517c97c7276119ba1118d46e44e3
|
Provenance
The following attestation bundles were made for polerisk-1.1.0.tar.gz:
Publisher:
publish.yml on kylejones200/PoleRisk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polerisk-1.1.0.tar.gz -
Subject digest:
4009bc2b14be19d2e2050934e9ce7c5b8c4c90a4c871d2fbe5a7efd05f6e29e9 - Sigstore transparency entry: 774204780
- Sigstore integration time:
-
Permalink:
kylejones200/PoleRisk@87deeecac44e8aa8257ffec4511436847b24fe23 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/kylejones200
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@87deeecac44e8aa8257ffec4511436847b24fe23 -
Trigger Event:
push
-
Statement type:
File details
Details for the file polerisk-1.1.0-py3-none-any.whl.
File metadata
- Download URL: polerisk-1.1.0-py3-none-any.whl
- Upload date:
- Size: 180.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
737e0e87981cebd6dea89b0a07aefd02359371b407a39901369c1827563c596a
|
|
| MD5 |
3838db85b01ec7c8132f2b904bb0c904
|
|
| BLAKE2b-256 |
d721e962ddc0e92d8f9d9491139e17caeeca9e624b8d9bcc48ed4f2bd5caddcc
|
Provenance
The following attestation bundles were made for polerisk-1.1.0-py3-none-any.whl:
Publisher:
publish.yml on kylejones200/PoleRisk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polerisk-1.1.0-py3-none-any.whl -
Subject digest:
737e0e87981cebd6dea89b0a07aefd02359371b407a39901369c1827563c596a - Sigstore transparency entry: 774204782
- Sigstore integration time:
-
Permalink:
kylejones200/PoleRisk@87deeecac44e8aa8257ffec4511436847b24fe23 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/kylejones200
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@87deeecac44e8aa8257ffec4511436847b24fe23 -
Trigger Event:
push
-
Statement type: