<jupyter_start><jupyter_text>Data directory and list of files containing extreme events<jupyter_code>datapath = '/Users/nhamilto/Documents/Wake_Dynamics/SiteChar/data/IEC_tmp/'
monthly_events_files = os.listdir(datapath)
today = datetime.date.today()
figpath = '../figs_{}{}{}'.format(str(today.year), str(today.month).zfill(2), str(today.day).zfill(2))
params = MET.setup_IEC_params()
try:
    os.makedirs(figpath)
except:
    pass<jupyter_output><empty_output><jupyter_text>Extreme Shear Events<jupyter_code>event_type = 'EWS'
events_files = [x for x in monthly_events_files if event_type in x]

eventDF = pd.DataFrame()
for file in events_files:
    tmp = pd.read_csv(os.path.join(datapath, file))
    eventDF = pd.concat([eventDF, tmp])
eventDF.set_index('datetime', inplace=True)
eventDF.index = pd.DatetimeIndex(eventDF.index)


eventDF['alpha_min'][eventDF['alpha_min'] > eventDF['alpha_neg_limit']] = np.nan
eventDF['alpha_min'][np.abs(eventDF['alpha_min']) > 10.0] = np.nan

eventDF['alpha_max'][eventDF['alpha_max'] < eventDF['alpha_pos_limit']] = np.nan
eventDF['alpha_max'][np.abs(eventDF['alpha_max']) > 10.0] = np.nan

binwidth = 10
eventDF['dirbin'] = pd.cut(eventDF['WD_mean'], bins=np.arange(0,360.1, binwidth), labels=np.arange(binwidth/2,360.1, binwidth))

varcols = ['alpha_max', 'alpha_min']
labels = [r'$\alpha_+$', r'$\alpha_-$']

# ## Rose figures
# fig, ax, leg = rose_fig(eventDF, 'alpha_max', 'dirbin', bins=np.array([0,0.5,1,1.5,2,2.5]))
# leg.set_title(r'$\alpha_+$')
# fig.savefig('{}/{}_pos_rose.pdf'.format(figpath, event_type))

# tmp = eventDF[['dirbin','alpha_min']].copy()
# tmp = tmp.replace([np.inf, -np.inf], np.nan).dropna(how='any')
# tmp['alpha_min'] *= -1

# fig, ax, leg = rose_fig(tmp, 'alpha_min', 'dirbin', bins=-np.array([0,0.5,1,1.5,2,2.5]))
# leg.set_title(r'$\alpha_-$')
# fig.savefig('{}/{}_neg_rose.pdf'.format(figpath, event_type))


## Wind dir bar plot
fig, ax, leg = extreme_event_wind_direction_bar(eventDF, varcols, labels)
fig.savefig('{}/{}_bar.pdf'.format(figpath, event_type))


# ## monthly frequency bar plot
# fig, ax, leg  = extreme_event_monthly_bar(eventDF, varcols, labels)
# fig.savefig('{}/{}_monthly.pdf'.format(figpath, event_type))


# ## Velocity scatter plot
# # adding some limitting lines here
# params = MET.setup_IEC_params()
# alpha_pos = np.load('/Users/nhamilto/Documents/Wake_Dynamics/SiteChar/data/pos_alpha_limit.npy')
# alpha_neg = np.load('/Users/nhamilto/Documents/Wake_Dynamics/SiteChar/data/neg_alpha_limit.npy')
# alpha_reference_velocity = np.load('/Users/nhamilto/Documents/Wake_Dynamics/SiteChar/data/alpha_reference_velocity.npy')

# fig, ax, leg  = extreme_event_velocity_scatter(eventDF, varcols, labels)
# ax.plot(alpha_reference_velocity, alpha_pos, 'k')
# ax.plot(alpha_reference_velocity, alpha_neg, 'k')
# ax.set_ylabel('Shear Exponent [-]')
# fig.savefig('{}/{}_v_limits.pdf'.format(figpath, event_type))


# ## Histogram
# fig, ax, leg  = extreme_event_hist(eventDF, varcols, labels)
# ax.set_xlabel('Shear Exponent [-]')
# fig.savefig('{}/{}_hist.pdf'.format(figpath, event_type))<jupyter_output><empty_output><jupyter_text>Extreme Operating Gust Events<jupyter_code>eventDF.head(1)
eventDF.WS_max.plot()
figpath
event_type = 'EOG'
events_files = [x for x in monthly_events_files if event_type in x]

