Changeset 25458


Ignore:
Timestamp:
08/25/20 03:56:28 (5 years ago)
Author:
bdef
Message:

CHG:fix to take into account the new shape of solidearth

Location:
issm/trunk-jpl/src/m/contrib/defleurian/netCDF
Files:
2 edited

Legend:

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

    r24530 r25458  
    2929  end
    3030
    31    dimlist=[40,2,md.mesh.numberofelements,md.mesh.numberofvertices,size(md.mesh.elements,2)];
     31   dimlist=[2,md.mesh.numberofelements,md.mesh.numberofvertices,size(md.mesh.elements,2)];
    3232
    3333        %define netcdf dimensions
    34         DimSize(1).index=netcdf.defDim(ncid,'Dimension1',StepNum);
     34        DimSize(1).index=netcdf.defDim(ncid,'Time',StepNum);
    3535        [DimSize(1).name,DimSize(1).value]=netcdf.inqDim(ncid,DimSize(1).index);
    3636        DimValue(1)=DimSize(1).value;
     37        DimSize(2).index=netcdf.defDim(ncid,'UnLim',netcdf.getConstant('NC_UNLIMITED'));
     38        [DimSize(2).name,DimSize(2).value]=netcdf.inqDim(ncid,DimSize(2).index);
     39        DimValue(2)=DimSize(2).value;
    3740        for i=1:5
    3841                if sum(dimlist(i) == DimValue) == 0
    39                         DimSize(i+1).index=netcdf.defDim(ncid,['Dimension' num2str(i+1)],dimlist(i));
    40                         [DimSize(i+1).name,DimSize(i+1).value]=netcdf.inqDim(ncid,DimSize(i+1).index);
    41                         DimValue(i+1)=DimSize(i+1).value;
     42                        DimSize(i+2).index=netcdf.defDim(ncid,['Dimension' num2str(i+2)],dimlist(i));
     43                        [DimSize(i+2).name,DimSize(i+2).value]=netcdf.inqDim(ncid,DimSize(i+2).index);
     44                        DimValue(i+2)=DimSize(i+2).value;
    4245                end
    4346        end
  • issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.py

    r25191 r25458  
    1616        else:
    1717            for r in row:
     18                #print("appending {}".format(r))
    1819                self.data.append(r)
    1920
     
    126127                            if verbose > 4:
    127128                                print("=$$=creating var for {}.{}.{}".format(group, field, subfield))
    128                                 print(lastindex)
     129                                print("last index of the list is {}".format(lastindex))
    129130                            StackedVar = SqueezeVar(StackedVar.finalize(int(lastindex)))
    130131                            DimDict, ncvar = CreateVar(NCData, StackedVar, subfield, Subgroup, DimDict)
     
    156157                if ncvar is not None:
    157158                    FillVar(ncvar, Var)
     159            # this is a multi layered group thta should not be an "else"
    158160            else:
    159161                NCgroup.__setattr__('classtype', str(group))
    160162                Subgroup = NCgroup.createGroup(str(field))
    161                 Subgroup.__setattr__('classtype', md.__dict__[group].__class__.__name__)
     163                if str(group) == 'solidearth' and str(field) == 'settings':
     164                    Subgroup.__setattr__('classtype', 'solidearthsettings')
     165                else:
     166                    Subgroup.__setattr__('classtype', str(field))
    162167                subfields = dict.keys(md.__dict__[group].__dict__[field].__dict__)
    163168                for subfield in subfields:
     
    260265    try:
    261266        val_type = str(invar.dtype)
     267        if val_type.startswith('<U'):
     268            val_type = 'stringarray'
    262269    except AttributeError:
    263270        val_type = type(invar)
     
    267274    else:
    268275        val_shape = np.shape(invar)
     276
    269277    # Now fill up variable
    270278    # treating list as string table
     
    275283            for elt in range(0, val_shape[0]):
    276284                ncvar[elt] = invar[elt]
     285    # writing string table
     286    elif val_type == "stringarray":
     287        for elt in range(0, val_shape[0]):
     288            ncvar[elt] = invar[elt]
    277289    # treating bool tables as string tables
    278290    elif val_type == 'bool':
Note: See TracChangeset for help on using the changeset viewer.