NOAA-PMEL / Ferret

The Ferret program from NOAA/PMEL
https://ferret.pmel.noaa.gov/Ferret/
The Unlicense
55 stars 20 forks source link

need multi-dimensional versions of smoothers, fillers, and transformations, notably @SBX and @FAV #1524

Open karlmsmith opened 6 years ago

karlmsmith commented 6 years ago

Reported by steven.c.hankin on 26 Mar 2015 18:44 UTC The following experiment confirms that @FAV (and @SBX) do not function as multi-dimensional transforms:

    yes? use coads_climatology
    yes? let sst_gappy = IF RANDU(sst) LT 0.9 THEN sst
    yes? shade/l=1 sst_gappy
    yes? set mode diag
    yes? shade/l=1 sst_gappy[x=@fav,y=@fav]
     dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
     getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
     allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
     strip limits reconciliation : EX#1
     eval    EX#1     C:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
     strip --> SST_GAPPY[Y=90S:90N@FAV:3,D=1]
     strip --> SST_GAPPY[X=20E:20E(380)@FAV:3,D=1]
     found   SST-APPY M:  4 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
     doing --> SST_GAPPY[I=1:180@FAV:3,D=1]
     doing --> SST_GAPPY[Y=90S:90N@FAV:3,D=1]
    setting up 2D plot
     -DELETE SST-APPY M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
    PPL plot 3    complete

This contrasts with the way that @AVE does function as multi-dimensional

    yes? list/l=1 sst_gappy[x=@ave,y=@ave]
     -DELETE SST-APPY M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
     -DELETE SST-APPY M:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
     dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
     getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
     allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
     strip limits reconciliation : EX#1
     eval    EX#1     C:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
     strip --> SST_GAPPY[Y=90S:90N@AV4,D=1]
     found   SST-APPY M:  4 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
     doing --> SST_GAPPY[Y=90S:90N@AV4,D=1]
                 VARIABLE : IF RANDU(SST) LT 0.9 THEN SST
                 FILENAME : coads_climatology.cdf
                 FILEPATH : /home/users/tmap/ferret/linux/fer_dsets/data/
                 LONGITUDE: 20E to 20E(380) (XY ave)
                 LATITUDE : 90S to 90N (XY ave)
                 TIME     : 16-JAN 06:00
              19.04

The numerical result of a multidimensional @FAV would be, at any missing value point, to average all of the data available within a surrounding multi-dimensional box.

With @AVE as a pattern, multi-dimensional @SBX and @FAV should not be difficult to implement. (Gets to be more work if we do it for all Ferret fillers and smoothers.)

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2252

karlmsmith commented 6 years ago

Comment by @AnsleyManke on 8 Apr 2015 21:24 UTC See also @VAR, i.e, the remark about regridding using @VAR: [http://ferret.pmel.noaa.gov/Ferret/documentation/users-guide/Grids-Regions/GRIDS#_VPINDEXENTRY_665]

o Note: This transformation is suitable for regridding only in a single axis. When applied simultaneously to two axes, for example, it will compute the variance of the variance. For example, `V[gx=130E:80W:10@VAR, gy=205:20W:10@VAR]` is equivalent to `tmp[X=130E:80W:10@VAR]` where `tmp=V[y=20S:20N:10@VAR]`.
karlmsmith commented 6 years ago

Modified by @AnsleyManke on 8 Apr 2015 21:25 UTC

karlmsmith commented 6 years ago

Comment by @AnsleyManke on 23 Apr 2015 16:59 UTC See also #2233 - allow specifying range in world coordinates