vlouf / matchproj-python

Script for matching space-borne radar and ground radar (cross-validation code).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MSGR - Matching Satellite and Ground Radar

Disclaimer

This dataset is supported by a funding from the U.S. Department of Energy as part of the Atmospheric Radiation Measurement (ARM) Climate Research Facility, an Office of Science user facility.

If you use this dataset to prepare a publication, please consider offering me (Valentin Louf) co-authorship and add the following line in the acknowledgments:

This work has been supported by the U.S. Department of Energy Atmospheric Systems Research Program through the grant DE-SC0014063.

References

  • Louf, V., A. Protat, R. A. Warren, S. M. Collis, D. B. Wolff, S. Raunyiar, C. Jakob, and W. A. Petersen, 2018: An integrated approach to weather radar calibration and monitoring using ground clutter and satellite comparisons. J. Atmos. Ocean. Technol., JTECH-D-18-0007.1, doi:10.1175/JTECH-D-18-0007.1. [http://journals.ametsoc.org/doi/10.1175/JTECH-D-18-0007.1]

  • Warren, R. A., A. Protat, S. T. Siems, H. A. Ramsay, V. Louf, M. J. Manton, and T. A. Kane, 2018: Calibrating Ground-Based Radars against TRMM and GPM. J. Atmos. Ocean. Technol., 35, 323–346, doi:10.1175/JTECH-D-17-0128.1.

Installation

Just type python setup.py install. The full list of required package is in requirements.txt, just type pip install -r requirements.txt.

Required modules

You will need:

This code has been tested and conceived on Python 3.5 and Python 3.6. It will NOT work with python 2.X versions.

Usage

matchvol.py need a configuration file to run, an example can be generated by typing generate_config_matchvol.py --example. Just pass the configuration file like that: matchvol.py -c config.ini.

You should only modify the config.ini file to match your own configuration and then run python matchvol.py in a terminal. In the config.ini file you can choose:

  • Number of CPU for multiprocessing.
  • Start and end date of processing in YYYYMMDD format.
  • Input path for ground radar files, satellite files.
  • Output path for saved data.
  • The radar general information (name and ID, used for naming the output saving file), latitude, longitude, altitude, and beamwidth.
  • Min and max range (in m) of ground radar.
  • Different thresholds for comparison like:
    • Threshold on minimum satellite and ground radar reflectivity.
    • Minimum number of pair for comparison.
    • Minimum number of satellite profiles for comparison.
    • Maximum time difference between radar and satellite, in seconds.
  • Choose between the use of dBZ or natural units for the statistical calculations.
  • Declare that satellite is GPM (false for TRMM).
  • Ground radar is C-Band (false for S-Band).
  • Writing results in output directory.
  • Correct ground radar attenuation using pyart.

Satellite data

For GPM you need the 2AKu product. For TRMM you need the 2APR product.

The website where you can download TRMM and GPM data is https://storm.pps.eosdis.nasa.gov/storm/data/Service.jsp?serviceName=RestrictedOrder. You need to register before you can order data. One you've entered your pre-registered email address you can enter the details of your order. You want the following options:

  • Under 'Order type' select 'Standalone order'
  • Under 'Coincidence' select 'None or Satellite-Ground Validation Site'
  • Under 'Options' select 'Subset Geographic Area' then 'Subset Geographically' (leave 'Include only swaths with...' blank), and also select 'Parameter Subsetting'
  • Under 'Product Type' select '2AKu' under 'Algorithm' and check the box that comes up below. Note that this is for GPM. For TRMM you have to select 2APR, but if you're only working with GPM you don't need to worry about that.
  • Under 'Temporal Criteria' set the range of dates you want data for.
  • Under 'Special Area Of Interest' specify the limits of your domain (it should encompass the 150km range ring of your radar(s)). Give it a 'Location Alias'.
  • Under 'Parameter Subset' choose the following: From 'scanStatus' select 'dataQuality'. From 'PRE' select 'landSurfaceType', 'binClutterFreeBottom' and 'flagPrecip'. From 'CSF' select 'flagBB', 'heightBB', 'widthBB', 'qualityBB', 'typePrecip' and 'qualityTypePrecip'. From 'SLV' select 'zFactorCorrected'. From 'NS' select 'Latitude', 'Longitude'. From 'ScanTime' select 'Year', 'Month', 'DayOfMonth', 'Hour', 'Minute', 'Second'
  • Provide an identifier, then select 'No' for 'Do you want to generate Read and Write routines for this subset', and set 'HDF' as the 'Output Data Format'.
  • Under 'Search Results' select all the files by clicking the top-most check box. Hitting submit should then get you what you want.

Radar data

Because this codes uses pyart to read radar data, the only limitations are pyart's limitations.

In the case that the radar's data you are using do not use the "traditional" naming convention, especially for reflectivity (names are 'reflectivity', 'DBZ', 'DBZ_F'), you can add your own by modifying the read_radar.py file in ./MSGR/io/ and change (better add) one of the lines like this: refl_slice = radar.fields['reflectivity']['data'][sweep_slice] # Reflectivity

About

Script for matching space-borne radar and ground radar (cross-validation code).

License:MIT License


Languages

Language:Python 100.0%