Re: get values from wrfout file for all lat, lon points

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Wed Oct 02 2013 - 13:25:42 MDT

I think you simply need to change the "do" loop that writes out the ASCII file so that it writes the whole arrays, rather than one time step at a time.

For example, instead of:

    line = new(ntimes+1,string)

    line(0) = " Time Temperature Pressure Relative_Humidity U V Wind_speed"

    do it = 0,ntimes-1

      line(it+1) = sprintf("%5.0f",it) +" " \
          +sprintf("%18.2f", T_C(it)) +" " \
          +sprintf("%12.2f", P(it)) +" " \
          +sprintf("%12.2f", RH(it)) +" " \
          +sprintf("%12.2f", ua) +" " \
          +sprintf("%12.2f", va) +" " \
                 +sprintf("%12.2f", wind_speed(it))

    end do

You can do this (UNTESTED):

    filename = "out_2_1.txt"
    format = "%5.0f %18.2f %12.2f %12.2f %12.2f %12.2f %12.2f"
    write_table(filename,"w",header,"%s")
    write_table(filename,"w",[/it, t_C, P, RH, ua, va, wind_speed/],format)

--Mary

On Oct 1, 2013, at 8:35 PM, Luis Fernando Montana Roa <lfmontanar@unal.edu.co> wrote:

> Thanks Mary, what I need is to write an ascii file with variable values for each time step and grid point, as shown below.:
>
> Time Lat Lon Temp Pres RH U V Wind_speed
> 0 -10.0 -85.0 20.89 101.05 92.24 1.58 -1.26 2.02
> 0 -10.0 -84.5 19.94 101.01 96.16 2.18 -1.6 2.7
> ...
> 0 -9.5 -85.0 19.94 101.01 96.16 2.18 -1.6 2.7
> 0 -9.5 -84.5 19.65 101.04 96.88 2.84 -1.4 3.17
> ...
> 1 -10.0 -85.0 19.94 101.01 96.16 2.18 -1.6 2.7
> 1 -10.0 -84.5 19.65 101.04 96.88 2.84 -1.4 3.17
> ...
> 1 -9.5 -85.0 19.37 101015.75 97.29 3.09 -0.98 3.24
> 1 -9.5 -84.5 19.08 101026.23 97.51 3.23 -0.76 3.32
> ...
>
> I will appreciate any help in this regard.
>
> -- Fernando
>
> ---------- Forwarded message ----------
> From: Mary Haley <haley@ucar.edu>
> Date: Tue, Oct 1, 2013 at 3:03 PM
> Subject: Re: get values from wrfout file for all lat,lon points
> To: Luis Fernando Montana Roa <lfmontanar@unal.edu.co>
> Cc: ncl-talk@ucar.edu
>
>
> Hi Luis,
>
> I'm not sure exactly sure of your question. You don't need to get individual point locations for one lat/lon pair at a time. You can simply do the calculation across all lat/lon values.
>
> For example, instead of this do loop:
>
> do it = 0,ntimes-1
>
> time = it
> Latitude = 4.16
> Longitude = -74.87
>
> res = True
> res@returnInt = True
> point = wrf_user_ll_to_ij(in,Longitude,Latitude,res)
>
> x = point(0)
> y = point(1)
>
> U = wrf_user_getvar(in, "U", time)
> ua_in = wrf_user_unstagger(U,U@stagger)
> ua = ua_in(0:0,x,y)
> V = wrf_user_getvar(in, "V", time)
> va_in = wrf_user_unstagger(V,V@stagger)
> va = va_in(0:0,x,y)
> wind_speed(it) = sqrt(ua^2+va^2)
> copy_VarCoords(ua,wind_speed(it))
> wind_speed@Units= "m/s"
>
> T_in = wrf_user_getvar(in, "T2", time)
> T_k = T_in(x,y)
> T_C(it) = T_k-273.15
> T_C@Units="C"
>
> P_in = wrf_user_getvar(in, "PSFC", time)
> P(it) = P_in(x,y)
> P_rh=P_in(x,y)
>
> Q_in = wrf_user_getvar(in, "Q2", time)
> Q(it) = Q_in(x,y)
> Q_rh=Q_in(x,y)
>
> RH(it) = wrf_rh(Q_rh, P_rh, T_k)
>
> end do
>
> I think you can just do this, using the special value of -1 for time:
>
> time = -1
> U = wrf_user_getvar(in, "U", time) ; This will get U across all times, lats, and lons
> ua = wrf_user_unstagger(U,U@stagger)
> V = wrf_user_getvar(in, "V", time)
> va = wrf_user_unstagger(V,V@stagger)
> wind_speed( = sqrt(ua^2+va^2)
> copy_VarCoords(ua,wind_speed)
> wind_speed@Units= "m/s"
>
> T = wrf_user_getvar(in, "T2", time)
> T_C = T-273.15
> T_C@Units="C"
>
> Q_rh = wrf_user_getvar(in, "Q2", time)
> P_rh = wrf_user_getvar(in, "PSFC", time)
> RH = wrf_rh(Q_rh, P_rh, T_k)
>
>
>
>
> On Sep 30, 2013, at 4:47 PM, Luis Fernando Montana Roa <lfmontanar@unal.edu.co> wrote:
>
> > Hi, I have this script to write the values of some variables to a single point. How do I adjust it for all points (lat, lon) available in the file?
> > Thanks,
> >
> > --
> > Fernando
> > <w_v_x.ncl>_______________________________________________
> > ncl-talk mailing list
> > List instructions, subscriber options, unsubscribe:
> > http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Wed Oct 2 13:25:52 2013

This archive was generated by hypermail 2.1.8 : Fri Oct 04 2013 - 16:45:17 MDT