eventDF = pd.DataFrame()
for file in events_files:
    tmp = pd.read_csv(os.path.join(datapath, file))
    eventDF = pd.concat([eventDF, tmp])
eventDF.rename(index=str, columns={'Unnamed: 0': 'datetime'}, inplace=True)
eventDF.set_index('datetime', inplace=True)
eventDF.index = pd.DatetimeIndex(eventDF.index)


binwidth = 10
eventDF['dirbin'] = pd.cut(eventDF['WD_mean'], bins=np.arange(0,360.1, binwidth), labels=np.arange(binwidth/2,360.1, binwidth))

varcols = ['WS_max', 'WS_min']
labels = [r'$V_{max}$', r'$V_{min}$']


# ## Rose figures
fig, ax, leg = rose_fig(eventDF, varcols[0], 'dirbin', bins=6)
leg.set_title(labels[0])
fig.savefig('{}/{}_{}_rose.pdf'.format(figpath, event_type, varcols[0]))

# fig, ax, leg = rose_fig(eventDF, varcols[1], 'dirbin', bins=6)
# leg.set_title(labels[1])
# fig.savefig('{}/{}_{}_rose.pdf'.format(figpath, event_type, varcols[1]))


# Wind dir bar plot
fig, ax, leg = extreme_event_wind_direction_bar(eventDF, varcols[0], labels, colors='C1')
fig.savefig('{}/{}_bar.pdf'.format(figpath, event_type))


# ## monthly frequency bar plot
fig, ax, leg  = extreme_event_monthly_bar(eventDF, varcols[0],'tmp', colors='C1')
leg = ax.legend(labels, frameon=False)
# ax.set_ylabel('Average ')
fig.savefig('{}/{}_monthly.pdf'.format(figpath, event_type))

# velocity scatter
fig,ax,leg = extreme_event_velocity_scatter(eventDF, varcols, labels)


## Histogram
fig, ax, leg  = extreme_event_hist(eventDF, varcols, labels, alpha=0.75)
ax.set_xlabel('Velocity [m/s]')
# ax.set_xlim()
fig.savefig('{}/{}_hist.pdf'.format(figpath, event_type))
tmp = eventDF.groupby(eventDF.index.year).count()
tmp.mean()
eventDF['Vamp'] = eventDF['WS_max'] - eventDF['WS_mean']
eventDF[eventDF['Vamp'] == eventDF['Vamp'].max()]
fig, ax = plt.subplots(figsize=(5,3))

tmp = eventDF['WS_max'] - eventDF['WS_mean']
data = tmp.values
ax.hist(data, bins=35, weights=100*np.ones(len(data))/len(data), facecolor='C2', edgecolor='k', alpha=0.75, label=r'$V_{max}- V_{Ave}$')

tmp = eventDF['WS_max'] - eventDF['WS_min']
data = tmp.values
ax.hist(data, bins=35, weights=100*np.ones(len(data))/len(data), facecolor='C1', edgecolor='k', alpha=0.75, label=r'$V_{max}- V_{min}$')

ax.set_xlabel(r'Velocity [m/s]')
ax.set_ylabel('Frequency [\%]')

ax.legend()
fig.savefig('{}/EOG_vgust_hist_alt.pdf'.format(figpath))
# velocity scatter
fig,ax,leg = extreme_event_velocity_scatter(eventDF, varcols[0:1], labels[0:1], colors=['C1'])
ax.set_ylabel('Gust Velocity [m/s]')
leg = ax.get_legend()
leg.set_visible(False)

fig.savefig('{}/EOG_vgust_scatter.pdf'.format(figpath))
vtmp = 8
sigma_1 = params['Iref'] * (0.75 * vtmp + 5.6)
test1 = 1.35 * (params['Ve01'] - vtmp)
test2 = 3.3 * (sigma_1 / (1 + 0.1 * params['D'] / params['Lambda_1']))

# IEC gust velocity magnitude threshold
Vgust = np.min(np.vstack([test1, test2]), axis=0)

T = 10.5 #s
t = np.linspace(0,T,101)

