[ncl-talk] set_dimension_query
Dennis Shea
shea at ucar.edu
Tue Sep 19 11:06:45 MDT 2017
Ditto what Marston posted.
===
Please look at NCL's FAQ.
[1] Click "Support" at top of page
[2] Click FAQ
I think it would be instructive to look at all of the topics.
For example:
*Error messages and other issues*
Look at #7
On Tue, Sep 19, 2017 at 3:03 AM, Marston Johnston <shejo284 at gmail.com>
wrote:
> It tells you in the warning message, exactly what to do to remove the
> warning.
>
> If you want to improve you coding skills, it would better to understand
> why the warning is occurring in the first place: dimension 0 and 1 of the
> variable you are passing has no names or the names do not match the
> variable on the lhs.
>
>
>
> /M
>
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Marston S. Ward, PhD
>
> Department of Earth Sciences
>
> University of Gothenburg, Sweden
>
> Email: marston.johnston at gu.se
>
> SkypeID: marston.johnston
>
> Phone: +46-31-7864901 <+46%2031%20786%2049%2001>
>
> Only the fruitful thing is true!
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
>
>
> *From: *ncl-talk <ncl-talk-bounces at ucar.edu> on behalf of Kunal Bali <
> kunal.bali9 at gmail.com>
> *Date: *Tuesday, 19 September 2017 at 10:50
> *Cc: *"ncl-talk at ucar.edu" <ncl-talk at ucar.edu>
> *Subject: *Re: [ncl-talk] set_dimension_query
>
>
>
> Thank you for providing this information.
>
> It's working. The script given below is now able to convert multiple files
> into .netcdf with the desired file name.
> However, on the same time, it also shows some warnings. But noted that, I
> am successfully creating the multiple files into the netcdf. I just need to
> know that how can I remove these warnings?
>
> warning:VarVarWrite: Dimension names for dimension number (0) don't match,
> assigning name of rhs dimension to lhs and overwriting coordinate variable,
> use "(/../)" if this change is not desired
> warning:VarVarWrite: Dimension names for dimension number (1) don't match,
> assigning name of rhs dimension to lhs and overwriting coordinate variable,
> use "(/../)" if this change is not desired
> warning:["Execute.c":8640]:Execute: Error occurred at or near line 22 in
> file netcdf2.ncl
>
>
>
> ;----------------------------------------------------------------------
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>
> begin
> ;---Read data
>
> diri = "/Users/Pushp/Desktop/test/" ; input directory
> fili = systemfunc("cd "+diri+" ; ls MAIACTAOT.h00v02*hdf")
> nfili = dimsizes(fili)
> print("nfili="+nfili)
>
>
> dirnc = "/Users/Pushp/Desktop/test/" ; output (netCDF) directory
>
> do nf=0,nfili-1
> pthi = diri+fili(nf)
> f = addfile(pthi,"r")
>
> var = short2flt(f->Optical_Depth_055(:,:))
>
> nlat = 1200
> nlon = 1200
> lat = latGlobeFo(nlat, "lat", "latitude", "degrees_north")
> lon = lonGlobeFo(nlon, "lon", "longitude", "degrees_east")
> ; lat = lat(::-1)
> lon = (/ lon - 180. /) ; subtract 180 from all values
> lon&lon = lon ; update coordinates
>
> var!0 = "lat" ; you can name these dimensions whatever you
> want..
> var!1 = "lon"
> var&lat = lat ; but make sure you refer to the correct named
> dimensions
> var&lon = lon
>
>
> filroot = str_get_cols(fili(nf), 0, 27) ; eg:
> "MAIACTAOT.h00v02.20000570505"
> filnc = filroot+".nc"
> pthnc = dirnc + filnc
>
> system("/bin/rm -f "+pthnc)
> ncdf = addfile(pthnc,"c") ; open new netCDF file
>
>
> end do ; end 'nf' loop
>
> ; system("/bin/rm -f simple2.nc")
> ; ncdf = addfile("simple2.nc" ,"c") ; open output netCDF file
>
> ;===================================================================
> ; create global attributes of the file (optional)
> ;===================================================================
> fAtt = True ; assign file attributes
> fAtt at title = "NCL Simple Approach to netCDF Creation"
> fAtt at source_file = "original-file.nc"
> fAtt at Conventions = "None"
> fAtt at creation_date = systemfunc ("date")
> fileattdef( ncdf, fAtt ) ; copy file attributes
>
> ;===================================================================
> ; make time an UNLIMITED dimension; recommended for most applications
> ;===================================================================
> filedimdef(ncdf,"time",-1,True)
>
> ; ncdf->var&lat = lat
> ; ncdf->var&lon = lon
> ncdf->var = var
>
> end
>
>
> Kunal Bali
>
> Research Scholar
>
> Radio & Atmospheric Science Division
>
> CSIR - National Physical Laboratory
>
> New Delhi - 110012
>
> India
>
>
>
>
>
>
>
>
>
>
>
> On Mon, Sep 18, 2017 at 9:04 PM, Dennis Shea <shea at ucar.edu> wrote:
>
> Loop over the files ...
>
>
> diri = "/media/Local Disk/NPL/MODIS_FPC/" ; input directory
>
> fili = systemfunc("cd "+diri +; ls MAIACTAOT.h00v02*hdf")
>
> nfili = dimsizes(fili)
>
> print("nfili="+nfili)
>
> dirnc = "/media/Local Disk/NPL/MODIS_FPC/" ; output (netCDF) directory
>
>
>
> do nf=0,nfili-1
>
> pthi = diri+fili(nf)
>
> f = addfile(pthi,"r")
>
> ....
>
> filroot = *str_get_cols*(fili(nf), 0, 27) ; eg:
> "MAIACTAOT.h00v02.20000570505"
>
> filnc = filroot+".nc"
>
> pthnc = dirnc + filnc
>
> system("/bin/rm -f "+pthnc)
> ncdf = addfile(pthnc,"c") ; open new netCDF file
>
> ....
>
> end do ; end 'nf' loop
>
>
> =====
>
> If there is something you do not understand use some print statements.
>
> Become familiar with the 'string' category. Look at all the functions.
>
> https://www.ncl.ucar.edu/Document/Functions/string.shtml
>
> Please read the documentation for the function used above
>
> https://www.ncl.ucar.edu/Document/Functions/Built-in/str_get_cols.shtml
>
> Good Luck
>
>
>
>
>
> On Mon, Sep 18, 2017 at 6:11 AM, Kunal Bali <kunal.bali9 at gmail.com> wrote:
>
> Thnks for the reply.
>
>
>
> that will change the name of only one file. isn't it. but what about the
> other files
>
> I have 365 files in one directory and I need to change all the file name
> one by one.
>
>
> Kunal Bali
>
>
>
>
>
>
>
>
>
>
>
> On Mon, Sep 18, 2017 at 5:14 PM, Dennis Shea <shea at ucar.edu> wrote:
>
> Really?
>
> Change:
> system("/bin/rm -f simple.nc")
> ncdf = addfile("simple.nc" ,"c")
>
> To:
> system("/bin/rm -f MAIACTAOT.h00v02.20000570505.nc
> <http://simple.nc>")
> ncdf = addfile("MAIACTAOT.h00v02.20000570505.nc" ,"c")
>
>
>
>
>
> On Mon, Sep 18, 2017 at 12:37 AM, Kunal Bali <kunal.bali9 at gmail.com>
> wrote:
>
> Thanks, it worked.
>
> one more question is that.
>
> I used the code (given below). So it gives simple.nc name as an output
> file.
>
> ncdf = addfile("simple.nc" ,"c")
>
> If I want to keep the original file name with the output file name then
> what should I do?
>
> I mean the original file name is MAIACTAOT.h00v02.20003660700.hdf
>
> Now I want to create my netcdf file name as MAIACTAOT.h00v02.20003660700.
> nc NOT simple.nc.
>
> I can not simply write simple.nc file name because I have many files.
>
> e.g I have one directory having 365 .hdf file. So I need to convert all
> the hdf file to netcdf file at once with the same name of original file
> names.
>
> I hope you have got my query.
>
> please let me know that too.
>
>
>
> Thank You
>
>
>
>
> Kunal Bali
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Thu, Sep 14, 2017 at 9:09 PM, Adam Phillips <asphilli at ucar.edu> wrote:
>
> Hi Kunal,
>
> It looks to me like your latitudes are flipped. You are setting up and
> assigning your coordinate lat/lon variables in this coding:
>
>
>
> nlat = 1200
> nlon = 1200
> lat = latGlobeFo(nlat, "lat", "latitude", "degrees_north")
>
> lon = lonGlobeFo(nlon, "lon", "longitude", "degrees_east")
> lat = lat(::-1)
> lon = (/ lon - 180. /) ; subtract 180 from all values
>
> lon&lon = lon ; update coordinates
>
> var!0 = "lat" ; you can name these dimensions whatever you want..
> var!1 = "lon"
> var&lat = lat ; but make sure you refer to the correct named dimensions
> var&lon = lon
>
>
>
> Assuming I'm right on your latitudes being the issue, one of the following
> two modifications should work:
>
> Delete this line:
>
> lat = lat(::-1)
>
>
>
> If the above doesn't fix it, try this:
>
> Change this:
>
> lat = lat(::-1)
>
> to this:
>
> lat = lat(::-1)
>
> lat&lat = lat
>
>
>
> If you continue to have issues please respond to ncl-talk.
>
> Adam
>
>
>
> On Wed, Sep 13, 2017 at 12:35 PM, Kunal Bali <kunal.bali9 at gmail.com>
> wrote:
>
>
>
> For direct output as a netcdf format, I used the script given below. It
> produced the netcdf file easily. But the netcdf file and original hdf file
> both showing the different results. The data pattern is shifted. I mean it
> may be related to the lat lon position. please see the attached file, you
> will understand. And please let me know which one is correct.
>
> ;----------------------------------------------------------------------
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>
> begin
> ;---Read data
> a = addfile("/media/Local Disk/NPL/MODIS_FPC/MAIACTAOT.
> h00v02.20000570505.hdf","r")
> var = short2flt(a->Optical_Depth_055(:,:))
> ; short2flt(a[:]->noxfire)
> nlat = 1200
> nlon = 1200
> lat = latGlobeFo(nlat, "lat", "latitude", "degrees_north")
> lon = lonGlobeFo(nlon, "lon", "longitude", "degrees_east")
> lat = lat(::-1)
> lon = (/ lon - 180. /) ; subtract 180 from all values
> lon&lon = lon ; update coordinates
>
> var!0 = "lat" ; you can name these dimensions whatever you
> want..
> var!1 = "lon"
> var&lat = lat ; but make sure you refer to the correct named
> dimensions
> var&lon = lon
>
> system("/bin/rm -f simple.nc")
> ncdf = addfile("simple.nc" ,"c") ; open output netCDF file
>
> ;===================================================================
> ; create global attributes of the file (optional)
> ;===================================================================
> fAtt = True ; assign file attributes
> fAtt at title = "NCL Simple Approach to netCDF Creation"
> fAtt at source_file = "original-file.nc"
> fAtt at Conventions = "None"
> fAtt at creation_date = systemfunc ("date")
> fileattdef( ncdf, fAtt ) ; copy file attributes
>
> ;===================================================================
> ; make time an UNLIMITED dimension; recommended for most applications
> ;===================================================================
> filedimdef(ncdf,"time",-1,True)
> ncdf->var = var
>
> end
>
>
>
>
>
>
> Kunal Bali
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Wed, Sep 13, 2017 at 11:27 PM, Kunal Bali <kunal.bali9 at gmail.com>
> wrote:
>
> No problem, I sorted out.
>
> Just changed short to float.
>
>
> Kunal Bali
>
> Research Scholar
>
> Radio & Atmospheric Science Division
>
> CSIR - National Physical Laboratory
>
> New Delhi - 110012
>
> India
>
>
>
>
>
>
>
>
>
>
>
> On Wed, Sep 13, 2017 at 11:24 PM, Kunal Bali <kunal.bali9 at gmail.com>
> wrote:
>
> Thanks for providing this information.
>
> Also, I would like to mention that when I plot this data. The values are
> not in the domain. I mean the real values lie in-between 0 to 1 but here it
> is reaching to 400.
>
> So, how to correct the values?
>
> Description of the variable is
>
> short Optical_Depth_055(YDim=1200, XDim=1200);
> :long_name = "AOT at 0.55 micron";
> :scale_factor = 0.001; // double
> :add_offset = 0.0; // double
> :unit = "None";
> :_FillValue = -28672S; // short
> :valid_range = -100S, 5000S; // short
>
>
>
> Kunal Bali
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Wed, Sep 13, 2017 at 10:28 PM, Adam Phillips <asphilli at ucar.edu> wrote:
>
> Hi Kunal,
>
> Yes, clicking on the output netCDF link from the Applications page:
>
> http://www.ncl.ucar.edu/Applications/o-netcdf.shtml
>
> I would recommend following the inefficient method #1. Unless you are
> writing a file with many large variables, the inefficient method works just
> fine.
>
> http://www.ncl.ucar.edu/Applications/method_1.shtml
>
> Good luck,
>
> Adam
>
>
>
> On Wed, Sep 13, 2017 at 10:25 AM, Kunal Bali <kunal.bali9 at gmail.com>
> wrote:
>
> Thank you so much, it worked
>
> I want to know one more thing.
> After rearranging the dimensions can we now convert (or write) this
> arranged file into netcdf format?
>
>
>
> Kunal Bali
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Wed, Sep 13, 2017 at 8:55 PM, Adam Phillips <asphilli at ucar.edu> wrote:
>
> Hi Kunal,
>
> I think you just need to rearrange the order of your lines and tweak a
> couple of lines. As the error message states, lat is not defined in your
> 3rd line and you are referring to it as if it is.Try this:
>
> a = addfile("/media/Local Disk/NPL/MODIS_FPC/MAIACTAOT.
> h00v02.20000570505.hdf","r")
> var = a->Optical_Depth_055(:,:)
> nlat = 1200
> nlon = 1200
> lat = latGlobeFo(nlat, "lat", "latitude", "degrees_north")
>
> lon = lonGlobeFo(nlon, "lon", "longitude", "degrees_east")
> lat = lat(::-1)
> lon = (/ lon - 180. /) ; subtract 180 from all values
> lon&lon = lon ; update coordinates
>
> var!0 = "lat" ; you can name these dimensions whatever you want..
> var!1 = "lon"
>
> var&lat = lat ; but make sure you refer to the correct named dimensions
>
> var&lat = lon
>
> ;var&XDim_grid1km = lat
> ;var&YDim_grid1km = lon
>
>
> If you have any further questions please respond to the ncl-talk email
> list.
>
> Adam
>
>
>
>
>
> On Wed, Sep 13, 2017 at 8:38 AM, Kunal Bali <kunal.bali9 at gmail.com> wrote:
>
> Dear NCL
>
> I have a file with the variable summary. The dimensions are in 2D.
>
> ncl 2> printVarSummary(var)
>
> Variable: var
> Type: short
> Total Size: 2880000 bytes
> 1440000 values
> Number of Dimensions: 2
> Dimensions and sizes: [*YDim_grid1km | 1200] x [XDim_grid1km | 1200]*
> Coordinates:
> Number Of Attributes: 7
> long_name : AOT at 0.55 micron
> scale_factor : 0.001
> add_offset : 0
> unit : None
> _FillValue : -28672
> valid_range : ( -100, 5000 )
> hdf_name : Optical_Depth_055
>
> I am trying to read the dimensions of this file as
>
> begin
> ;---Read data
> a = addfile("/media/Local Disk/NPL/MODIS_FPC/MAIACTAOT.
> h00v02.20000570505.hdf","r")
>
> var = a->Optical_Depth_055(:,:)
>
> var&XDim_grid1km = lat
> var&YDim_grid1km = lon
>
> nlat = 1200
> nlon = 1200
> lat = latGlobeFo(nlat, "lat", "latitude", "degrees_north")
> lon = lonGlobeFo(nlon, "lon", "longitude", "degrees_east")
> lat = lat(::-1)
> lon = (/ lon - 180. /) ; subtract 180 from all values
> lon&lon = lon ; update coordinates
>
>
> var!0 = "lat"
> var!1 = "lon"
>
>
> But the error appeared as
> *fatal:Variable (lat) is undefined*
>
>
>
> So, could anyone please let me know that how to read dimension of this
> file.
>
> Thank You
>
>
>
>
>
> Regards
>
> Kunal Bali
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
>
>
> --
>
> Adam Phillips
>
> Associate Scientist, Climate and Global Dynamics Laboratory, NCAR
>
> www.cgd.ucar.edu/staff/asphilli/ 303-497-1726 <(303)%20497-1726>
>
>
>
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
>
>
> --
>
> Adam Phillips
>
> Associate Scientist, Climate and Global Dynamics Laboratory, NCAR
>
> www.cgd.ucar.edu/staff/asphilli/ 303-497-1726 <(303)%20497-1726>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
>
>
> --
>
> Adam Phillips
>
> Associate Scientist, Climate and Global Dynamics Laboratory, NCAR
>
> www.cgd.ucar.edu/staff/asphilli/ 303-497-1726 <(303)%20497-1726>
>
>
>
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
>
>
> _______________________________________________ ncl-talk mailing list
> ncl-talk at ucar.edu List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
> _______________________________________________
> ncl-talk mailing list
> 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/20170919/1edf147f/attachment-0001.html>
More information about the ncl-talk
mailing list