Hi Carol,
I can get the desired result by adding "else 0" to the mask1
and mask2 definitions (which I thought was implied):
let mask1 = if y[gy=sst] lt 20 then 1 else 0
let mask2 = if y[gy=sst] gt 0 then 1 else 0
let mask3 = if (mask1 and mask2) then 1 !funnily
enough, no need for "else 0" here
fill/l=1 sst*mask3 !Just Eq to 20N
I can also get it by making the mask in one shot:
let mask = if y[gy=sst] gt 0 and y[gy=sst] lt 20 then 1 else
0
Hope this helps.....but perhaps a ferret expert can clarify
when the "else 0" is needed?
Thanks!
Paul
On Feb 3, 2012, at 12:56 PM, Carol Ladd wrote:
I am trying
to create a lat/lon mask using if statements. I
create two overlapping masks and then want to combine
them. I would assume I should use “or” to combine the
two regions. However, using either “and” or “or” in
the masking definition, I get the same result. Is
this a bug or am I doing something wrong? I am using
Ferret v6.65.
See the
following script for a quick example:
use
coads_climatology
sh d
let mask1=if
y[gy=sst] lt 20 then 1
let mask2=if
y[gy=sst] gt 0 then 1
let mask3 =
if (mask1 and mask2) then 1
let mask4 =
if (mask1 or mask2) then 1
fill/l=1
sst*mask1
pause
fill/l=1
sst*mask2
pause
fill/l=1
sst*mask3
pause
fill/l=1
sst*mask4
q
Thanks.
Carol