mod = 0.37 * Vgust * np.sin(3 * np.pi * t / T) * (1 - np.cos(2 * np.pi * t / T))

WS_pos_gustlim = vtmp - mod.min()
WS_neg_gustlim = vtmp - mod.max()

veog = vtmp-mod

fig, ax = plt.subplots(figsize=(4,2))
ax.plot(t, veog, color='C1', label=r'$V_{EOG}$')
ax.axhline(8.0, ls='--', color='k')
ax.axhline(y=veog.max(), xmin=0.35, xmax=0.65, ls='--', color='k')
ax.axhline(y=veog.min(), xmin=0.15, xmax=0.4, ls='--', color='k')
# ax.arrow(x=2.2, y=veog.min(), dx=0, dy=(8-veog.min()), color='k', width=0.025, length_includes_head=True)
# ax.arrow(x=2.2, y=8, dx=0, dy=-(8-veog.min()), color='k', width=0.025, length_includes_head=True)
# 
ax.annotate(s=r'$V_a$', xy=(0.5,0.5), xytext=(0,0), arrowprops=dict(arrowstyle='<|-|>'), xycoords='axes fraction', color='k', textcoords=(0.25,0.25))

ax.set_xlabel('Time [s]')
ax.set_ylabel(r'Velocity [m/s]')
# ax.legend()
# fig.savefig('{}/EOG_hat.pdf'.format(figpath))
dict(arrowstyle='<->',width=0.05)
event_type = 'ETM'
events_files = [x for x in monthly_events_files if event_type in x]

eventDF = pd.DataFrame()
for file in events_files:
    tmp = pd.read_csv(os.path.join(datapath, file))
    eventDF = pd.concat([eventDF, tmp])
eventDF.set_index('datetime', inplace=True)
eventDF.index = pd.DatetimeIndex(eventDF.index)




binwidth = 10
eventDF['dirbin'] = pd.cut(eventDF['WD_mean'], bins=np.arange(0,360.1, binwidth), labels=np.arange(binwidth/2,360.1, binwidth))

varcols = ['sigma_1']
labels = [r'$\sigma_1$']


# ## Rose figures
# fig, ax, leg = rose_fig(eventDF, varcols[0], 'dirbin', bins=6)
# leg.set_title(labels[0])
# fig.savefig('{}/{}_{}_rose.pdf'.format(figpath, event_type, varcols[0]))


# Wind dir bar plot
fig, ax, leg = extreme_event_wind_direction_bar(eventDF, varcols[0], labels, colors='C1')
fig.savefig('{}/{}_bar.pdf'.format(figpath, event_type))

# ## Velocity scatter plot
# # adding some limitting lines here
# fig, ax, leg  = extreme_event_velocity_scatter(eventDF, varcols, labels)
# ax.plot(eventDF['WS_mean'],eventDF['sigmatest'], label='ETM limit')
# ax.set_ylabel('Turbulence Standard Deviation [m/s]'.format(labels[0]))
# leg = ax.legend()
# fig.savefig('{}/{}_v_limits.pdf'.format(figpath, event_type))

# ## monthly frequency bar plot
# fig, ax, leg  = extreme_event_monthly_bar(eventDF, varcols[0],'tmp', colors='C1')
# leg = ax.legend(labels, frameon=False)
# # ax.set_ylabel('Frequency [\%]')
# fig.savefig('{}/{}_monthly.pdf'.format(figpath, event_type))


# ## Histogram
# fig, ax, leg  = extreme_event_hist(eventDF, varcols, labels, alpha=0.75)
# ax.set_xlabel('Turbulence Standard Deviation [m/s]'.format(labels[0]))
# fig.savefig('{}/{}_hist.pdf'.format(figpath, event_type))
event_type = 'EDC'
events_files = [x for x in monthly_events_files if event_type in x]

eventDF = pd.DataFrame()
for file in events_files:
    tmp = pd.read_csv(os.path.join(datapath, file))
    eventDF = pd.concat([eventDF, tmp])
eventDF.rename(index=str, columns={'Unnamed: 0': 'datetime'}, inplace=True)
eventDF.set_index('datetime', inplace=True)
eventDF.index = pd.DatetimeIndex(eventDF.index)

# extra filtering...
eventDF[eventDF.WS_mean > 40] = np.nan
eventDF[eventDF.WS_mean < 0.1] = np.nan
eventDF.dropna(how='any', inplace=True)

