Attenuation Correction#
import matplotlib.pyplot as plt
import numpy as np
import xarray as xr
import radarpolarimetry as rp
Load Data and Plot Initial Situation#
stage = "06_zphi"
dtime = "20170810T1100"
fname = rp.data_path() / "lecture" / f"{stage}_{dtime}.zarr"
swp = xr.open_dataset(fname, chunks={})
display(swp)
<xarray.Dataset> Size: 83MB
Dimensions: (azimuth: 360, range: 750)
Coordinates: (12/17)
* azimuth (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
elevation (azimuth) float64 3kB dask.array<chunksize=(360,), meta=np.ndarray>
time (azimuth) datetime64[ns] 3kB dask.array<chunksize=(360,), meta=np.ndarray>
* range (range) float32 3kB 100.0 300.0 ... 1.497e+05 1.499e+05
bins (azimuth, range) float32 1MB dask.array<chunksize=(180, 375), meta=np.ndarray>
gr (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
... ...
altitude float64 8B ...
crs_wkt int64 8B ...
latitude float64 8B ...
longitude float64 8B ...
NOISE_LEVEL float64 8B ...
sweep_mode <U20 80B ...
Data variables: (12/52)
AH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
CMAP (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
CMAP2 (azimuth, range) uint8 270kB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTH_CORR5 (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTV (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
... ...
VRADH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
VRADV (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
WRADH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
WRADV (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
ZDR (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
ZDR_CORR5 (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
Attributes:
source: gamic
ant_gain_h: 44.0
ant_gain_v: 44.0
noise_power_h: -1.39495
noise_power_v: -1.09706
rx_loss_h: 0.73
rx_loss_v: 0.73xarray.Dataset
- azimuth: 360
- range: 750
- azimuth(azimuth)float640.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], shape=(360,))
- elevation(azimuth)float64dask.array<chunksize=(360,), meta=np.ndarray>
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
Array Chunk Bytes 2.81 kiB 2.81 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - time(azimuth)datetime64[ns]dask.array<chunksize=(360,), meta=np.ndarray>
- standard_name :
- time
Array Chunk Bytes 2.81 kiB 2.81 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type datetime64[ns] numpy.ndarray - range(range)float32100.0 300.0 ... 1.497e+05 1.499e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
array([1.000e+02, 3.000e+02, 5.000e+02, ..., 1.495e+05, 1.497e+05, 1.499e+05], shape=(750,), dtype=float32) - bins(azimuth, range)float32dask.array<chunksize=(180, 375), meta=np.ndarray>
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
Array Chunk Bytes 1.03 MiB 263.67 kiB Shape (360, 750) (180, 375) Dask graph 4 chunks in 2 graph layers Data type float32 numpy.ndarray - gr(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- distance_from_radar
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - rays(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - x(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- X
- long_name :
- Easting
- standard_name :
- projection_x_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - y(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- Y
- long_name :
- Northing
- standard_name :
- projection_y_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - z(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- height_above_ground
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - alpha()float64...
[1 values with dtype=float64]
- altitude()float64...
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
[1 values with dtype=float64]
- crs_wkt()int64...
- crs_wkt :
- PROJCRS["AEQD centered at 50.73052N 7.071663E",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",50.73052,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",7.071663,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- unknown
- horizontal_datum_name :
- World Geodetic System 1984
- projected_crs_name :
- AEQD centered at 50.73052N 7.071663E
- grid_mapping_name :
- azimuthal_equidistant
- latitude_of_projection_origin :
- 50.73052
- longitude_of_projection_origin :
- 7.071663
- false_easting :
- 0.0
- false_northing :
- 0.0
[1 values with dtype=int64]
- latitude()float64...
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
[1 values with dtype=float64]
- longitude()float64...
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
[1 values with dtype=float64]
- NOISE_LEVEL()float64...
[1 values with dtype=float64]
- sweep_mode()<U20...
[1 values with dtype=<U20]
- AH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- units :
- dB/km
- standard_name :
- specific_attenuation_h
- long_name :
- Specific attenuation H
- short_name :
- AH
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - CMAP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- units :
- unitless
- long_name :
- Clutter Map
- standard_name :
- clutter_map
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - CMAP2(azimuth, range)uint8dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- unitless
- long_name :
- Clutter Map
- standard_name :
- clutter_map
- _Undetect :
- 0.0
- short_name :
- CMAP
Array Chunk Bytes 263.67 kiB 131.84 kiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type uint8 numpy.ndarray - DBTH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power H (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBTH_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBTV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power V (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZH_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Equivalent reflectivity factor V
- standard_name :
- radar_equivalent_reflectivity_factor_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - dphi(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - first(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - first_idx(azimuth)int64dask.array<chunksize=(180,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type int64 numpy.ndarray - follow_mode()<U7...
[1 values with dtype=<U7]
- KDP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- deg/km
- units :
- degrees per kilometer
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - KDP_AH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- deg/km
- units :
- degrees per kilometer
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - KDP_LANC(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- radar_specific_differential_phase_hv
- long_name :
- Specific differential phase HV
- short_name :
- KDP
- units :
- degrees per kilometer
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - KDP_VULP(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- radar_specific_differential_phase_hv
- long_name :
- Specific differential phase HV
- short_name :
- KDP
- units :
- degrees per kilometer
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - last(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - last_idx(azimuth)int64dask.array<chunksize=(180,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type int64 numpy.ndarray - nyquist_velocity()float64...
- standard_name :
- nyquist_velocity
- units :
- m s-1
[1 values with dtype=float64]
- offset()float32...
[1 values with dtype=float32]
- offset_idx()int64...
[1 values with dtype=int64]
- phib(azimuth, range)float64dask.array<chunksize=(180, 741), meta=np.ndarray>
Array Chunk Bytes 2.06 MiB 1.02 MiB Shape (360, 750) (180, 741) Dask graph 4 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - prt_mode()<U7...
[1 values with dtype=<U7]
- RHOHV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- units :
- unitless
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - RHOHV_NC(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- units :
- unitless
- _Undetect :
- 0.0
- unit :
- dBZ
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
- short_name :
- SNRH
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - RSUM(azimuth, range)float64dask.array<chunksize=(360, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power H (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 2.06 MiB Shape (360, 750) (360, 750) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - SNRH(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- _Undetect :
- 0.0
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
- units :
- unitless
- standard_name :
- signal_noise_ratio_h
- long_name :
- Signal Noise Ratio H
- short_name :
- SNRH
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - start_range(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - stop_range(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - sweep_fixed_angle()float64...
[1 values with dtype=float64]
- sweep_number()int64...
[1 values with dtype=int64]
- SYSPHI1()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI2()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI3()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI4(azimuth)float64dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 2.81 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - VRADH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per seconds
- long_name :
- Radial velocity of scatterers away from instrument H
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - VRADV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per second
- long_name :
- Radial velocity of scatterers away from instrument V
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - WRADH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per seconds
- long_name :
- Doppler spectrum width H
- standard_name :
- radar_doppler_spectrum_width_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - WRADV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per second
- long_name :
- Doppler spectrum width V
- standard_name :
- radar_doppler_spectrum_width_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - ZDR(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dB
- units :
- dB
- long_name :
- Log differential reflectivity H/V
- standard_name :
- radar_differential_reflectivity_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - ZDR_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray
- source :
- gamic
- ant_gain_h :
- 44.0
- ant_gain_v :
- 44.0
- noise_power_h :
- -1.39495
- noise_power_v :
- -1.09706
- rx_loss_h :
- 0.73
- rx_loss_v :
- 0.73
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(
nrows=2,
ncols=2,
figsize=(12, 10),
sharex=True,
sharey=True,
squeeze=True,
constrained_layout=True,
)
rp.plot_moment(swp.DBTH, ax=ax1)
rp.plot_moment(swp.DBZH, ax=ax2)
rp.plot_moment(swp.ZDR, ax=ax3)
rp.plot_moment(swp.PHIDP_OC1, ax=ax4)
t = fig.suptitle(
f"sweep at {swp.sweep_fixed_angle.values:.1f} deg elevation at {swp.time.min().values.astype('<M8[s]')}",
fontsize=18,
)
Phase Processing#
Phase processing was already done in the prior lectures. So we just use the corrected phase moments from the dataset.
Exercise 1: Check different pre-calculated PHIDP values for specific radials#
use the below pre-created code
add more plots of other pre-calculated PHIDP values
also plot reflectivity values on first twin axis
add a second twin axis of host axis with label and position for RHOHV
select suiting axis limits
move legend to suitable location
azi = 105
azi = np.arange(azi, azi + 1)
fig = plt.figure(figsize=(10, 6))
ax0 = rp.create_lineplot(fig, subplot=111, ylabel=r"$PHI_{DP}$ (deg)")
t = ax0.set_title(f"{swp.time.min().values.astype('<M8[s]')}")
t.set_y(1.05)
line = ax0.plot(swp.PHIDP[azi, :].T, "darkblue", label="$PHI_{DP}^{raw}$")
line = ax0.plot(swp.PHIDP_OC1[azi, :].T, "b", lw=0.5, label="$PHI_{DP}OC^{corr1}$")
line = ax0.plot(swp.PHIDP_CORR1[azi, :].T, "b", label="$PHI_{DP}^{corr1}$")
ax0.set_ylim(-10, 120)
plt.legend(ncol=4, loc=8)
# add twin axis of host axis with label and position
ax1 = rp.add_axis(ax0, ylabel=r"$UZ_H$ (dBZ)", pos=1.0)
# add another twin axis of host axis with label and position
plt.tight_layout()
Exercise 2: Display PHIDP moments in 2by2 plot#
select different moments
change resolution
Standard Correction Method#
\[
Z^{corr}_{H}(r) = Z^{att}_{H}(r) + \alpha\phi_{DP}(r)
\]
\[
Z^{corr}_{DR}(r) = Z^{att}_{DR}(r) + \beta\phi_{DP}(r)
\]
\[
\alpha_X = 0.28
\]
\[
\beta_X = 0.05
\]
Apply ZH and ZDR standard correction#
This also adds the corrected moments to the sweep.
uh = "DBTH"
zh = "DBZH"
zdr = "ZDR"
phi_list = [f"PHIDP_CORR{i}" for i in range(1, 5)]
alphax = 0.28
betax = 0.05
with xr.set_options(keep_attrs=True):
for phi in phi_list:
uhcorr = swp[uh] + alphax * swp[phi]
uhcorr.name = f"{swp[uh].name}_{swp[phi].name.split('_')[-1]}"
zhcorr = swp[zh] + alphax * swp[phi]
zhcorr.name = f"{swp[zh].name}_{swp[phi].name.split('_')[-1]}"
zdrcorr = swp[zdr] + betax * swp[phi]
zdrcorr.name = f"{swp[zdr].name}_{swp[phi].name.split('_')[-1]}"
swp = swp.assign(
{uhcorr.name: uhcorr, zhcorr.name: zhcorr, zdrcorr.name: zdrcorr}
)
ZPHI Method#
See ZPHI Method - Theory Notebook.
Todo: use precalculated data from zphi notebook! Do not recalculate here!
CMAP = swp.CMAP.astype("uint16")
noise = ((CMAP >> 0) & 0x1).astype(bool)
clutter = ((CMAP >> 2) & 0x1).astype(bool)
masked = noise | clutter
valid = ~masked
phi = swp.PHIDP.where((swp.CMAP2 == 0) & valid & (swp.RHOHV > 0.9))
rng = 2000.0
zh = swp.DBZH.where((swp.CMAP2 == 0) & valid & (swp.RHOHV > 0.9))
Calculate Differential Attenuation#
ah = rp.zphi(phi, zh, rng=2000)
display(ah)
range res [km]: 0.2
<xarray.DataArray (azimuth: 360, range: 750, alpha: 25)> Size: 54MB
dask.array<truediv, shape=(360, 750, 25), dtype=float64, chunksize=(180, 750, 25), chunktype=numpy.ndarray>
Coordinates: (12/17)
* azimuth (azimuth) float64 3kB 0.5 1.5 2.5 3.5 ... 357.5 358.5 359.5
elevation (azimuth) float64 3kB 0.9998 0.9998 0.9998 ... 0.9998 0.9998
time (azimuth) datetime64[ns] 3kB 2017-08-10T11:03:42.699000 ... ...
* range (range) float32 3kB 100.0 300.0 500.0 ... 1.497e+05 1.499e+05
bins (azimuth, range) float32 1MB dask.array<chunksize=(180, 375), meta=np.ndarray>
gr (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
... ...
altitude float64 8B 99.5
crs_wkt int64 8B 0
latitude float64 8B 50.73
longitude float64 8B 7.072
NOISE_LEVEL float64 8B -24.7
sweep_mode <U20 80B 'azimuth_surveillance'
Attributes:
units: dB/km
standard_name: specific_attenuation_h
long_name: Specific attenuation H
short_name: AHxarray.DataArray
- azimuth: 360
- range: 750
- alpha: 25
- dask.array<chunksize=(180, 750, 25), meta=np.ndarray>
Array Chunk Bytes 51.50 MiB 25.75 MiB Shape (360, 750, 25) (180, 750, 25) Dask graph 2 chunks in 78 graph layers Data type float64 numpy.ndarray - azimuth(azimuth)float640.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], shape=(360,))
- elevation(azimuth)float640.9998 0.9998 ... 0.9998 0.9998
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
array([0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, ... 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586]) - time(azimuth)datetime64[ns]2017-08-10T11:03:42.699000 ... 2...
- standard_name :
- time
array(['2017-08-10T11:03:42.699000000', '2017-08-10T11:03:42.800000000', '2017-08-10T11:03:42.902000000', '2017-08-10T11:03:43.001000000', '2017-08-10T11:03:43.102000000', '2017-08-10T11:03:43.202000000', '2017-08-10T11:03:43.302000000', '2017-08-10T11:03:43.402000000', '2017-08-10T11:03:43.504000000', '2017-08-10T11:03:43.603000000', '2017-08-10T11:03:43.705000000', '2017-08-10T11:03:43.803000000', '2017-08-10T11:03:43.905000000', '2017-08-10T11:03:44.008000000', '2017-08-10T11:03:44.108000000', '2017-08-10T11:03:44.208000000', '2017-08-10T11:03:44.308000000', '2017-08-10T11:03:44.408000000', '2017-08-10T11:03:44.510000000', '2017-08-10T11:03:44.608000000', '2017-08-10T11:03:44.710000000', '2017-08-10T11:03:44.809000000', '2017-08-10T11:03:44.910000000', '2017-08-10T11:03:45.010000000', '2017-08-10T11:03:45.110000000', '2017-08-10T11:03:45.210000000', '2017-08-10T11:03:45.314000000', '2017-08-10T11:03:45.414000000', '2017-08-10T11:03:45.514000000', '2017-08-10T11:03:45.614000000', '2017-08-10T11:03:45.716000000', '2017-08-10T11:03:45.814000000', '2017-08-10T11:03:45.916000000', '2017-08-10T11:03:46.016000000', '2017-08-10T11:03:46.116000000', '2017-08-10T11:03:46.216000000', '2017-08-10T11:03:46.318000000', '2017-08-10T11:03:46.416000000', '2017-08-10T11:03:46.518000000', '2017-08-10T11:03:46.617000000', ... '2017-08-10T11:03:38.879000000', '2017-08-10T11:03:38.982000000', '2017-08-10T11:03:39.082000000', '2017-08-10T11:03:39.182000000', '2017-08-10T11:03:39.282000000', '2017-08-10T11:03:39.382000000', '2017-08-10T11:03:39.484000000', '2017-08-10T11:03:39.584000000', '2017-08-10T11:03:39.684000000', '2017-08-10T11:03:39.784000000', '2017-08-10T11:03:39.884000000', '2017-08-10T11:03:39.984000000', '2017-08-10T11:03:40.086000000', '2017-08-10T11:03:40.184000000', '2017-08-10T11:03:40.288000000', '2017-08-10T11:03:40.388000000', '2017-08-10T11:03:40.490000000', '2017-08-10T11:03:40.590000000', '2017-08-10T11:03:40.690000000', '2017-08-10T11:03:40.790000000', '2017-08-10T11:03:40.890000000', '2017-08-10T11:03:40.990000000', '2017-08-10T11:03:41.091000000', '2017-08-10T11:03:41.191000000', '2017-08-10T11:03:41.291000000', '2017-08-10T11:03:41.391000000', '2017-08-10T11:03:41.491000000', '2017-08-10T11:03:41.591000000', '2017-08-10T11:03:41.695000000', '2017-08-10T11:03:41.795000000', '2017-08-10T11:03:41.897000000', '2017-08-10T11:03:41.995000000', '2017-08-10T11:03:42.097000000', '2017-08-10T11:03:42.197000000', '2017-08-10T11:03:42.297000000', '2017-08-10T11:03:42.397000000', '2017-08-10T11:03:42.497000000', '2017-08-10T11:03:42.597000000'], dtype='datetime64[ns]') - range(range)float32100.0 300.0 ... 1.497e+05 1.499e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
array([1.000e+02, 3.000e+02, 5.000e+02, ..., 1.495e+05, 1.497e+05, 1.499e+05], shape=(750,), dtype=float32) - bins(azimuth, range)float32dask.array<chunksize=(180, 375), meta=np.ndarray>
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
Array Chunk Bytes 1.03 MiB 263.67 kiB Shape (360, 750) (180, 375) Dask graph 4 chunks in 2 graph layers Data type float32 numpy.ndarray - gr(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- distance_from_radar
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - rays(azimuth, range)float640.5 0.5 0.5 ... 359.5 359.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
array([[ 0.5, 0.5, 0.5, ..., 0.5, 0.5, 0.5], [ 1.5, 1.5, 1.5, ..., 1.5, 1.5, 1.5], [ 2.5, 2.5, 2.5, ..., 2.5, 2.5, 2.5], ..., [357.5, 357.5, 357.5, ..., 357.5, 357.5, 357.5], [358.5, 358.5, 358.5, ..., 358.5, 358.5, 358.5], [359.5, 359.5, 359.5, ..., 359.5, 359.5, 359.5]], shape=(360, 750)) - x(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- X
- long_name :
- Easting
- standard_name :
- projection_x_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - y(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- Y
- long_name :
- Northing
- standard_name :
- projection_y_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - z(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- height_above_ground
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - alpha(alpha)float640.1 0.11 0.12 ... 0.32 0.33 0.34
array([0.1 , 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2 , 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3 , 0.31, 0.32, 0.33, 0.34]) - altitude()float6499.5
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(99.5)
- crs_wkt()int640
- crs_wkt :
- PROJCRS["AEQD centered at 50.73052N 7.071663E",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",50.73052,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",7.071663,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- unknown
- horizontal_datum_name :
- World Geodetic System 1984
- projected_crs_name :
- AEQD centered at 50.73052N 7.071663E
- grid_mapping_name :
- azimuthal_equidistant
- latitude_of_projection_origin :
- 50.73052
- longitude_of_projection_origin :
- 7.071663
- false_easting :
- 0.0
- false_northing :
- 0.0
array(0)
- latitude()float6450.73
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(50.73052)
- longitude()float647.072
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(7.071663)
- NOISE_LEVEL()float64-24.7
array(-24.7)
- sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20')
- units :
- dB/km
- standard_name :
- specific_attenuation_h
- long_name :
- Specific attenuation H
- short_name :
- AH
fig = plt.figure(figsize=(8, 8))
ticks_ah = np.arange(0, 1, 0.05)
cmap = rp.get_discrete_cmap(ticks_ah, "HomeyerRainbow")
norm = rp.get_discrete_norm(ticks_ah)
im = ah.sel(alpha=0.28, method="nearest").wrl.vis.plot(
ax=111, fig=fig, norm=norm, cmap=cmap
)
KDP from AH#
kdp_ah = ah.fillna(0) / ah.alpha
kdp_ah.attrs = swp.KDP.attrs
phical = kdp_ah.wrl.dp.phidp_from_kdp()
phical = phical.rename("PHICAL")
phical.attrs = swp.PHIDP.attrs
display(phical)
<xarray.DataArray 'PHICAL' (azimuth: 360, alpha: 25, range: 750)> Size: 54MB
dask.array<mul, shape=(360, 25, 750), dtype=float64, chunksize=(180, 25, 750), chunktype=numpy.ndarray>
Coordinates: (12/17)
* azimuth (azimuth) float64 3kB 0.5 1.5 2.5 3.5 ... 357.5 358.5 359.5
elevation (azimuth) float64 3kB 0.9998 0.9998 0.9998 ... 0.9998 0.9998
time (azimuth) datetime64[ns] 3kB 2017-08-10T11:03:42.699000 ... ...
* alpha (alpha) float64 200B 0.1 0.11 0.12 0.13 ... 0.31 0.32 0.33 0.34
* range (range) float32 3kB 100.0 300.0 500.0 ... 1.497e+05 1.499e+05
bins (azimuth, range) float32 1MB dask.array<chunksize=(180, 375), meta=np.ndarray>
... ...
altitude float64 8B 99.5
crs_wkt int64 8B 0
latitude float64 8B 50.73
longitude float64 8B 7.072
NOISE_LEVEL float64 8B -24.7
sweep_mode <U20 80B 'azimuth_surveillance'
Attributes:
format: UV16
is_dft: 0
unit: deg
units: degrees
long_name: Differential phase HV
standard_name: radar_differential_phase_hv
_Undetect: 0.0xarray.DataArray
'PHICAL'
- azimuth: 360
- alpha: 25
- range: 750
- dask.array<chunksize=(180, 25, 750), meta=np.ndarray>
Array Chunk Bytes 51.50 MiB 25.75 MiB Shape (360, 25, 750) (180, 25, 750) Dask graph 2 chunks in 88 graph layers Data type float64 numpy.ndarray - azimuth(azimuth)float640.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], shape=(360,))
- elevation(azimuth)float640.9998 0.9998 ... 0.9998 0.9998
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
array([0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, ... 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586]) - time(azimuth)datetime64[ns]2017-08-10T11:03:42.699000 ... 2...
- standard_name :
- time
array(['2017-08-10T11:03:42.699000000', '2017-08-10T11:03:42.800000000', '2017-08-10T11:03:42.902000000', '2017-08-10T11:03:43.001000000', '2017-08-10T11:03:43.102000000', '2017-08-10T11:03:43.202000000', '2017-08-10T11:03:43.302000000', '2017-08-10T11:03:43.402000000', '2017-08-10T11:03:43.504000000', '2017-08-10T11:03:43.603000000', '2017-08-10T11:03:43.705000000', '2017-08-10T11:03:43.803000000', '2017-08-10T11:03:43.905000000', '2017-08-10T11:03:44.008000000', '2017-08-10T11:03:44.108000000', '2017-08-10T11:03:44.208000000', '2017-08-10T11:03:44.308000000', '2017-08-10T11:03:44.408000000', '2017-08-10T11:03:44.510000000', '2017-08-10T11:03:44.608000000', '2017-08-10T11:03:44.710000000', '2017-08-10T11:03:44.809000000', '2017-08-10T11:03:44.910000000', '2017-08-10T11:03:45.010000000', '2017-08-10T11:03:45.110000000', '2017-08-10T11:03:45.210000000', '2017-08-10T11:03:45.314000000', '2017-08-10T11:03:45.414000000', '2017-08-10T11:03:45.514000000', '2017-08-10T11:03:45.614000000', '2017-08-10T11:03:45.716000000', '2017-08-10T11:03:45.814000000', '2017-08-10T11:03:45.916000000', '2017-08-10T11:03:46.016000000', '2017-08-10T11:03:46.116000000', '2017-08-10T11:03:46.216000000', '2017-08-10T11:03:46.318000000', '2017-08-10T11:03:46.416000000', '2017-08-10T11:03:46.518000000', '2017-08-10T11:03:46.617000000', ... '2017-08-10T11:03:38.879000000', '2017-08-10T11:03:38.982000000', '2017-08-10T11:03:39.082000000', '2017-08-10T11:03:39.182000000', '2017-08-10T11:03:39.282000000', '2017-08-10T11:03:39.382000000', '2017-08-10T11:03:39.484000000', '2017-08-10T11:03:39.584000000', '2017-08-10T11:03:39.684000000', '2017-08-10T11:03:39.784000000', '2017-08-10T11:03:39.884000000', '2017-08-10T11:03:39.984000000', '2017-08-10T11:03:40.086000000', '2017-08-10T11:03:40.184000000', '2017-08-10T11:03:40.288000000', '2017-08-10T11:03:40.388000000', '2017-08-10T11:03:40.490000000', '2017-08-10T11:03:40.590000000', '2017-08-10T11:03:40.690000000', '2017-08-10T11:03:40.790000000', '2017-08-10T11:03:40.890000000', '2017-08-10T11:03:40.990000000', '2017-08-10T11:03:41.091000000', '2017-08-10T11:03:41.191000000', '2017-08-10T11:03:41.291000000', '2017-08-10T11:03:41.391000000', '2017-08-10T11:03:41.491000000', '2017-08-10T11:03:41.591000000', '2017-08-10T11:03:41.695000000', '2017-08-10T11:03:41.795000000', '2017-08-10T11:03:41.897000000', '2017-08-10T11:03:41.995000000', '2017-08-10T11:03:42.097000000', '2017-08-10T11:03:42.197000000', '2017-08-10T11:03:42.297000000', '2017-08-10T11:03:42.397000000', '2017-08-10T11:03:42.497000000', '2017-08-10T11:03:42.597000000'], dtype='datetime64[ns]') - alpha(alpha)float640.1 0.11 0.12 ... 0.32 0.33 0.34
array([0.1 , 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2 , 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3 , 0.31, 0.32, 0.33, 0.34]) - range(range)float32100.0 300.0 ... 1.497e+05 1.499e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
array([1.000e+02, 3.000e+02, 5.000e+02, ..., 1.495e+05, 1.497e+05, 1.499e+05], shape=(750,), dtype=float32) - bins(azimuth, range)float32dask.array<chunksize=(180, 375), meta=np.ndarray>
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
Array Chunk Bytes 1.03 MiB 263.67 kiB Shape (360, 750) (180, 375) Dask graph 4 chunks in 2 graph layers Data type float32 numpy.ndarray - gr(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- distance_from_radar
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - rays(azimuth, range)float640.5 0.5 0.5 ... 359.5 359.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
array([[ 0.5, 0.5, 0.5, ..., 0.5, 0.5, 0.5], [ 1.5, 1.5, 1.5, ..., 1.5, 1.5, 1.5], [ 2.5, 2.5, 2.5, ..., 2.5, 2.5, 2.5], ..., [357.5, 357.5, 357.5, ..., 357.5, 357.5, 357.5], [358.5, 358.5, 358.5, ..., 358.5, 358.5, 358.5], [359.5, 359.5, 359.5, ..., 359.5, 359.5, 359.5]], shape=(360, 750)) - x(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- X
- long_name :
- Easting
- standard_name :
- projection_x_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - y(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- Y
- long_name :
- Northing
- standard_name :
- projection_y_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - z(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- height_above_ground
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - altitude()float6499.5
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(99.5)
- crs_wkt()int640
- crs_wkt :
- PROJCRS["AEQD centered at 50.73052N 7.071663E",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",50.73052,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",7.071663,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- unknown
- horizontal_datum_name :
- World Geodetic System 1984
- projected_crs_name :
- AEQD centered at 50.73052N 7.071663E
- grid_mapping_name :
- azimuthal_equidistant
- latitude_of_projection_origin :
- 50.73052
- longitude_of_projection_origin :
- 7.071663
- false_easting :
- 0.0
- false_northing :
- 0.0
array(0)
- latitude()float6450.73
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(50.73052)
- longitude()float647.072
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(7.071663)
- NOISE_LEVEL()float64-24.7
array(-24.7)
- sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20')
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111)
rp.plot_moment(kdp_ah.sel(alpha=0.28, method="nearest"), ax=ax)
<matplotlib.collections.QuadMesh at 0x7f65cb1a0550>
Add Moments#
swp = swp.assign(
AH=ah.sel(alpha=0.28, method="nearest"),
KDP_AH=kdp_ah.sel(alpha=0.28, method="nearest"),
PHIDP_CORR5=phical.sel(alpha=0.28, method="nearest"),
)
display(swp)
<xarray.Dataset> Size: 109MB
Dimensions: (azimuth: 360, range: 750)
Coordinates: (12/17)
* azimuth (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
elevation (azimuth) float64 3kB 0.9998 0.9998 ... 0.9998 0.9998
time (azimuth) datetime64[ns] 3kB 2017-08-10T11:03:42.69900...
* range (range) float32 3kB 100.0 300.0 ... 1.497e+05 1.499e+05
bins (azimuth, range) float32 1MB dask.array<chunksize=(180, 375), meta=np.ndarray>
gr (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
... ...
altitude float64 8B 99.5
crs_wkt int64 8B 0
latitude float64 8B 50.73
longitude float64 8B 7.072
NOISE_LEVEL float64 8B -24.7
sweep_mode <U20 80B 'azimuth_surveillance'
Data variables: (12/64)
AH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
CMAP (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
CMAP2 (azimuth, range) uint8 270kB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTH_CORR5 (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTV (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
... ...
DBTH_CORR3 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
DBZH_CORR3 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
ZDR_CORR3 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
DBTH_CORR4 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
DBZH_CORR4 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
ZDR_CORR4 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
Attributes:
source: gamic
ant_gain_h: 44.0
ant_gain_v: 44.0
noise_power_h: -1.39495
noise_power_v: -1.09706
rx_loss_h: 0.73
rx_loss_v: 0.73xarray.Dataset
- azimuth: 360
- range: 750
- azimuth(azimuth)float640.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], shape=(360,))
- elevation(azimuth)float640.9998 0.9998 ... 0.9998 0.9998
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
array([0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, ... 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586]) - time(azimuth)datetime64[ns]2017-08-10T11:03:42.699000 ... 2...
- standard_name :
- time
array(['2017-08-10T11:03:42.699000000', '2017-08-10T11:03:42.800000000', '2017-08-10T11:03:42.902000000', '2017-08-10T11:03:43.001000000', '2017-08-10T11:03:43.102000000', '2017-08-10T11:03:43.202000000', '2017-08-10T11:03:43.302000000', '2017-08-10T11:03:43.402000000', '2017-08-10T11:03:43.504000000', '2017-08-10T11:03:43.603000000', '2017-08-10T11:03:43.705000000', '2017-08-10T11:03:43.803000000', '2017-08-10T11:03:43.905000000', '2017-08-10T11:03:44.008000000', '2017-08-10T11:03:44.108000000', '2017-08-10T11:03:44.208000000', '2017-08-10T11:03:44.308000000', '2017-08-10T11:03:44.408000000', '2017-08-10T11:03:44.510000000', '2017-08-10T11:03:44.608000000', '2017-08-10T11:03:44.710000000', '2017-08-10T11:03:44.809000000', '2017-08-10T11:03:44.910000000', '2017-08-10T11:03:45.010000000', '2017-08-10T11:03:45.110000000', '2017-08-10T11:03:45.210000000', '2017-08-10T11:03:45.314000000', '2017-08-10T11:03:45.414000000', '2017-08-10T11:03:45.514000000', '2017-08-10T11:03:45.614000000', '2017-08-10T11:03:45.716000000', '2017-08-10T11:03:45.814000000', '2017-08-10T11:03:45.916000000', '2017-08-10T11:03:46.016000000', '2017-08-10T11:03:46.116000000', '2017-08-10T11:03:46.216000000', '2017-08-10T11:03:46.318000000', '2017-08-10T11:03:46.416000000', '2017-08-10T11:03:46.518000000', '2017-08-10T11:03:46.617000000', ... '2017-08-10T11:03:38.879000000', '2017-08-10T11:03:38.982000000', '2017-08-10T11:03:39.082000000', '2017-08-10T11:03:39.182000000', '2017-08-10T11:03:39.282000000', '2017-08-10T11:03:39.382000000', '2017-08-10T11:03:39.484000000', '2017-08-10T11:03:39.584000000', '2017-08-10T11:03:39.684000000', '2017-08-10T11:03:39.784000000', '2017-08-10T11:03:39.884000000', '2017-08-10T11:03:39.984000000', '2017-08-10T11:03:40.086000000', '2017-08-10T11:03:40.184000000', '2017-08-10T11:03:40.288000000', '2017-08-10T11:03:40.388000000', '2017-08-10T11:03:40.490000000', '2017-08-10T11:03:40.590000000', '2017-08-10T11:03:40.690000000', '2017-08-10T11:03:40.790000000', '2017-08-10T11:03:40.890000000', '2017-08-10T11:03:40.990000000', '2017-08-10T11:03:41.091000000', '2017-08-10T11:03:41.191000000', '2017-08-10T11:03:41.291000000', '2017-08-10T11:03:41.391000000', '2017-08-10T11:03:41.491000000', '2017-08-10T11:03:41.591000000', '2017-08-10T11:03:41.695000000', '2017-08-10T11:03:41.795000000', '2017-08-10T11:03:41.897000000', '2017-08-10T11:03:41.995000000', '2017-08-10T11:03:42.097000000', '2017-08-10T11:03:42.197000000', '2017-08-10T11:03:42.297000000', '2017-08-10T11:03:42.397000000', '2017-08-10T11:03:42.497000000', '2017-08-10T11:03:42.597000000'], dtype='datetime64[ns]') - range(range)float32100.0 300.0 ... 1.497e+05 1.499e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
array([1.000e+02, 3.000e+02, 5.000e+02, ..., 1.495e+05, 1.497e+05, 1.499e+05], shape=(750,), dtype=float32) - bins(azimuth, range)float32dask.array<chunksize=(180, 375), meta=np.ndarray>
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
Array Chunk Bytes 1.03 MiB 263.67 kiB Shape (360, 750) (180, 375) Dask graph 4 chunks in 2 graph layers Data type float32 numpy.ndarray - gr(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- distance_from_radar
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - rays(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - x(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- X
- long_name :
- Easting
- standard_name :
- projection_x_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - y(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- Y
- long_name :
- Northing
- standard_name :
- projection_y_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - z(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- height_above_ground
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - alpha()float640.28
array(0.28)
- altitude()float6499.5
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(99.5)
- crs_wkt()int640
- crs_wkt :
- PROJCRS["AEQD centered at 50.73052N 7.071663E",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",50.73052,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",7.071663,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- unknown
- horizontal_datum_name :
- World Geodetic System 1984
- projected_crs_name :
- AEQD centered at 50.73052N 7.071663E
- grid_mapping_name :
- azimuthal_equidistant
- latitude_of_projection_origin :
- 50.73052
- longitude_of_projection_origin :
- 7.071663
- false_easting :
- 0.0
- false_northing :
- 0.0
array(0)
- latitude()float6450.73
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(50.73052)
- longitude()float647.072
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(7.071663)
- NOISE_LEVEL()float64-24.7
array(-24.7)
- sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20')
- AH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- units :
- dB/km
- standard_name :
- specific_attenuation_h
- long_name :
- Specific attenuation H
- short_name :
- AH
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 79 graph layers Data type float64 numpy.ndarray - CMAP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- units :
- unitless
- long_name :
- Clutter Map
- standard_name :
- clutter_map
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - CMAP2(azimuth, range)uint8dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- unitless
- long_name :
- Clutter Map
- standard_name :
- clutter_map
- _Undetect :
- 0.0
- short_name :
- CMAP
Array Chunk Bytes 263.67 kiB 131.84 kiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type uint8 numpy.ndarray - DBTH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power H (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBTH_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBTV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power V (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZH_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Equivalent reflectivity factor V
- standard_name :
- radar_equivalent_reflectivity_factor_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - dphi(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - first(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - first_idx(azimuth)int64dask.array<chunksize=(180,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type int64 numpy.ndarray - follow_mode()<U7...
[1 values with dtype=<U7]
- KDP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- deg/km
- units :
- degrees per kilometer
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - KDP_AH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- deg/km
- units :
- degrees per kilometer
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 84 graph layers Data type float64 numpy.ndarray - KDP_LANC(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- radar_specific_differential_phase_hv
- long_name :
- Specific differential phase HV
- short_name :
- KDP
- units :
- degrees per kilometer
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - KDP_VULP(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- radar_specific_differential_phase_hv
- long_name :
- Specific differential phase HV
- short_name :
- KDP
- units :
- degrees per kilometer
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - last(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - last_idx(azimuth)int64dask.array<chunksize=(180,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type int64 numpy.ndarray - nyquist_velocity()float64...
- standard_name :
- nyquist_velocity
- units :
- m s-1
[1 values with dtype=float64]
- offset()float32...
[1 values with dtype=float32]
- offset_idx()int64...
[1 values with dtype=int64]
- phib(azimuth, range)float64dask.array<chunksize=(180, 741), meta=np.ndarray>
Array Chunk Bytes 2.06 MiB 1.02 MiB Shape (360, 750) (180, 741) Dask graph 4 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 89 graph layers Data type float64 numpy.ndarray - PHIDP_OC1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - prt_mode()<U7...
[1 values with dtype=<U7]
- RHOHV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- units :
- unitless
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - RHOHV_NC(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- units :
- unitless
- _Undetect :
- 0.0
- unit :
- dBZ
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
- short_name :
- SNRH
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - RSUM(azimuth, range)float64dask.array<chunksize=(360, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power H (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 2.06 MiB Shape (360, 750) (360, 750) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - SNRH(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- _Undetect :
- 0.0
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
- units :
- unitless
- standard_name :
- signal_noise_ratio_h
- long_name :
- Signal Noise Ratio H
- short_name :
- SNRH
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - start_range(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - stop_range(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - sweep_fixed_angle()float64...
[1 values with dtype=float64]
- sweep_number()int64...
[1 values with dtype=int64]
- SYSPHI1()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI2()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI3()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI4(azimuth)float64dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 2.81 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - VRADH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per seconds
- long_name :
- Radial velocity of scatterers away from instrument H
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - VRADV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per second
- long_name :
- Radial velocity of scatterers away from instrument V
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - WRADH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per seconds
- long_name :
- Doppler spectrum width H
- standard_name :
- radar_doppler_spectrum_width_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - WRADV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per second
- long_name :
- Doppler spectrum width V
- standard_name :
- radar_doppler_spectrum_width_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - ZDR(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dB
- units :
- dB
- long_name :
- Log differential reflectivity H/V
- standard_name :
- radar_differential_reflectivity_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - ZDR_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBTH_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBTH_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBTH_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBTH_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray
- source :
- gamic
- ant_gain_h :
- 44.0
- ant_gain_v :
- 44.0
- noise_power_h :
- -1.39495
- noise_power_v :
- -1.09706
- rx_loss_h :
- 0.73
- rx_loss_v :
- 0.73
Apply ZH and ZDR ZPHI-based correction#
uh = "DBTH"
zh = "DBZH"
zdr = "ZDR"
phi = "PHIDP_CORR5"
with xr.set_options(keep_attrs=True):
uhcorr = swp[uh] + swp.alpha * swp[phi]
uhcorr.name = f"{swp[uh].name}_{swp[phi].name.split('_')[-1]}"
zhcorr = swp[zh] + swp.alpha * swp[phi]
zhcorr.name = f"{swp[zh].name}_{swp[phi].name.split('_')[-1]}"
zdrcorr = swp[zdr] + betax * swp[phi]
zdrcorr.name = f"{swp[zdr].name}_{swp[phi].name.split('_')[-1]}"
swp = swp.assign({uhcorr.name: uhcorr, zhcorr.name: zhcorr, zdrcorr.name: zdrcorr})
display(swp)
<xarray.Dataset> Size: 109MB
Dimensions: (azimuth: 360, range: 750)
Coordinates: (12/17)
* azimuth (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
elevation (azimuth) float64 3kB 0.9998 0.9998 ... 0.9998 0.9998
time (azimuth) datetime64[ns] 3kB 2017-08-10T11:03:42.69900...
* range (range) float32 3kB 100.0 300.0 ... 1.497e+05 1.499e+05
bins (azimuth, range) float32 1MB dask.array<chunksize=(180, 375), meta=np.ndarray>
gr (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
... ...
altitude float64 8B 99.5
crs_wkt int64 8B 0
latitude float64 8B 50.73
longitude float64 8B 7.072
NOISE_LEVEL float64 8B -24.7
sweep_mode <U20 80B 'azimuth_surveillance'
Data variables: (12/64)
AH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
CMAP (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
CMAP2 (azimuth, range) uint8 270kB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTH (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTH_CORR5 (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
DBTV (azimuth, range) float64 2MB dask.array<chunksize=(180, 750), meta=np.ndarray>
... ...
DBTH_CORR3 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
DBZH_CORR3 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
ZDR_CORR3 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
DBTH_CORR4 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
DBZH_CORR4 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
ZDR_CORR4 (azimuth, range) float64 2MB dask.array<chunksize=(90, 375), meta=np.ndarray>
Attributes:
source: gamic
ant_gain_h: 44.0
ant_gain_v: 44.0
noise_power_h: -1.39495
noise_power_v: -1.09706
rx_loss_h: 0.73
rx_loss_v: 0.73xarray.Dataset
- azimuth: 360
- range: 750
- azimuth(azimuth)float640.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], shape=(360,))
- elevation(azimuth)float640.9998 0.9998 ... 0.9998 0.9998
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
array([0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, ... 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586, 0.99975586]) - time(azimuth)datetime64[ns]2017-08-10T11:03:42.699000 ... 2...
- standard_name :
- time
array(['2017-08-10T11:03:42.699000000', '2017-08-10T11:03:42.800000000', '2017-08-10T11:03:42.902000000', '2017-08-10T11:03:43.001000000', '2017-08-10T11:03:43.102000000', '2017-08-10T11:03:43.202000000', '2017-08-10T11:03:43.302000000', '2017-08-10T11:03:43.402000000', '2017-08-10T11:03:43.504000000', '2017-08-10T11:03:43.603000000', '2017-08-10T11:03:43.705000000', '2017-08-10T11:03:43.803000000', '2017-08-10T11:03:43.905000000', '2017-08-10T11:03:44.008000000', '2017-08-10T11:03:44.108000000', '2017-08-10T11:03:44.208000000', '2017-08-10T11:03:44.308000000', '2017-08-10T11:03:44.408000000', '2017-08-10T11:03:44.510000000', '2017-08-10T11:03:44.608000000', '2017-08-10T11:03:44.710000000', '2017-08-10T11:03:44.809000000', '2017-08-10T11:03:44.910000000', '2017-08-10T11:03:45.010000000', '2017-08-10T11:03:45.110000000', '2017-08-10T11:03:45.210000000', '2017-08-10T11:03:45.314000000', '2017-08-10T11:03:45.414000000', '2017-08-10T11:03:45.514000000', '2017-08-10T11:03:45.614000000', '2017-08-10T11:03:45.716000000', '2017-08-10T11:03:45.814000000', '2017-08-10T11:03:45.916000000', '2017-08-10T11:03:46.016000000', '2017-08-10T11:03:46.116000000', '2017-08-10T11:03:46.216000000', '2017-08-10T11:03:46.318000000', '2017-08-10T11:03:46.416000000', '2017-08-10T11:03:46.518000000', '2017-08-10T11:03:46.617000000', ... '2017-08-10T11:03:38.879000000', '2017-08-10T11:03:38.982000000', '2017-08-10T11:03:39.082000000', '2017-08-10T11:03:39.182000000', '2017-08-10T11:03:39.282000000', '2017-08-10T11:03:39.382000000', '2017-08-10T11:03:39.484000000', '2017-08-10T11:03:39.584000000', '2017-08-10T11:03:39.684000000', '2017-08-10T11:03:39.784000000', '2017-08-10T11:03:39.884000000', '2017-08-10T11:03:39.984000000', '2017-08-10T11:03:40.086000000', '2017-08-10T11:03:40.184000000', '2017-08-10T11:03:40.288000000', '2017-08-10T11:03:40.388000000', '2017-08-10T11:03:40.490000000', '2017-08-10T11:03:40.590000000', '2017-08-10T11:03:40.690000000', '2017-08-10T11:03:40.790000000', '2017-08-10T11:03:40.890000000', '2017-08-10T11:03:40.990000000', '2017-08-10T11:03:41.091000000', '2017-08-10T11:03:41.191000000', '2017-08-10T11:03:41.291000000', '2017-08-10T11:03:41.391000000', '2017-08-10T11:03:41.491000000', '2017-08-10T11:03:41.591000000', '2017-08-10T11:03:41.695000000', '2017-08-10T11:03:41.795000000', '2017-08-10T11:03:41.897000000', '2017-08-10T11:03:41.995000000', '2017-08-10T11:03:42.097000000', '2017-08-10T11:03:42.197000000', '2017-08-10T11:03:42.297000000', '2017-08-10T11:03:42.397000000', '2017-08-10T11:03:42.497000000', '2017-08-10T11:03:42.597000000'], dtype='datetime64[ns]') - range(range)float32100.0 300.0 ... 1.497e+05 1.499e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
array([1.000e+02, 3.000e+02, 5.000e+02, ..., 1.495e+05, 1.497e+05, 1.499e+05], shape=(750,), dtype=float32) - bins(azimuth, range)float32dask.array<chunksize=(180, 375), meta=np.ndarray>
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
Array Chunk Bytes 1.03 MiB 263.67 kiB Shape (360, 750) (180, 375) Dask graph 4 chunks in 2 graph layers Data type float32 numpy.ndarray - gr(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- distance_from_radar
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - rays(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - x(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- X
- long_name :
- Easting
- standard_name :
- projection_x_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - y(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- axis :
- Y
- long_name :
- Northing
- standard_name :
- projection_y_coordinate
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - z(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- height_above_ground
- units :
- metre
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - alpha()float640.28
array(0.28)
- altitude()float6499.5
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(99.5)
- crs_wkt()int640
- crs_wkt :
- PROJCRS["AEQD centered at 50.73052N 7.071663E",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",50.73052,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",7.071663,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- unknown
- horizontal_datum_name :
- World Geodetic System 1984
- projected_crs_name :
- AEQD centered at 50.73052N 7.071663E
- grid_mapping_name :
- azimuthal_equidistant
- latitude_of_projection_origin :
- 50.73052
- longitude_of_projection_origin :
- 7.071663
- false_easting :
- 0.0
- false_northing :
- 0.0
array(0)
- latitude()float6450.73
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(50.73052)
- longitude()float647.072
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(7.071663)
- NOISE_LEVEL()float64-24.7
array(-24.7)
- sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20')
- AH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- units :
- dB/km
- standard_name :
- specific_attenuation_h
- long_name :
- Specific attenuation H
- short_name :
- AH
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 79 graph layers Data type float64 numpy.ndarray - CMAP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- units :
- unitless
- long_name :
- Clutter Map
- standard_name :
- clutter_map
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - CMAP2(azimuth, range)uint8dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- unitless
- long_name :
- Clutter Map
- standard_name :
- clutter_map
- _Undetect :
- 0.0
- short_name :
- CMAP
Array Chunk Bytes 263.67 kiB 131.84 kiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type uint8 numpy.ndarray - DBTH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power H (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBTH_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 94 graph layers Data type float64 numpy.ndarray - DBTV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power V (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - DBZH_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 92 graph layers Data type float64 numpy.ndarray - DBZV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Equivalent reflectivity factor V
- standard_name :
- radar_equivalent_reflectivity_factor_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - dphi(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - first(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - first_idx(azimuth)int64dask.array<chunksize=(180,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type int64 numpy.ndarray - follow_mode()<U7...
[1 values with dtype=<U7]
- KDP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- deg/km
- units :
- degrees per kilometer
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - KDP_AH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- deg/km
- units :
- degrees per kilometer
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 84 graph layers Data type float64 numpy.ndarray - KDP_LANC(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- radar_specific_differential_phase_hv
- long_name :
- Specific differential phase HV
- short_name :
- KDP
- units :
- degrees per kilometer
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - KDP_VULP(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- standard_name :
- radar_specific_differential_phase_hv
- long_name :
- Specific differential phase HV
- short_name :
- KDP
- units :
- degrees per kilometer
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - last(azimuth)float64dask.array<chunksize=(180,), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - last_idx(azimuth)int64dask.array<chunksize=(180,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 1.41 kiB Shape (360,) (180,) Dask graph 2 chunks in 2 graph layers Data type int64 numpy.ndarray - nyquist_velocity()float64...
- standard_name :
- nyquist_velocity
- units :
- m s-1
[1 values with dtype=float64]
- offset()float32...
[1 values with dtype=float32]
- offset_idx()int64...
[1 values with dtype=int64]
- phib(azimuth, range)float64dask.array<chunksize=(180, 741), meta=np.ndarray>
Array Chunk Bytes 2.06 MiB 1.02 MiB Shape (360, 750) (180, 741) Dask graph 4 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 89 graph layers Data type float64 numpy.ndarray - PHIDP_OC1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - PHIDP_OC4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - prt_mode()<U7...
[1 values with dtype=<U7]
- RHOHV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- units :
- unitless
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - RHOHV_NC(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- units :
- unitless
- _Undetect :
- 0.0
- unit :
- dBZ
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
- short_name :
- SNRH
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - RSUM(azimuth, range)float64dask.array<chunksize=(360, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- units :
- dBZ
- long_name :
- Total power H (uncorrected reflectivity)
- standard_name :
- radar_equivalent_reflectivity_factor_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 2.06 MiB Shape (360, 750) (360, 750) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - SNRH(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dBZ
- _Undetect :
- 0.0
- axis :
- radial_range_coordinate
- meters_between_gates :
- 200.0
- spacing_is_constant :
- true
- meters_to_center_of_first_gate :
- 100.0
- units :
- unitless
- standard_name :
- signal_noise_ratio_h
- long_name :
- Signal Noise Ratio H
- short_name :
- SNRH
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 2 graph layers Data type float64 numpy.ndarray - start_range(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - stop_range(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float32 numpy.ndarray - sweep_fixed_angle()float64...
[1 values with dtype=float64]
- sweep_number()int64...
[1 values with dtype=int64]
- SYSPHI1()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI2()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI3()float64...
- format :
- UV16
- is_dft :
- 0
- unit :
- deg
- units :
- degrees
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- _Undetect :
- 0.0
[1 values with dtype=float64]
- SYSPHI4(azimuth)float64dask.array<chunksize=(360,), meta=np.ndarray>
Array Chunk Bytes 2.81 kiB 2.81 kiB Shape (360,) (360,) Dask graph 1 chunks in 2 graph layers Data type float64 numpy.ndarray - VRADH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per seconds
- long_name :
- Radial velocity of scatterers away from instrument H
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - VRADV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per second
- long_name :
- Radial velocity of scatterers away from instrument V
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - WRADH(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per seconds
- long_name :
- Doppler spectrum width H
- standard_name :
- radar_doppler_spectrum_width_h
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - WRADV(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- m/s
- units :
- meters per second
- long_name :
- Doppler spectrum width V
- standard_name :
- radar_doppler_spectrum_width_v
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - ZDR(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- format :
- UV8
- is_dft :
- 0
- unit :
- dB
- units :
- dB
- long_name :
- Log differential reflectivity H/V
- standard_name :
- radar_differential_reflectivity_hv
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 2 graph layers Data type float64 numpy.ndarray - ZDR_CORR5(azimuth, range)float64dask.array<chunksize=(180, 750), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 1.03 MiB Shape (360, 750) (180, 750) Dask graph 2 chunks in 93 graph layers Data type float64 numpy.ndarray - DBTH_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR1(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBTH_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR2(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBTH_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR3(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBTH_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - DBZH_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray - ZDR_CORR4(azimuth, range)float64dask.array<chunksize=(90, 375), meta=np.ndarray>
- is_dft :
- 0
- _Undetect :
- 0.0
Array Chunk Bytes 2.06 MiB 263.67 kiB Shape (360, 750) (90, 375) Dask graph 8 chunks in 7 graph layers Data type float64 numpy.ndarray
- source :
- gamic
- ant_gain_h :
- 44.0
- ant_gain_v :
- 44.0
- noise_power_h :
- -1.39495
- noise_power_v :
- -1.09706
- rx_loss_h :
- 0.73
- rx_loss_v :
- 0.73
Plot KDP moments overview#
What are the benefits of \(K_{DP}(A_H)\)?
no noise artefacts
no \(\delta\)
no negative \(K_{DP}\)
no spatial degradation
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(
2, 2, sharex=True, sharey=True, figsize=(12, 9)
)
rp.plot_moment(swp.KDP_AH, ax=ax1)
rp.plot_moment(swp.KDP_VULP, ax=ax2)
rp.plot_moment(swp.KDP_LANC.fillna(0), ax=ax3)
rp.plot_moment(swp.KDP, ax=ax4)
plt.tight_layout()
Plot Uncorrected vs Corrected#
corr = 5
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6), (ax7, ax8, ax9)) = plt.subplots(
3, 3, sharey=True, sharex=True, figsize=(12, 10)
)
rp.plot_moment(swp.DBTH, ax=ax1)
rp.plot_moment(swp[f"DBTH_CORR{corr}"], ax=ax2)
rp.plot_moment(swp[f"DBTH_CORR{corr}"] - swp.DBTH, ax=ax3)
rp.plot_moment(swp.DBZH, ax=ax4)
rp.plot_moment(swp[f"DBZH_CORR{corr}"], ax=ax5)
rp.plot_moment(swp[f"DBZH_CORR{corr}"] - swp.DBZH, ax=ax6)
rp.plot_moment(swp.ZDR, ax=ax7)
rp.plot_moment(swp[f"ZDR_CORR{corr}"], ax=ax8)
rp.plot_moment(swp[f"ZDR_CORR{corr}"] - swp.ZDR, ax=ax9)
plt.tight_layout()
Difference Plots#
zdiff0 = "DBTH_CORR5"
zdiff1 = "DBTH_CORR4"
zdrdiff0 = "ZDR_CORR5"
zdrdiff1 = "ZDR_CORR4"
zdiff = swp[zdiff0] - swp[zdiff1]
zdrdiff = swp[zdrdiff0] - swp[zdrdiff1]
fig = plt.figure(figsize=(10, 5))
fig.suptitle(zdiff.time.min().values.astype("<M8[s]"), fontsize=14)
cmap = "HomeyerRainbow"
im = zdiff.wrl.vis.plot(
ax=121, fig=fig, cmap=cmap, vmin=-2, vmax=2, levels=np.arange(-1, 4, 0.1)
)
t = plt.title("Difference Reflectivity")
t.set_y(1.1)
im = zdrdiff.wrl.vis.plot(
ax=122, fig=fig, cmap=cmap, vmin=0, vmax=2, levels=np.arange(-1, 2, 0.1)
)
t = plt.title("Difference ZDR")
t.set_y(1.1)
fig.tight_layout()
Save data#
dim0 = "azimuth"
dtime = swp.time.min(dim0).dt.floor("5min").dt.strftime("%Y%m%dT%H%M").values
stage = "07_attenuation_correction"
fname = rp.data_path() / "lecture" / f"{stage}_{dtime}.zarr"
print(fname)
swp.to_zarr(fname, mode="w", zarr_version=2)
/builds/_NRRzFk9l/0/grp_meteo/radar/radarpolarimetry/data/lecture/07_attenuation_correction_20170810T1100.zarr
<xarray.backends.zarr.ZarrStore at 0x7f65a2609440>
Solution 1: Check different pre-calculated PHIDP values for specific radials#
azi = 104
azi = np.arange(azi, azi + 1)
fig = plt.figure(figsize=(10, 6))
ax0 = rp.create_lineplot(fig, subplot=111, ylabel=r"$PHI_{DP}$ (deg)")
t = ax0.set_title(f"{swp.time.min().values.astype('<M8[s]')}")
t.set_y(1.05)
line = ax0.plot(swp.PHIDP[azi, :].T, "b.", label="$PHI_{DP}^{raw}$")
line = ax0.plot(swp.PHIDP_OC1[azi, :].T, "b", lw=0.5, label="$PHI_{DP}OC^{corr1}$")
line = ax0.plot(swp.PHIDP_OC2[azi, :].T, "r", lw=0.5, label="$PHI_{DP}OC^{corr2}$")
line = ax0.plot(swp.PHIDP_OC3[azi, :].T, "k", lw=0.5, label="$PHI_{DP}OC^{corr3}$")
line = ax0.plot(swp.PHIDP_OC4[azi, :].T, "g", lw=0.5, label="$PHI_{DP}OC^{corr4}$")
line = ax0.plot(swp.PHIDP_CORR1[azi, :].T, "b", label="$PHI_{DP}^{corr1}$")
line = ax0.plot(swp.PHIDP_CORR2[azi, :].T, "r", label="$PHI_{DP}^{corr2}$")
line = ax0.plot(swp.PHIDP_CORR3[azi, :].T, "k", label="$PHI_{DP}^{corr3}$")
line = ax0.plot(swp.PHIDP_CORR4[azi, :].T, "g", label="$PHI_{DP}^{corr4}$")
ax0.set_ylim(-10, 40)
plt.legend(ncol=1, loc=8, bbox_to_anchor=(1.3, 0.0))
# add twin axis of host axis with label and position
ax1 = rp.add_axis(ax0, ylabel=r"$UZ_H$ (dBZ)", pos=1.0)
line = ax1.plot(swp.DBTH[azi, :].T, "g", zorder=0)
# add another twin axis of host axis with label and position
ax2 = rp.add_axis(ax0, ylabel=r"$RHO_{HV}$", pos=1.1)
line = ax2.plot(swp.RHOHV[azi, :].T, "c")
# plt.tight_layout()
plt.show()
Solution 2: Display PHIDP moments in 2by2 plot#
select different moments
change resolution
ticks = np.arange(0, 52, 2)
moments = ["PHIDP_OC1", "PHIDP_CORR1", "PHIDP_OC4", "PHIDP_CORR4"]
rp.plot_2by2(swp, moments, ticks=ticks, add_colorbar=False)
# add colorbar
fig = plt.gcf()
im = fig.axes[0].collections[0]
fig.subplots_adjust(right=0.7)
cbar_ax = fig.add_axes([0.75, 0.1, 0.025, 0.8])
cbar = fig.colorbar(im, cax=cbar_ax, label=r"$\phi_{DP}$ (deg)")
cbar.locator = plt.FixedLocator(ticks)
cbar.update_ticks()
# make some space between subplots
fig.subplots_adjust(wspace=0.25, hspace=0.25)