[ncl-talk] stat_despersion
ali mughal
mughalali655 at gmail.com
Wed Jun 30 05:10:53 MDT 2021
Dear community
Thank you very much for your helpful comments.
As an initial test, I was trying to obtain statistics at all grid points
before plotting them. I used the following code
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
a=addfile("wrfout","r")
ta_mean_BEM=a->TA_MEAN
ta=ta_mean_BEM(24:719,0,:,:)
rf=ta-273.16
nlat1=rf(0,:,0)
printVarSummary(nlat)
mlon1=rf(0,0,:)
printVarSummary(mlon)
printVarSummary(rf)
opt=False
nlStrt=0
nlLast=129
mlStrt=0
mlLast=210
nlat=dimsizes(nlat1)
mlon=dimsizes(mlon1)
grid_stats = new ((/nlat(0),mlon(0)/), typeof(rf), getFillValue(rf))
printVarSummary(grid_stats)
do nl=0,nlLast
do ml=0,mlLast
grid_stats(nl-nlStrt,ml-mlStrt) = stat_dispersion( rf(:,nl,ml),
opt)
end do
end do
copy_VarCoords(rf(:,nlStrt:nlLast,mlStrt:mlLast), grid_stats)
grid_stats at long_name = "stat_dispersion at individual grid points"
printVarSummary(grid_stats)
But I obtain the following output from my print statements and the errors
Variable: rf
Type: float
Total Size: 75418560 bytes
18854640 values
Number of Dimensions: 3
Dimensions and sizes: [696] x [129] x [210]
Coordinates:
Variable: grid_stats
Type: float
Total Size: 108360 bytes
27090 values
Number of Dimensions: 2
Dimensions and sizes: [129] x [210]
Coordinates:
fatal:VarVarWrite: Number of dimensions on left hand side does not match
right hand side
fatal:["Execute.c":8578]:Execute: Error occurred at or near line 46 in file
var_Test.ncl
fatal:Subscript out of range, error in subscript #1
fatal:An error occurred reading rf
fatal:["Execute.c":8578]:Execute: Error occurred at or near line 51 in file
var_Test.ncl
Variable: grid_stats
Type: float
Total Size: 108360 bytes
27090 values
Number of Dimensions: 2
Dimensions and sizes: [129] x [210]
Coordinates:
Number Of Attributes: 1
long_name : stat_dispersion at individual grid points
On Wed, Jun 30, 2021 at 12:01 AM Dave Allured - NOAA Affiliate <
dave.allured at noaa.gov> wrote:
> Ali, you do not need to make new code to find the 10th and 90th percentile
> values. Just use stat_dispersion directly, and take only the output values
> that you need. The function is designed to be used in this way. There is
> no significant performance impact from ignoring all the other result values.
>
> You can easily make a spatial map of 10th or 90th percentile values. Just
> call stat_dispersion inside a double loop over X and Y dimensions.
>
>
> On Tue, Jun 29, 2021 at 9:23 AM Buzan, Jonathan via ncl-talk <
> ncl-talk at mailman.ucar.edu> wrote:
>
>> Hello,
>>
>> I’ve used that function a bunch. If you only want 10th and 90th
>> percentile, you’ll want to use:
>>
>> qsort
>> Which will sort your data within a single grid cell from lowest to
>> highest.
>>
>> And then grab the specific lines of code for 10th and 90th percentiles
>> from the stat_dispersion function in:
>> $NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl
>>
>> If you look at the function, you’ll see that it uses qsort, then goes
>> step by step through calculating all the different applications.
>>
>> Cheers,
>> -Jonathan
>>
>> On Jun 29, 2021, at 5:14 PM, ali mughal via ncl-talk <
>> ncl-talk at mailman.ucar.edu> wrote:
>>
>> Dear NCL community
>>
>> In the following ncl function
>>
>>
>> http://www.ncl.ucar.edu/Document/Functions/Contributed/stat_dispersion.shtml
>>
>> Is it possible to use 10th and 90th percentile values only ?
>>
>> Also can these values be used to develop a spatial map?
>>
>> For example if I want to find the 10th and 90th percentile of air
>> temperature within the urban grid cells only.
>>
>> Can anyone share an example script or point me to any web resource will
>> be appreciated.
>>
>> Thanks in advance
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210630/a5843114/attachment.html>
More information about the ncl-talk
mailing list