Commit 23bca0ee authored by libes's avatar libes
Browse files

modif pour lmax=max(csvdata.iloc[:,i].apply(len)) ## on calcule la longueur...

modif pour lmax=max(csvdata.iloc[:,i].apply(len))  ## on calcule la longueur de chaine maximale dans la colonne "i"
	modifié :         ../csv2NetCDF.py
parent 814ca51d
......@@ -111,28 +111,28 @@ def Index_selector(index):
##
def Get_Formats():
#retourne le format (type) de chaque valeur des colonnes du fichier CSV
# retournune liste de formats ['f4', 'f4', 'i4' ...]
# retourne une liste de formats ['f4', 'f4', 'i4' ...]
liste_formats = [] #on recoit un tableau numpy a ce niveau, les types numpy sont np.float, np.int
ligne=csvdata.iloc[1]# on prend une ligne de données sous forme de série pandas
l=ligne.tolist() # on la converti en tableau numpy avec la fonction tolist()
i=0
for value in ligne:
if isinstance(value,str):
length=len(value)
frmt = 'S'+str(length)
liste_formats.append(frmt)
lmax=max(csvdata.iloc[:,i].apply(len)) ## on calcule la longueur de chaine maximale dans la colonne "i"
print("indice de colonne String ",i," longueur de chaine max = ",lmax)
frmt = 'S'+str(lmax) # format S de la longueur xx max de la colonne 'Sxx'
#print("value = ",value,type(value))
if isinstance(value,np.floating): # np.floating renvoie True si on est en float64 ou float32
elif isinstance(value,np.floating): # np.floating renvoie True si on est en float64 ou float32
frmt = 'f4'
liste_formats.append(frmt)
#print("value = ",value,type(value))
if isinstance(value,np.int64):
elif isinstance(value,np.int64):
frmt = 'i4'
liste_formats.append(frmt)
#print("value = ",value,type(value))
i+=1
liste_formats.append(frmt)
#print("value = ",value,type(value))
#print('sortie liste_formats ', liste_formats)
return liste_formats
......@@ -289,7 +289,7 @@ def Control_Header_Columns():
return 0
##
def Control_Attributes_Var():
def Control_Attributes_Var(indexdrop):
print("index du fichier ",indexdrop)
if ('unites' in indexdrop) and ('dimension' in indexdrop) and ('standard_name' in indexdrop) and ('long_name' in indexdrop):
cprint('Control Attributs variable OK', color='green', attrs=['bold'])
......@@ -361,27 +361,28 @@ if __name__ == "__main__":
nbfic+=1
#print('test',csvheader)
indexdrop=csvheader.index.dropna() #cette ligne selectionne le header en supprimant toute les valeurs vides (NAN)
indexdrop=csvheader.index.dropna() #selectionne la 1eree colonne du fichier CSV en supprimant toute les valeurs vides (NAN)
#print("Attributs des variables : ",indexdrop)
#on lit les data en sautant les lignes de header
csvdata=pd.read_csv(InputPath+fic, sep=args.separator,skiprows=range(1,len(indexdrop)+1),index_col=0)
## on extrait le nom des colonnes du fichier CSV
cols = csvdata.columns.values
print('cols',cols,"type ",type(cols) )
print('cols',cols)
if (nbfic > 1):
Compare_Files(cols,firstcols) ## verifie que les entetes des fichiers CSV dans le repertoire CsvFiles soient les memes
else:
firstcols = cols
Control_Attributes_Var()
Control_Attributes_Var(indexdrop)
Control_Header_Columns()
Control_Illegal_char(cols)
glob_att = pd.read_csv(fileMetaData, delimiter='=', header=None, index_col=0)
indexlist = glob_att.index
# retourne le type de donnees netcdf : timeserie ou profile ou trajectory
featuretype = glob_att.loc['featuretype'].values[0]
featuretype = glob_att.loc['featuretype'].values[0] # voir si on calcule le featuretype automatiquement?
Control_Global_Attributes()
#
dimension = Get_dimension(fic)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment