Spaces:
Runtime error
Runtime error
| from flask import Flask, render_template, jsonify | |
| import folium | |
| import numpy as np | |
| import seaborn as sns | |
| import matplotlib.pyplot as plt | |
| from io import BytesIO | |
| import base64 | |
| # Zone Pressure Monitor | |
| class ZonePressureMonitor: | |
| def __init__(self): | |
| self.pressures = {} | |
| def update_pressure(self, zone, pressure): | |
| self.pressures[zone] = pressure | |
| def get_pressures(self): | |
| return self.pressures | |
| # Heatmap Generator | |
| class HeatmapGenerator: | |
| def __init__(self, pressure_data): | |
| self.pressure_data = pressure_data | |
| def generate_heatmap(self): | |
| zones = list(self.pressure_data.keys()) | |
| pressures = list(self.pressure_data.values()) | |
| zone_grid = np.array(pressures).reshape(len(zones), 1) | |
| plt.figure(figsize=(6, 4)) | |
| sns.heatmap(zone_grid, annot=True, xticklabels=zones, yticklabels=["Pressure"], cmap='YlGnBu') | |
| plt.title('Zone Pressure Heatmap') | |
| plt.xlabel('Zones') | |
| plt.ylabel('Pressure Levels') | |
| buf = BytesIO() | |
| plt.savefig(buf, format="png") | |
| plt.close() | |
| return base64.b64encode(buf.getvalue()).decode('utf-8') | |
| # Reward System | |
| class RewardSystem: | |
| def __init__(self): | |
| self.units = {} | |
| def record_efficiency(self, unit_id, efficiency): | |
| self.units[unit_id] = efficiency | |
| def calculate_rewards(self): | |
| rewards = {} | |
| for unit, efficiency in self.units.items(): | |
| if efficiency >= 75: | |
| rewards[unit] = 100 | |
| elif efficiency >= 50: | |
| rewards[unit] = 50 | |
| else: | |
| rewards[unit] = 0 | |
| return rewards | |
| # Driver Assignment | |
| class DriverAssignment: | |
| def __init__(self, zone_pressures): | |
| self.zone_pressures = zone_pressures | |
| def optimize_assignments(self, drivers): | |
| assignments = {} | |
| sorted_zones = sorted(self.zone_pressures.items(), key=lambda item: item[1]) | |
| for i, driver in enumerate(drivers): | |
| if i < len(sorted_zones): | |
| assignments[driver] = sorted_zones[i][0] | |
| else: | |
| assignments[driver] = 'No Zone Available' | |
| return assignments | |
| app = Flask(__name__) | |
| # Initialize components | |
| zone_pressure_monitor = ZonePressureMonitor() | |
| reward_system = RewardSystem() | |
| def pressure_dashboard(): | |
| # Update and get zone pressures | |
| zone_pressure_monitor.update_pressure('Zone A', 30) | |
| zone_pressure_monitor.update_pressure('Zone B', 45) | |
| pressures = zone_pressure_monitor.get_pressures() | |
| # Generate heatmap | |
| heatmap_generator = HeatmapGenerator(pressures) | |
| heatmap_img = heatmap_generator.generate_heatmap() | |
| # Calculate rewards | |
| reward_system.record_efficiency('Vehicle1', 80) | |
| reward_system.record_efficiency('Vehicle2', 45) | |
| rewards = reward_system.calculate_rewards() | |
| # Optimize driver assignments | |
| drivers = ['Driver1', 'Driver2', 'Driver3'] | |
| driver_assignment_system = DriverAssignment(pressures) | |
| assignments = driver_assignment_system.optimize_assignments(drivers) | |
| return render_template('pressure.html', heatmap_img=heatmap_img, rewards=rewards, assignments=assignments) | |
| if __name__ == '__main__': | |
| app.run(debug=True) |