# test = eventDF.copy()
eventDF = eventDF.resample('60T').last()


params = MET.setup_IEC_params()

binwidth = 10
eventDF['dirbin'] = pd.cut(eventDF['WD_mean'], bins=np.arange(0,360.1, binwidth), labels=np.arange(binwidth/2,360.1, binwidth))

varcols = ['deltaWD']
labels = [r'$\Delta \theta$']

# ## Rose figures
# fig, ax, leg = rose_fig(eventDF, varcols[0], 'dirbin', bins=6)
# leg.set_title(labels[0])
# fig.savefig('{}/{}_{}_rose.pdf'.format(figpath, event_type, varcols[0]))


# Wind dir bar plot
# fig, ax, leg = extreme_event_wind_direction_bar(eventDF, varcols[0], labels, colors='C1')
# fig.savefig('{}/{}_bar.pdf'.format(figpath, event_type))

# ## Velocity scatter plot
# # adding some limitting lines here
# fig, ax, leg  = extreme_event_velocity_scatter(eventDF, varcols, labels)
# tmp = eventDF.copy()
# binwidth = 1.0
# # Turbulence standard deviation depends on mean wind speed
# vdummy = np.linspace(0,35)
# sigma_1_e = params['Iref'] * (0.75 * vdummy + 5.6)
# # Direction change threshold depends on wind speed
# theta_e = np.degrees(4 * np.arctan( sigma_1_e / (vdummy * (1 + 0.1 * params['D'] / params['Lambda_1']))))
# # tmp['vbin'] = pd.cut(eventDF['WS_mean'], bins=np.arange(0,eventDF['WS_mean'].max(), binwidth), labels=np.arange(binwidth/2, eventDF['WS_mean'].max()-1, binwidth))
# # maxlim = tmp['delta_WD_thresh'].groupby(tmp['vbin']).min()
# ax.plot(vdummy, theta_e, color='k')
# ax.plot(vdummy, -theta_e, color='k')
# ax.set_ylim(-200,200)
# ax.set_ylabel(r'Wind Direciton Change [$^\circ$]'.format(labels[0]))
# leg = ax.legend()
# fig.savefig('{}/{}_v_limits.pdf'.format(figpath, event_type))

# ## monthly frequency bar plot
# fig, ax, leg  = extreme_event_monthly_bar(eventDF, varcols[0],'tmp', colors='C1')
# leg = ax.legend(labels, frameon=False)
# fig.savefig('{}/{}_monthly.pdf'.format(figpath, event_type))


# ## Histogram
# fig, ax, leg  = extreme_event_hist(eventDF, varcols, labels, alpha=0.75)
# ax.set_xlabel(r'Wind Direciton Change [$^\circ$]'.format(labels[0]))
# fig.savefig('{}/{}_hist.pdf'.format(figpath, event_type))<jupyter_output><empty_output><jupyter_text>ECD events<jupyter_code>event_type = 'ECD'
events_files = [x for x in monthly_events_files if event_type in x]

eventDF = pd.DataFrame()
for file in events_files:
    tmp = pd.read_csv(os.path.join(datapath, file))
    eventDF = pd.concat([eventDF, tmp])
eventDF.drop(columns=['Unnamed: 0'], inplace=True)
eventDF.set_index('datetime', inplace=True)
eventDF.index = pd.DatetimeIndex(eventDF.index )

eventDF['deltaWD'] = np.abs(eventDF['WD_min'] - eventDF['WD_max'])
eventDF = eventDF[eventDF['deltaWD']<180]
eventDF.dropna(how='any', inplace=True)

eventDF.head(1)
event_type = 'ECD'
events_files = [x for x in monthly_events_files if event_type in x]

eventDF = pd.DataFrame()
for file in events_files:
    tmp = pd.read_csv(os.path.join(datapath, file))
    eventDF = pd.concat([eventDF, tmp])
eventDF.drop(columns=['Unnamed: 0'], inplace=True)
eventDF.set_index('datetime', inplace=True)
eventDF.index = pd.DatetimeIndex(eventDF.index )

