Changeset 21251


Ignore:
Timestamp:
10/10/16 06:50:35 (8 years ago)
Author:
bdef
Message:

BUG:minor fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.py

    r21247 r21251  
    4040
    4141        #get all model classes and create respective groups
    42         typelist=[bool,str,unicode,int,float,complex,numpy.ndarray,collections.OrderedDict]
     42        typelist=[bool,str,unicode,int,float,complex,dict,
     43                                                collections.OrderedDict,
     44                                                numpy.int64,numpy.ndarray,numpy.float64]
    4345        groups=dict.keys(md.__dict__)
    4446        for group in groups:
     
    8082                                                        subfields=dict.keys(md.__dict__[group].__dict__[field].__getitem__(listindex))
    8183                                                for subfield in subfields:
    82                                                         try:
    83                                                                 Var=md.__dict__[group].__dict__[field].__getitem__(listindex).__dict__[subfield]
    84                                                         except AttributeError:
    85                                                                 Var=md.__dict__[group].__dict__[field].__getitem__(listindex)[subfield]
    86                                                         DimDict=CreateVar(NCData,Var,subfield,Listgroup,DimDict,False,md.__dict__[group],field,listindex)
     84                                                        if subfield!='outlog':
     85                                                                try:
     86                                                                        Var=md.__dict__[group].__dict__[field].__getitem__(listindex).__dict__[subfield]
     87                                                                except AttributeError:
     88                                                                        Var=md.__dict__[group].__dict__[field].__getitem__(listindex)[subfield]
     89                                                                DimDict=CreateVar(NCData,Var,subfield,Listgroup,DimDict,False,md.__dict__[group],field,listindex)
    8790                        #No subgroup, we directly treat the variable
    8891                        elif type(md.__dict__[group].__dict__[field]) in typelist:
     
    9194                                DimDict=CreateVar(NCData,Var,field,NCgroup,DimDict,False)
    9295                        else:
     96                                print('treating {}.{} of type {}'.format(group,field,type(md.__dict__[group].__dict__[field])))
    9397                                NCgroup.__setattr__('classtype', str(group))
    9498                                Subgroup=NCgroup.createGroup(str(field))
     
    96100                                subfields=dict.keys(md.__dict__[group].__dict__[field].__dict__)
    97101                                for subfield in subfields:
    98                                         if str(subfield)!='errlog' and str(subfield)!='outlog' and str(subfield)!='SolutionType':
     102                                        if str(subfield)!='outlog':
    99103                                                Var=md.__dict__[group].__dict__[field].__dict__[subfield]
    100104                                                DimDict=CreateVar(NCData,Var,subfield,Subgroup,DimDict,False)
     
    118122        TypeDict = {float:'f8',
    119123                                                        'float64':'f8',
     124                                                        numpy.float64:'f8',
    120125                                                        int:'i8',
    121126                                                        'int64':'i8',
     127                                                        numpy.int64:'i8',
    122128                                                        str:'str',
    123129                                                        dict:'str'}
     
    149155                        ncvar[elt] = str(var[elt])
    150156        #treating dictionaries as tables of strings
    151         elif val_type==collections.OrderedDict:
     157        elif val_type==collections.OrderedDict or val_type==dict:
    152158                dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
    153159                ncvar = Group.createVariable(str(field),'str',dimensions,zlib=True)
     
    195201                                        DimDict[len(NewDim)]='DimNum'+str(index)
    196202                                        output=output+[str(DimDict[shape[dim]])]
    197                 elif type(shape[0])==str:#dealling with a dictionnary
     203                elif type(shape[0])==str or type(shape[0])==unicode:#dealling with a dictionnary
    198204                        try:
    199205                                #dimension5 is 2 to treat with dict
Note: See TracChangeset for help on using the changeset viewer.