[ncl-talk] Reading in .ieeer8 file and plotting it with NCL
Dennis Shea
shea at ucar.edu
Mon Jan 9 15:39:12 MST 2017
I was just corrected on
----
then, in your graphics code
res at lat2d = lat2d
res at lon2d = lon2d
;---
Be this (?)
;----
then, in your graphics code
res at lat2d = tlat <=== correct
res at lon2d = ltlon <=== correct
On Mon, Jan 9, 2017 at 3:33 PM, Dennis Shea <shea at ucar.edu> wrote:
> There are 'variables that contain coordinates' and 'coordinate variables'.
>
> Coordinate Variables (CVs) are one-dimensional and contain montonicall
> {in/de}creasing numerical values. Think 'rectilinear grid'. The
> 'copy_VarCoords' applies only to this strict subset of coordinates.
>
> ===
> Looking at the SFWF variable:
>
> float SFWF(time, nlat, nlon) ;
> SFWF:long_name = "Virtual Salt Flux in FW Flux
> formulation" ;
> SFWF:units = "kg/m^2/s" ;
> SFWF:coordinates = "TLONG TLAT time" ; <*****************
> SFWF:grid_loc = "2110" ;
> SFWF:cell_methods = "time: mean" ;
> SFWF:_FillValue = 9.96921e+36f ;
> SFWF:missing_value = 9.96921e+36f ;
>
> ===
>
>
> REPLACE:
>
> ************************************************************
> ; Copy variable attributes to the binary data
> ;************************************************************
>
> printVarSummary(flx)
>
> copyVarMeta(sfwf,flx)
>
> WITH
>
> tlat = f->TLAT
> ltlon = f->TLON
>
> =======================
>
>
> then, in your graphics code
>
> res at lat2d = lat2d
> res at lon2d = lon2d
>
> +++++++++++++++++++++++++
>
> http://www.ncl.ucar.edu/Applications/
> Under "Models" ... Click CESM: POP
>
> There are numerous examples of plotting this type of data.
>
> HTH
> D
>
>
> On Mon, Jan 9, 2017 at 9:46 AM, Hughlett, Taylor M <
> taylor.hughlett at uta.edu> wrote:
>
>> Hi Dennis,
>>
>> I finally got around to doing this. I am attempting to copy over metadata
>> from the lat/lon coordinates in a netCDF file to the flx variable in the
>> binary file, but it tells me the syntax is wrong? I followed the examples
>> on the website…
>>
>> Here is the full script with the area of concern highlighted:
>>
>> ;************************************************************
>> 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"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
>> ;************************************************************
>>
>> begin
>>
>> ;************************************************************
>> ; Set file paths
>> ;************************************************************
>>
>> fileb = "sfwf_mm_PHC2_salx_flxio_20090205.ieeer8"
>> dirb = "/glade/p/work/hughlett/PETM/paleo_setup/ocn/sfwf/"
>> pathb = dirb+fileb
>>
>> reffl = "b.e12.B1850CN.PETM8x.f09_g16.pop.h.0001-01.nc"
>> refflpath = "/glade/scratch/hughlett/csm/b.e12.B1850CN.PETM8x.f09_g16/oc
>> n/hist/"
>> refpth = refflpath+reffl
>>
>> pltnm = "bin_sfwf_mm_PHC2_salx_flxio_20090205"
>> pltdir = "/glade/scratch/hughlett/plots/b.e12.B1850CN.PETM8x.f09_g16/
>> ocn/horizontal/"
>> pltpth = pltdir+pltnm
>> ;************************************************************
>> ; Set dimensions
>> ;************************************************************
>>
>> ntim = 12
>> nlat = 320
>> nlon = 384
>>
>> dims = (/ntim,nlat,nlon/)
>>
>> ;************************************************************
>> ; Open and read binary file
>> ;************************************************************
>>
>> setfileoption("bin","ReadByteOrder","BigEndian")
>> sss = fbindirread(pathb, 0, dims, "double")
>> flx = fbindirread(pathb, 1, dims, "double")
>>
>> ;************************************************************
>> ; Open and read referece file
>> ;************************************************************
>>
>> f = addfile(refpth,"r")
>> sfwf = f->SFWF
>>
>> ;************************************************************
>> ; Copy variable attributes to the binary data
>> ;************************************************************
>>
>> printVarSummary(flx)
>>
>> copyVarMeta(sfwf,flx)
>>
>> ;************************************************************
>> ; Details of plot
>> ;************************************************************
>>
>> field = "SFWF"
>> plt_unit = "kg m ~S~-2~N~ s~S~-1~N~"
>> fieldname = "Surface Freshwater Forcing"
>>
>> ContourMode = "ManualLevels"
>> ;ContourMode = "AutomaticLevels"
>> ;ContourMode = "ExplicitLevels"
>> maxcn = 0.0002
>> mincn = -0.0002
>> ci = 0.00005
>>
>> ;************************************************************
>> ; Set workstation and resources
>> ;************************************************************
>> wks = gsn_open_wks("ps",pltpth) ; open a postscript file
>> gsn_define_colormap(wks,"MPL_BrBG")
>>
>> res = True
>> res at mpProjection = "MOLLWEIDE" ; choose projection
>> res at mpGridAndLimbOn = True ; turn on lat/lon lines
>> res at mpPerimOn = False ; turn off box around plot
>> res at mpGridLatSpacingF = 30. ; spacing for lat lines
>> res at mpGridLonSpacingF = 30. ; spacing for lon lines
>> res at cnFillOn = True ; Fill contours
>> res at mpGridLonSpacingF = 30. ; spacing for lon lines
>> res at cnFillOn = True ; Fill contours
>> res at cnSmoothingOn = True
>>
>> ;res at mpMinLatF = 30. ; range to zoom in on
>> ;res at mpMaxLatF = 60.
>> ;res at mpMinLonF = 100.
>> ;res at mpMaxLonF = 180.
>>
>> cnSmoothingTensionF = -2.5
>> res at mpFillOn = False
>> res at mpCenterLonF = 0
>> res at cnLevelSelectionMode = ContourMode
>> if(ContourMode.eq."ExplicitLevels")then
>> res at cnLevels = contours
>> end if
>> if(ContourMode.eq."ManualLevels")then
>> res at cnMaxLevelValF = maxcn
>> res at cnMinLevelValF = mincn
>> res at cnLevelSpacingF = ci
>> end if
>> res at gsnSpreadColors = True
>> res at cnLinesOn = True
>> res at cnLineLabelsOn = True
>> res at cnLineLabelFontHeightF = 0.006
>> ;res at cnLineLabelFontAspectF = 1.1
>>
>> res at gsnDraw = False ; Do not draw plot
>> res at gsnFrame = False ; Do not advance frome
>> res at tiMainFontHeightF = .03
>> res at lbLabelFontHeightF = 0.012
>> res at cnLineLabelFontHeightF = .006
>> res at cnLineLabelBackgroundColor = "white"
>> res at txFontHeightF = 0.02
>> res at gsnRightString = plt_unit
>> res at gsnLeftString = fieldname
>> res at mpDataBaseVersion ="MediumRes"
>> res at txFont = 21
>> res at tiMainFont = 21
>> res at tiXAxisFont = 21
>> res at tiYAxisFont = 21
>> res at lbLabelFont = 21
>> res at tmXBLabelFont = 21
>> res at tmYLLabelFont = 21
>>
>> ;************************************************************
>> ; Plot
>> ;************************************************************
>>
>> plot = new(1,graphic)
>> plot(0) = gsn_csm_contour_map(wks,flx(1,:,:),res)
>>
>> end
>>
>> Taylor M Hughlett, Ph.D.
>> UTA Earth and Environmental Sciences
>> 500 Yates St.
>> Geoscience Bldg Rm 117
>> Arlington, TX 76013-0049
>>
>> From: Dennis Shea <shea at ucar.edu>
>> Date: Thursday, January 5, 2017 at 12:26 PM
>> To: "Hughlett, Taylor M" <taylor.hughlett at uta.edu>
>> Cc: Dave Allured - NOAA Affiliate <dave.allured at noaa.gov>, "
>> ncl-talk at ucar.edu" <ncl-talk at ucar.edu>
>>
>> Subject: Re: [ncl-talk] Reading in .ieeer8 file and plotting it with NCL
>>
>> ntim = 12
>>
>> nlat = 320
>>
>> mlon = 384
>>
>> dims = (/ntim,nlat,mlon/) ; dims(3)
>>
>> filb = "binary_file_name"
>>
>> dirb = "/dir/where_binary_file/located/"
>>
>> pthb = dirb+filb
>>
>>
>> * setfileoption*("bin","ReadByteOrder","BigEndian")
>>
>> sss = *fbindirread*(pthb, 0, dims, "double")
>>
>> fx = *fbindirread*(pthb, 1, dims, "double")
>>
>>
>>
>> On Thu, Jan 5, 2017 at 10:21 AM, Hughlett, Taylor M <
>> taylor.hughlett at uta.edu> wrote:
>>
>>> Hi Dave,
>>>
>>> Thank you so much for the information. I was able to track down the file
>>> that has all of the descriptions I required, and am now working on reading
>>> it in using NCL!
>>>
>>> Cheers,
>>> Taylor M Hughlett, Ph.D.
>>> UTA Earth and Environmental Sciences
>>> 500 Yates St.
>>> Geoscience Bldg Rm 117
>>> Arlington, TX 76013-0049
>>>
>>> From: Dave Allured - NOAA Affiliate <dave.allured at noaa.gov>
>>> Date: Wednesday, January 4, 2017 at 6:52 PM
>>> To: "Hughlett, Taylor M" <taylor.hughlett at uta.edu>
>>> Cc: "ncl-talk at ucar.edu" <ncl-talk at ucar.edu>
>>> Subject: Re: [ncl-talk] Reading in .ieeer8 file and plotting it with NCL
>>>
>>> Taylor,
>>>
>>> > 2. How do I know what data is stored on the file prior
>>> > to reading it in (i.e. Variables)? Or is this even possible?
>>>
>>> Files called "binary" without additional qualification can only be
>>> understood by formal documentation, or by at least a minimal description
>>> from the person who created the file. You need to get this description
>>> from the source of your data. Typically there is no descriptive metadata
>>> stored inside such files, and the assumption is that this description is
>>> somewhere external.
>>>
>>> The description should include file layout details such as array sizes,
>>> positions, dimension order of storage, elemental data type, byte order,
>>> fortran write mode if any, and record structure if any. The description
>>> should also include what variables and possibly metadata are stored. If
>>> the layout details are hard to get, it can sometimes help to find out just
>>> what software created the file.
>>>
>>> The suffix .ieeer8 says to me, "8-byte reals", because only fortran
>>> uses the type name "real" instead of "float" or "floating point". A fuller
>>> type description is "8-byte IEEE floating point values", but that is
>>> just a guess. If correct, that would be NCL data type "double", and that
>>> does not answer any of the other questions about file layout.
>>>
>>> --Dave
>>>
>>>
>>> On Wed, Jan 4, 2017 at 1:47 PM, Dennis Shea <shea at ucar.edu> wrote:
>>>
>>>> Were the data records written by fortran or
>>>> See: http://www.atmos.washington.ed
>>>> u/~salathe/osx_unix/endian.html
>>>>
>>>> or ?????
>>>>
>>>> [0]
>>>> The problem with binary is that someone must describe how the data was
>>>> written. Fortran's default (sequential) binary has **hidden record
>>>> separators**. The user could also open a binary with "access=direct". This
>>>> means 'flat' binary files (no record separators.
>>>>
>>>> [1]
>>>> Were the binary files created on a big- or little-endian system? See:
>>>> https://en.wikipedia.org/wiki/Endianness
>>>>
>>>> [2]
>>>> Likely, fbindirread *or* fbinrecread would work. However, without more
>>>> knowledge not much more can be said.
>>>>
>>>> [3]
>>>> One major reason for the creation of HDF and netCDF to allow the files
>>>> to be 'blindly' examined via a suite of standard function functions.
>>>>
>>>>
>>>>
>>>> On Wed, Jan 4, 2017 at 1:30 PM, Hughlett, Taylor M <
>>>> taylor.hughlett at uta.edu> wrote:
>>>>
>>>>> Good afternoon everyone,
>>>>>
>>>>> I am attempting to read in a .ieeer8 file using NCL so that it can be
>>>>> plotted.
>>>>>
>>>>> I am completely new with binary files, so bear with me.
>>>>>
>>>>> I understand that this is a binary file, so visualization and reading
>>>>> it is much more complicated than it would be with netCDF’s.
>>>>>
>>>>> After having looked over the instructions on the NCL site, I am still
>>>>> having some confusion with how to get started.
>>>>>
>>>>> Specifically, I have these questions:
>>>>>
>>>>> 1. Will the fbindirread work to read in a .ieeer8 file (I am
>>>>> assuming the file is fortran as it is a restart file for CESM1’s POP2)?
>>>>> 2. How do I know what data is stored on the file prior to reading
>>>>> it in (i.e. Variables)? Or is this even possible?
>>>>>
>>>>> Any help would be greatly appreciated with this, and I am happy to
>>>>> provide more information if it is required.
>>>>>
>>>>> Thanks,
>>>>> Taylor M Hughlett, Ph.D.
>>>>> UTA Earth and Environmental Sciences
>>>>> 500 Yates St.
>>>>> Geoscience Bldg Rm 117
>>>>> Arlington, TX 76013-0049
>>>>>
>>>>
>>> _______________________________________________
>>> 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/20170109/a568b30b/attachment.html
More information about the ncl-talk
mailing list