Statistiques
| Révision :

root / bin / image2geometry / gather_data.py @ 16

Historique | Voir | Annoter | Télécharger (1,7 ko)

1
#!/usr/bin/env python
2

    
3
# before lounching the executable activate the timagetk conda environement
4
# conda activate florivar
5

    
6
# general imports :
7
from sys import argv
8
import pandas as pd
9
import os
10

    
11

    
12
def read_areas(dirname):
13
    listfiles=os.listdir(dirname)
14
    listfiles=[i for i in listfiles if '-area.csv' in i]
15
    sepalname=[]
16
    area=[]
17
    for i in listfiles:
18
        name=i.split('-area.csv')[0]
19
        sepalname.append(name)
20
        df=pd.read_csv(dirname+i, delimiter=',')[:-2]
21
        A=sum(df['Value'])/2.
22
        area.append(A)
23
    data = {'Sepal': sepalname, 'Area': area}
24
    newdf=pd.DataFrame.from_dict(data)    
25
    newdf=newdf.sort_values("Sepal", ascending=True, inplace=False)
26
    return newdf
27

    
28
def read_measurements(fname):
29
    df=pd.read_csv(fname, delimiter=';')
30
    print("Reading file : ",fname)
31
    print("Number of entries at reading: ",df.shape)
32
    df['Sepal']=[name.split('_oriented')[0] for name in df['Sepal']]
33
    df=df.sort_values("Sepal", ascending=True, inplace=False)
34
    return df
35

    
36

    
37
measures_filename = argv[1]
38
areadir = argv[2]+'/'
39

    
40
root=measures_filename.split('.csv')[0]
41
outputfile=root+"_full.csv"
42

    
43

    
44
df=read_measurements(measures_filename)
45
newdf=read_areas(areadir)
46
#
47
df = pd.merge(df, newdf, left_on="Sepal", right_on="Sepal")
48
#
49
df['CurvedSF']=df['CurvedWidth']/df['CurvedLength']
50
df['FlatSF']=df['FlatWidth']/df['FlatLength']
51
#
52
df['Thickness']=df['volume']/df['Area']
53
#
54
df['GaussK']=1./df['LR']/df['TR']
55
df['CentralGaussK']=1./df['LR423']/df['TR423']
56
df.to_csv(outputfile, index=False, sep=";")
57
print("Number of entries : ",df.shape)
58
labels=list(df.columns[1:])
59
print('Columns written:',list(df.columns))
60
print('Sepals:',list(df['Sepal']))
61
print('Measurements written in file:',outputfile)
62

    
63