[ncl-talk] stat_dispersion

jbuzan jbuzan at purdue.edu
Sat Nov 29 15:47:41 MST 2014


Hi Mary,

Sorry for the delayed response!

I realized there was a two problems:
1) I had an error in the original dataset.
2) I figured out how to use IND to feed only non-missing values to the exceedance (the original issue).  

I did have a problem with dim_stat4.   When it was trying to calculate kurtosis and skewness for stat_dispersion (dim_stat4 2,3), the contributed file would blow up saying it cannot find dim_stat4.  I turned it off, but I can’t seem to figure out why dim_stat4 bombed.

-Jonathan




On Oct 9, 2014, at 6:38 PM, Mary Haley <haley at ucar.edu> wrote:

> Jonathan,
> 
> Did anybody ever respond to this one?  
> 
> If not, the code is quite complex, and it would be useful if you could provide a full script and data.
> 
> --Mary
> 
> 
> On Fri, Sep 26, 2014 at 3:30 PM, jbuzan <jbuzan at purdue.edu> wrote:
> I am having some issues with stat_dispersion.
> Perhaps my code ‘fixes’ cause the issue.  I am not sure.
> 
> I have 2 datasets:
> time: 1460 lat: 192, lon 288
> time: 2920 lat: 192, lon 288
> I have added a second year to the original year (both 1460 time steps).  The stat_dispersion, in theory, should have the same minimum and maximum values.
> 
> The data is partitioned by Temperature and by a difference field.
> Here is a snippet of the code that does the partitioning:
> do k = 0, dimsizes(numvar)-1
> ;do k = 16, 16
>    thresholdstart = k*5.d + 200.d
>    print(thresholdstart)
>    thresholdend = k*5.d + 205.d
>    print(thresholdend)
> ;   location = ind(temperature1d.lt.thresholdend)
>    location = ind(temperature1d.lt.thresholdend.and.temperature1d.ge.thresholdstart)
> ;   printVarSummary(location)
> ;   print(location)
>    if(.not.all(ismissing(location)))
>         tbin = wetbulb1d(location)
>         else
>         tbin = value
>         tbin at _FillValue = value
>    end if
>  ;  print(tbin)
> 
>    if(.not.all(ismissing(tbin)))
>         tbin at _FillValue = -999.d
>         delete(tbin at _FillValue)
>         numarray(:,k) = stat_dispersion(tbin,opt)
>         else
>         numarray(:,k) = value
>    end if
>    delete(tbin)
>    delete(location)
>   ; print(numarray)
> end do
> numarray = where(numarray.eq.-999.d,value,numarray)
> 
> replace_ieeenan (numarray, value, 0)
> numarray at _FillValue = value
> numarray at missing_value = numarray at _FillValue
> numarray!0 = "stat"
> numarray!1 = "bin"
> numarray&bin = numvar
> printVarSummary(numarray)
> 
> Here is a snippet of the code that grabs the values:
> box_var = numvar
> box_var at long_name = longnamea
> box_var at units = unitsa
> ;box_var(:,0) = field1c(22,:)
> box_var(:,0) = field1c(2,:)
> box_var(:,1) = field1c(24,:)
> box_var(:,2) = field1c(8,:)
> box_var(:,3) = field1c(25,:)
> box_var(:,4) = field1c(14,:)
> ;box_var(:,4) = field1c(26,:)
> 
> field1c of 14 and 2 are the maximum and minimums from Stat_Dispersion.
> I think the issue is that stat_dispersion field becomes too large, and drops something.  It might be how I characterize the missing values.
> 
> Any help would be appreciated.
> 
> -Jonathan
> 
> 
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20141129/0fea3219/attachment.html 


More information about the ncl-talk mailing list