[ncl-talk] Calling binary files

Dennis Shea shea at ucar.edu
Wed Dec 20 13:07:51 MST 2017


@Arka: Please read the

https://www.ncl.ucar.edu/Document/Manuals/


   - NCL User Guide, V1.1
   <https://www.ncl.ucar.edu/Document/Manuals/NCL_User_Guide>
   - Mini-Language (pdf)
   <https://www.ncl.ucar.edu/Document/Manuals/language_man.pdf>

====================================
NCL does allow a user to specify a *variable *which spans multiple netCDF,
grib or HDF files to (effectively) be concatenated via *addfiles *and the
appropriate* ListSetType *options.
*NOTE: the files are not concatenated ....only the specified variable.*
https://www.ncl.ucar.edu/Document/Functions/Built-in/addfiles.shtml
https://www.ncl.ucar.edu/Document/Functions/Built-in/ListSetType.shtml

=====
There is *no *explicit NCL function which concatenates *binary* or *text*
(ascii)* files*.
Please Read: https://www.ncl.ucar.edu/Applications/r-binary.shtml

===
Some options:

[1] On the {U/Li}nix command line:

%> *cat* LocalBinaryFiles*dat *>!* BigBinary.dat

The *!* will overwrite 'BigBinary.dat' if the file currently exits.

Depending on the binary file type, use:

    Direct Access:            data = *fbindirread*
<https://www.ncl.ucar.edu/Document/Functions/Built-in/fbindirread.shtml>("BigBinary.dat",rec,dim,type)

    Sequential Access:        data = *fbinrecread*
<https://www.ncl.ucar.edu/Document/Functions/Built-in/fbinrecread.shtml>("BigBinary.dat",rec,dim,type)

*Please read* the documentation for these function:

http://www.ncl.ucar.edu/Document/Functions/Built-in/fbindirread.shtml
http://www.ncl.ucar.edu/Document/Functions/Built-in/fbinrecread.shtml

also, binary files could be '*BigEndian*" or '*LittleEndian**. *The
following allows you to specify

http://www.ncl.ucar.edu/Document/Functions/Built-in/isbigendian.shtml

 if (*isbigendian*() ) then   ; is local machine big or little endian?
     *setfileoption*
<http://www.ncl.ucar.edu/Document/Functions/Built-in/setfileoption.shtml>("bin","ReadByteOrder","LittleEndian")
 end if

 x = *fbindirread*(...)

or

 c = *fbinrecread*(...)

Sfter you are finished, you may want to delete the 'BigBinary.dat' file

%> rm BigBinary.dat

Or, perhaps the individual binary files and keep the concatenated file:

%> rm LittleBinary*dat


[2]

diri = ".../"    ; input dir

if (*.not.fileexists*("BigBinary.dat")) then

    system("cat LocalBinary*dat >! "BigBinary.dat")

end if


    Direct Access:            data = *fbindirread*
<https://www.ncl.ucar.edu/Document/Functions/Built-in/fbindirread.shtml>("BigBinary.dat",rec,dim,type)

    Sequential Access:        data = *fbinrecread*
<https://www.ncl.ucar.edu/Document/Functions/Built-in/fbinrecread.shtml>("BigBinary.dat",rec,dim,type)








On Wed, Dec 20, 2017 at 10:27 AM, Laura Fowler via ncl-talk <
ncl-talk at ucar.edu> wrote:

> Hi Arka:
>
> I usually use systemfunc, followed with ListSetType, and then addfiles
> to read a bunch of the same kind of files together. There are lots of
> examples on how to use systemfun on the ncl web site.
>
> Hope this helps,
> Laura
>
>
> On Wed, Dec 20, 2017 at 9:13 AM, Arka Banerjee via ncl-talk
> <ncl-talk at ucar.edu> wrote:
> > Hi all,
> >
> > How to concatenate all file names in a single variable in NCL? I have
> 100 of
> > .dat files in a directory and I want to call them all in a variable like
> > below;
> >
> > fn=(/"gsmap_nrt.20100805.0600.dat","gsmap_nrt.20100805.0900.dat"/)
> >
> > So that 'fn' will be re-structured for 100 of .dat files in the same way
> of
> > above line.
> >
> >
> > How to execute this thing? Function 'addfiles' helps in this case? As I
> have
> > found it is not for ascii formate.
> >
> >
> > Thanks,
> >
> > Arka
> >
> > _______________________________________________
> > ncl-talk mailing list
> > ncl-talk at ucar.edu
> > List instructions, subscriber options, unsubscribe:
> > http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> >
>
>
>
> --
> !-----------------------------------------------------------
> --------------------------------------------------
> Laura D. Fowler
> Mesoscale and Microscale Meteorology Division (MMM)
> National Center for Atmospheric Research
> P.O. Box 3000, Boulder CO 80307-3000
>
> e-mail: laura at ucar.edu
> phone: 303-497-1628
>
> !-----------------------------------------------------------
> --------------------------------------------------
> _______________________________________________
> 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/20171220/1210bc71/attachment.html>


More information about the ncl-talk mailing list