/HRD_Doppler_synthesis

Variational wind retrieval for multiple Doppler data

Primary LanguageFORTRAN

HRD Multi-Doppler Variational Wind Synthesis

This software implements a variational wind retrieval for multiple Doppler data.
It consists of a radial velocity and reflectivity interpolation to a Cartesian grid
using wind_interpolate followed by the wind synthesis using wind3_fill.
Sample job files are provided for both programs, as well as some commonly used I/O tools.

How to run

First, Dorade sweep files need to be converted to Universal format using the swp2uf script,
then the job files modified for the grid of interest. wind_interpolate is very CPU intensive,
and wind3_fill is both CPU and memory intensive. wind3_fill requires a 64-bit machine
(all Intel Macs and most newer Linux boxes). Expect ~2.2 GB memory usage per 1 million gridpoints
(i.e. 250×250×37 = ~5 GB RAM). Both programs dynamically allocate memory for the grid of interest,
with a maximum of 512 gridpoints in either X or Y and 80 in Z. The total combination of gridpoints
cannot exceed 20 million, but your machine will probably run out of memory before that.
A sample usage is shown below:

$ cd /path/to/workspace
$ mkdir swp
$ mkdir uf
$ vi swp2uf

Modify TIME_LIMITS to match data period of interest, then copy relevant data to ‘swp’ subdirectory

$ ./swp2uf

Modify job_interp using ufd.* filename generated by swp2uf, lat/lon of origin, size of grid,
and advection speed and time if desired. See doc/job_wind_interpolate_doc.txt for description of jobfile

$ ./wind_interpolate.mac job_interp

or wind_interpolate.linux depending on your OS, it will ask you for a command file where you enter ‘job_interp’
WAIT, it will take a while. If it is taking too long for you, reduce the size of your grid
or the amount of radar data. It also runs much longer if the UF files are not located on the local disk.
I recommend using reorder/cedric to define your grid since it is much quicker to rerun those programs
than wind_interpolate. When complete, modify job_wind3 following the description in doc/job_wind3_fill_doc.txt.
Make sure the grid information matches that in the job_interp file.

$ ./wind3_fill.mac job_wind3

WAIT, you will see the iterations proceeding and it will end when convergence is reached.

The output (*.w) file is in a flat binary format with a header that is fairly easy to read
using fortran. Some sample programs to convert to cedric and grads formats are included in the bin directory.
Follow the prompts to give the name of the wind file without the .w suffix,
and the programs will create corresponding files with .ced, .dat/.ctl extensions accordingly.
driver_write.f and w2grads.f in the src/io directory contain the main templates for the I/O routines.

A postprocessing script that uses CEDRIC to calculate auxiliary variables, interpolating hole-filling,
and minimal filtering (1-step Leise scale filter) is also included.
Feel free to modify that script to suit your needs. The output of the CEDRIC postprocessing can be
further converted to netCDF or grads using the provided Perl scripts.
The netCDF script requires a separately built NetCDF.pm module available from CPAN.

References

Please reference the following publication if you use this code for your analysis,
and acknowledge NCAR/EOL and the National Science Foundation when using ELDORA data,
and/or acknowledge the NOAA AOML Hurricane Research Division when using NOAA P3 data.

Reasor, P.D., M.D. Eastin, and J.F. Gamache, 2009: Rapidly Intensifying Hurricane Guillermo (1997). Part I: Low-Wavenumber Structure and Evolution. Mon. Wea. Rev., 137, 603–631.

This code uses the ITPACK software package developed at the Center for Numerical Analysis, the University of Texas at Austin.
Young, D. and D. Kincaid, 1981: “The ITPACK Package for Large Sparse Linear Systems,” in Elliptic Problem Solvers, (M. Schultz, ed.), Academic Press, New York, 163-185.

How to Contribute

Fork mmbell/HRD_Doppler_synthesis on GitHub, add your improvement, push it to a branch in your fork named for the topic, send a pull request.

You can also file bugs or feature requests under the HRD_Doppler_synthesis project on GitHub.

License

The wind interpolation and synthesis software was written by John Gamache at NOAA/AOML/HRD.
This version of the code has been modified by Michael Bell.

This software has been prepared by an employee of the United States Government
as part of official duties, and is therefore in the public domain.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.