[ncl-talk] lat lon info in binary file
Debasish Hazra
debasish.hazra5 at gmail.com
Tue Mar 16 11:17:32 MDT 2021
Thanks Dave and Dennis. I will pursue number 1, i.e ask for any supplement
file with lat and lon coordinates in this case.
On Tue, Mar 16, 2021 at 11:43 AM Dave Allured - NOAA Affiliate <
dave.allured at noaa.gov> wrote:
> Debasish, this C384 binary grid format does not include its own lat/lon
> info. You need to go back to the data source, and either (1) find
> supplemental files that contain the lat and lon coordinates, or (2) read
> the source documentation for the method of computing the coordinates.
>
> Method (1) is best for your purposes. It is worth asking the data
> publisher to provide coordinate files, if they have not already done so.
> Method (2) is possible, but complicated and error prone.
>
>
> On Tue, Mar 16, 2021 at 8:15 AM Dennis Shea via ncl-talk <
> ncl-talk at mailman.ucar.edu> wrote:
>
>> e384tile1.dat ==> 589832 bytes
>>
>> (589832/4) = 147458 values [real or integer]
>>
>> Since the division is exact, I speculate this is a 'flat' binary file.
>> likely written via a fortran direct access or (say) C
>> as opposed to a binary file written by a fortran sequential write
>> (fortran's default) which adds an
>> INTEGER*4 byte count *at the beginning and end of each unformatted**
>> sequential record*
>> during an unformatted* sequential WRITE.*
>>
>> I have tried assorted permutations of the following:
>>
>> nlat = 384
>> mlon = 384
>>
>> setfileoption("bin","readbyteorder","littleendian")
>> ;setfileoption("bin","readbyteorder","bigendian")
>> d1 = fbindirread("./e384tile1.dat",0,(/nlat,mlon/),"float")
>> printMinMax(d1,0)
>> UNDEF = -999.0
>> d1 = where(d1.gt.1e10,UNDEF,d1)
>> printMinMax(d1,0)
>> ; d1 = fbindirread("./e384tile1.dat",0,(/nlat,mlon/),"integer")
>>
>> printVarSummary(d1)
>> printMinMax(d1,0)
>> ====
>> Nothing makes sense.
>>
>>
>> On Tue, Mar 16, 2021 at 2:57 AM Debasish Hazra via ncl-talk <
>> ncl-talk at mailman.ucar.edu> wrote:
>>
>>> Hello,
>>> Trying to read binary file and trying to extract lat-lon info for tile
>>> file (binary file in C384 grid). Used the following to read it :
>>> nlat = 384
>>> mlon = 384
>>>
>>> setfileoption("bin","readbyteorder","littleendian")
>>> d1 = fbinrecread("./e384tile1.dat",0,-1,"float")
>>>
>>> printVarSummary(d1)
>>> UNDEF = -999.0
>>>
>>> finarr = onedtond(d1(1:), (/nlat,mlon/))
>>> finarr at _FillValue = UNDEF ;
>>> printVarSummary(finarr)
>>> printMinMax(finarr,0)
>>>
>>> How to extract lat-lon bounds for that file ? Any help
>>> Thanks
>>> Debasish
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210316/abe23c72/attachment.html>
More information about the ncl-talk
mailing list