[Thread Prev][Thread Next][Index]
Re: [ferret_users] regridding transformation should reduce dimension . . .
Billy,
My example at the end,
yes? shade/z=400 below_z10
properly shaded the horizontal 2-d slice. Likewise for shade/k=1
below_z10. So this answered the question, no?
Andrew
On Tue, Dec 1, 2015 at 1:57 PM, William S. Kessler
<william.s.kessler@xxxxxxxx> wrote:
> Hi Andrew, Ryo -
>
> I don't think that was Ryo's question.
>
> What he wants is for a field defined by @loc (once it is evaluated from a 3-d field) to have the grid of a 2-d field.
>
> Of course Ferret understands it as 2-d (thus it can be plotted with SHADE), but the variable Z10 retains its 3-d grid. He would like it to be 2-d so he can refer to Z10[k=1], and get the single-z-level field.
>
> But I understand a definition like TEMP[Z=@LOC:10] to be comparable to TEMP[Z=400], namely it describes a 2-d field that can be SHADEd, but it remains part of a 3-d grid.
>
> I think it can be converted to 2-d with RESHAPE:
>
> LET Z102D = RESHAPE(Z10,X[GX=TEMP]+Y[GX=TEMP])
>
> (No time to test this!)
>
> Billy
>
>> On Dec 1, 2015, at 9:58 AM, Andrew Wittenberg - NOAA Federal <andrew.wittenberg@xxxxxxxx> wrote:
>>
>> Hi Ryo,
>>
>> Thanks for the clearly-stated question. [All: this is a good example
>> of how to ask a question so that it gets answered quickly. In
>> particular, Ryo provided a working example using one of Ferret's
>> built-in datasets, e.g. levitus_climatology, coads_climatology, or
>> monthly_navy_winds; and also pasted in the Ferret header, which shows
>> what Ferret version he was using, just in case it turned out to be a
>> bug.]
>>
>> Note that Z=@LOC doesn't mean "search from top to bottom for 10 degC."
>> Instead it means "search within the future evaluation context for 10
>> degC."
>>
>> So when you later specify z10[k=1], @LOC dutifully searches only over
>> k=1; and since 10degC isn't found in the top level, it evaluates to
>> "missing."
>>
>> To insulate @LOC from future contexts, specify explicit z-limits:
>>
>> NOAA/PMEL TMAP
>> FERRET v6.951 (10/29/2015)
>> Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 10/30/15
>> 1-Dec-15 12:40
>>
>> yes? use levitus_climatology
>> yes? let z10 = temp[z=0:6000@LOC:10]
>> yes? let below_z10 = z[g=temp] LT z10
>> yes? shade/x=180 below_z10
>> yes? shade/z=400 below_z10
>>
>> The relevant documentation is:
>>
>> http://ferret.pmel.noaa.gov/Ferret/documentation/users-guide/variables-xpressions/XPRESSIONS#_VPINDEXENTRY_528
>>
>> See also the following answer in the Ferret email archives:
>>
>> http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2006/msg00098.html
>>
>> which was found by searching the email archives for "missing context".
>>
>> Andrew
>>
>>
>> On Tue, Dec 1, 2015 at 6:06 AM, Ryo Furue <furue@xxxxxxxxxx> wrote:
>>> Hi Ferret users,
>>>
>>> I'm sure there has been discussions about this issue and I searched
>>> our email archive and found some threads that touch upon it, but
>>> didn't find whether it's "solved" or not.
>>>
>>> The problem is that @LOC (and perhaps other similar transformations)
>>> doesn't properly "eliminate" the axis. For a (x,y,z) temperature
>>> field, say, you can find the depth of an isopycnal:
>>>
>>> yes? z10 = temp[z=@LOC:10]
>>>
>>> but, "SHOW GRID z10", it still has more than one gridpoints. Nevertheless,
>>>
>>> yes? fill z10[k=1] !--> undefined field
>>> yes? fill z10 !--> works!
>>>
>>> See a complete example below. This behavior looks like a bug to me.
>>>
>>> This matters. I wanted to define a mask on the basis of this
>>> variable, something like:
>>>
>>> yes? let below_z10 = if z[g=temp] lt z10 then 1
>>>
>>> but this doesn't work because z10[k=1, 2, 3, . . .] are undefined!
>>>
>>> My temporary solution is
>>>
>>> yes? let grid = x[gx=temp] + y[gy=temp]
>>> yes? let z10_squashed = reshape(z10,grid)
>>> yes? let below_z10 = if z[g=temp] lt z10_squashed then 1
>>>
>>> But, I guess Ferret should do this reshaping for me with @LOC.
>>>
>>> Regards,
>>>
>>> Ryo
>>> ----------------------------------------
>>> $ ferret
>>> NOAA/PMEL TMAP
>>> FERRET v6.94
>>> Darwin 14.1.0 - 02/26/15
>>> 1-Dec-15 19:36
>>>
>>> yes? set data levitus_climatology
>>> yes? let z10 = temp[z=@LOC:10]
>>> yes? show grid z10
>>> GRID GMS1
>>> name axis # pts start end
>>> XAXLEVITR LONGITUDE 360mr 20.5E 19.5E(379.5)
>>> YAXLEVITR LATITUDE 180 r 89.5S 89.5N
>>> ZAXLEVITR DEPTH (m) 20 i- 0 5000
>>> normal T
>>> normal E
>>> normal F
>>> yes? list/x=180/y=0 z10[k=1]
>>> VARIABLE : TEMP[Z=@LOC:10]
>>> FILENAME : levitus_climatology.cdf
>>> FILEPATH : /usr/local/ferret/data/
>>> LONGITUDE: 179.5E
>>> LATITUDE : 0.5S
>>> DEPTH (m): 0 to 5
>>> ....
>>> yes? list/x=180/y=0 z10
>>> VARIABLE : TEMP[Z=@LOC:10]
>>> FILENAME : levitus_climatology.cdf
>>> FILEPATH : /usr/local/ferret/data/
>>> LONGITUDE: 179.5E
>>> LATITUDE : 0.5S
>>> DEPTH (m): 0 to 5000
>>> 371.7
>>> !---- temporary solution ----
>>> yes? let grid = x[gx=temp] + y[gy=temp]
>>> yes? let z10_reshaped = reshape(z10, grid)
>>> yes? show grid z10_reshaped
>>> GRID (G002)
>>> name axis # pts start end
>>> XAXLEVITR LONGITUDE 360mr 20.5E 19.5E(379.5)
>>> YAXLEVITR LATITUDE 180 r 89.5S 89.5N
>>> normal Z
>>> normal T
>>> normal E
>>> normal F
>>> yes? list/x=180/y=0 z10_reshaped[k=1]
>>> VARIABLE : RESHAPE(Z10, GRID)
>>> FILENAME : levitus_climatology.cdf
>>> FILEPATH : /usr/local/ferret/data/
>>> LONGITUDE: 179.5E
>>> LATITUDE : 0.5S
>>> 371.7
>>> yes? list/x=180/y=0 z10_reshaped
>>> VARIABLE : RESHAPE(Z10, GRID)
>>> FILENAME : levitus_climatology.cdf
>>> FILEPATH : /usr/local/ferret/data/
>>> LONGITUDE: 179.5E
>>> LATITUDE : 0.5S
>>> 371.7
>>> yes?
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> William S. Kessler
> NOAA / Pacific Marine Environmental Laboratory
> 7600 Sand Point Way NE
> Seattle WA 98115 USA
>
> william.s.kessler@xxxxxxxx
> Tel: +1 206-526-6221
> Fax: +1 206-526-6744
> Web: http://faculty.washington.edu/kessler/
>
[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce /
NOAA /
OAR /
PMEL /
Ferret
Privacy Policy | Disclaimer | Accessibility Statement