root / bin / gather_data.py @ 18
Historique | Voir | Annoter | Télécharger (1,7 ko)
1 | 10 | akiss | #!/usr/bin/env python
|
---|---|---|---|
2 | 10 | akiss | |
3 | 10 | akiss | # before lounching the executable activate the timagetk conda environement
|
4 | 10 | akiss | # conda activate florivar
|
5 | 10 | akiss | |
6 | 10 | akiss | # general imports :
|
7 | 10 | akiss | from sys import argv |
8 | 10 | akiss | import pandas as pd |
9 | 10 | akiss | import os |
10 | 10 | akiss | |
11 | 10 | akiss | |
12 | 10 | akiss | def read_areas(dirname): |
13 | 10 | akiss | listfiles=os.listdir(dirname) |
14 | 10 | akiss | listfiles=[i for i in listfiles if '-area.csv' in i] |
15 | 10 | akiss | sepalname=[] |
16 | 10 | akiss | area=[] |
17 | 10 | akiss | for i in listfiles: |
18 | 10 | akiss | name=i.split('-area.csv')[0] |
19 | 10 | akiss | sepalname.append(name) |
20 | 10 | akiss | df=pd.read_csv(dirname+i, delimiter=',')[:-2] |
21 | 11 | akiss | A=sum(df['Value'])/2. |
22 | 10 | akiss | area.append(A) |
23 | 10 | akiss | data = {'Sepal': sepalname, 'Area': area} |
24 | 10 | akiss | newdf=pd.DataFrame.from_dict(data) |
25 | 10 | akiss | newdf=newdf.sort_values("Sepal", ascending=True, inplace=False) |
26 | 10 | akiss | return newdf
|
27 | 10 | akiss | |
28 | 10 | akiss | def read_measurements(fname): |
29 | 10 | akiss | df=pd.read_csv(fname, delimiter=';')
|
30 | 10 | akiss | print("Reading file : ",fname)
|
31 | 10 | akiss | print("Number of entries at reading: ",df.shape)
|
32 | 10 | akiss | df['Sepal']=[name.split('_oriented')[0] for name in df['Sepal']] |
33 | 10 | akiss | df=df.sort_values("Sepal", ascending=True, inplace=False) |
34 | 10 | akiss | return df
|
35 | 10 | akiss | |
36 | 10 | akiss | |
37 | 10 | akiss | measures_filename = argv[1]
|
38 | 10 | akiss | areadir = argv[2]+'/' |
39 | 10 | akiss | |
40 | 10 | akiss | root=measures_filename.split('.csv')[0] |
41 | 10 | akiss | outputfile=root+"_full.csv"
|
42 | 10 | akiss | |
43 | 10 | akiss | |
44 | 10 | akiss | df=read_measurements(measures_filename) |
45 | 10 | akiss | newdf=read_areas(areadir) |
46 | 10 | akiss | #
|
47 | 10 | akiss | df = pd.merge(df, newdf, left_on="Sepal", right_on="Sepal") |
48 | 10 | akiss | #
|
49 | 10 | akiss | df['CurvedSF']=df['CurvedWidth']/df['CurvedLength'] |
50 | 10 | akiss | df['FlatSF']=df['FlatWidth']/df['FlatLength'] |
51 | 10 | akiss | #
|
52 | 10 | akiss | df['Thickness']=df['volume']/df['Area'] |
53 | 10 | akiss | #
|
54 | 10 | akiss | df['GaussK']=1./df['LR']/df['TR'] |
55 | 10 | akiss | df['CentralGaussK']=1./df['LR423']/df['TR423'] |
56 | 10 | akiss | df.to_csv(outputfile, index=False, sep=";") |
57 | 10 | akiss | print("Number of entries : ",df.shape)
|
58 | 10 | akiss | labels=list(df.columns[1:]) |
59 | 10 | akiss | print('Columns written:',list(df.columns)) |
60 | 10 | akiss | print('Sepals:',list(df['Sepal'])) |
61 | 10 | akiss | print('Measurements written in file:',outputfile)
|
62 | 10 | akiss |