Changeset 17779


Ignore:
Timestamp:
04/18/14 17:57:45 (11 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixing problem with cost function being marshalled (data is changing as it is converted)

Location:
issm/trunk-jpl/src/m/classes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/inversion.m

    r17720 r17779  
    243243                        num_cost_functions=size(obj.cost_functions,2);
    244244                        data=obj.cost_functions;
    245                         pos=find(data==101); data(pos)=SurfaceAbsVelMisfitEnum();
    246                         pos=find(data==102); data(pos)=SurfaceRelVelMisfitEnum();
    247                         pos=find(data==103); data(pos)=SurfaceLogVelMisfitEnum();
    248                         pos=find(data==104); data(pos)=SurfaceLogVxVyMisfitEnum();
    249                         pos=find(data==105); data(pos)=SurfaceAverageVelMisfitEnum();
    250                         pos=find(data==201); data(pos)=ThicknessAbsMisfitEnum();
    251                         pos=find(data==501); data(pos)=DragCoefficientAbsGradientEnum();
    252                         pos=find(data==502); data(pos)=RheologyBbarAbsGradientEnum();
    253                         pos=find(data==503); data(pos)=ThicknessAbsGradientEnum();
    254                         pos=find(data==504); data(pos)=ThicknessAlongGradientEnum();
    255                         pos=find(data==505); data(pos)=ThicknessAcrossGradientEnum();
    256                         pos=find(data==506); data(pos)=BalancethicknessMisfitEnum();
     245                        pos=find(obj.cost_functions==101); data(pos)=SurfaceAbsVelMisfitEnum();
     246                        pos=find(obj.cost_functions==102); data(pos)=SurfaceRelVelMisfitEnum();
     247                        pos=find(obj.cost_functions==103); data(pos)=SurfaceLogVelMisfitEnum();
     248                        pos=find(obj.cost_functions==104); data(pos)=SurfaceLogVxVyMisfitEnum();
     249                        pos=find(obj.cost_functions==105); data(pos)=SurfaceAverageVelMisfitEnum();
     250                        pos=find(obj.cost_functions==201); data(pos)=ThicknessAbsMisfitEnum();
     251                        pos=find(obj.cost_functions==501); data(pos)=DragCoefficientAbsGradientEnum();
     252                        pos=find(obj.cost_functions==502); data(pos)=RheologyBbarAbsGradientEnum();
     253                        pos=find(obj.cost_functions==503); data(pos)=ThicknessAbsGradientEnum();
     254                        pos=find(obj.cost_functions==504); data(pos)=ThicknessAlongGradientEnum();
     255                        pos=find(obj.cost_functions==505); data(pos)=ThicknessAcrossGradientEnum();
     256                        pos=find(obj.cost_functions==506); data(pos)=BalancethicknessMisfitEnum();
    257257                        WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
    258258                        WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
  • issm/trunk-jpl/src/m/classes/inversion.py

    r17497 r17779  
    173173                num_cost_functions=numpy.size(self.cost_functions)
    174174                data=copy.deepcopy(self.cost_functions)
    175                 data=[SurfaceAbsVelMisfitEnum()        if x==101 else x for x in data]
    176                 data=[SurfaceRelVelMisfitEnum()        if x==102 else x for x in data]
    177                 data=[SurfaceLogVelMisfitEnum()        if x==103 else x for x in data]
    178                 data=[SurfaceLogVxVyMisfitEnum()       if x==104 else x for x in data]
    179                 data=[SurfaceAverageVelMisfitEnum()    if x==105 else x for x in data]
    180                 data=[ThicknessAbsMisfitEnum()         if x==201 else x for x in data]
    181                 data=[DragCoefficientAbsGradientEnum() if x==501 else x for x in data]
    182                 data=[RheologyBbarAbsGradientEnum()    if x==502 else x for x in data]
    183                 data=[ThicknessAbsGradientEnum()       if x==503 else x for x in data]
    184                 data=[ThicknessAlongGradientEnum()     if x==504 else x for x in data]
    185                 data=[ThicknessAcrossGradientEnum()    if x==505 else x for x in data]
     175                data=[SurfaceAbsVelMisfitEnum()        if x==101 else x for x in self.cost_functions]
     176                data=[SurfaceRelVelMisfitEnum()        if x==102 else x for x in self.cost_functions]
     177                data=[SurfaceLogVelMisfitEnum()        if x==103 else x for x in self.cost_functions]
     178                data=[SurfaceLogVxVyMisfitEnum()       if x==104 else x for x in self.cost_functions]
     179                data=[SurfaceAverageVelMisfitEnum()    if x==105 else x for x in self.cost_functions]
     180                data=[ThicknessAbsMisfitEnum()         if x==201 else x for x in self.cost_functions]
     181                data=[DragCoefficientAbsGradientEnum() if x==501 else x for x in self.cost_functions]
     182                data=[RheologyBbarAbsGradientEnum()    if x==502 else x for x in self.cost_functions]
     183                data=[ThicknessAbsGradientEnum()       if x==503 else x for x in self.cost_functions]
     184                data=[ThicknessAlongGradientEnum()     if x==504 else x for x in self.cost_functions]
     185                data=[ThicknessAcrossGradientEnum()    if x==505 else x for x in self.cost_functions]
    186186                WriteData(fid,'data',numpy.array(data).reshape(1,-1),'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
    187187                WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
Note: See TracChangeset for help on using the changeset viewer.