[ncl-talk] set_dimension_query

Rick Brownrigg brownrig at ucar.edu
Wed Oct 4 14:27:38 MDT 2017


HI,

Just add to what Dave said:

Attached is a script that shows how to put these things together when
plotting. The script generates a contour plot of the variable "var" over a
map. Note that most of the data are missing, and only a triangular shaped
piece shows up in the southwest corner of the overall grid. You can see
this by commenting out the lines noted in the script (BTW: this is true for
the file you originally sent me "MAIACTAOT.h00v02.20000570505.hdf, I don't
know about any others).

You also may still have a scaling issue to deal with in the conversion
script. Note that the original variable that "var" is derived from contains
scaling and offset attributes, The offset is zero, but I **think** (not
certain) you want to multiply the data by that value.

Rick

On Wed, Oct 4, 2017 at 11:08 AM, David Brown <dbrown at ucar.edu> wrote:

> Hi Kunai,
> The lat2d and lon2d attributes are only recognized by the NCL graphics
> routines. NetCDF only supports attributes with no more than 1
> dimension. When you have 2d coordinates you should just write them
> directly to the NetCDF file as separate variables. Furthermore your 2d
> coordinates should have the same dimension names as the data variable
> and to be CF compliant the data variable should have a coordinates
> attribute that lists the names of the coordinate variables.
>
> So if you want the coordinates to be named "lat" and "lon", then you
> should introduce two new dimension names, for example, "x" and "y",
> that will be shared by the data variable and the coordinate variables:
>
> So replace this code:
>
>  lat!0 = "lat"
>  ; lat&lat = lat
>  lon!0 = "lon"
> ; lon&lon = lon
>
>  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
>
>  var at lat2d = lat
>  var at lon2d = lon
>
> with
>
> lat!0 = "y"
> lat!1 = "x"
> lon!0 = "y"
> lon!1 = "x"
> var!0 = "x'
> var!1 = "y"
>
> var at coordinates = "lat lon"
>
> then add after (or before - it shouldn't matter) this line:
>
> ncdf->var = var
>
> ncdf->lat = lat
> ncfd->lon = lon
>
>
> Hope this helps.
>  -dave
>
>
>
>
> On Wed, Oct 4, 2017 at 3:05 AM, Kunal Bali <kunal.bali9 at gmail.com> wrote:
> > Hello Rick sir, I tried your suggestion, but it did not work.
> >
> > because lons and lats are not in the a
> > That's why it shows the error variable (lons) is not in file (a)
> > So, I removed the part from the given script (below) and then tried. But
> > still not succeed in generating the netcdf file.
> >
> > please let me know if you have any more suggestions.
> >
> > ;----------------------------------------------------------------------
> >
> > 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("/Users/Pushp/Desktop/test/MAIACTAOT.h01v03.
> 20003660525.hdf","r")
> >       var  = short2flt(a->Optical_Depth_055(:,:))
> >
> >       x = fspan(-3450000.+500., -2250000.-500., 1200)
> >       y = fspan(400000.-500., -800000.+500., 1200)
> >
> >       x := conform_dims((/1200, 1200/), x, 1)
> >       y := conform_dims((/1200, 1200/), y, 0)
> >
> >
> >       src = "+proj=aea +lat_0=23.0 +lat_1=21d03m +lat_2=41 +lon_0=102
> > +ellps=clrk66"
> >       dst = "+proj=latlon +ellps=sphere"
> >       x := flt2dble(ndtooned(x))
> >       y := flt2dble(ndtooned(y))
> >       z = x   ; A quick-n-dirty way to get an empty Z array of same
> > dimensions/type
> >       z = 0.   ;
> >       transform_coordinate(src, dst, x, y, z)
> >
> >     ; convert back to curvilinear coord arrays
> >       lon = onedtond(x, (/1200, 1200/))
> >       lat = onedtond(y, (/1200, 1200/))
> >
> >     ; print(lat)   ; check that these are the correct coordinates
> >     ; print(lon)   ; check that these are the correct coordinates
> >
> >       lat at units = "degrees_north"
> >       lon at units = "degrees_east"
> >
> >       lat!0 = "lat"
> >     ; lat&lat = lat
> >       lon!0 = "lon"
> >     ; lon&lon = lon
> >
> >       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
> >
> >       var at lat2d = lat
> >       var at lon2d = lon
> >
> >       system("/bin/rm -f simple_new.nc")
> >       ncdf = addfile("simple_new.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
> >
> >        ncdf->var = var
> >
> > end
> >
> >
> > Kunal Bali
> > Research Scholar
> > Radio & Atmospheric Science Division
> > CSIR - National Physical Laboratory
> > New Delhi - 110012
> > India
> >
> >
> >
> >
> >
> > On Tue, Oct 3, 2017 at 9:24 PM, Rick Brownrigg <brownrig at ucar.edu>
> wrote:
> >>
> >> Hi Kunal,
> >>
> >> Sorry for the delay in response -- I have been travelling.  I am not
> >> expert at the issue of 2D coordinates, and have not had a chance to
> >> experiment/explore the issue. My very limited understanding is that
> with 2D,
> >> you don't need to do this sort of stuff:
> >>
> >>      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
> >>
> >> Rather, you would write to NetCDF your variable and the 2D coordinate
> >> arrays computed via transform_coordinate() as just regular variables.
> When
> >> you want to read and plot that NetCDF, you need to read the variable
> along
> >> the 2D arrays, and assign them as attributes to the variable, named very
> >> specifically lat2d and lon2d:
> >>
> >>      myVar = f->var
> >>      lons = f->lons   ; doesn't matter what the actual names are
> >>     lats = f->lats      ;   ditto
> >>
> >>     myVar at lat2d = lats
> >>     myVar at lon2d = lons
> >>
> >>     plot = gsn_xxxxxx(wks, myVar,....)
> >>
> >> Again, this is my limited understand and untested.  There's more
> >> information at thes page, and in particular example #3:
> >>
> >> http://www.ncl.ucar.edu/Applications/plot_data_on_map.shtml
> >>
> >> http://www.ncl.ucar.edu/Applications/plot_data_on_map.shtml#ex3
> >>
> >>
> >> It looks like your 2D coordinate variables may need a "degrees_north"
> >> ,etc. attribute (see the example).
> >>
> >> One of my colleagues further offers this guidance:
> >>
> >> "Also to be CF compliant and for ease of use as well, all variables
> >> that use these coordinates should have a "coordinates" attribute that
> >> lists each of these coordinates by name separated by spaces. See the
> >> CF document for details."
> >>
> >> I hope that helps...
> >> Rick
> >>
> >> On Sat, Sep 30, 2017 at 1:25 PM, Kunal Bali <kunal.bali9 at gmail.com>
> wrote:
> >>>
> >>> Thank You so much, Rick Sir for providing all these valuable
> information.
> >>> It's little complex to me but I am trying to understand.
> >>>
> >>> However, I am trying to convert this hdf file into netcdf by
> >>> incorporating your code. But file did not convert with Geo2D. please
> check
> >>> the code below if you have time.
> >>>
> >>> begin
> >>> ;---Read data
> >>>         a =
> >>> addfile("/home/kunal/mishra_sir/MAIACTAOT.h00v02.20000570505.hdf","r")
> >>>         var  = short2flt(a->Optical_Depth_055(:,:))
> >>>
> >>>       x = fspan(-3450000.+500., -2250000.-500., 1200)
> >>>       y = fspan(1600000.-500., 400000.+500., 1200)
> >>>
> >>>       x := conform_dims((/1200, 1200/), x, 1)
> >>>       y := conform_dims((/1200, 1200/), y, 0)
> >>>
> >>>
> >>>       src = "+proj=aea +lat_0=23.0 +lat_1=21d03m +lat_2=41 +lon_0=102
> >>> +ellps=clrk66"
> >>>       dst = "+proj=latlon +ellps=sphere"
> >>>       x := flt2dble(ndtooned(x))
> >>>       y := flt2dble(ndtooned(y))
> >>>       z = x   ; A quick-n-dirty way to get an empty Z array of same
> >>> dimensions/type
> >>>       z = 0.   ;
> >>>       transform_coordinate(src, dst, x, y, z)
> >>>
> >>>       ; convert back to curvilinear coord arrays
> >>>       lon = onedtond(x, (/1200, 1200/))
> >>>       lat = onedtond(y, (/1200, 1200/))
> >>>
> >>>      lat at units = "degrees_north"
> >>>     lat!0 = "lat"
> >>> ;    lat&lat = lat
> >>>     lon at units = "degrees_east"
> >>>     lon!0 = "lon"
> >>> ;    lon&lon = lon
> >>>
> >>>         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 simple1.nc")
> >>>              ncdf = addfile("simple3.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
> >>>     ;===========================================================
> ========
> >>>
> >>>        ncdf->var = var
> >>>
> >>>
> >>> end
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Kunal Bali
> >>>
> >>>
> >>>
> >>>
> >>> On Sat, Sep 30, 2017 at 10:15 PM, Rick Brownrigg <brownrig at ucar.edu>
> >>> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> This file is an interesting and challenging one to geo-reference.
> >>>> Without proper documentation on how the file is constructed/encoded,
> all of
> >>>> what follows is speculation. But I'm fairly confident it is sound.
> >>>>
> >>>> In the group GRID_1, there are these parameters:
> >>>>
> >>>>   GridName="grid1km"
> >>>>   XDim=1200
> >>>>   YDim=1200
> >>>>   UpperLeftPointMtrs=(-3450000.000000,1600000.000000)
> >>>>   LowerRightMtrs=(-2250000.000000,400000.000000)
> >>>>   Projection=GCTP_ALBERS
> >>>>   ProjParams=(0,0,21030000,41000000,102000000,23000000,0,0,0,0,0,0,0)
> >>>>   SphereCode=12
> >>>>   GridOrigin=HDFE_GD_UL
> >>>>   GROUP=Dimension
> >>>>   END_GROUP=Dimension
> >>>>
> >>>> The name suggests a 1KM grid, and as such, by its resolution, it
> should
> >>>> span 1200KM. Indeed, from the corner points:
> >>>>
> >>>> In X:  (-3450000 - -2250000) = a span of 1200000meters; divided by
> >>>> xres=1200, yields 1000meter grid cells
> >>>> In Y:  (1600000 - 400000) = 1200000meters; div by yres=1200 yields
> >>>> 1000meter grid cells
> >>>>
> >>>> So everything is consistent so far. The GCTP_ALBERS suggest the grid
> was
> >>>> constructed based upon an ALBERS projection, using the GCTP library.
> The
> >>>> ProjParams give further details:
> >>>>
> >>>>   ProjParams=(0,0,21030000,41000000,102000000,23000000,0,0,0,0,0,0,0)
> >>>>
> >>>> Again, without documentation, this is speculation, but looking at
> >>>> pg13/appendexD in:
> >>>>
> >>>>
> >>>> https://www.ngs.noaa.gov/PUBS_LIB/GeneralCartographicTransformat
> ionPackage_v2_TR_NOS124_CGS9.pdf
> >>>>
> >>>> for the Albers projection, the first 2 values appear to be semimajor
> >>>> axis of ellipsoid, and eccentricity. Both are zero, implying defaults
> of
> >>>> Clarke's 1866 ellipsoid and spherical earth (which seems to be an
> oymoron?
> >>>> I'm confused about that)
> >>>>
> >>>> The next 6 values might be:
> >>>>
> >>>>   lat of 1st standard parallel
> >>>>   lat of 2nd standard parallel
> >>>>   lon of central meridian
> >>>>   lat of projection's origin
> >>>>   false easting (zero in this case)
> >>>>   false northing (zero)
> >>>>
> >>>> the remaining zeros don't seem to apply.
> >>>>
> >>>> NCL does not have an public interface to GCTP, but there is an
> >>>> undocumented interface to the well-known proj4 library. The trick
> here is to
> >>>> use it to convert from meters-on-the ground units into lat/lon.  The
> first
> >>>> step is to construct arrays representing the grid's position in
> meters. In
> >>>> the X direction, if we did
> >>>>
> >>>>   x = fspan(-3450000., -2250000, 1200)
> >>>>
> >>>> we get an array of 1201, which is wrong. I speculate that for a grid
> of
> >>>> 1200, those values represent the total *spatial extent* of the grid,
> but
> >>>> that the data are based upon cell centers, not corners. Thus
> something like:
> >>>>
> >>>>   x = fspan(-3450000.+500., -2250000.-500., 1200)
> >>>>   y = fspan(1600000.-500., 400000.+500., 1200)
> >>>>
> >>>> A 1km grid cannot obviously be constant spacing in longitude, so
> >>>> ultimately, your coordinate arrays are going to be curvilinear:
> >>>>
> >>>>   x := conform_dims((/1200, 1200/), x, 1)
> >>>>   y := conform_dims((/1200, 1200/), y, 0)
> >>>>
> >>>> NOTE: THIS ASSUMES THE GRID IS ROW MAJOR, WEST-->EAST, NORTH-->SOUTH
> >>>>
> >>>> The undocumented NCL function "transform_coordinates" takes a proj4
> >>>> source-porjection string, dest-proj string, x, y, z 1D arrays of type
> >>>> double, and returns the results in the x,y,z arrays. I won't go into
> the
> >>>> details of the proj-strings. We want something like:
> >>>>
> >>>> src = "+proj=aea +lat_0=23.0 +lat_1=21d03m +lat_2=41 +lon_0=102
> >>>> +ellps=clrk66"
> >>>> dst = "+proj=latlon +ellps=sphere"
> >>>> x := flt2dble(ndtooned(x))
> >>>> y := flt2dble(ndtooned(y))
> >>>> z = x   ; A quick-n-dirty way to get an empty Z array of same
> >>>> dimensions/type
> >>>> z = 0.  ;
> >>>> transform_coordinate(src, dst, x, y, z)
> >>>>
> >>>> ; convert back to curvilinear coord arrays
> >>>> lon = onedtond(x, (/1200, 1200/))
> >>>> lat = onedtond(y, (/1200, 1200/))
> >>>>
> >>>>
> >>>> From here, you have to associate the lat/lon coordinate arrays with
> the
> >>>> variables you want to plot, as Adam and other previously described.
> >>>>
> >>>> Attached is a script and example plot of the resultant grid. Please
> let
> >>>> the group know if this appears to be the correct area-of-interest.
> >>>>
> >>>> Rick
> >>>>
> >>>>
> >>>>
> >>>> On Fri, Sep 29, 2017 at 11:45 AM, Rick Brownrigg <brownrig at ucar.edu>
> >>>> wrote:
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> I do not know for certain without examining the file, but it looks
> like
> >>>>> those values are map-projection parameters, from which curvilinear
> grid was
> >>>>> generated as equal-area grid cells in lat/lon spac.
> >>>>>
> >>>>> Rick
> >>>>>
> >>>>> On Fri, Sep 29, 2017 at 10:16 AM, Kunal Bali <kunal.bali9 at gmail.com>
> >>>>> wrote:
> >>>>>>
> >>>>>> Thanks for all the suggestions and help Adam Sir. Now the data is
> >>>>>> showing over the Indian region.
> >>>>>> but one thing I need to confirm here.
> >>>>>>
> >>>>>> Some values in the form of UpperLeftPointMtrs and LowerRightMtrs are
> >>>>>> given in the file ((in the original hdf file) ) description along
> with X
> >>>>>> YDim.
> >>>>>>
> >>>>>> So, does these value interfer while creating the lat lon dimensions
> >>>>>> during conversion netcdf from hdf?
> >>>>>>
> >>>>>> Sould these values be consider or we can ignore these values?
> >>>>>>
> >>>>>>
> >>>>>> group: latlon {
> >>>>>>     variables:
> >>>>>>       short _HDFEOS_CRS;
> >>>>>>         :Projection = "GCTP_ALBERS";
> >>>>>>         :UpperLeftPointMtrs = -3450000.0, 1600000.0; // double
> >>>>>>         :LowerRightMtrs = -2250000.0, 400000.0; // double
> >>>>>>         :ProjParams = 0.0, 0.0, 2.103E7, 4.1E7, 1.02E8, 2.3E7, 0.0,
> >>>>>> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; // double
> >>>>>>         :SphereCode = "12";
> >>>>>>
> >>>>>>     group: Data_Fields {
> >>>>>>       dimensions:
> >>>>>>         YDim = 1200;
> >>>>>>         XDim = 1200;
> >>>>>>       variables:
> >>>>>>         float lat(YDim=1200, XDim=1200);
> >>>>>>
> >>>>>>         float lon(YDim=1200, XDim=1200);
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Regards
> >>>>>> Kunal Bali
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Thu, Sep 28, 2017 at 9:27 PM, Adam Phillips <asphilli at ucar.edu>
> >>>>>> wrote:
> >>>>>>>
> >>>>>>> Hi Kunal,
> >>>>>>> As the documentation states, latGlobeFo (lonGlobeFo) generates
> >>>>>>> latitudes (longitudes) and associated metadata for a global fixed
> offset
> >>>>>>> grid.
> >>>>>>>
> >>>>>>> https://www.ncl.ucar.edu/Document/Functions/
> Contributed/latGlobeFo.shtml
> >>>>>>>
> >>>>>>> https://www.ncl.ucar.edu/Document/Functions/
> Contributed/lonGlobeFo.shtml
> >>>>>>> If you need to create coordinates for a regional grid, then you
> will
> >>>>>>> have to do it by hand. For example, if you know your data are
> equally spaced
> >>>>>>> in the both the latitude and longitude direction from 0:40N,
> 60:100E (for
> >>>>>>> example), you can set up your coordinates like this:
> >>>>>>>
> >>>>>>> lat = fspan(0,40,1200)
> >>>>>>> lon = fspan(60,100,1200)
> >>>>>>> print(lat)   ; check that these are the correct coordinates
> >>>>>>> print(lon)   ; check that these are the correct coordinates
> >>>>>>> lat at units = "degrees_north"
> >>>>>>> lat!0 = "lat"
> >>>>>>> lat&lat = lat
> >>>>>>> lon at units = "degrees_east"
> >>>>>>> lon!0 = "lon"
> >>>>>>> lon&lon = lon
> >>>>>>> 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
> >>>>>>>
> >>>>>>> The above is similar to what latGlobeFo/lonGlobeFo do for global
> >>>>>>> grids. Hope that helps. If you have further questions please
> respond to
> >>>>>>> ncl-talk.
> >>>>>>> Adam
> >>>>>>>
> >>>>>>> On Tue, Sep 26, 2017 at 10:26 AM, Kunal Bali <
> kunal.bali9 at gmail.com>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> Thanks for all the suggestions Dennis sir.
> >>>>>>>> But now I have come to know that the dimensions
> >>>>>>>>
> >>>>>>>> nlat=1200
> >>>>>>>> nlon=1200
> >>>>>>>>
> >>>>>>>> are belongs to only of Indian region.
> >>>>>>>>
> >>>>>>>> And the code I am using below is not displaying the data over
> Indian
> >>>>>>>> region.
> >>>>>>>>
> >>>>>>>>  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
> >>>>>>>>
> >>>>>>>> So please help me regarding this issue.
> >>>>>>>>
> >>>>>>>> regards
> >>>>>>>> Kunal Bali
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Tue, Sep 19, 2017 at 10:36 PM, Dennis Shea <shea at ucar.edu>
> wrote:
> >>>>>>>>>
> >>>>>>>>> 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
> >>>>>>>>>>
> >>>>>>>>>> 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")
> >>>>>>>>>>       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
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> 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
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> 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
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> 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
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> 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
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> 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/20171004/932a185e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: plotsimple.ncl
Type: application/octet-stream
Size: 1059 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20171004/932a185e/attachment.obj>


More information about the ncl-talk mailing list