[ncl-talk] multiple ascii file outputs
Mary Haley
haley at ucar.edu
Mon May 9 10:13:48 MDT 2016
It helps if you provide more information about what the problem is. Are
you getting an error of any kind? If so, please indicate which line the
error occurs on.
I think the problem is here:
do ip = 0, 18
do it = 0,ntimes-1 ;ntimes-1
data (it)= (sprintf("%5.0f",it) +" " \
+sprintf("%21.2f", temp(it)) +" " \
+sprintf("%22.2f", rain_expp(it)) +" " \
+sprintf("%23.2f", rain_conn(it)) +" " \
+sprintf("%24.2f", rain_tot(it)) +" " \
+sprintf("%17.2f", wspd(it)) +" " \
+sprintf("%25.2f", wdir(it)) +" " \
+sprintf("%18.2f", snoww_eq(it)) +" " \
+sprintf("%19.2f", snowh_h(it)) +" " )
end do
end do ; end of time loop
asciiwrite (fName , data)
You have a double "do" loop, where "data" is getting created inside the
inner do loop. For each iteration of "ip", then, the previous strings
assigned to "data" are getting clobbered. In fact, I'm not even sure why
you are looping across "ip=0,18", because the inside loop is doing the
exact same thing every time.
Finally, you call "asciiwrite", but this is only going to contain "data"
from the last iteration of "ip" (ip=18).
--Mary
On Sat, May 7, 2016 at 8:52 AM, Ramchandra Karki <rammetro at hotmail.com>
wrote:
> Dear NCL help,
> I am trying to extract multiple stations time series (ascci output for
> each stations) from wrfoutput file but i could not succeed in doing so.
> Would you please kindly guide me to get the solution?
>
> ; -------------- LOAD FUNCTIONS AND PROCEDURES ----------------
>
> 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/wrf/WRFUserARW.ncl"
>
> ; -------------- BEGINING OF NCL SCRIPT ----------------
> begin
> DATADir = "/mnt/gpfs1/data/private/fgvy024/Build_WRF/WRFV6/run/"
> FILES = systemfunc (" ls -1 " + DATADir + "wrfout_d03* ")
> numFILES = dimsizes(FILES)
> a = addfiles(FILES+".nc","r")
> times = wrf_user_list_times(a) ; get times in the file
> ntimes = dimsizes(times) ; number of times in the file or 1584
> for domain1 4750
>
> ;new parameters naming
> temp = new(ntimes,float)
> rain_expp = new(ntimes,float)
> rain_conn = new(ntimes,float)
> rain_tot = new(ntimes,float)
> wspd = new(ntimes,float)
> wdir = new(ntimes,float)
> snoww_eq = new(ntimes,float)
> snowh_h = new(ntimes,float)
> ;rhh = new(ntimes,float)
>
> ;******************************* time loop
> do it = 0, ntimes-1
> time = it
>
> ;************************************************
> do ip = 0, 18 ;loop for number of station locations
> ip_lats = (/ 27.3081, 27.6331, 27.86, 27.959167, \
> 27.696667, 27.8024, 27.8953, 27.99, 27.9818, \
> 27.90506667, 27.89671667, 27.901, 27.8987, \
> 27.89261111, 27.87828333, 27.85911111, \
> 27.60111, 27.74661, 27.85722 /)
> ip_lons = (/ 86.5042, 86.2331, 86.46, 86.81278, 86.721389, 86.7144, \
> 86.8188, 86.83, 86.7649, 86.37536667, 86.37428333, 86.37625,
> 86.37911667, \
> 86.37594444, 86.43361667, 86.43388889, 86.74028, 86.713, 86.79417 /)
> res = True
> res at returnInt = True
> point = wrf_user_ll_to_ij(a, ip_lons(ip), ip_lats(ip), True)
> x = point(0) - 1
> y = point(1) - 1
>
> tc2 = wrf_user_getvar(a,"T2",it) ; temp extraction
> tc2 = tc2 -273.16
> temp(it) = tc2(y,x) ; temperature extraction for station location
> rain_exp = wrf_user_getvar(a,"RAINNC",it)
> rain_con = wrf_user_getvar(a,"RAINC",it)
> rain_expp(it) = rain_exp(y,x)
> rain_conn(it) = rain_con(y,x)
> rain_tot(it) = rain_exp(y,x) + rain_con(y,x)
> u10 = wrf_user_getvar(a,"U10",it) ; u at 10 m, mass point
> v10 = wrf_user_getvar(a,"V10",it) ; v at 10 m, mass point
> wspd(it) = ndtooned( sqrt(u10(y,x)^2 + v10(y,x)^2) )
> wdir(it) = ndtooned( atan2(u10(y,x),v10(y,x))/0.01745329 +180. )
> snow_eq = wrf_user_getvar(a,"SNOW",it)
> snow_h = wrf_user_getvar(a,"SNOWH",it)
> snoww_eq(it) = snow_eq(y,x)
> snowh_h (it) = snow_h(y,x)
>
> end do ; end of station loop
> end do ; end of time loop
>
> npts=ntimes
> fName =
> ip+"T2oben_1kmtemp_rainnonc_rainc_raintot_wspd_wdir_snow_snowh.txt"
> data = new( npts, "string")
> ;print(" Time temp ")
> do ip = 0, 18
> do it = 0,ntimes-1 ;ntimes-1
> data (it)= (sprintf("%5.0f",it) +" " \
> +sprintf("%21.2f", temp(it)) +" " \
> +sprintf("%22.2f", rain_expp(it)) +" " \
> +sprintf("%23.2f", rain_conn(it)) +" " \
> +sprintf("%24.2f", rain_tot(it)) +" " \
> +sprintf("%17.2f", wspd(it)) +" " \
> +sprintf("%25.2f", wdir(it)) +" " \
> +sprintf("%18.2f", snoww_eq(it)) +" " \
> +sprintf("%19.2f", snowh_h(it)) +" " )
> end do
> end do ; end of time loop
>
> asciiwrite (fName , data)
>
> 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/20160509/f57ddaa9/attachment.html
More information about the ncl-talk
mailing list