[Wrf-users] Seeking WRF-Var Guidance

Don Morton Don.Morton at umontana.edu
Mon Jan 1 17:49:02 MST 2007


Howdy, now that it's "vacation" time again I'm back to
trying to muddle my way through WRF-Var.  I feel like I
may have my procedures down correctly, but I don't have
the practical experience to know if my results are reasonable
or not.

To date, I have gone through the WRF-Var tutorial successfully
and understand the basic procedures.  In order to gain a better
understanding of all this, my efforts are now focused on assimilating
a single surface observation on a 50km x 50km domain centered on
Deadhorse, Alaska.  The domain is 1km resolution with 31 levels.

My intent is to ingest a single surface temperature obs at lat/lon
70.20/-148.47 (Deadhorse).  I wrote up a Fortran program that
will take a netCDF wrfout (or wrfinput) filename, lat, and lon as
arguments, find the four surrounding grid points, then do a bilinear
interpolation to estimate a "point" value.  For this particular location
I find that the initial temperature in my wrfinput_d01 file is -23.8C.

So, I've created a little_r obs file (thank you Mike McAtee and Xuanli for
responding to my post a couple of months ago about how to get my
surface obs into little_r format) that presents a perturbed temperature
at this point (I've tried several values), then gone through the assimilation
process.  In all cases, when I compare the initial temperature in the
original wrfinput_d01 with the one in the wrfvar output file, they're
identical out to 7 significant digits.   An excerpt of the wrf-var output
from using an obs temperature of 8K higher than the initial temperature
from wrfinput_d01 is:

 ----------------------------------------------------------
  Inner iteration stopped after    1 iterations
   Final cost function :  7.76275575D+00 and Gradient:  7.96228229D-14
 ----------------------------------------------------------

    Final cost function J  =     7.762755752421293

    Total number of obs.    =        1
    Final 3DVAR value of J  =         7.76276
    Final 3DVAR value of Jo =         7.53804
    Final 3DVAR value of Jb =         0.22471
    Final J / total num_obs =         7.76276
    3DVAR Jb factor used (1)=         1.00000
    3DVAR Jb factor used (2)=         1.00000
    3DVAR Jb factor used (3)=         1.00000
    3DVAR Jb factor used (4)=         1.00000
    3DVAR Jb factor used (5)=         1.00000

I've also tried perturbations of 4K, 23K, etc.  It seems that
if my perturbed obs is too large (e.g. greater than 12K), the
obs isn't even used.

Now I'm stuck.  I have a number of theories, but I'd like to avoid
too much blind trial and error.  What I'd like to do is introduce an
observation (or set of observations) that will actually result in my
wrf-var output showing an initial temperature that's different from
the one in my original wrfinput_d01.

I'm using the default background error files that came with
WRF-Var.  I do realize that I need to modify these at some
point, but right now I'm just on an incremental learning curve
and I'm looking for qualitative differences.

I'm guessing that maybe introducing a single obs into this domain
just isn't "enough" for WRF-Var to assimilate it, and the gradient
I see in the previous example sort of strengthens that theory.  So, my
question is, given my 50x50 1km-resolution domain, is it reasonable
to expect WRF-Var (with the default background error files) to produce
some perturbed initial temperatures near Deadhorse, based on a single
surface temperature obs, or am I asking for too much?

If some kind and patient soul would be willing to help guide me through
this process, I'd be very appreciative, and I'd be very happy to write up
a tutorial - sort of a Dummy's Guide on how - after you've gone through
the WRF-Var Tutorial - you'd go about setting up your own simple domain
with some basic obs for assimilation.  In my opinion, the current WRF-Var
tutorial is great for understanding some of the basic procedures, but it's
a huge jump from there to ingesting one's own obs and getting them
to assimilate effectively into one's own domain.  I'd like to think that
this Dummy's Guide would help to bridge that.

I've gone through an AMS paper and Tech Report by Barker, et. al on
"A Three-Dimensional Variational Data Assimilation System for MM5,"
but estimate I need to go through these another 758 times before I
understand most of the details.  I have some background in Finite Element
Methods, so the idea of variational methods isn't totally foreign.  At this
point, I "think" what I need is access to some practical expertise.  At this
point, blindly trying lots of different things doesn't seem very productive, and
I'm not sure where else to turn.

Also, I'm getting the impression that WRF-Var is pretty much an extension
of the MM5 data assimilation code.  Does anybody know of "Dummy Guide"
types of references for MM5 that might help me?

Thanks for your patience and time on reading what I believe may be
the first wrf-users post of 2007!

Don Morton

-- 
Don Morton
Department of Computer Science
The University of Montana - Missoula
http://www.cs.umt.edu/~morton/



More information about the Wrf-users mailing list