[ncl-talk] Convert unpacked netCDF file to packed one
Setareh Rahimi
setareh.rahimi at gmail.com
Tue Jan 12 06:16:11 MST 2021
Dear Dennis,
Many thanks for your help. Once I follow the
http://www.ncl.ucar.edu/Applications/method_1.shtml method to save the new
nc file, I face some errors, in fact I am too new in writhing nc files.
That method just give me :
netcdf new-hgt.2019 {
dimensions:
time = UNLIMITED ; // (0 currently)
// global attributes:
:creation_date = "Tue Jan 12 16:33:58 +0330 2021" ;
:Conventions = "CF-1.0 " ;
:source_file = "NCEP/DOE AMIP-II Reanalysis (Reanalysis-2) Model" ;
:title = "4x daily NCEP/DOE Reanalysis 2" ;
How can I have the correct nc file?
Best wishes
On Mon, Jan 11, 2021 at 11:35 PM Dennis Shea <shea at ucar.edu> wrote:
> I was just typing a response that contained the same information as Dave's.
>
> Likely, you have no control "the model I am running only accept packed nc
> file with scale factor."
> As noted by DaveA, the file you are using is netCDF-4
> [ Perhaps too much info but netCDF-4's compression is described *here ]*
> <https://www.unidata.ucar.edu/blogs/developer/entry/netcdf_compression>
> ===============
>
> %> *ncdump -k* air.2019.nc
> netCDF-4 classic model
>
> In fact, I believe *all* the netCDF files created by "NCEP-DOE AMIP-II
> Reanalysis" (and others) will be netCDF-4.
>
> Maybe you could have the model developers alter the code.
> Really, they should have checked if the 'scale_factor' and/or 'add_offset'
> attributes are present.
> If not, use the variable directly.
> ====================
>
> f = addfile("air.2019.nc","r")
> x = f->air
> printVarSummary(x) ; full uncompressed values
> ; *** LOOK AT
> THE SIZE****
> ; It is MUCH
> LARGER than the ENTIRE netCDF file
>
> xShort = *pack_values*(xFloat, "short", False)
> *printVarSummary* <http://www.ncl.ucar.edu/Document/Functions/Built-in/printVarSummary.shtml>(xShort)
>
> xShort = pack_values(x, "short", False)
> printVarSummary(xShort) ; *** LOOK AT THE SIZE****
> ; HALF the size of 'x'
> ; but much larger than the compressed value!
>
> The use (say) the following to write 'xShort' a new (much larger) file that the original
>
> *http://www.ncl.ucar.edu/Applications/method_1.shtml* <http://www.ncl.ucar.edu/Applications/method_1.shtml>
>
> Then use that new file for the model.
>
> Likely,* EVERY *variable will have to be done like this for the "model you are using
>
>
> *===*
>
>
>
> *It is much easier for the model code to be altered.*
>
>
> *Good Luck*
>
>
> On Mon, Jan 11, 2021 at 12:46 PM Dave Allured - NOAA Affiliate via
> ncl-talk <ncl-talk at mailman.ucar.edu> wrote:
>
>> I see. I suggest the best solution would be a simple upgrade to the
>> model code, so that it could read both packed and unpacked air temp files.
>> This will enable the model to use future data updates without extra
>> processing.
>>
>> In fortran, this would be an if statement to check whether there is a
>> scale_factor attribute. If not, then skip reading scale_factor and
>> add_offset, also skip the unpacking statement or loop that converts packed
>> data values to unpacked. Just read in the unpacked values directly. You
>> would need two read statements, the original one for the packed data type,
>> and a new one for the unpacked data type (fortran real).
>>
>> If something prevents you from changing the model code, then just convert
>> the air temp file to packed using the NCL *pack_values* function. See
>> the general documentation for how to read and write a netcdf file.
>>
>>
>> On Mon, Jan 11, 2021 at 12:00 PM Setareh Rahimi <setareh.rahimi at gmail.com>
>> wrote:
>>
>>> Dear Dave,
>>> Thank you for your reply. Yes I am sure, because the model I am running
>>> only accept packed nc file with scale factor.
>>> Please have a look at attached file showing the error I face while
>>> running the model with mentioned nc file.
>>> Best regard
>>>
>>> On Mon, Jan 11, 2021 at 22:20 Dave Allured - NOAA Affiliate <
>>> dave.allured at noaa.gov> wrote:
>>>
>>>> That file is already compressed to 31% of its natural array size, using
>>>> netcdf-4 internal compression. Are you sure you want to do that? If yes,
>>>> then use the NCL function *pack_values*.
>>>>
>>>>
>>>> On Mon, Jan 11, 2021 at 11:07 AM Setareh Rahimi via ncl-talk <
>>>> ncl-talk at mailman.ucar.edu> wrote:
>>>>
>>>>> Dear all,
>>>>> I need to convert an unpacked netCDF file to a packed one (
>>>>> ftp://ftp2.psl.noaa.gov/Datasets/ncep.reanalysis2/pressure/air.2019.nc),
>>>>> I wonder if this possible using NCL?
>>>>> Many thanks in advance,
>>>>> Best wishes,
>>>>> --
>>>>> S.Rahimi
>>>>>
>>>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at mailman.ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
--
S.Rahimi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210112/87a28ada/attachment.html>
More information about the ncl-talk
mailing list