"""Run manually AFTER prepare. No network requests and no publication."""
import json,sys
from pathlib import Path
import lasio,numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
work=Path(sys.argv[1]);l=lasio.read(work/'input.las',null_policy='strict');p=json.loads((work/'run.json').read_text())['config']['parameters']
for key,unit in [('VP_QC','m/s'),('VS_QC','m/s'),('RHOB_QC','g/cm3')]:
    assert l.curves[key].unit==unit, f'Review {key} units'
vp,vs,rho=l['VP_QC'],l['VS_QC'],l['RHOB_QC']*1000
ai=np.full(len(vp),np.nan);ratio=ai.copy()
valid=np.isfinite(vp)&np.isfinite(rho)&(vp>0)&(rho>0)
np.multiply(vp,rho,out=ai,where=valid)
np.divide(vp,vs,out=ratio,where=np.isfinite(vp)&np.isfinite(vs)&(vp>0)&(vs>0))
channels=[('AI','kg/m2/s',ai),('VPVS','1',ratio)]
curves=[{'mnemonic':n,'unit':u,'description':'Bob declared '+n,'values':[float(x) if np.isfinite(x) else None for x in a]} for n,u,a in channels]
with (work/'curves.json').open('x') as f:json.dump(curves,f,allow_nan=False)
fig,axes=plt.subplots(1,2,figsize=(8,9),sharey=True)
for ax,(n,u,a) in zip(axes,channels):ax.plot(a,l.index,linewidth=.7);ax.set_xlabel(n+' ('+u+')');ax.grid(True)
axes[0].set_ylabel('Source depth (m)');axes[0].set_ylim(p['plot_stop'],p['plot_start']);fig.tight_layout();fig.savefig(work/'bob-review.png',dpi=130)
print('Local AI and Vp/Vs ready. Nothing published.')
