[ncl-talk] Winds overlaid with shipping track data
Mary Haley
haley at ucar.edu
Mon Aug 3 09:09:10 MDT 2015
Melissa,
Could you be more specific than "it's not working correctly?" It's hard
for us to debug a problem when we don't know where to look.
It's also helpful to include a sample image with an explanation of what's
wrong with it, or an error message.
--Mary
On Fri, Jul 31, 2015 at 10:28 AM, Melissa Lazenby <M.Lazenby at sussex.ac.uk>
wrote:
> Hi NCL-Users
>
> I am struggling to get my loops to work in a plot I am trying to create
> for an animation.
>
> I have u and v wind data that has 7304 timesteps in it and I have a text
> file of shipping data that I want to use to plot ship tracks for the same
> wind fields i.e I would like to create 7304 png images to use to create an
> animation using fmpeg.
>
> The text file of the shipping data has 252391 timesteps so I only want to
> extract the data that matches the wind data. So I want to plot ship tracks
> only every 6 hours.
>
> The wind data is 4 times daily at 00,06,12,18
> The ship data is hourly 00,01,02,03,04 etc..
>
> I want to create plots to match up with the wind fields i.e. use the winds
> as the background plot and overlay them with ship tracks using polymarker
> function in NCL for every 6 hours.
>
> Below is my script but it is not working correctly.
>
> If anyone could please advice how to go about fixing it that would be much
> appreciated.
>
> Many thanks!
>
> Kindest Regards
> Melissa
>
> ;----------------------------------------------------------------------
> ; Krakatoa_1.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"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
>
> begin
>
> f=addfile("/mnt/geog/ml382/McGill_Project/ReanalysisV2/uwnd_krakatoa.nc",
> "r")
>
> g=addfile("/mnt/geog/ml382/McGill_Project/ReanalysisV2/vwnd_krakatoa.nc",
> "r")
>
>
> latS = -70.
> latN = 50.
> lonL = 0.
> lonR = 150.
>
> u = f->uwnd(:,0,:,:)
> v = g->vwnd(:,0,:,:)
>
> lat = f->lat
> lon = f->lon
> time = f->time
>
> speed= new(dimsizes(u),float)
>
> do gg = 0,dimsizes(time)-1
>
> speed(gg,:,:) = sqrt(u(gg,:,:)^2+v(gg,:,:)^2)
>
> speed!0 = "time"
> speed!1 = "lat"
> speed!2 = "lon"
> speed&time= time
> speed&lat = lat
> speed&lon = lon
> speed at long_name = "Wind Speed"
> speed at units = "m/s"
>
>
> wks = gsn_open_wks("X11","Krakatoa_Animation_"+time(gg)+"")
> ; specifies a plot
> plot = new (dimsizes(time),"graphic")
> plot1= new (dimsizes(time),"graphic")
> plot2= new (dimsizes(time),"graphic")
> x= new (dimsizes(time),"float")
> y= new (dimsizes(time),"float")
> ;---Create plot
>
> res = True ; plot mods desired
>
> res at cnFillOn = True ; turn on color for
> contours
> res at cnLinesOn = False ; turn off contour lines
> res at cnLineLabelsOn = False ; turn off contour line
> labels
> res at gsnScalarContour = True ; contours desired
> res at gsnDraw = False ; do not draw the plot
> res at gsnFrame = False
>
>
> res at vcRefMagnitudeF = 2.0 ; define vector ref mag
> res at vcRefLengthF = 0.008 ; define length of vec
> ref
> res at vcRefAnnoOrthogonalPosF = -1.0 ; move ref vector
> res at vcRefAnnoArrowLineColor = "black" ; change ref vector
> color
> res at vcRefAnnoArrowUseVecColor = False ; don't use vec color
> for ref
>
> res at vcGlyphStyle = "CurlyVector" ; turn on curley vectors
> res at vcLineArrowColor = "black" ; change vector color
> res at vcLineArrowThicknessF = 2.0 ; change vector
> thickness
> res at vcVectorDrawOrder = "PostDraw" ; draw vectors last
> res at vcMinDistanceF = 0.02
>
> res at gsnLeftString = ""
> res at gsnMainString = ""
> res at gsnRightString = ""
>
> res at mpMinLonF = lonL ; select a subregion
> res at mpMaxLonF = lonR
> res at mpMinLatF = latS
> res at mpMaxLatF = latN
>
>
> pres = True
> pres at mpFillOn = False
> pres at cnFillOn = True ; color on
> pres at cnLinesOn = False ; turn off contour lines
> pres at gsnScalarContour = True ; vectors over contours
> pres at gsnSpreadColors = True ; use full colormap
> pres at gsnAddCyclic = False
> pres at gsnDraw = False ; do not draw the plot
> pres at gsnFrame = False
> pres at lbLabelBarOn = False
> pres at gsnMaximize = True
>
> pres at mpMinLonF = lonL ; select a subregion
> pres at mpMaxLonF = lonR
> pres at mpMinLatF = latS
> pres at mpMaxLatF = latN
>
>
> pres at gsnLeftString = ""
> pres at gsnMainString = ""
> pres at gsnRightString = ""
>
>
> pres at cnLevelSelectionMode= "ManualLevels" ; manual levels
> pres at cnMinLevelValF = -100 ; min level
> pres at cnMaxLevelValF = 120 ; max level
> pres at cnLevelSpacingF = 10 ; contour spacing
>
>
> mres = True
> mres at gsMarkerIndex = 3 ; polymarker style
> mres at gsMarkerSizeF = 20. ; polymarker size
> mres at gsMarkerColor = "red"
>
> mpres = True ; plot mods desired
> mpres at xyMarkLineModes = "Markers" ; choose which have
> markers
> mpres at xyMarkers = 16 ; choose type of
> marker
> mpres at xyMarkerColor = "red" ; Marker color
> mpres at xyMarkerSizeF = 0.01 ; Marker size
> (default 0.01)
>
>
> ;Ship track data
>
> ship = "/mnt/geog/ml382/McGill_Project/ReanalysisV2/Krakatoa_ID.txt"
> data = asciiread(ship,-1,"string")
> year = stringtointeger(str_get_cols(data,1,5))
> month = stringtointeger(str_get_cols(data,8,9))
> day = stringtointeger(str_get_cols(data,11,13))
> hour = stringtointeger(str_get_cols(data,15,20))
> slat = stringtointeger(str_get_cols(data,22,28))
> slon = stringtointeger(str_get_cols(data,31,37))
>
>
> k=0
>
>
> do j=0, 4
> jj=j+1881
> do i=0, 11
> do m=0, 30
> n = 0
> do nn=0, 7304
>
> data_index = ind((year(k) .eq. jj) .and. (month(k) .eq. i) .and. (day(k)
> .eq. m) .and. (hour(k) .eq. n))
>
>
> if(.not. any(ismissing(data_index))) then
> x(k)=slon(data_index)
> y(k)=slat(data_index)
>
> print(x)
> print(y)
>
> end if
>
> polyres = True ; poly marker mods desired
> polyres at gsMarkerIndex = 16 ; choose circle as polymarker
> polyres at gsMarkerSizeF = 7.0 ; select size to avoid streaking
> polyres at gsMarkerColor = "red" ; choose color
>
>
> pres at gsnLeftString = "Krakatoa: Winds and Shipping Tracks"
> plot(gg) = gsn_csm_contour_map(wks,speed(gg,:,:),pres)
> plot1(gg)= gsn_csm_vector(wks,u(gg,:,:),v(gg,:,:),res)
>
>
> overlay(plot(gg),plot1(gg))
>
> plot2(gg) = gsn_add_polymarker(wks,plot(gg),x(k),y(k),polyres) ; draw
> polymarkers
>
>
> draw(plot(gg))
> frame(wks)
>
> k=k+1
> n=nn+6
>
> end do
> end do
> end do
> end do
> end do
>
> end
>
>
> _______________________________________________
> 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/20150803/2dff6844/attachment.html
More information about the ncl-talk
mailing list