Supports state-of-the-art simulations of dual-polarimetric radar observable varibales.
Non-spherical Hydrometeor Particle Shapes: Including spheroid, hexagonal column, superformula snowflake with different shape parameters... Nonspherical and inhomogeneous particle optical data base are computed with invariant-imbedding T-matrix.Orientation Perference: Solid particle orientation perference data stems from snow camera observation (MASC)New Mass-Diameter Scheme: Adapted for non-spherical shape hydrometeor database.Beam Broadening: Implemented by beam-sampling method.Beam Bending: Use online beam propogation method, which accounts for atmosphere refraction index derived from moisture and temperature.(Partial) Terrain Block: Terrian Blocking Effect can be simulated with ZJU_AERO by beam-sampling and propogation algorithm.Path Attenuation: ZJU_AERO can simulate the attenuation effect in the path of radar beam.Spaceborne and Ground-Based Radar In One Operator: Users can apply ZJU-AERO for spaceborne radar (like GPM-DPR) simulation and ground based radar simulation.
References:
- Bi, Lei, and Ping Yang. "Accurate simulation of the optical properties of atmospheric ice crystals with the invariant imbedding T-matrix method." Journal of Quantitative Spectroscopy and Radiative Transfer 138 (2014): 17-35.
- Garrett, Timothy J., et al. "Orientations and aspect ratios of falling snow." Geophysical Research Letters 42.11 (2015): 4617-4622.
Currently ZJU_AERO only supports installing from release package. The more user-friendly method of conda package installation will be available soon.
First check you have GCC installed on your machine. It is mandatory and should be used together with SWIG to build C-extentions for ZJU_AERO.
$gcc -v
If not, try install it with:
$sudo apt-get install gcc
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages, like python. For more information on this topic, please view http://www.swig.org/.
ZJU_AERO builds C extensions with SWIG, to speed up the radar operator simulations.
So check the SWIG version on your machine.
$swig -version
Compilation tests have been performed for swig==3.x.x / 4.x.x. So if you do not have swig, or the swig on your machine is obsolete, install it with:
$sudo apt-get install swig
We recommend Anaconda or Miniconda for environment management of ZJU_AERO:
So if you do not have anaconda or miniconda installed on your machine, install it with:
$wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$chmod +x Miniconda3-latest-Linux-x86_64.sh
$./Miniconda3-latest-Linux-x86_64.sh
With Anaconda or Miniconda install, it is recommended to create a new conda environment when using ZJU_AERO or even other packages.
To create a new environment based on the environment.yml:
$conda env create -f environment.yml
Here we list the dependencies in environment.yml. You can check it by yourself:
- numpy
- scipy
- xarray
- netcdf4-python
- h5netcdf
- h5py
- pandas
- pyproj
- matplotlib
- pyyaml
- multiprocess
- future
- basemap
To plot the simulation results, you need to install a radar ploting package, Currently ZJU_AERO supports two packages:
arm_pyart, please see https://github.com/ARM-DOE/pyart;pycwr, please see https://github.com/YvZheng/pycwr;
Install from downloaded release package ZJU_AERO_x.y.z.tar.gz with:
$tar -zxvf ZJU_AERO_<x.y.z>.tar.gz
$cd ZJU_AERO_<x.y.z>
$python setup.py install
To get started using ZJU_AERO, you need to first get your LUT and model file right in place
- Hydrometeor Back Scattering Look-up Table
For test cases, we place the lookup-table under the following directory:
You can specify thedb_namein option_files:microphysics - folder_lut
ZJU_AERO_<x.y.z>/pathos/lut/<db_name>/lut_SZ_<H>_<Freq>_<Freq>_<mp_scheme>_Level<A/B/C>.nc
- NWP Model Output Including Hydrometeor 3D Fields
ZJU_AERO supports two kinds of NWP model output: GRAPES and WRF
You can specify themodel_namein option_files:nwp - name
Take WRF as example, we place the wrfout file for test cases under directory:
ZJU_AERO_<x.y.z>/pathos/WRF/thompson/wrfout_xxxx.nc
-
Example1: PPI Scan Simulation
- Test Script:
example/ppi.py - User Option File:
example/option_files/example.yml - WRF Model File:
pathos/WRF/thompson/wrfout_d02_2021-08-08_00_00_00 - LUT for Grauel, Cloud Ice, Snow and Rain:
pathos/lut/tm_masc_release/lut_SZ_G_9_41_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_I_9_41_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_S_9_41_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_R_9_41_1mom_LevelB.nc
$ cd example $ python ppi.py - Test Script:
-
Example2: RHI Scan Simulation
- Test Script:
example/rhi.py - User Option File:
example/option_files/example.yml - WRF Model File:
pathos/WRF/thompson/wrfout_d02_2021-08-08_00_00_00 - LUT for Grauel, Cloud Ice, Snow and Rain:
pathos/lut/tm_masc_release/lut_SZ_G_9_41_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_I_9_41_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_S_9_41_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_R_9_41_1mom_LevelB.nc
$ cd example $ python rhi.py - Test Script:
-
Example3: Spaceborne Scan Simulation
- Test Script:
example/spaceborne.py - User Option File:
example/option_files/example_spaceborne.yml - WRF Model File:
pathos/GRAPES/typhoon_haishen_20200905/modelvar202009050000900.nc - LUT for Grauel, Cloud Ice, Snow and Rain:
pathos/lut/tm_masc_release/lut_SZ_G_13_6_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_I_13_6_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_S_13_6_1mom_LevelB.ncpathos/lut/tm_masc_release/lut_SZ_R_13_6_1mom_LevelB.nc
$ cd example $ python spaceborne.py - Test Script:
For more Details and examples, please read User_Guide
- Melted Ice simulation
- Thompson Microphysics constants
- Online Documentation
- Upload ZJU_AERO as a conda package









