[Thread Prev][Thread Next][Index]

Fwd: Re: [ferret_users] Masking and set var/bad = 0



---------- Forwarded message ----------
From: joshab1995@xxxxxxxxxxx
Date: 24 Jun 2019 18:40
Subject: Re: [ferret_users] Masking and set var/bad = 0
To: "Ansley C. Manke" <ansley.b.manke@xxxxxxxx>
Cc:

Hi Ansley,

Thanks again. 

So i do want them to be missing but when i exclude the 0 the entire output is empty, and then when i set 0 as bad the whole thing disappears too.

Going to try it with the coads later and see what happens. It might be because some of the months are zero in terms of the strat value and so its getting confused about which section of my calculations to mask? 

I'll feed back my results when i get a chance to log on later. 

Many thanks, 

Josh

On 24 Jun 2019 18:14, "Ansley C. Manke" <ansley.b.manke@xxxxxxxx> wrote:

Oh yes of course if you want the values to be valid data with a value of 0.  If a shade plot of this looks correct

LET no_strat = if stratified[l=1:12@sum] eq 0 then 1 else 0

then I'm not sure why

set var/bad=0 no_strat

wouldn't give you what you expect.

Can you see a difference in what you're trying and this example:

yes? use coads_climatology
yes? let mymask = if sst[L=@ave] gt 15 then 1 else 0

yes? shade/lev=(0,1,1)/key=center mymask

yes? set var/bad=0 mymask
yes? shade mymask


On 6/22/2019 8:07 AM, JoshAB1995@xxxxxxxxxxx wrote:

Hi Ansley,

 

Thanks for this. It makes sense, however by removing the else 0, ferret doesn’t display anything in the output [fill/sha etc]. When I add in the else 0 then it will display the output.

 

Even when using a variation on your equation:

 

LET/bad=-9999 no_strat = if stratified[l=1:12@sum] eq 0 then 1 else (-9999)

 

The output shows no valid data... Bit stuck, maybe it’s something to do with the land values? (which are selected by my l=1:12@sum eq 0)

 

Thanks again,

Josh

 

Sent from Mail for Windows 10

 


From: owner-ferret_users@xxxxxxxx <owner-ferret_users@xxxxxxxx> on behalf of Ansley C. Manke <ansley.b.manke@xxxxxxxx>
Sent: Friday, June 21, 2019 11:04:10 PM
To: ferret_users@xxxxxxxx
Subject: Re: [ferret_users] Masking and set var/bad = 0
 

Hi Josh,

Zero is a bit problematic for use as a bad-value, especially when your data contains zeros.  Try it this way:

   LET no_strat = if stratified[l=1:12@sum] eq 0 then 1

You don't need an "else" here.  By default in an IF, if there is no else it's treated as "else missing".  As I've written that command, the default missing-value of -1.e34 will be used for missing-data. If you want to assign a particular missing-value, then you can do that right on the LET command.

   LET/bad=-9999 no_strat = if stratified[l=1:12@sum] eq 0 then 1

Also have a look in the documentation about the distinction between IF and IFV.    There can be valid values of 0 in data.   Here's a variable with one value that's 0 and another that's missing.

yes? let var = {6, 2, 0, 2, , 3}

yes? list IF var then 1
             VARIABLE : IF VAR THEN 1
             SUBSET   : 6 points (X)
 1   / 1:  1.000
 2   / 2:  1.000
 3   / 3:   ....
 4   / 4:  1.000
 5   / 5:   ....
 6   / 6:  1.000

yes? list IFV var then 1
             VARIABLE : IFV VAR THEN 1
             SUBSET   : 6 points (X)
 1   / 1:  1.000
 2   / 2:  1.000
 3   / 3:  1.000
 4   / 4:  1.000
 5   / 5:   ....
 6   / 6:  1.000

By the way, you shouldn't be able to X as a variable name. (Did Ferret really let you use that command? Or were you just simplifying for writing the question? A command with  LET X = should return an error, " **ERROR: command syntax: cannot define: X")   X is a reserved keyword , used to refer to the x coordinate of the grid, so it's best to use other variable names.



On 6/21/2019 8:40 AM, JoshAB1995@xxxxxxxxxxx wrote:

Good Afternoon,

 

I’m having an issue using the set var/bad = 0 dataset command. I’ve defined some new regions as the following, to indicate presence or absence of stratification:

 

let X = if stratified[l=1:12@sum] eq 0 then 1 else 0

let Y = if stratified[l=10:2@sum] eq 0 and stratified[l=3:9@sum] gt 0 and stratified[l=3:9@sum] le 3 then 1 else 0

 

So this creates a map of 1’s where the region matches what is described in the mask, and 0’s where it doesn’t.

 

So now I try to mask out all of the 0’s so that I can create shapefiles of the areas matching my description using:

 

Set var/bad = 0 X

Set var/bad = 0 Y

 

However, this seems to mask the entirety of my data and I get a screen telling me that no data is available.

 

Does anyone have any clues as to why this happens? Because I am lost for ideas, I think it might be to do with the fact that both of these ‘original’ datasets will have values of 0 (as seen in original definitions), and so it is masking the original dataset, does anyone know how I can make the mask apply only to my map of 1’s and 0’s?

 

Many thanks,

 

Josh

 

Sent from Mail for Windows 10

 

--
Ansley Manke
NOAA/PMEL Science Data Integration Group
7600 Sand Point Way NE
206-526-6246
--
Ansley Manke
NOAA/PMEL Science Data Integration Group
7600 Sand Point Way NE
206-526-6246



[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce / NOAA / OAR / PMEL / Ferret

Privacy Policy | Disclaimer | Accessibility Statement