Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Re: Plotting monthly/annual average wind speed maps at higher heights (> 10 m)

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


I am using the WRF model to simulate winds for the purpose of mesoscale wind resource assessment.

I seek assistance in terms of plotting average monthly/annual wind speed maps at higher heights (> 10 m) using NCL.

I am able to plot the monthly/annual wind speed maps @ 10 m successfully but when I use the wrf_user_intrp3d to interpolate it to a higher height (i.e. 55 m) I am getting errors (fatal:wrf_interp_3d_z: v3d and z must be the same dimensionality).

My script is as follows:

a = addfile("/scale_wlg_persistent/filesets/project/uoa02450/2017_Test/","r")
type = "pdf"
wks = gsn_open_wks(type,"Average 55 m Wind Speed - Jan_TEST_55m 2017")

res = True
res@mpProjection = "Mercator" ; The default
res@mpDataBaseVersion = "HighRes"

times = wrf_user_getvar(a,"times",-1)
ntimes = dimsizes(times)

u = wrf_user_getvar(a,"ua",-1)
v = wrf_user_getvar(a,"va",-1)
z = wrf_user_getvar(a,"z",-1)
ter = wrf_user_getvar(a,"ter",-1)

nheight = conform(z,ter,(/0,2,3/))
height = z - nheight

u_plane = wrf_user_intrp3d(u,height,"h",55.,0.,False)
v_plane = wrf_user_intrp3d(v,height,"h",55.,0.,False)

spd = (u_plane*u_plane + v_plane*v_plane)^(0.5)
spd@description = "Wind Speed"
spd@units = "m s-1"

spd_avg = dim_avg_n(spd(0:31,:,:,:),0)
spd_avg@description = "Average Wind Speed"
spd_avg@units = "m s-1"

res = True
opts = res
opts@cnFillOn = True
opts@cnLinesOn = True
opts@ContourParameters = (/ 0., 12., 0.5/)
opts@gsnSpreadColorEnd = -3
contour_spd_avg = wrf_contour(a,wks,spd_avg(0,:,:),opts)

plot = wrf_map_overlays(a,wks,(/contour_spd_avg/),res,res)

Appreciate your assistance and advice as to what is wrong with my script and how can I fix it.


I have managed to fix the problem with the dimensionality issue.

I am able to plot wind speeds at higher heights now.

Hi Kunal,
Could you please tell me if z = wrf_user_getvar(a,"z",-1) estimates height from ground level or sea level? I see you deducted terrain height from z. I need to find temperature at 1000 m above ground level and I am doing the following:
1. ht=wrf_user_getvar(NCDF_File,"z",0) ;where NCDF_File is a list of WRF netCDF files
2. tk=wrf_user_getvar(NCDF_File,"tk",0) ;to get temperature in K
2. temp_1km=wrf_user_interp_level(tk,ht,1000,0) ;to get temperature at 1 km
Could you please let me know if my approach is wrong? My understanding was z is calculated from ground level.
Thank you.
kunaldayal said:

I have managed to fix the problem with the dimensionality issue.

I am able to plot wind speeds at higher heights now.


could you tell us how you solved that problem?