Commit 0d5207b2 authored by libes's avatar libes
Browse files

rajout test dans get_dimension pour verifier si dimension presente

parent 9a44bffd
......@@ -69,16 +69,22 @@ def Generate_NetCDF(csvfile):
return ncFile
##
def Get_dimension():
def Get_dimension(fic):
#cherche la colonne dans le fichier CSV qui contient 1 à la ligne dimension, pour savoir quelle est la dimension
# des variables du fichier NetCDF
listdim=[]
finddim=False
dim = Index_selector('dimension')
for key,value in dim.items(): #pandas series can be treated like dictionnaries
if (value =='1'):
dim = key
listdim.append(dim)
finddim=True
if (not finddim):
cprint("Dimensions absente dans le fichier CSV "+fic,color='red',attrs=['bold'] )
sys.exit(0)
cprint("Dimensions pour le fichier NetCDF "+str(key),color='green',attrs=['bold'] )
return dim
......@@ -159,7 +165,7 @@ def Create_Write_Variables(dim, csvfile):
i = 0 # index de colonnes
for col in cols:
#print("col ",'-',col,'-')
print("Traitement col ",'-',col,'-')
if (col == "DateTime"):
frmt[i]='i4' #on force la date en Int car on l'a convertie en Int avec la fonction Convert_Datenum()
......@@ -167,6 +173,7 @@ def Create_Write_Variables(dim, csvfile):
## creation des variables NetCDf avec le nom des colonnes du fichier CSV
colnc=col.strip()
#print("dim ",dim)
tabcol = ncFile.createVariable(colnc, frmt[i], dim) #on cree la variable NetCDF et on l'associe a un tableau tabcol
## rajout de certains attributs Netcdf en fonction des variables
......@@ -174,7 +181,6 @@ def Create_Write_Variables(dim, csvfile):
## tabcol.toto = toto[i]
# attributs standards pour toutes les variables
#ncFile.setncattr('st',142)
tabcol.units = units[i]
tabcol.long_name = long_name[i]
tabcol.standard_name = standard_name[i]
......@@ -193,6 +199,7 @@ def Create_Write_Variables(dim, csvfile):
#print("valeur ",value.values[0])
#print("** longueur tableau: ",len(value),"long chaine ",l)
tabcol._Encoding = 'ascii'
#print("** S1 col = ",col)
string_values = np.array(csvdata[col].values,dtype=frmt[i])
## ecriture des colonnes de valeurs CSV dans les tableaux tabcol[] des variables de Netcdf
......@@ -202,8 +209,10 @@ def Create_Write_Variables(dim, csvfile):
else:
#print("*** ",csvdata[col].values)
if ( frmt[i][0] =='S'):
#print("** S2 col = ",col)
tabcol[:] = string_values
else:
#print("** cas gen col = ",col)
tabcol[:] = csvdata[col].tolist() # on ecrit les valeurs des colonnes du fichier CSV dans le tableau de la variable NetCDF
i += 1
......@@ -281,7 +290,8 @@ def Control_Header_Columns():
##
def Control_Attributes_Var():
if ('unites'in indexdrop) and ('dimension'in indexdrop) and ('standard_name'in indexdrop) and ('long_name'in 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'])
else:
cprint("Control failed!\nIl manque un des index unites|dimension|standard_name|long_name dans le ficher:"+fic, color='red', attrs=['bold'])
......@@ -367,7 +377,7 @@ if __name__ == "__main__":
featuretype = glob_att.loc['featuretype'].values[0]
Control_Global_Attributes()
#
dimension = Get_dimension()
dimension = Get_dimension(fic)
#
ncFile = Generate_NetCDF(OutputPath+fic)
Create_Dimensions(dimension)
......
......@@ -11,4 +11,4 @@ history= history du projet
featuretype=timeseries
cdm_data_type=timeseries
cdm_timeseries_variables=depth,latitude,longitude
Conventions=CF-1,6, ACDD-1.3
Conventions=CF-1.6, ACDD-1.3
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