Re: drawing Taylor diagram ...

From: Dennis Shea <shea_at_nyahnyahspammersnyahnyah>
Date: Fri May 21 2010 - 13:46:52 MDT

[1]
No need to weight if the area covered is small. Specifically, if the
latitude span is not 'large'.

[2]
I speculate that the grid being used is a curvilinear grid
(lat/lon arrays are two-dimensional). If the latitude span is large,
  using cos(lat*0.01745329) as weights would be a reasonable
zeroth-order approximation for the weights. Otherwise, you
would have to (say) calculate the arear represented by eacg
grid cell.

D

On 05/21/2010 12:34 PM, u.utku.turuncoglu@be.itu.edu.tr wrote:
> Hi,
>
> According to your suggestion, i interpolated the all data into CRU
> observation grid to calculate cross corelations. The dataset that i used
> to plot Taylor diagram, is basically output of an regional climate model
> (RegCM3) and the domain is not big (eastern part of Europe). Is it
> necessary to use the weights to plot taylor diagram? How can i generate
> it? Is it based on latitude?
>
> Thanks,
>
> --ufuk
>
>> On 05/17/2010 12:30 PM, u.utku.turuncoglu@be.itu.edu.tr wrote:
>>> Hi,
>>>
>>> I try to plot a Taylor diagram to compare the different model
>>> simulations
>>> with observations. So, i have some basic question about the procedure;
>> Hi Ufuk,
>>
>> [1] No.
>>
>> [2] See Example 7 at
>>
>> http://www.ncl.ucar.edu/Applications/taylor.shtml
>>
>>
>>>
>>> 1 - I am using monthly mean precipitation rate field (mm/day) and
>>> surface
>>> temperature that is averaged over specified region (i will plot them in
>>> different Taylor diagrams). Is it necessary to interpolate all model
>>> results and observation into a common grid before calculating variances
>>> and cross correlation?
>>
>> It is easy to compute the variances on the original grids. However, the
>> correlations requires the same grid. Hence, it is best to interpolate
>> to a common grid. This grid is commonly the reference grid configuration
>> but that is up to you.
>>
>>>
>>> 2 - As you already know that the Taylor diagram NCL function basically
>>> expects the ratio of the standardized variances and cross correlation
>>> between model and observation. To calculate the variance, i am using
>>> "variance" function but i think i have to standardize the fields before
>>> applying variance function. Is it correct?
>>
>> vcntl => reference or control variable
>> vtest => model variable
>>
>> If the region being tested is 'large' then a weight variable [wgt]
>> should be created. If your region is 'small', you can ignore the
>> weight [wgt=1]. Given that you are looking at a very small area, you
>> can ignore any weighting. Also you have masked out all points outside
>> your area of interest.
>>
>> var_cntl = variance(vcntl)
>> var_test = variance(vtest)
>>
>> ratio = var_test/var_cntl
>>
>> By definition, the correlation is already standardized [-1 to +1]
>> So, if var_test and var_cntl are on the same grid and you are not
>> applying weighting then the pattern correlation is
>>
>>
>> cc = escorc( ndtooned(var_cntl), ndtooned(var_test) )
>>
>> ===
>> For a 'large' area, you will have to apply weighting [same grids]
>>
>> wgt = conform(vcntl, wt , rank-2)
>> ;;wgt = mask(wgt, lsflag.eq.0, False) ; if desired
>> ;;wgt = mask(wgt, lsflag.eq.1, False)
>>
>> ; temporary variables
>> sumw = sum(wgt)
>> sumwc = sum(wgt*vcntl)
>> sumwt = sum(wgt*vtest)
>> ; wgted areal mean
>> wmean_cntl = sumwc/sumw
>> wmean_test = sumwt/sumw
>> ; wgted areal variance
>> wvar_cntl = sum(wgt*(vcntl-wmean_cntl)^2)/sumw
>> wvar_test = sum(wgt*(vtest-wmean_test)^2)/sumw
>>
>> ; wgted correlation coef
>> wcc = (sum(wgt*vcntl*vtest) - sumwc*sumwt/sumw )/ \
>> ((sum(wgt*vcntl^2) - sumwc^2/sumw) * \
>> (sum(wgt*vtest^2) -sumwt^2/sumw))^0.5
>>
>>
>> =======
>>
>> Good luck
>> D
>>
>> If yes, can i use the
>>> "dim_standardize" to do that? The current structure of my scripts seems
>>> like,
>>>
>>> model1_variance = variance(model1)
>>> obs_variance = variance(obs)
>>>
>>> cc = escorc(obs, model1)
>>> ratio = model1_variance/obs_variance
>>>
>>> but i think that it must be,
>>>
>>> model1_variance = variance(dim_standardize (model1))
>>> obs_variance = variance(dim_standardize (obs))
>>>
>>> cc = escorc(obs, model1)
>>> ratio = model1_variance/obs_variance
>>>
>>> PS: you can find my taylor NCL scripts as attachment.
>>>
>>> Any suggestions can be helpful.
>>> Thanks,
>>>
>>> --ufuk
>>>
>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>> --
>> ======================================================
>> Dennis J. Shea tel: 303-497-1361 |
>> P.O. Box 3000 fax: 303-497-1333 |
>> Climate Analysis Section |
>> Climate& Global Dynamics Div. |
>> National Center for Atmospheric Research |
>> Boulder, CO 80307 |
>> USA email: shea 'at' ucar.edu |
>> ======================================================
>>
>> --
>> This message has been scanned for viruses and
>> dangerous content by MailScanner, and is
>> believed to be clean.
>>
>
>
>

-- 
======================================================
Dennis J. Shea                  tel: 303-497-1361    |
P.O. Box 3000                   fax: 303-497-1333    |
Climate Analysis Section                             |
Climate & Global Dynamics Div.                       |
National Center for Atmospheric Research             |
Boulder, CO  80307                                   |
USA                        email: shea 'at' ucar.edu |
======================================================
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri May 21 13:47:03 2010

This archive was generated by hypermail 2.1.8 : Wed May 26 2010 - 10:39:13 MDT