Re: Storm or Ship Tracks

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Thu, 26 Apr 2007 08:38:21 -0600 (MDT)

Hi Craig,

I was hoping somebody else would respond and tell you've they've
written a little program to do the vectors you're requesting. :-)

Unfortunately, we don't have a direct capability to do this. Of
course, you can use gsn_polyline to generate the arrows yourself, but
this is not very straightforward.

Another kludgy way might be to use gsn_add_text to put an "arrow" text
string at each new track location. You would have to use txAngleF to
rotate the arrow in the correct direction. This method doesn't allow
you a lot of other control over the arrow itself, except the size and
color.

We do have it on our list to add this kind of capability, and I'll be
sure to add your note to it.

Sorry.

--Mary

On Mon, 23 Apr 2007, Motell, Craig E CIV NAVPACMETOCCEN JTWC, wrote:

> Dear NCL Users:
>
> I am using the sample application for trajectories (traj1-traj3.ncl). This shows how to plot trajectories.
>
> What I was looking for was the same type of script but rather than just a line showing where a storm
> center is going or a ship track is going. I wanted an arrow to mark the last point and the direction of
> movement:
>
> ------x--------x-------> showing the track moving "east"
>
> Probably could make a vector out of the last point in do it that way.
>
>
> Does anyone know how to plot arrows at the end of a trajectory (included is the sample script that
> I used in my application)?.
>
> Mahalo,
> Craig Motell
> Joint Typhoon Warning Center
> Honolulu
> ;*************************************************
> ; traj_2.ncl
> ;*************************************************
> 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"
> ;**************************************************
> begin
> ;*************************************
> ; read in data
> ;************************************
> ; note this trajectory file contains data in the form of
> ; 9 variables x 131 timesteps x 100 trajectories
> ntime = 131
> path= "/fs/cgd/home0/murphys/Tutorials/Csm_graphics/special_topics/traj/"
>
> big = fbinrecread(path+"traj.bin",0,(/9,ntime,100/),"float")
> time= fbinrecread(path+"traj.bin",1,(/ntime/),"float")
> ;********************************************
> wks = gsn_open_wks("ps","traj") ; open workstation
> ;*********************************************
> ; color preps
> ;*********************************************
> cnLevels=fspan(34.5,34.8,8)
> cmap = RGBtoCmap ("/cgd/cas/murphys/Data/colormaps/redyellowblue.rgb")
> gsn_define_colormap (wks,cmap)
>
> res = True ; map resources
> res_at_gsnDraw = False ; don't draw
> res_at_gsnFrame = False ; don't advance frame
> res_at_vpWidthF = 0.80 ; make map bigger
> res_at_vpHeightF = 0.80
> res_at_mpMaxLatF = -20 ; select subregion
> res_at_mpMinLatF = -60
> res_at_mpMinLonF = -75
> res_at_mpMaxLonF = -25
>
> ; label bar resources
> res_lb = True
> res_lb_at_vpWidthF = 0.60
> res_lb_at_vpHeightF = 0.10
> res_lb_at_lbPerimOn = False ; Turn off perimeter.
> res_lb_at_lbOrientation = "Horizontal" ; Default is vertical.
> res_lb_at_lbLabelStride = 2
> res_lb_at_lbLabelAlignment = "InteriorEdges" ; Default is "BoxCenters".
> res_lb_at_lbFillColors = cmap(2:,:) ; Colors for boxes.
> res_lb_at_lbMonoFillPattern = True ; Fill them all solid.
> res_lb_at_lbLabelFontHeightF = 0.015
>
> res_at_tiMainString = "Trajectories colored by salinity (ppt)" ; title
>
> map = gsn_csm_map_ce(wks,res) ; create map
> ;*********************************************
> ; trajectory parameters
> ;*********************************************
> xpt = new(ntime,float) ; allocate memory
> ypt = new(ntime,float)
> traj = (/1,10,53,67,80/) ; choose which trajectories to plot
>
> ;*********************************************
> ; some plot parameters
> ;*********************************************
> pres = True ; polyline resources
> pres_at_gsLineThicknessF = 2.0 ; line thickness
>
> mres = True ; marker resources
> first = True ; start of traj resources
> ;********************************
> do i = 0,dimsizes(traj)-1 ; loop through chosen traj
> ypt = big(2,:,traj(i)) ; extract lat from whole array
> xpt = big(1,:,traj(i)) ; extract lon from whole array
> sst = big(8,:,traj(i))
>
> do j=0,dimsizes(ypt)-2
> pres_at_gsLineColor=GetFillColor(cnLevels,cmap,avg( (/sst(j),sst(j+1)/)))
> gsn_polyline(wks,map,(/xpt(j),xpt(j+1)/),(/ypt(j),ypt(j+1)/),pres)
> end do
>
>
> ; create a unique marker to indicate the start of the trajectory
>
> first_at_gsMarkerSizeF = 9.0 ; marker size
> first_at_gsMarkerColor = "red" ; marker color
>
> gsn_polymarker(wks,map,xpt(0),ypt(0),first) ; draw start of traj
> delete(first_at_gsMarkerColor)
> delete(first_at_gsMarkerSizeF)
> end do
> gsn_labelbar_ndc(wks,dimsizes(cnLevels)+1,cnLevels,0.30,0.30,res_lb)
> draw(map)
> frame(wks)
>
> end
>
>
_______________________________________________
ncl-talk mailing list
ncl-talk_at_ucar.edu
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Thu Apr 26 2007 - 08:38:21 MDT

This archive was generated by hypermail 2.2.0 : Thu Apr 26 2007 - 08:55:37 MDT