[ncl-talk] Calling binary files

Arka Banerjee arka354deb at gmail.com
Thu Dec 21 01:10:23 MST 2017


If I modify according to the example is it correct now for dat files?

Datadir=("data/model/result/")
diri=Datadir
all_files=systemfunc("ls " +dir+ "day*dat")
n_files=dimsizes(all_files)
do n=0,n_files-1,1
filename=all_files(n)
fn=addfile(filename,"r")

....
....
....
....


end

'addfile' is ok or it will be 'addfiles'?
Now above fn is same as below mentioned in case of operation?
fn=(/"day1.dat","day2.dat"/)


On Dec 21, 2017 12:40, "Arka Banerjee" <arka354deb at gmail.com> wrote:

> Yes.
> But one thing.
> There should not be a dot before grb?
>
> Code is attached below.
>
>
> On Dec 21, 2017 12:35 PM, "Barry Lynn" <barry.h.lynn at gmail.com> wrote:
>
>> If you want to access the files within, you need a do loop to indicate
>> which file you want to read.
>>
>> Barry
>>
>> On Thu, Dec 21, 2017 at 8:54 AM, Arka Banerjee <arka354deb at gmail.com>
>> wrote:
>>
>>> Awesome, thanks!
>>>
>>> So for this a do loop is required?
>>>
>>> Arka
>>>
>>> On Dec 21, 2017 12:22, "Barry Lynn" <barry.h.lynn at gmail.com> wrote:
>>>
>>>> Hi:
>>>>
>>>> Here is what you need (example)
>>>>
>>>>  DATADir = "/data1/wrf/NAM/"
>>>>
>>>>   diri = DATADir  ; you can add "+ date" if you have files listed in
>>>> directories by date.
>>>>
>>>>  all_files = systemfunc("ls " + diri + "nam*grb")
>>>>
>>>>  print("all_files = " + all_files)
>>>>
>>>>  n_files = dimsizes(all_files)
>>>>
>>>>  print("n_files = " + n_files)
>>>>
>>>> ;do n=0,n_files -1,1
>>>>
>>>>
>>>>  do n=12,14
>>>>
>>>>    print("all_files(n) = " + all_files(n))
>>>>
>>>>    filename = all_files(n)
>>>>
>>>>    print ("filename" + filename)
>>>>
>>>>    a = addfile(filename,"r")
>>>>
>>>> On Thu, Dec 21, 2017 at 8:31 AM, Arka Banerjee via ncl-talk <
>>>> ncl-talk at ucar.edu> wrote:
>>>>
>>>>> If one write the following line what does it mean?
>>>>>
>>>>> Fn=(/"day1.dat","day2.dat","day3.dat","day4.dat"/)
>>>>>
>>>>> The above line is not mean that all dat file names are concatenate in
>>>>> variable Fn?
>>>>> I required the same thing for 100 files but without manually putting
>>>>> the file name.
>>>>>
>>>>> That was the question.
>>>>>
>>>>> Thanks,
>>>>> Arka
>>>>>
>>>>> On Dec 21, 2017 01:37, "Dennis Shea" <shea at ucar.edu> wrote:
>>>>>
>>>>> @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
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> ncl-talk mailing list
>>>>> ncl-talk at ucar.edu
>>>>> List instructions, subscriber options, unsubscribe:
>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Barry H. Lynn, Ph.D
>>>> Senior Lecturer,
>>>> The Institute of the Earth Science,
>>>> The Hebrew University of Jerusalem,
>>>> Givat Ram, Jerusalem 91904, Israel
>>>> Tel: 972 547 231 170
>>>> Fax: (972)-25662581
>>>>
>>>> C.E.O, Weather It Is, LTD
>>>> Weather and Climate Focus
>>>> http://weather-it-is.com
>>>> Jerusalem, Israel
>>>> Local: 02 930 9525
>>>> Cell: 054 7 231 170
>>>> Int-IS: x972 2 930 9525
>>>> US 914 432 3108 <(914)%20432-3108>
>>>>
>>>
>>
>>
>> --
>> Barry H. Lynn, Ph.D
>> Senior Lecturer,
>> The Institute of the Earth Science,
>> The Hebrew University of Jerusalem,
>> Givat Ram, Jerusalem 91904, Israel
>> Tel: 972 547 231 170
>> Fax: (972)-25662581
>>
>> C.E.O, Weather It Is, LTD
>> Weather and Climate Focus
>> http://weather-it-is.com
>> Jerusalem, Israel
>> Local: 02 930 9525
>> Cell: 054 7 231 170
>> Int-IS: x972 2 930 9525
>> US 914 432 3108
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20171221/62af1561/attachment.html>


More information about the ncl-talk mailing list