Changeset 13171


Ignore:
Timestamp:
08/28/12 11:28:18 (13 years ago)
Author:
jschierm
Message:

CHG: Change Python conditional list comprehensions to numpy.nonzero() for clarity where possible.

Location:
issm/trunk-jpl/src/m
Files:
4 edited

Legend:

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

    r13043 r13171  
    187187                #marshall ice front
    188188                data=self.icefront
    189                 data[[i for i,item in enumerate(data[:,-1]) if item==0],-1]=AirEnum()
    190                 data[[i for i,item in enumerate(data[:,-1]) if item==1],-1]=WaterEnum()
    191                 data[[i for i,item in enumerate(data[:,-1]) if item==2],-1]=IceEnum()
     189                data[numpy.nonzero(data[:,-1]==0),-1]=AirEnum()
     190                data[numpy.nonzero(data[:,-1]==1),-1]=WaterEnum()
     191                data[numpy.nonzero(data[:,-1]==2),-1]=IceEnum()
    192192                WriteData(fid,'data',data,'enum',DiagnosticIcefrontEnum(),'format','DoubleMat','mattype',3)
    193193        # }}}
  • issm/trunk-jpl/src/m/classes/flowequation.py

    r13049 r13171  
    9090                #convert approximations to enums
    9191                data=self.vertex_equation
    92                 data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum()
    93                 data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum()
    94                 data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum()
    95                 data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum()
    96                 data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum()
    97                 data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum()
    98                 data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum()
    99                 data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum()
    100                 data[[i for i,item in enumerate(data) if item==8]]=L1L2ApproximationEnum()
     92                data[numpy.nonzero(data==0)]=NoneApproximationEnum()
     93                data[numpy.nonzero(data==1)]=HutterApproximationEnum()
     94                data[numpy.nonzero(data==2)]=MacAyealApproximationEnum()
     95                data[numpy.nonzero(data==3)]=PattynApproximationEnum()
     96                data[numpy.nonzero(data==4)]=StokesApproximationEnum()
     97                data[numpy.nonzero(data==5)]=MacAyealPattynApproximationEnum()
     98                data[numpy.nonzero(data==6)]=MacAyealStokesApproximationEnum()
     99                data[numpy.nonzero(data==7)]=PattynStokesApproximationEnum()
     100                data[numpy.nonzero(data==8)]=L1L2ApproximationEnum()
    101101                WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
    102102                data=self.element_equation
    103                 data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum()
    104                 data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum()
    105                 data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum()
    106                 data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum()
    107                 data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum()
    108                 data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum()
    109                 data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum()
    110                 data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum()
    111                 data[[i for i,item in enumerate(data) if item==8]]=L1L2ApproximationEnum()
     103                data[numpy.nonzero(data==0)]=NoneApproximationEnum()
     104                data[numpy.nonzero(data==1)]=HutterApproximationEnum()
     105                data[numpy.nonzero(data==2)]=MacAyealApproximationEnum()
     106                data[numpy.nonzero(data==3)]=PattynApproximationEnum()
     107                data[numpy.nonzero(data==4)]=StokesApproximationEnum()
     108                data[numpy.nonzero(data==5)]=MacAyealPattynApproximationEnum()
     109                data[numpy.nonzero(data==6)]=MacAyealStokesApproximationEnum()
     110                data[numpy.nonzero(data==7)]=PattynStokesApproximationEnum()
     111                data[numpy.nonzero(data==8)]=L1L2ApproximationEnum()
    112112                WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2)
    113113        # }}}
  • issm/trunk-jpl/src/m/classes/inversion.py

    r13093 r13171  
    179179                num_cost_functions=size(self.cost_functions,1)
    180180                data=self.cost_functions
    181                 data[[i for i,item in enumerate(data) if item==101]]=SurfaceAbsVelMisfitEnum()
    182                 data[[i for i,item in enumerate(data) if item==102]]=SurfaceRelVelMisfitEnum()
    183                 data[[i for i,item in enumerate(data) if item==103]]=SurfaceLogVelMisfitEnum()
    184                 data[[i for i,item in enumerate(data) if item==104]]=SurfaceLogVxVyMisfitEnum()
    185                 data[[i for i,item in enumerate(data) if item==105]]=SurfaceAverageVelMisfitEnum()
    186                 data[[i for i,item in enumerate(data) if item==201]]=ThicknessAbsMisfitEnum()
    187                 data[[i for i,item in enumerate(data) if item==501]]=DragCoefficientAbsGradientEnum()
    188                 data[[i for i,item in enumerate(data) if item==502]]=RheologyBbarAbsGradientEnum()
    189                 data[[i for i,item in enumerate(data) if item==503]]=ThicknessAbsGradientEnum()
    190                 data[[i for i,item in enumerate(data) if item==504]]=ThicknessAlongGradientEnum()
    191                 data[[i for i,item in enumerate(data) if item==505]]=ThicknessAcrossGradientEnum()
     181                data[numpy.nonzero(data==101)]=SurfaceAbsVelMisfitEnum()
     182                data[numpy.nonzero(data==102)]=SurfaceRelVelMisfitEnum()
     183                data[numpy.nonzero(data==103)]=SurfaceLogVelMisfitEnum()
     184                data[numpy.nonzero(data==104)]=SurfaceLogVxVyMisfitEnum()
     185                data[numpy.nonzero(data==105)]=SurfaceAverageVelMisfitEnum()
     186                data[numpy.nonzero(data==201)]=ThicknessAbsMisfitEnum()
     187                data[numpy.nonzero(data==501)]=DragCoefficientAbsGradientEnum()
     188                data[numpy.nonzero(data==502)]=RheologyBbarAbsGradientEnum()
     189                data[numpy.nonzero(data==503)]=ThicknessAbsGradientEnum()
     190                data[numpy.nonzero(data==504)]=ThicknessAlongGradientEnum()
     191                data[numpy.nonzero(data==505)]=ThicknessAcrossGradientEnum()
    192192                WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
    193193                WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
  • issm/trunk-jpl/src/m/parameterization/setflowequation.py

    r13058 r13171  
    150150                        elist = elist + numpy.any(numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    151151                        elist = elist - numpy.any(numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1),axis=1)
    152                         pos1=[i for i,item in enumerate(elist) if item==1]
     152                        pos1=numpy.nonzero(elist==1)
    153153                        macayealflag[pos[pos1]]=1
    154154                        macayealpattynflag[pos[pos1]]=0
    155                         pos2=[i for i,item in enumerate(elist) if item==-1]
     155                        pos2=numpy.nonzero(elist==-1)
    156156                        pattynflag[pos[pos2]]=1
    157157                        macayealpattynflag[pos[pos2]]=0
     
    182182                        elist = elist + numpy.any(numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    183183                        elist = elist - numpy.any(numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    184                         pos1=[i for i,item in enumerate(elist) if item==1]
     184                        pos1=numpy.nonzero(elist==1)
    185185                        stokesflag[pos[pos1]]=1
    186186                        pattynstokesflag[pos[pos1]]=0
    187                         pos2=[i for i,item in enumerate(elist) if item==-1]
     187                        pos2=numpy.nonzero(elist==-1)
    188188                        pattynflag[pos[pos2]]=1
    189189                        pattynstokesflag[pos[pos2]]=0
     
    214214                        elist = elist + numpy.any(numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    215215                        elist = elist - numpy.any(numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1),axis=1)
    216                         pos1=[i for i,item in enumerate(elist) if item==1]
     216                        pos1=numpy.nonzero(elist==1)
    217217                        macayealflag[pos[pos1]]=1
    218218                        macayealstokesflag[pos[pos1]]=0
    219                         pos2=[i for i,item in enumerate(elist) if item==-1]
     219                        pos2=numpy.nonzero(elist==-1)
    220220                        stokesflag[pos[pos2]]=1
    221221                        macayealstokesflag[pos[pos2]]=0
Note: See TracChangeset for help on using the changeset viewer.