<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">This is not valid:<br><br>   <b>VAR = where (VAR.eq.VAR@_FillValue, 0., VAR)</b><br><br>... because the array result of the <b>".eq."</b> operator, with fill values present, can contain three values:  True, False, and fill value.  The <b>"where"</b> function must receive a conditional mask (first argument) that contains only <b>True</b> and <b>False</b>.</div><div dir="ltr"><br></div><div dir="ltr">This construction will form the desired missing value mask, and do what you intended:<br><br>   <b>VAR = where (ismissing (VAR), 0., VAR)</b><br><br>Next, if <b>VAR@missing_value</b> is different than the original <b>VAR@_FillValue</b>, then you should keep the second statement the way you had it, to change <b>"missing_values"</b> to zero.<div><span style="color:rgb(0,0,0);font-family:-webkit-standard;font-size:medium"><br></span></div><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 27, 2020 at 4:50 PM Adam Herrington via ncl-talk <<a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>I have a variable that I am trying to remove the missing values from. Here are the attributes from printVarSummary call:</div><div><br></div><div>Variable: VAR<br>Type: float<br>Total Size: 8220672 bytes<br>            2055168 values<br>Number of Dimensions: 3<br>Dimensions and sizes:   [time | 223] x [lat | 32] x [lon | 288]<br>Coordinates: <br>            time: [9504..10170]<br>            lat: [-14.60732984293194..14.60732984293194]<br>            lon: [   0..358.75]<br>Number Of Attributes: 9<br>  remap :      remapped via ESMF_regrid_with_weights: Bilinear<br>  _FillValue :        -9999.9<br>  missing_value :     -9999.9<br>  time_statistic :    instantaneous<br>  units :       <br>  long_name :        precipitation<br>  comments :    Unknown1 variable comment<br>  delta_t : 0000-00-00 03:00:00<br>  avg_period :    0000-00-00 01:00:00<br></div><div><br></div><div>So there are two missing value attributes. To set all missing values to zero, I try:</div><div><br></div><div>  VAR = where(VAR.eq.VAR@_FillValue,0.,VAR)<br>  VAR = where(VAR.eq.VAR@missing_value,0.,VAR)<br></div><div><br></div><div>But then subsequently looking for missing values: nMsg = num(ismissing(VAR)), it says there are still all the missing values:</div><div><br></div><div>(0)     missing values present: not allowed: nMsg=17913<br></div><div><br></div><div>Does anyone see why this is occurring, why my where statements are not resulting in num(ismissing(VAR))=0?</div><div><br></div><div>Thanks,</div><div><br></div><div>Adam</div></div></blockquote></div></div></div></div></div></div>