[ncl-talk] A binary file contains 6 variables(3-dimensional)

Mary Haley haley at ucar.edu
Tue Mar 14 10:29:07 MDT 2017


Hi,

You have defined your 3D array dimensions as nlat x nlon x nlev, but then
you are defining the dimensions of "hgt" in a different order:

hgt!0                   = "level"
hgt!1                   = "lat"
hgt!2                   = "lon"

The above implies your hgt array is ordered nlev x nlat x nlon.

I don't know how your data is ordered on the binary file, but you either
need to fix your "dims" array:

  dims  = (/nlev,nlat,nlon/)

or you need to fix the order that you name the "hgt" dimensions:

hgt!0                   = "lat"
hgt!1                   = "lon"
hgt!2                   = "level"

I think everything else in your script looks okay, but this code is
redundant:

hgt&level at units         = "hPa"
hgt&lat at units           = "degrees_north"
hgt&lon at units           = "degrees_east"

You've already attached the "units" to the level, lat, and lon arrays, so
you don't need to do it again.

--Mary


On Mon, Mar 13, 2017 at 11:41 PM, 김가은 <gaeun.kim0921 at gmail.com> wrote:

> Hello, world!
>
> I want to draw several plots with data which is a binary file contains 6
> variables(3-dimensional) and made like below:
>
> open(2,file=ofile,status='unknown',form='unformatted')
>      write(2) (((hgtm(i,j,k),i=1,imx),j=1,jmx),k=1,lx)
>      write(2) (((ugrdm(i,j,k),i=1,imx),j=1,jmx),k=1,lx)
>      write(2) (((vgrdm(i,j,k),i=1,imx),j=1,jmx),k=1,lx)
>      write(2) (((vvelm(i,j,k),i=1,imx),j=1,jmx),k=1,lx)
>      write(2) (((tmpm(i,j,k),i=1,imx),j=1,jmx),k=1,lx)
>      write(2) (((rhm(i,j,k),i=1,imx),j=1,jmx),k=1,lx)
>   close(2)
>
> And then I wrote a NCL script to read and plot them.
> Here is the prob:
> fatal:No coordinate variable exists for dimension (level) in variable (hgt)
>
> My script:
>
>   nlon = 659
>   nlat = 539
>   nlev = 17
>
>   dims  = (/nlat,nlon,nlev/)
>   lat      = fspan(slat,elat,nlat)
>   lon      = fspan(slon,elon,nlon)
>  level = (/1000.,925.,850.,700.,600.,500.,400.,300.,\
>            250.,200.,150.,100.,70.,50.,30.,20.,10./)
>
>   hgt       = fbindirread(path_prs, 0, dims, "float")
>   u       = fbindirread(path_prs, 1, dims, "float")
>   v       = fbindirread(path_prs, 2, dims, "float")
>   vvel       = fbindirread(path_prs, 3, dims, "float")
>   temp       = fbindirread(path_prs, 4, dims, "float")
>   rh      = fbindirread(path_prs, 5, dims, "float")
>
>   lon!0         = "lon"
>   lon at long_name = "lon"
>   lon at units     = "degrees_east"
>   lon&lon       = lon
>
>   lat!0         = "lat"
>   lat at long_name = "lat"
>   lat at units     = "degrees_north"
>   lat&lat       = lat
>
>   level!0                 = "level"
>   level at units             = "hPa"
>   level at long_name         = "isobaric_surface"
>   level&level           = level
>
> hgt!0                   = "level"
> hgt!1                   = "lat"
> hgt!2                   = "lon"
> hgt&level               = level <--- this one makes error!
> hgt&lat                 = lat
> hgt&lon                 = lon
> hgt&level at units         = "hPa"
> hgt&lat at units           = "degrees_north"
> hgt&lon at units           = "degrees_east"
> hgt at units               = "gpm"
> hgt at long_name           = "geopotential height"
>
>
>
>
> _______________________________________________
> 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/20170314/56785769/attachment.html 


More information about the ncl-talk mailing list