-
Notifications
You must be signed in to change notification settings - Fork 0
/
data_cme_complexity.py
36 lines (34 loc) · 1.32 KB
/
data_cme_complexity.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import pandas as pd
class CMEComplexity:
def __init__(self, data_loc):
self.data_loc = data_loc
def __get_helcats_names(self, image_list):
"""returns HELCATS name string given image name
e.g.ssw_067_helcats_HCME_B__20131128_02_stb_diff_20131129_005001.jpg
returns HCME_B__20131128_02
"""
helcats_name_list = []
for img in image_list:
parts = img.split('_')
hn = parts[3] + '_' + parts[4] + '__' + parts[6] + '_' + parts[7]
helcats_name_list.append(hn)
return helcats_name_list
def load(self, img_type):
# Read in the model parameters
df = pd.read_csv(os.path.join(self.data_loc, 'POPFSS',
'popfss_model_fit_r_' + img_type + '.csv'))
helcats_name = []
complexity = []
rank = []
# Order storms by complexity
df = df.sort_values(by='x')
# Loop over the storms
for n, i in enumerate(df.index):
helcats_name.append(self.__get_helcats_names([df['Unnamed: 0'][i]])[0])
complexity.append(df['x'][i])
rank.append(n)
df = pd.DataFrame({'helcats_name' : helcats_name,
'complexity' : complexity,
'rank' : rank})
return df