root / bin / image2geometry / gather_data.py @ 10
Historique | Voir | Annoter | Télécharger (1,69 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=max(df['Value']) |
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 |
|