[ncl-talk] Computing coefficient of determination with gridded datasets
Efren Lopez Blanco
elb at bios.au.dk
Sat Jan 13 11:13:57 MST 2018
Hi Rick,
Thanks for the answer, I thought also about the differences between missing values and fill values. I tested your suggestion, and the result was the same. Since I am dealing with doubles, I standardized both (missing values and fill values) to -9999. Quick and dirty, but in order to make sure both attributes are the same, I performed:
cveg_HWSD_b_avg_3d at _FillValue = -9999
cveg_HWSD_b_avg_3d at missing_value = -9999
lpjml_hadgem2_es_avg_mask_3d at _FillValue = -9999
lpjml_hadgem2_es_avg_mask_3d at missing_value = -9999
cveg_HWSD_b_avg_3d at _FillValue = cveg_HWSD_b_avg_3d at missing_value
lpjml_hadgem2_es_avg_mask_3d at _FillValue = lpjml_hadgem2_es_avg_mask_3d at missing_value
delete(cveg_HWSD_b_avg_3d at missing_value) ; not necessary, just cleaning up
delete(lpjml_hadgem2_es_avg_mask_3d at missing_value) ; not necessary, just cleaning up
This resulted in:
Variable: cveg_HWSD_b_avg_3d
Type: double
Total Size: 106560 bytes
13320 values
Number of Dimensions: 3
Dimensions and sizes: [time | 1] x [lat | 37] x [lon | 360]
Coordinates:
time: [1..1]
lat: [79.5..43.5]
lon: [-179.5..179.5]
Number Of Attributes: 5
average_op_ncl : dim_avg_n over dimension(s): time
units : g C m-2
long_name : C stored in Cveg
percentile : 50
_FillValue : -9999
(0) C stored in Cveg: min=0.1382737806910972 max=12.84650588106167
Variable: lpjml_hadgem2_es_avg_mask_3d
Type: double
Total Size: 106560 bytes
13320 values
Number of Dimensions: 3
Dimensions and sizes: [time | 1] x [lat | 37] x [lon | 360]
Coordinates:
time: [1..1]
lat: [79.5..43.5]
lon: [-179.5..179.5]
Number Of Attributes: 5
units : kg m-2
long_name : Carbon Mass in Vegetation
standard_name : vegetation_carbon_content
average_op_ncl : dim_avg_n over dimension(s): time
_FillValue : -9999
(0) Carbon Mass in Vegetation: min=3.493304393487051e-05 max=15.10204410552979
And then the escorc_n function [lpjml_r = escorc_n(cveg_HWSD_b_avg_3d,lpjml_hadgem2_es_avg_mask_3d, 0, 0)], which again has resulted in min=-9999 max=-9999. The issue is clearly in the escorc_n function.
Best,
Efren
From: Rick Brownrigg <brownrig at ucar.edu>
Date: Saturday, 13 January 2018 at 16.49
To: Efren Lopez Blanco <elb at bios.au.dk>
Cc: "ncl-talk at ucar.edu" <ncl-talk at ucar.edu>
Subject: Re: [ncl-talk] Computing coefficient of determination with gridded datasets
Pure speculation on my part, but I notice that both variables have different values for their missing_value vs. _FillValue attributes. I wonder which value actually occurs in the data? I *think* if both are present as attributes, NCL will honor the _FillValue value, and then values of missing_value get treated as data (?) Something to perhaps check out.
Rick
On Sat, Jan 13, 2018 at 3:21 AM, Efren Lopez Blanco via ncl-talk <ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>> wrote:
Hi there,
I would like to compute the coefficient of determination (r squared) between 2 gridded datasets of the form (time,lat,lon). In order to do so, I aim to apply the escorc_n function. The two datasets I am using look like:
Variable: cveg_HWSD_b_avg_3d
Type: double
Total Size: 106560 bytes
13320 values
Number of Dimensions: 3
Dimensions and sizes: [time | 1] x [lat | 37] x [lon | 360]
Coordinates:
time: [1..1]
lat: [79.5..43.5]
lon: [-179.5..179.5]
Number Of Attributes: 6
average_op_ncl : dim_avg_n over dimension(s): time
missing_value : -9999
units : g C m-2
long_name : C stored in Cveg
percentile : 50
_FillValue : 1.000000020040877e+20
(0) C stored in Cveg: min=0.1382737806910972 max=12.84650588106167
Variable: lpjml_hadgem2_es_avg_mask_3d
Type: double
Total Size: 106560 bytes
13320 values
Number of Dimensions: 3
Dimensions and sizes: [time | 1] x [lat | 37] x [lon | 360]
Coordinates:
time: [1..1]
lat: [79.5..43.5]
lon: [-179.5..179.5]
Number Of Attributes: 6
units : kg m-2
long_name : Carbon Mass in Vegetation
standard_name : vegetation_carbon_content
average_op_ncl : dim_avg_n over dimension(s): time
missing_value : 1e+20
_FillValue : 1.000000020040877e+20
(0) Carbon Mass in Vegetation: min=3.493304393487051e-05 max=15.10204410552979
Then I apply the function:
lpjml_r = escorc_n(cveg_HWSD_b_avg_3d,lpjml_hadgem2_es_avg_mask_3d, 0, 0) ; r(nlat,mlon)
However, I’ve noticed the output only contain NAs:
Variable: lpjml_r
Type: double
Total Size: 106560 bytes
13320 values
Number of Dimensions: 2
Dimensions and sizes: [lat | 37] x [lon | 360]
Coordinates:
lat: [79.5..43.5]
lon: [-179.5..179.5]
Number Of Attributes: 6
missing_value : -9999
average_op_ncl : dim_avg_n over dimension(s): time
units : g C m-2
long_name : C stored in Cveg
percentile : 50
_FillValue : 1.000000020040877e+20
(0) C stored in Cveg: min=1.000000020040877e+20 max=1.000000020040877e+20
Am I doing something wrong? I’ve also tried to convert from double to float.
Best,
Efren
_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>
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/20180113/225258b2/attachment.html>
More information about the ncl-talk
mailing list