From: Scott Capps <scapps_at_nyahnyahspammersnyahnyah>

Date: Fri, 07 Apr 2006 14:08:19 -0700

Date: Fri, 07 Apr 2006 14:08:19 -0700

Greetings,

I am trying to place a FillValue where bad data is residing. The

wvc_asc array (same size and shape as u_asc) determines where bad data

is located. For all u_asc indicies with zero wind speeds, check to see

if wvc_asc is also zero. If it is, place a @_FillValue at that index of

the u_asc array.

This works just fine but, I want to limit my use of do....loops within NCL:

u_asc@_FillValue = -999.0

if (any(u_asc.eq.0)) then

ds = dimsizes(u_asc)

do idxlat=0,ds(0)-1

do idxlon=0,ds(1)-1

if (u_asc(idxlat,idxlon).eq.0) then

if (wvc_asc(idxlat,idxlon).eq.0) then

u_asc(idxlat,idxlon)=-999.0

end if

end if

end do

end do

end if

Here is a more effecient way that I am trying to accomplish this but, it

is not producing the same results as the do....loop above:

if (any(u_asc.eq.0)) then

u_asc1D = ndtooned (u_asc) ;convert to 1D array

wvc_asc1D = ndtooned (wvc_asc) ;convert to 1D array

i0 = ind(u_asc1D.eq.0) ;all indices eq 0

if (any(wvc_asc1D(i0).eq.0)) then

iwvc0 = ind(wvc_asc1D(i0).eq.0)

u_asc1D(iwvc0) = -999.0

end if

u_asc = onedtond(u_asc1D, dimsizes(u_asc));return to the original

array

delete (wvc_asc1D)

delete (u_asc1D)

delete (i0)

delete (iwvc0)

end if

Any suggestions?

Thank you,

Scott Capps

scapps_at_uci.edu

_______________________________________________

ncl-talk mailing list

ncl-talk_at_ucar.edu

http://mailman.ucar.edu/mailman/listinfo/ncl-talk

Received on Fri Apr 07 2006 - 15:08:19 MDT

*
This archive was generated by hypermail 2.2.0
: Fri Apr 07 2006 - 16:57:37 MDT
*