<div dir="ltr"><span id="result_box" class="" lang="en"><span class="">Hello</span> <span class="">Gustavo</span><span>.</span><br><br> <span class="">Gustavo</span><span>,</span> <span class="">my data</span> <span class="">has</span> <span class="">a latitude</span><span>, longitude</span><span>,</span> <span class="">time and the values</span> <span class="">of my</span> <span class="">variable.</span><br><br> <span class="">I imagine that</span> <span class="">at each grid</span> <span class="">point</span> <span class="">(</span><span>x</span><span>, y, and</span> <span class="">time</span><span>)</span> <span class="">there are values</span> <span class="">of my</span> <span class="">variable that</span> <span class="">change with</span> <span class="">time.</span><br><br> <span class="">Which of the</span> <span class="">scripts</span> <span class="">could do</span> <span class="">the course</span><span>?</span> <span class="">The</span> <span class="">traj_1.ncl</span> <span class="">or</span> <span class="">traj_2.ncl</span><span>?</span><br><br> <span class="">Could you tell</span> <span class="">me</span> <span class="">how the data should</span> <span class="">be organized</span> <span class="">for the scripts</span> <span class="">work?</span><br><br> <span class="">With these</span> <span class="">my data</span><span>:</span> <span class="">x,</span> <span class="">y</span> <span class="">variable</span> <span class="">time-varying</span> <span class="">....</span> <span class="">is possible to trace</span> <span class="">the trajectories</span> <span class="">of my</span> <span class="">variable?</span><br><br> <span class="">Gustavo</span><span>, sorry</span> <span class="">so many questions</span><span>,</span> <span class="">but I need to</span> <span class="">understand how</span> <span class="">the script</span> <span class="">works for</span> <span class="">trying to organize</span> <span class="">the data correctly</span><span>.</span><br><br> <span class="">Thanks</span>!!!<br> <span class="">Cheers</span><span>!</span><br><br> <span class="">Carlos Batista</span></span></div><div class="gmail_extra"><br><div class="gmail_quote">2014-12-07 12:42 GMT-02:00 Gustavo Correa <span dir="ltr"><<a href="mailto:gus@ldeo.columbia.edu" target="_blank">gus@ldeo.columbia.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Carlos<br>
<br>
Something is amiss, which is hard for me to understand,<br>
because you didn't tell clearly what is in your data.<br>
<br>
To draw trajectories, you need the position (x,y)<br>
of the particles.<br>
You could use the salinity information *also* (as in example traj_2.ncl, where<br>
salinity values are associated to variations in the trajectory color).<br>
However, the fundamental information you need is position (x,y), not salinity itself,<br>
and that is what is used in example traj_1.ncl.<br>
<br>
What do you have (x,y), or do you have salinty only?<br>
What is in the 250 points in your file?<br>
<br>
In the example traj_1.ncl, ntime=131, the input file seems to have<br>
a first Fortran record (record 0) with 9 x 131 x 100 data points,<br>
and a second Fortran record (record 1) with 131 data points (presumably<br>
the time data values associated to the first record).<br>
The first record seems to store x (xpt) and y (ypt) coordinates in the big(1,:,traj(i)),<br>
and big(2,:,traj(i)) points of the first record in the input file.<br>
You see? The script uses the particle position (x,y) to draw the trajectories.<br>
It doesn't even use the salinity values (which is used only in scrpit traj_2.ncl,<br>
and seems to be stored in big(8,:,traj(i)).<br>
<br>
That is as far as I can tell from the code in those two examples (which I haven't run/tried).<br>
<br>
Does your file have the salinity values only?<br>
If that is the case, you cannot draw trajectories.<br>
You may not need all the information that the file in the examples have.<br>
However, you definitely need the particle position (x,y).<br>
<span class="im HOEnZb"><br>
I hope this helps,<br>
Gus Correa<br>
<br>
</span><div class="HOEnZb"><div class="h5">On Dec 7, 2014, at 7:13 AM, Carlos Batista wrote:<br>
<br>
><br>
> Hello Gustavo.<br>
><br>
> My files were written in Fortran, compiled in ifort. I can transform this data into ASCII using the very FORTRAN or NetCDF using GrADS. However, do not know if using the GrADS will work too.<br>
><br>
> Gustavo, my data are ocean variables (salinity). Therefore, I have variables in all oceans and I would like to trace their paths, like the example that is on the page. That means I have more than 1 trajectorie?<br>
><br>
> Gustavo, the cbinread did not work. What really works is the descriptor fbinrecread. I tried again without the time information, as you recommended.<br>
><br>
> Now there's one new problem. The problem arises within another command: coordinate matrices.<br>
><br>
> See the new test:<br>
> ;*******************************<br>
> carlos@carlos-Lenovo-IdeaPad-Z400-Touch:~/area/$ ncl<br>
><br>
> Copyright (C) 1995-2013 - All Rights Reserved<br>
> University Corporation for Atmospheric Research<br>
> NCAR Command Language Version 6.1.2<br>
> The use of this software is governed by a License Agreement.<br>
> See <a href="http://www.ncl.ucar.edu/" target="_blank">http://www.ncl.ucar.edu/</a> for more details.<br>
><br>
> ncl 0> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"<br>
> ncl 1> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"<br>
> ncl 2> ;**************************************************<br>
> ncl 3> begin<br>
> ncl 4> ntime = 250<br>
><br>
> ncl 6> big = fbinrecread("dados.bin",0,(/1,ntime,1/),"float")<br>
><br>
> ncl 7> wks = gsn_open_wks("ps","traj")<br>
> ncl 8> res = True<br>
> ncl 9> res@gsnDraw = False<br>
> ncl 10> res@gsnFrame = False<br>
> ncl 11> res@vpWidthF = 0.80<br>
> ncl 12> res@vpHeightF = 0.80<br>
> ncl 13> res@mpMaxLatF = -20<br>
> ncl 14> res@mpMinLatF = -60<br>
> ncl 15> res@mpMinLonF = -75<br>
> ncl 16> res@mpMaxLonF = -25<br>
> ncl 17><br>
> ncl 18> res@tiMainString = "Example of a trajectory plot" ; title<br>
> ncl 19> res@gsnCenterString = "markers every 4th time step"<br>
> ncl 20><br>
> ncl 21> map = gsn_csm_map_ce(wks,res)<br>
> ncl 22> ;*********************************************<br>
> ncl 23> ; trajectory parameters<br>
> ncl 24> ;*********************************************<br>
> ncl 25> xpt = new(ntime,float)<br>
> ncl 26> ypt = new(ntime,float)<br>
> ncl 27> traj = (/-1,-0.5,0.1,0.5,1/)<br>
> ncl 28> pres = True<br>
> ncl 29> pres@gsLineThicknessF = 2.0<br>
> ncl 30> colors= (/"red","blue","dark green","grey","magenta"/)<br>
> ncl 31><br>
> ncl 32> mres = True<br>
> ncl 33> first = True<br>
> ncl 34> ;********************************<br>
> ncl 35> c=0<br>
> ncl 36> do i = 0,dimsizes(traj)-1<br>
><br>
> ncl 37> ypt = big(2,:,traj(i))<br>
><br>
> ncl 38> xpt = big(1,:,traj(i))<br>
><br>
><br>
> ncl 40> pres@gsLineColor = colors(c)<br>
> ncl 41> c=c+1<br>
> ncl 42> gsn_polyline(wks,map,xpt,ypt,pres)<br>
> ncl 44> ; add markers to the trajectories<br>
> ncl 45><br>
> ncl 46> mres@gsMarkerIndex = 16<br>
> ncl 47> mres@gsMarkerSizeF = 4.0<br>
> ncl 48> mres@gsMarkerColor = "black"<br>
> ncl 49> gsn_polymarker(wks,map,xpt(::4),ypt(::4),mres) ; draw every 4th marker<br>
> ncl 50><br>
> ncl 51> ; create a unique marker to indicate the start of the trajectory<br>
> ncl 52><br>
> ncl 53> first@gsMarkerSizeF = 8.0<br>
> ncl 54> first@gsMarkerColor = "green"<br>
> ncl 55><br>
> ncl 56> gsn_polymarker(wks,map,xpt(0),ypt(0),first)<br>
> ncl 57> delete(first@gsMarkerColor)<br>
> ncl 58> delete(first@gsMarkerSizeF)<br>
><br>
> ncl 59> end do<br>
> ncl 60> draw(map)<br>
> ncl 61> frame(wks)<br>
> ncl 62><br>
> ncl 63> end<br>
><br>
> warning:fbinrecread: size specified is greater than record size, filling with missing values<br>
> fatal:Illegal subscript. Subscripts must be integer when not using coordinate indexing<br>
> fatal:["Execute.c":8126]:Execute: Error occurred at or near line 37<br>
><br>
> ;;;;;;;*****************************<br>
><br>
> Thanks again!<br>
><br>
> Cheers!<br>
> Carlos Batista<br>
><br>
><br>
><br>
><br>
> 2014-12-06 23:10 GMT-02:00 Gustavo Correa <<a href="mailto:gus@ldeo.columbia.edu">gus@ldeo.columbia.edu</a>>:<br>
> Hi Carlos<br>
><br>
> Binary files are a pain.<br>
> You need to know how they were written (Fortran or C, sequential or direct access, the number<br>
> type that was written: 4-byte real, 8-byte real, 4-byte integer, etc,<br>
> if there are record separators, etc), then choose the right function to read the file based<br>
> on this information.<br>
> Better avoid them, use self describing formats like NetCDF,<br>
> or for small amounts of data just plain ascii.<br>
><br>
> Do you know any of the information above of your data file?<br>
> Can you at least do:<br>
><br>
> ls -l dados.bin<br>
><br>
> Anyway, do you have a single stream of 250 data points (ie. a single "trajectory")?<br>
> If this is the case (and the error message suggests this) you should instruct the<br>
> reading function to read only those 250 data points.<br>
> It sounds as you have only one trajectory, not 100, but it is hard to tell.<br>
> If this is the case, you need to change the example script more than just<br>
> the data reading routine, to match the data you have.<br>
><br>
> In addition, if you don't have the time information written to the file,<br>
> you should not try to read it, ie. remove this:<br>
> > time= fbinrecread("dados.bin",1,(/ntime/),"float")<br>
><br>
><br>
> Also, the error message suggests that the file was not written by Fortran,<br>
> maybe it was written by a C program.<br>
> Have you tried cbinread instead?<br>
> Say, something like this:<br>
><br>
> > big = cbinread("dados.bin",(/1,ntime,1/),"float")<br>
><br>
><br>
> I hope this helps,<br>
> Gus Correa<br>
><br>
><br>
> On Dec 6, 2014, at 1:26 PM, Carlos Batista wrote:<br>
><br>
> > Hi Gustavo, How are you?<br>
> ><br>
> > My file is in the binary format.<br>
> > I have only one variable over time (250 Timesteps).<br>
> ><br>
> > In NCl I tried to enter the information by modifying the size of the read data<br>
> > ;*******************************************************************<br>
> > ; 1 variables x 250 x 100 Timesteps trajectories<br>
> > Ntime = 250<br>
> ><br>
> > big fbinrecread = ("my_data.bin" 0, (/ 1, Ntime, 100 /), "float")<br>
> > time = fbinrecread ("my_data.bin", 1, (/ Ntime /), "float")<br>
> ><br>
> > ;*********************************************************************<br>
> ><br>
> > Another thing I did not understand is why the existence of only 100 trajectories. If I want more I can change this value?<br>
> ><br>
> > **********************************see the error*****************************<br>
> ><br>
> > carlos@carlos-Lenovo-IdeaPad-Z400-Touch:~/area/$ ncl<br>
> > Copyright (C) 1995-2013 - All Rights Reserved<br>
> > University Corporation for Atmospheric Research<br>
> > NCAR Command Language Version 6.1.2<br>
> > The use of this software is governed by a License Agreement.<br>
> > See <a href="http://www.ncl.ucar.edu/" target="_blank">http://www.ncl.ucar.edu/</a> for more details.<br>
> ><br>
> > ncl 0> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"<br>
> > ncl 1> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"<br>
> > ncl 2> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"<br>
> > ncl 3> begin<br>
> > ncl 4> ntime = 250<br>
> > ncl 5> big = fbinrecread("dados.bin",0,(/1,ntime,100/),"float")<br>
> ><br>
> > ncl 6> time= fbinrecread("dados.bin",1,(/ntime/),"float")<br>
> ><br>
> > ncl 7> wks = gsn_open_wks("ps","traj")<br>
> > ncl 8> ;*********************************************<br>
> > ncl 9> ; color preps<br>
> > ncl 10> ;*********************************************<br>
> > ncl 11> cnLevels=fspan(34.5,34.8,8)<br>
> > ncl 12> cmap = RGBtoCmap ("redyellowblue.rgb")<br>
> > ncl 13> gsn_define_colormap (wks,cmap)<br>
> > ncl 14><br>
> > ncl 15> res = True<br>
> > ncl 16> res@gsnDraw = False<br>
> > ncl 17> res@gsnFrame = False<br>
> > ncl 18> res@vpWidthF = 0.80<br>
> > ncl 19> res@vpHeightF = 0.80<br>
> > ncl 20> res@mpMaxLatF = -20<br>
> > ncl 21> res@mpMinLatF = -60<br>
> > ncl 22> res@mpMinLonF = -75<br>
> > ncl 23> res@mpMaxLonF = -25<br>
> > ncl 24><br>
> > ncl 25> ; label bar resources<br>
> > ncl 26> res_lb = True<br>
> > ncl 27> res_lb@vpWidthF = 0.60<br>
> > ncl 28> res_lb@vpHeightF = 0.10<br>
> > ncl 29> res_lb@lbPerimOn = False<br>
> > ncl 30> res_lb@lbOrientation = "Horizontal"<br>
> > ncl 31> res_lb@lbLabelStride = 2<br>
> > ncl 32> res_lb@lbLabelAlignment = "InteriorEdges"<br>
> > ncl 33> res_lb@lbFillColors = cmap(2:,:)<br>
> > ncl 34> res_lb@lbMonoFillPattern = True<br>
> > ncl 35> res_lb@lbLabelFontHeightF = 0.015<br>
> > ncl 36><br>
> > ncl 37> res@tiMainString = "Trajectories colored by salinity (ppt)" ; title<br>
> > ncl 38><br>
> > ncl 39> map = gsn_csm_map_ce(wks,res)<br>
> > ncl 40> ;*********************************************<br>
> > ncl 41> ; trajectory parameters<br>
> > ncl 42> ;*********************************************<br>
> > ncl 43> xpt = new(ntime,float)<br>
> > ncl 44> ypt = new(ntime,float)<br>
> > ncl 45> traj = (/1,10,53,67,80/)<br>
> > ncl 46><br>
> > ncl 47> ;*********************************************<br>
> > ncl 48> ; some plot parameters<br>
> > ncl 49> ;*********************************************<br>
> > ncl 50> pres = True<br>
> > ncl 51> pres@gsLineThicknessF = 2.0<br>
> > ncl 52><br>
> > ncl 53> mres = True<br>
> > ncl 54> first = True<br>
> > ncl 55> ;********************************<br>
> > ncl 56> do i = 0,dimsizes(traj)-1<br>
> > ncl 57> ypt = big(2,:,traj(i))<br>
> > ncl 58> xpt = big(1,:,traj(i))<br>
> > ncl 59> sst = big(8,:,traj(i))<br>
> > ncl 60><br>
> > ncl 61> do j=0,dimsizes(ypt)-2<br>
> > ncl 62> pres@gsLineColor=GetFillColor(cnLevels,cmap,avg( (/sst(j),sst(j+1)/)))<br>
> > ncl 63> gsn_polyline(wks,map,(/xpt(j),xpt(j+1)/),(/ypt(j),ypt(j+1)/),pres)<br>
> > ncl 64> end do<br>
> > ncl 65><br>
> > ncl 66><br>
> > ncl 67> ; create a unique marker to indicate the start of the trajectory<br>
> > ncl 68><br>
> > ncl 69> first@gsMarkerSizeF = 9.0<br>
> > ncl 70> first@gsMarkerColor = "red"<br>
> > ncl 71><br>
> > ncl 72> gsn_polymarker(wks,map,xpt(0),ypt(0),first) ; draw start of traj<br>
> > ncl 73> delete(first@gsMarkerColor)<br>
> > ncl 74> delete(first@gsMarkerSizeF)<br>
> > ncl 75> end do<br>
> > ncl 76> gsn_labelbar_ndc(wks,dimsizes(cnLevels)+1,cnLevels,0.30,0.30,res_lb)<br>
> > ncl 77> draw(map)<br>
> > ncl 78> frame(wks)<br>
> > ncl 79><br>
> > ncl 80> end<br>
> ><br>
> > warning:fbinrecread: size specified is greater than record size, filling with missing values<br>
> > fatal:fbinrecread: 0 or less than zero fortran control word, FILE NOT SEQUENTIAL ACCESS!<br>
> > fatal:["Execute.c":8126]:Execute: Error occurred at or near line 6<br>
> > **************************************************<br>
> ><br>
> > Thanks!<br>
> > Carlos<br>
> ><br>
> ><br>
> > 2014-12-06 16:00 GMT-02:00 Gustavo Correa <<a href="mailto:gus@ldeo.columbia.edu">gus@ldeo.columbia.edu</a>>:<br>
> > Hi Carlos<br>
> ><br>
> > I guess it all depends on how your your input data file looks like.<br>
> > Is it an ascii, binary, NetCDF, HDF, GRIB file?<br>
> > NetCDF, HDF, and to some extent GRIB are self describing, and can be read<br>
> > with NCL's "addfile" function:<br>
> ><br>
> > <a href="http://www.ncl.ucar.edu/Document/Functions/Built-in/addfile.shtml" target="_blank">http://www.ncl.ucar.edu/Document/Functions/Built-in/addfile.shtml</a><br>
> ><br>
> > Ascii layout is easy to see directly on the file, and can be read with NCL's "asciiread" function:<br>
> ><br>
> > <a href="http://www.ncl.ucar.edu/Document/Functions/Built-in/asciiread.shtml" target="_blank">http://www.ncl.ucar.edu/Document/Functions/Built-in/asciiread.shtml</a><br>
> ><br>
> > Those above are in general they easier to read than binary,<br>
> > because the latter can vary in layout and record structure in many different ways.<br>
> > But you can also read binary, with fbinread, cbinread, fbinrecread, etc,<br>
> > although all depends on how it was written/created:<br>
> ><br>
> > <a href="http://www.ncl.ucar.edu/Document/Functions/io.shtml" target="_blank">http://www.ncl.ucar.edu/Document/Functions/io.shtml</a><br>
> ><br>
> ><br>
> > You say<br>
> > "I have data with just 1 variable to 250 times."<br>
> ><br>
> > Is it a NetCDF or HDF file?<br>
> > Is it an ascii column file with 250 lines, one value per line?<br>
> > Does it have a column for time also, say one "time value" pair per line?<br>
> > Is it binary? If binary, how is it organized?<br>
> ><br>
> > The example traj_1.ncl reads a file with this layout:<br>
> > ******<br>
> > ; note this trajectory file contains data in the form of<br>
> > ; 9 variables x 131 timesteps x 100 trajectories<br>
> > ntime = 131<br>
> ><br>
> > big = fbinrecread("traj.bin",0,(/9,ntime,100/),"float")<br>
> > time= fbinrecread("traj.bin",1,(/ntime/),"float")<br>
> > ******<br>
> ><br>
> > You can change the two "fbinrecread" commands above and<br>
> > adjust them to your input file layout, but you need to know the input file<br>
> > type and layout.<br>
> ><br>
> > I hope this helps,<br>
> > Gus Correa<br>
> ><br>
> ><br>
> > On Dec 6, 2014, at 12:09 PM, Carlos Batista wrote:<br>
> ><br>
> > > Hi users<br>
> > > My name is Carlos and I'm new in the use of NCL...<br>
> > > I need to know what the structure of the data read by the routine trajectories. <a href="https://www.ncl.ucar.edu/Applications/traj.shtml" target="_blank">https://www.ncl.ucar.edu/Applications/traj.shtml</a> ... for example: traj_1.ncl<br>
> > ><br>
> > > I have data with just 1 variable to 250 times. How can I know the number of trajectories of such data?<br>
> > ><br>
> > > Who has an example with data is read could send for me, please!<br>
> > > _______________________________________________<br>
> > > ncl-talk mailing list<br>
> > > List instructions, subscriber options, unsubscribe:<br>
> > > <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
> ><br>
> > _______________________________________________<br>
> > ncl-talk mailing list<br>
> > List instructions, subscriber options, unsubscribe:<br>
> > <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
> ><br>
><br>
> _______________________________________________<br>
> ncl-talk mailing list<br>
> List instructions, subscriber options, unsubscribe:<br>
> <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
><br>
> _______________________________________________<br>
> ncl-talk mailing list<br>
> List instructions, subscriber options, unsubscribe:<br>
> <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
<br>
_______________________________________________<br>
ncl-talk mailing list<br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
</div></div></blockquote></div><br></div>