import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#import viewdat_cno_lib as vdl
import pos_lib

files = [
    '1_hour_Dozer_NEW_FW/EB95______202412101700.T04',
    '1_hour_Dozer_NEW_FW/EB95art_202412101700.T04',
    '1_hour_Dozer_NEW_FW/BX992_____202412101700.T04',
    '1_hour_Dozer_NEW_FW/MS956_____202412101659.T04',

    '1_hour_Dozer_Take_2_terrasatFW/BX992_____202412102200.T04',
    '1_hour_Dozer_Take_2_terrasatFW/EB95______202412102200.T04',
    '1_hour_Dozer_Take_2_terrasatFW/EB95art_202412102200.T04',
    '1_hour_Dozer_Take_2_terrasatFW/MS956_____202412102200.T04',

    '1_hour_Dozer_Take_3_terrasatFW/BX992_____202412112000.T04',
    '1_hour_Dozer_Take_3_terrasatFW/EB95______202412112000.T04',
    '1_hour_Dozer_Take_3_terrasatFW/EB95art_202412112000.T04',
    '1_hour_Dozer_Take_3_terrasatFW/MS956_____202412112000.T04',
    ]
csv_fname = 'weighted_stats.csv'

if not os.path.isfile(csv_fname):
    df_list = []
    for f in files:
        test_name = f.split(os.path.sep)[0]
        dev = f.split(os.path.sep)[1].split('_')[0]
        stat_fname = os.path.join(
                test_name,
                'outputs',
                dev + '_pos_weighted_stats.csv',
                )
        print(stat_fname)
        df = pd.read_csv(stat_fname)
        df['test_name'] = test_name
        df['dev'] = dev
        df_list.append(df)
    df = pd.concat(df_list)
    df.to_csv(csv_fname, index=False)
else:
    df = pd.read_csv(csv_fname)

df = df.replace( {
    '1_hour_Dozer_NEW_FW': 'Take 1',
    '1_hour_Dozer_Take_2_terrasatFW': 'Take2',
    '1_hour_Dozer_Take_3_terrasatFW': 'Take3',
    })
df['ant_str'] = df.antenna.astype(str)
df['label'] = df.dev + ' ' + df.test_name + ' ant' + df.ant_str



# Convert to Northing and Eastings
ref_llh = [39.89583097835723,-105.11333397480176,1646.3462087428095]
df['e'], df['n'], df['u'] = pos_lib.llh2enu(
            np.array(df[['w_mean_lat','w_mean_lon', 'w_mean_hgt']]),
            np.array(ref_llh),
            is_rad=False,
            is_ref_rad=False,
            )
df.to_csv('labeled_data.csv', index=False)
print(df)


# Plots
fig, ax = plt.subplots(1, 1, figsize=(7, 2.5))
df.plot('e', 'n', 
             marker='+', linewidth=0,
             legend=False,
             ax=ax,
             layout='tight',
             )
for i, row in df.iterrows():
    ax.annotate(row['label'], (row['e'], row['n']))
plt.xlabel('Easting')
plt.ylabel('Northing')
#plt.axis('square')
#plt.xlim([-1.2, 0.2])
#plt.ylim([-0.1, 0.2])
#plt.savefig('summary_pos.png')

x = -0.05
plt.xlim([x, x+0.05])
plt.ylim([-0.1, 0.02])
plt.savefig('summary_pos_zoom1.png')

plt.show()
