Skip to content

Commit b38a40a

Browse files
committed
Correctly handle multi-channel data and labels
1 parent b8caf9f commit b38a40a

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

cesium_app/handlers/feature.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,25 +131,30 @@ class PrecomputedFeaturesHandler(BaseHandler):
131131
@auth_or_token
132132
def post(self):
133133
data = self.get_json()
134-
print(data)
135134
if data['datasetID'] not in [None, 'None']:
136135
dataset = Dataset.query.filter(Dataset.id == data['datasetID']).one()
137136
else:
138137
dataset = None
139138
current_project = Project.get_if_owned_by(data['projectID'],
140139
self.current_user)
141140
feature_data = StringIO(data['dataFile']['body'])
142-
fset = pd.read_csv(feature_data, sep=',', index_col='ts_name')
143-
try:
144-
labels = fset.pop('labels').values
145-
except KeyError:
141+
fset = pd.read_csv(feature_data, index_col=0, header=[0, 1])
142+
if 'labels' in fset:
143+
labels = fset.pop('labels').values.ravel()
144+
if labels.dtype == 'O':
145+
labels = [str(label) for label in labels]
146+
else:
146147
labels = [None]
147148
fset_path = pjoin(
148149
self.cfg['paths:features_folder'],
149150
'{}_{}.npz'.format(uuid.uuid4(), data['dataFile']['name']))
151+
150152
featurize.save_featureset(fset, fset_path, labels=labels)
151153

152-
features_list = fset.columns.tolist()
154+
# Meta-features will have channel values of an empty string or a string
155+
# beginning with 'Unnamed:'
156+
features_list = [el[0] for el in fset.columns.tolist() if
157+
(el[1] != '' and not el[1].startswith('Unnamed:'))]
153158

154159
featureset = Featureset(name=data['featuresetName'],
155160
file_uri=fset_path,

0 commit comments

Comments
 (0)