eventDF['delta_WD'] = np.abs(eventDF['WD_min'] - eventDF['WD_max'])
eventDF['delta_WS'] =eventDF['WS_max'] - eventDF['WS_min']
eventDF = eventDF[eventDF['delta_WD']<180]
eventDF.dropna(how='any', inplace=True)


binwidth = 10
eventDF['dirbin'] = pd.cut(eventDF['WD_mean'], bins=np.arange(0,360.1, binwidth), labels=np.arange(binwidth/2,360.1, binwidth))

varcols = ['delta_WS', 'delta_WD']
labels = [r'$\Delta V_{hub}$', r'$\Delta \theta$']


# ## Rose figures
fig, ax, leg = rose_fig(eventDF, varcols[0], 'dirbin', bins=6)
leg.set_title(labels[0])
# fig.savefig('{}/{}_{}_rose.pdf'.format(figpath, event_type, varcols[0]))


# Wind dir bar plot
fig, ax, leg = extreme_event_wind_direction_bar(eventDF, varcols[0], labels, colors=['C1'])
fig.savefig('{}/{}_bar.pdf'.format(figpath, event_type))

vdummy = np.linspace(8,50)
thetacg = 180 * np.ones(len(vdummy))
thetacg[vdummy > 4] = 720/vdummy

## Velocity scatter plot
# adding some limitting lines here
fig, ax, leg  = extreme_event_velocity_scatter(eventDF, ['delta_WD'], [r'$\Delta \theta$'])
ax.plot(vdummy, thetacg, label='ECD Limit')
ax.set_ylabel(r'{} [$^\circ$]'.format(labels[1]))
# leg = ax.legend()
# fig.savefig('{}/{}_v_limits.pdf'.format(figpath, event_type))

# adding some limitting lines here
fig, ax, leg  = extreme_event_velocity_scatter(eventDF, ['delta_WS'], labels)
ax.plot(eventDF['WS_mean'],eventDF['WD_mean'], label='ETM limit')
ax.set_ylabel(r'{} [$^\circ$]'.format(labels[0]))
leg = ax.legend()
# fig.savefig('{}/{}_v_limits.pdf'.format(figpath, event_type))

## monthly frequency bar plot
fig, ax, leg  = extreme_event_monthly_bar(eventDF, varcols, labels, colors=['C1'])
leg = ax.legend(labels, frameon=False)
ax.set_ylabel('Frequency [\%]')
# fig.savefig('{}/{}_monthly.pdf'.format(figpath, event_type))
# 


## Histogram
fig, ax, leg  = extreme_event_hist(eventDF, varcols, labels, alpha=0.75)
ax.set_xlabel('Turbulence Standard Deviation, {} [m/s]'.format(labels[0]))
# fig.savefig('{}/{}_hist.pdf'.format(figpath, event_type))
event_type = 'ECD'
events_files = [x for x in monthly_events_files if event_type in x]

eventDF = pd.DataFrame()
for file in events_files:
    tmp = pd.read_csv(os.path.join(datapath, file))
    eventDF = pd.concat([eventDF, tmp])
eventDF.set_index('datetime', inplace=True)
eventDF.index = pd.DatetimeIndex(eventDF.index)
eventDF = eventDF[eventDF['delta_WD']<180]

varcols = ['delta_WS', 'delta_WD']
labels = [r'$\Delta V_{hub}$', r'$\Delta \theta$']

data = eventDF[varcols]

eventDF.head(1)
fig, ax = plt.subplots(figsize=(5,3))
eventDF.plot.scatter('delta_WS', 'delta_WD',  edgecolor='C1', color='w', ax=ax)
ax.set_xlabel(r'Hub-Height Velocity Change [m/s]')
ax.set_ylabel(r'Wind Direction Change [$^\circ$]')

fig.savefig('{}/{}_scatter.pdf'.format(figpath, event_type))
eventDF.shape
eventDF.dropna(how='any', inplace=True)
varcols = ['delta_WS', 'delta_WD']
labels = [r'$\Delta V_{hub}$', r'$|\Delta \theta|$']
          
fig, ax = plt.subplots(figsize=(5,3))
bins=25
alpha=0.75

data = eventDF[varcols[0]]
n,histbins,patches = ax.hist(data,
                        bins = bins,
                        facecolor='C1',
                        edgecolor='k',
                        weights=100*np.ones(data.shape) / len(data), 
                        density=False,
                        label=labels[0], alpha=alpha)
