Re: fatal error: reading multi dimension data with one dimension fixed

From: Guangshan Chen <gchen9_at_nyahnyahspammersnyahnyah>
Date: Fri May 09 2014 - 06:40:58 MDT

Hi Wei,

Thanks. It explains well.

I just want to clarify that with the problem, it is OK to read data.
So the problem is not a big deal.

- Guangshan

On May 8, 2014, at 6:57 PM, Wei Huang <huangwei@ucar.edu> wrote:

> Guangshan and Michael,
>
> First, this is not a new problem, or a bug sneaked into 6.2.0, as this happened in 6.1.2 as well.
>
> Here is what we find:
>
> 1. Your file has "lev, lat, lon" as coordinate variables,
> 2. But variable "U" has "lev, lat, lon" as attributes as well.
> 3. When NCL just read a slice of variable, NCL will create an attribute with the name of
> that (slice indexed) coordinate variable, and its value is the slice index.
> 4. Here comes the problem, as U already has lev, or lat, or lon as attributes,
> NCL sees this, and does not what do, so gives a fatal error.
>
> To avoid this issue, you can do:
>
> a) Make copy of your original file, as we are going to remove U's attributes first.
>
> cp test_uwind.nc uwind.nc
>
> b) Create a script (say tst.ncl) cto write new attributes of U and then remove U's lev, lat, lon attributes.
> f = addfile("uwind.nc", "w")
> f->U@lon_ori = f->U@lon
> f->U@lat_ori = f->U@lat
> f->U@lev_ori = f->U@lev
> delete(f->U@lon)
> delete(f->U@lat)
> delete(f->U@lev)
> u0 = f->U(2,:,:,:)
> ;printVarSummary(u0)
> u1 = f->U(:,2,:,:)
> ;printVarSummary(u1)
> u2 = f->U(:,:,2,:)
> ;printVarSummary(u2)
> u3 = f->U(:,:,:,2)
> printVarSummary(u3)
>
> c) run the script:
> ncl tst.ncl
> Copyright (C) 1995-2014 - All Rights Reserved
> University Corporation for Atmospheric Research
> NCAR Command Language Version 6.2.1
> The use of this software is governed by a License Agreement.
> See http://www.ncl.ucar.edu/ for more details.
>
> Variable: u3
> Type: float
> Total Size: 81920 bytes
> 20480 values
> Number of Dimensions: 3
> Dimensions and sizes: [time | 40] x [lev | 4] x [lat | 128]
> Coordinates:
> time: [ 31..14266]
> lev: [200..1000]
> lat: [-88.92773535229591..88.92773535229591]
> Number Of Attributes: 10
> lon : 2.8125
> time_rep : Estimated from monthly modern calendar data
> missing_value : 9.96921e+36
> cell_method : time: mean
> long_name : Zonal wind
> units : m/s
> _FillValue : 9.96921e+36
> lon_ori : 49.21875
> lat_ori : 48.32636101818818
> lev_ori : 1000
>
> You can see there is a new attribute "lon" then, in addition to "lev_ori, lat_ori, lon_ori", which we renamed.
>
> Hope this explains all.
>
> Please let me know if you need any help.
>
> Thanks,
>
> Wei
>
> ----
> ncdump -h test_uwind.nc
> netcdf test_uwind {
> dimensions:
> time = UNLIMITED ; // (40 currently)
> lev = 4 ;
> lat = 128 ;
> lon = 256 ;
> variables:
> float U(time, lev, lat, lon) ;
> U:time_rep = "Estimated from monthly modern calendar data" ;
> U:missing_value = 9.96921e+36f ;
> U:lon = 49.21875 ;
> U:lat = 48.3263610181882 ;
> U:lev = 1000.f ;
> U:cell_method = "time: mean" ;
> U:long_name = "Zonal wind" ;
> U:units = "m/s" ;
> U:_FillValue = 9.96921e+36f ;
> double lat(lat) ;
> lat:long_name = "latitude" ;
> lat:units = "degrees_north" ;
> float lev(lev) ;
> lev:positive = "down" ;
> lev:units = "hPa" ;
> lev:long_name = "pressure" ;
> double lon(lon) ;
> lon:long_name = "longitude" ;
> lon:units = "degrees_east" ;
>
>
> On May 8, 2014, at 1:38 PM, Michael Notaro <mnotaro@wisc.edu> wrote:
>
>> I looked at it with Guangshan and definitely something is wrong
>> in the newer versions of NCL. I included the ncdump from the file.
>> If you try to retrieve U(:,2,:,:) or U(:,:,2,:) or U(:,:,:,2), it will give an error,
>> but U(2,:,:,:) works ok.
>>
>>
>>
>>
>>
>>
>>
>>
>> [yslogin2]409%: ncdump -h isotag_t85_115.0k.cam2.h0.cel.plev.delta.611-650-ANN.nc
>> netcdf isotag_t85_115.0k.cam2.h0.cel.plev.delta.611-650-ANN {
>> dimensions:
>> time = UNLIMITED ; // (40 currently)
>> lat = 128 ;
>> lon = 256 ;
>> lev = 4 ;
>> variables:
>> float CLDHGH(time, lat, lon) ;
>> CLDHGH:time_rep = "Estimated from monthly modern calendar data" ;
>> CLDHGH:lon = 358.59375 ;
>> CLDHGH:lat = 88.9277353522959 ;
>> CLDHGH:units = "fraction" ;
>> CLDHGH:long_name = "Vertically-integrated high cloud" ;
>> CLDHGH:cell_method = "time: mean" ;
>> CLDHGH:_FillValue = 9.96921e+36f ;
>> float U(time, lev, lat, lon) ;
>> U:time_rep = "Estimated from monthly modern calendar data" ;
>> U:missing_value = 9.96921e+36f ;
>> U:lon = 49.21875 ;
>> U:lat = 48.3263610181882 ;
>> U:lev = 1000.f ;
>> U:cell_method = "time: mean" ;
>> U:long_name = "Zonal wind" ;
>> U:units = "m/s" ;
>> U:_FillValue = 9.96921e+36f ;
>>
>> On May 8, 2014, at 1:57 PM, Guangshan Chen wrote:
>>
>>> Dear NCL developers,
>>>
>>> I just notice that there is an error message popped out when I read multi dimension data with one dimension fixed.
>>>
>>> I could not remember it was shown in the old-version NCL.
>>>
>>> Here is what I did:
>>>
>>> Opening a file containing zonal wind and read zonal wind
>>> uwind = file_in->U(:,2,:,:)
>>>
>>> The following error will come out:
>>> Copyright (C) 1995-2014 - All Rights Reserved
>>> University Corporation for Atmospheric Research
>>> NCAR Command Language Version 6.2.0
>>> The use of this software is governed by a License Agreement.
>>> See http://www.ncl.ucar.edu/ for more details.
>>> fatal:Subscript out of range, error in subscript #0
>>>
>>> But if you read the wind as this: uwind = file_in->U(:,:,:,:), there will be no error message.
>>>
>>> However, even with the error message, it seems I still can get the wind at the level I want.
>>>
>>>
>>> Any idea why this happens?
>>>
>>> Thanks.
>>>
>>> - Guangshan
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>> _______________________________________________
>> ncl-talk mailing list
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri May 9 06:41:27 2014

This archive was generated by hypermail 2.1.8 : Fri May 09 2014 - 15:23:17 MDT