import sys
import numpy as np
import pandas as pd
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from global_land_mask import globe
D=sys.argv[1] if len(sys.argv)>1 else "."
e=pd.read_csv(f"{D}/remparts_v15.csv")
r=pd.read_csv(f"{D}/remparts_v15_grappes.csv")
fig,g=plt.subplots(figsize=(16,8.5))
la,lo=np.meshgrid(np.arange(-60,85,0.5),np.arange(-180,180,0.5),indexing="ij")
g.imshow(np.where(globe.is_land(la,lo),1.0,np.nan),extent=[-180,180,-60,85],origin="lower",cmap="Greys",vmin=0,vmax=4,aspect="auto")
a=e[~e.plan]
g.scatter(a.lon,a.lat,s=6,color="#95a5a6",label=f"Emplacements possibles hors plan : {len(a)}")
b=e[e.plan&~e.cote]
g.scatter(b.lon,b.lat,s=10,color="#2874a6",label=f"Les {int(e.plan.sum())} moins chers, assez pour le stockage du plan")
c=e[e.plan&e.cote]
g.scatter(c.lon,c.lat,s=18,color="#16a085",marker="s",label=f"dont falaises côtières, la mer en bassin bas : {len(c)}")
m=r[r.v15>=6]
g.scatter(m.lon,m.lat,s=90,facecolors="none",edgecolors="#c0392b",lw=1.8,label=f"Remparts de 6 V15 et plus, place d'une MAX 3 : {len(m)}")
x0,y0=-42,-52
k=2000/111.32
g.plot([x0,x0+k],[y0,y0],color="black",lw=3)
g.plot([x0,x0],[y0-1,y0+1],color="black",lw=2)
g.plot([x0+k,x0+k],[y0-1,y0+1],color="black",lw=2)
g.text(x0+k/2,y0+2,"2 000 km (à l'équateur)",ha="center",fontsize=9)
g.set_xlim(-180,180)
g.set_ylim(-60,85)
g.set_xticks([])
g.set_yticks([])
g.legend(loc="lower left",fontsize=9,markerscale=1.5,framealpha=0.9)
g.set_title("Les remparts de la V15 Canyon : 1 000 m de chute et plus sur moins de 10 km, près d'une ville de 300 000 habitants ou d'un grand poste",fontsize=12)
fig.tight_layout()
fig.savefig(f"{D}/carte_remparts_v15.png",dpi=110)
