Changeset 752 in lmdz_wrf


Ignore:
Timestamp:
May 4, 2016, 11:54:10 AM (9 years ago)
Author:
lfita
Message:

Including `newsumvals' on all the types of weights in 'SpatialWeightedMean?'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var_tools.py

    r751 r752  
    1219812198            longvarname = 'using inverse of variable ' + varname + ' as space weights'
    1219912199            if len(loopshape) == 1:
    12200                 newvals = np.ones((loopshape[0]), dtype=np.float)*fillValueF
     12200                newvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
     12201                newsumvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
    1220112202                for id1 in range(loopshape[0]):
    1220212203                    slicevalues = SliceVar(iovar,dimsloop,[id1])
    1220312204                    slicewgt = SliceVar(iovarwgt,dimsloop,[id1])
    1220412205                    TOTsumwgt = np.sum(1./ivarwgtv[tuple(slicewgt)])
     12206                    newsumvals[id1] = np.sum(ivarv[tuple(slicevalues)] /             \
     12207                      ivarwgtv[tuple(slicewgt)])
    1220512208                    newvals[id1] = np.sum(ivarv[tuple(slicevalues)] /                \
    1220612209                      ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
    1220712210            elif len(loopshape) == 2:
    1220812211                newvals = np.ones((loopshape[0],loopshape[1]),dtype=np.float)*       \
    12209                   fillValueF
     12212                  gen.fillValueF
     12213                newsumvals = np.ones((loopshape[0],loopshape[1]),dtype=np.float)*    \
     12214                  gen.fillValueF
    1221012215                for id1 in range(loopshape[0]):
    1221112216                    for id2 in range(loopshape[1]):
     
    1221312218                        slicewgt = SliceVar(iovarwgt,dimsloop,[id1,id2])
    1221412219                        TOTsumwgt = np.sum(1./ivarwgtv[tuple(slicewgt)])
     12220                        newsumvals[id1,id2] = np.sum(ivarv[tuple(slicevalues)] /     \
     12221                          ivarwgtv[tuple(slicewgt)])
    1221512222                        newvals[id1,id2] = np.sum(ivarv[tuple(slicevalues)] /        \
    1221612223                          ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
    1221712224            elif len(loopshape) == 3:
    1221812225                newvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),          \
    12219                   dtype=np.float)*fillValueF
     12226                  dtype=np.float)*gen.fillValueF
     12227                newsumvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),       \
     12228                  dtype=np.float)*gen.fillValueF
    1222012229                for id1 in range(loopshape[0]):
    1222112230                    for id2 in range(loopshape[1]):
     
    1222412233                            slicewgt = SliceVar(iovarwgt,dimsloop,[id1,id2,id3])
    1222512234                            TOTsumwgt = np.sum(1./ivarwgtv[tuple(slicewgt)])
     12235                            newsumvals[id1,id2,id3]=np.sum(ivarv[tuple(slicevalues)]/\
     12236                              ivarwgtv[tuple(slicewgt)])
    1222612237                            newvals[id1,id2,id3]= np.sum(ivarv[tuple(slicevalues)]/  \
    1222712238                              ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
     
    1223012241            longvarname = 'using variable ' + varname + ' as space weights'
    1223112242            if len(loopshape) == 1:
    12232                 newvals = np.ones((loopshape[0]), dtype=np.float)*fillValueF
     12243                newvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
     12244                newsumvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
    1223312245                for id1 in range(loopshape[0]):
    1223412246                    slicevalues = SliceVar(iovar,dimsloop,[id1])
    1223512247                    slicewgt = SliceVar(iovarwgt,dimsloop,[id1])
    1223612248                    TOTsumwgt = np.sum(ivarwgtv[tuple(slicewgt)])
     12249                    newsumvals[id1] = np.sum(ivarv[tuple(slicevalues)]*              \
     12250                      ivarwgtv[tuple(slicewgt)])
    1223712251                    newvals[id1] = np.sum(ivarv[tuple(slicevalues)]*                 \
    1223812252                      ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
    1223912253            elif len(loopshape) == 2:
    1224012254                newvals = np.ones((loopshape[0],loopshape[1]), dtype=np.float)*      \
    12241                   fillValueF
     12255                  gen.fillValueF
     12256                newsumvals = np.ones((loopshape[0],loopshape[1]), dtype=np.float)*   \
     12257                  gen.fillValueF
    1224212258                for id1 in range(loopshape[0]):
    1224312259                    for id2 in range(loopshape[1]):
     
    1224512261                        slicewgt = SliceVar(iovarwgt,dimsloop,[id1,id2])
    1224612262                        TOTsumwgt = np.sum(ivarwgtv[tuple(slicewgt)])
     12263                        newsumvals[id1,id2] = np.sum(ivarv[tuple(slicevalues)]*      \
     12264                          ivarwgtv[tuple(slicewgt)])
    1224712265                        newvals[id1,id2] = np.sum(ivarv[tuple(slicevalues)]*         \
    1224812266                          ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
    1224912267            elif len(loopshape) == 3:
    1225012268                newvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),          \
    12251                   dtype=np.float)*fillValueF
     12269                  dtype=np.float)*gen.fillValueF
     12270                newsumvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),       \
     12271                  dtype=np.float)*gen.fillValueF
    1225212272                for id1 in range(loopshape[0]):
    1225312273                    for id2 in range(loopshape[1]):
     
    1225612276                            slicewgt = SliceVar(iovarwgt,dimsloop,[id1,id2,id3])
    1225712277                            TOTsumwgt = np.sum(ivarwgtv[tuple(slicewgt)])
     12278                            newsumvals[id1,id2,id3]=np.sum(ivarv[tuple(slicevalues)]*\
     12279                              ivarwgtv[tuple(slicewgt)])
    1225812280                            newvals[id1,id2,id3]=np.sum(ivarv[tuple(slicevalues)]*   \
    1225912281                              ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
     
    1226412286            if len(loopshape) == 1:
    1226512287                newvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
     12288                newsumvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
    1226612289                for id1 in range(loopshape[0]):
    1226712290                    slicevalues = SliceVar(iovar,dimsloop,[id1])
    1226812291                    slicewgt = SliceVar(iovarwgt1,dimsloop,[id1])
    1226912292                    TOTsumwgt = np.sum(1./ivarwgtv[tuple(slicewgt)])
     12293                    newsumvals[id1] = np.sum(ivarv[tuple(slicevalues)] /             \
     12294                      ivarwgtv[tuple(slicewgt)])
    1227012295                    newvals[id1] = np.sum(ivarv[tuple(slicevalues)] /                \
    1227112296                      ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
    1227212297            elif len(loopshape) == 2:
    1227312298                newvals = np.ones((loopshape[0],loopshape[1]),dtype=np.float)*       \
     12299                  gen.fillValueF
     12300                newsumvals = np.ones((loopshape[0],loopshape[1]),dtype=np.float)*    \
    1227412301                  gen.fillValueF
    1227512302                for id1 in range(loopshape[0]):
     
    1227812305                        slicewgt = SliceVar(iovarwgt,dimsloop,[id1,id2])
    1227912306                        TOTsumwgt = np.sum(1./ivarwgtv[tuple(slicewgt)])
     12307                        newsumvals[id1,id2] = np.sum(ivarv[tuple(slicevalues)] /     \
     12308                          ivarwgtv[tuple(slicewgt)])
    1228012309                        newvals[id1,id2] = np.sum(ivarv[tuple(slicevalues)] /        \
    1228112310                          ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
    1228212311            elif len(loopshape) == 3:
    1228312312                newvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),          \
     12313                  dtype=np.float)*gen.fillValueF
     12314                newsumvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),       \
    1228412315                  dtype=np.float)*gen.fillValueF
    1228512316                for id1 in range(loopshape[0]):
     
    1228912320                            slicewgt = SliceVar(iovarwgt,dimsloop,[id1,id2,id3])
    1229012321                            TOTsumwgt = np.sum(1./ivarwgtv[tuple(slicewgt)])
     12322                            newsumvals[id1,id2,id3]=np.sum(ivarv[tuple(slicevalues)]/\
     12323                              ivarwgtv[tuple(slicewgt)])
    1229112324                            newvals[id1,id2,id3]= np.sum(ivarv[tuple(slicevalues)]/  \
    1229212325                              ivarwgtv[tuple(slicewgt)]) / TOTsumwgt
     
    1231512348        TOTsumwgt = np.sum(ivarwgtv)
    1231612349
    12317         print 'Lluis len(looopshape):', len(loopshape)
    1231812350        if len(loopshape) == 1:
    12319             newvals = np.ones((loopshape[0]), dtype=np.float)*fillValueF
    12320             newsumvals = np.ones((loopshape[0]), dtype=np.float)*fillValueF
     12351            newvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
     12352            newsumvals = np.ones((loopshape[0]), dtype=np.float)*gen.fillValueF
    1232112353            for id1 in range(loopshape[0]):
    1232212354                slicevalues = SliceVar(iovar,dimsloop,[id1])
     
    1232712359                newvals[id1] = newsumvals[id1]/TOTsumwgt
    1232812360        elif len(loopshape) == 2:
    12329             newvals = np.ones((loopshape[0],loopshape[1]), dtype=np.float)*fillValueF
    12330             newsumvals = np.ones((loopshape[0],loopshape[1]), dtype=np.float)*fillValueF
     12361            newvals = np.ones((loopshape[0],loopshape[1]),                           \
     12362              dtype=np.float)*gen.fillValueF
     12363            newsumvals = np.ones((loopshape[0],loopshape[1]),                        \
     12364              dtype=np.float)*gen.fillValueF
    1233112365            for id1 in range(loopshape[0]):
    1233212366                for id2 in range(loopshape[1]):
     
    1233912373        elif len(loopshape) == 3:
    1234012374            newvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),              \
    12341               dtype=np.float)*fillValueF
     12375              dtype=np.float)*gen.fillValueF
    1234212376            newsumvals = np.ones((loopshape[0],loopshape[1],loopshape[2]),           \
    12343               dtype=np.float)*fillValueF
     12377              dtype=np.float)*gen.fillValueF
    1234412378            for id1 in range(loopshape[0]):
    1234512379                for id2 in range(loopshape[1]):
Note: See TracChangeset for help on using the changeset viewer.