import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon,Rectangle,FancyArrowPatch
T="#222222";G="#555555";EAU="#2c7fb8";ROC="#b9a88a";PV="#f2b705";NEUF="#d62828"
fig,ax=plt.subplots(figsize=(18,8.5),dpi=110)
fig.patch.set_facecolor("white")
ax.set_xlim(-2.5,25);ax.set_ylim(-30,420);ax.axis("off")
ax.add_patch(Polygon([(-2.5,-30),(-2.5,380),(2,380),(5.5,360),(8.3,350),(8.3,170),(9.2,170),(12,150),(16,150),(20,160),(25,170),(25,-30)],closed=True,color=ROC,lw=0))
ax.add_patch(Polygon([(-2.5,350),(8.3,350),(8.3,300),(-2.5,300)],closed=True,color=EAU,alpha=0.9,lw=0))
ax.add_patch(Polygon([(9.2,170),(25,170),(25,150),(12,150),(9.2,160)],closed=True,color=EAU,alpha=0.9,lw=0))
ax.add_patch(Polygon([(8.3,350),(8.3,170),(9.2,170),(9.2,350)],closed=True,color="#8d8d8d",lw=0))
ax.text(2.5,325,"Lac Mead, 32 km³\nla réserve du haut existe déjà",ha="center",va="center",fontsize=11,color="white",weight="bold")
ax.text(17.5,160,"Lac Mohave, 2,2 km³ (barrage Davis, 108 km en aval) : le lac du bas existe déjà",ha="center",va="center",fontsize=10.5,color="white",weight="bold")
ax.text(8.75,365,"Barrage Hoover\n221 m, poste 2 080 MW",ha="center",va="bottom",fontsize=10.5,color=T,weight="bold")
ax.add_patch(Rectangle((9.3,172),1.6,30,color="#444444"))
ax.text(5.5,235,"17 turbines existantes\n2 080 MW, 4,5 h par jour\npar l'eau du fleuve",ha="center",va="center",fontsize=9.5,color=T)
ax.add_patch(FancyArrowPatch((8.3,330),(9.5,190),arrowstyle="-|>",mutation_scale=18,lw=3,color="#444444"))
ax.add_patch(Rectangle((11.6,172),1.6,22,color=NEUF))
ax.text(12.9,206,"NEUF : station de pompage\n300 MW dans le lac Mohave",ha="left",va="bottom",fontsize=9.5,color=NEUF,weight="bold")
ax.plot([12.4,12.4,7.5],[194,320,320],color=NEUF,lw=3.5,ls="--",zorder=6)
ax.text(12.9,262,"NEUF : galerie de 2 km dans le rocher,\nà côté du barrage, vers le lac Mead, 170 m",ha="left",va="bottom",fontsize=9.5,color=NEUF,weight="bold")
for i in range(9):
    x=15.5+i*1.0
    ax.add_patch(Polygon([(x-0.35,172),(x+0.35,172),(x+0.45,186),(x-0.25,186)],closed=True,color=PV,lw=0))
ax.text(19.5,195,"NEUF : 1 500 MWc de trackers sur 21 km² de désert\n(la vallée Eldorado en a déjà 800 MW)",ha="center",va="bottom",fontsize=10,color=T,weight="bold")
ax.plot([19.5,19.5,10.1],[172,120,120],color=NEUF,lw=2);ax.plot([10.1,10.1],[120,172],color=NEUF,lw=2)
ax.text(15,108,"NEUF : ligne de 20 km vers le poste de Hoover",ha="center",va="top",fontsize=9.5,color=NEUF,weight="bold")
ax.text(3,60,"Le jour : 1 500 MWc vendent 2 560 GWh par le poste de Hoover, libre 19 h sur 24,\net 823 GWh remontent 1,5 km³ d'eau par an du lac Mohave au lac Mead (0,2 % du lac par jour).\nLe soir : les turbines existantes rendent 644 GWh de plus, 371 heures de plus par an.\nRien de creusé pour l'eau : pas de bassin, pas de digue, pas de turbine neuve, pas de permis d'eau.\n3 201 GWh vendus en plus par an pour 1 144 M€ : 0,357 M€ par GWh annuel, 23,5 €/MWh en privé, 19,6 en public.",ha="left",va="center",fontsize=10.5,color=T)
ax.plot([20,24],[-18,-18],color=T,lw=3);ax.text(22,-10,"4 km (horizontale) ; les hauteurs sont en mètres, l'échelle verticale est étirée",ha="center",fontsize=9,color=G)
ax.plot([24.5,24.5],[170,370],color=T,lw=2);ax.text(24.7,270,"200 m",va="center",fontsize=9,color=G)
ax.set_title("Hydroloop Muhleisen 2026 V21 Barrage sur le barrage Hoover : le génie civil est déjà payé, on ajoute le soleil, des pompes et la règle de conduite d'une Sky. www.mulo.world, 26/10/2026, CC BY 4.0",fontsize=12.5,color=T,weight="bold",pad=14)
plt.tight_layout()
plt.savefig("schema_hydroloop_muhleisen_2026_v21_barrage_hoover.png",dpi=110,facecolor="white")
print("ok")