ax.set_xlabel(r'Hub-Height Velocity Change [m/s]')

ax2 = ax.twiny()
data = eventDF[varcols[1]]
n,histbins,patches = ax2.hist(data,
                        bins = bins,
                        facecolor='C2',
                        edgecolor='k',
                        weights=100*np.ones(data.shape) / len(data), 
                        density=False,
                        label=labels[1], alpha=alpha)
ax2.set_xlabel(r'Wind Direction Change, [$^\circ$]', labelpad=15)
ax.set_ylabel('Frequency [\%]')
fig.legend(loc=6, bbox_to_anchor=(0.65, 0.8))
# fig.tight_layout()

fig.savefig('{}/{}_hist.pdf'.format(figpath, event_type))
IEC_events = {}
event_types = ['EWS', 'EOG', 'ETM', 'EDC', 'ECD']

for event in event_types:
    
    events_files = [x for x in monthly_events_files if event in x]

    eventDF = pd.DataFrame()
    for file in events_files:
        tmp = pd.read_csv(os.path.join(datapath, file))
        eventDF = pd.concat([eventDF, tmp])
    if event is 'EDC':
        eventDF.rename(index=str, columns={'Unnamed: 0': 'datetime'}, inplace=True)
    eventDF.set_index('datetime', inplace=True)
    eventDF.index = pd.DatetimeIndex(eventDF.index)

    IEC_events[event] = eventDF.copy()
    

IEC_events['EWS']['alpha_min'][IEC_events['EWS']['alpha_min'] > IEC_events['EWS']['alpha_neg_limit']] = np.nan
IEC_events['EWS']['alpha_min'][np.abs(IEC_events['EWS']['alpha_min']) > 10.0] = np.nan
IEC_events['EWS']['alpha_max'][IEC_events['EWS']['alpha_max'] < IEC_events['EWS']['alpha_pos_limit']] = np.nan
IEC_events['EWS']['alpha_max'][np.abs(IEC_events['EWS']['alpha_max']) > 10.0] = np.nan
IEC_events['EWS'] = IEC_events['EWS'].resample('10T').last()

# extra filtering...
IEC_events['EDC'][IEC_events['EDC'].WS_mean > 40] = np.nan
IEC_events['EDC'][IEC_events['EDC'].WS_mean < 0.1] = np.nan
IEC_events['EDC'].dropna(how='any', inplace=True)
IEC_events['EDC'] = IEC_events['EDC'].resample('1H').last()

IEC_events['EOG'].rename(index=str, columns={'Unnamed: 0': 'datetime'}, inplace=True)
# IEC_events['EOG'].set_index('datetime', inplace=True)
IEC_events['EOG'].index = pd.DatetimeIndex(IEC_events['EOG']['datetime'])
IEC_events['EOG'].dropna(how='any', inplace=True)

# IEC_events['EOG'] = IEC_events['EOG'].resample('10T').last()
monthly = {event: IEC_events[event].resample('1M').count() for event in event_types}
monthly = {event: monthly[event].WS_mean.groupby(monthly[event].index.month).mean() for event in event_types}

monthly_DF = pd.DataFrame.from_dict(monthly)#, names=event_types)

monthly_DF.sum().sum()
nrelcolors = utils.get_nrelcolors()

colors = utils.get_colors(5,basecolor='span')

colors = ['#0079c2', '#00A4E4', '#5E6A71', '#D9531E', '#933c06']
fig, ax = plt.subplots(figsize=(10,2.5))

monthly_DF.plot.bar(ax=ax,width=0.9, edgecolor='k', color=colors)
leg = ax.legend(loc=6, bbox_to_anchor=(1,0.5))
ax.set_xlabel('Month')
ax.set_ylabel('Average Events per Month')
fig.savefig('{}/monthly_event_bar.pdf'.format(figpath))
figpath<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.19592902435125487, 'fraction_numerical': 0.021047583524271326, 'mean_word_length': 5.688524590163935, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 28, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '498012', 'license': 'Apache-2.0', 'n_tokens_mistral': 7616, 'n_tokens_neox': 7363, 'n_words': 1224, 'path': 'notebooks/Extreme_events_figs_20190109.ipynb', 'repo_name': 'NREL/MetMastVis', 'size': '18767'}