radclss 2026.2.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Atmospheric Radiation Measurement user facility
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,22 @@
1
+ Metadata-Version: 2.4
2
+ Name: radclss
3
+ Version: 2026.2.6
4
+ Summary: Extracted Radar Columns and In Situ Sensors
5
+ Author: rjackson, jrobrien91
6
+ License: MIT
7
+ Project-URL: Homepage, https://www.github.com/ARM-Development/radclss
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: arm_pyart
12
+ Requires-Dist: numpy
13
+ Requires-Dist: xarray
14
+ Requires-Dist: pandas
15
+ Requires-Dist: xradar
16
+ Requires-Dist: act-atmos
17
+ Requires-Dist: matplotlib
18
+ Requires-Dist: dask
19
+ Dynamic: license-file
20
+
21
+ # ARM Repository Template
22
+ Basic repository template with required security workflows
@@ -0,0 +1,2 @@
1
+ # ARM Repository Template
2
+ Basic repository template with required security workflows
@@ -0,0 +1,29 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "radclss"
7
+ version = "2026.2.6"
8
+ description = "Extracted Radar Columns and In Situ Sensors"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ authors = [{ name = "rjackson" }, {name = "jrobrien91"}]
12
+ license = { text = "MIT" }
13
+ dependencies = [
14
+ "arm_pyart",
15
+ "numpy",
16
+ "xarray",
17
+ "pandas",
18
+ "xradar",
19
+ "act-atmos",
20
+ "matplotlib",
21
+ "dask",
22
+ ]
23
+
24
+ [tool.setuptools]
25
+ package-dir = {"" = "src"}
26
+ packages = ["radclss"]
27
+
28
+ [project.urls]
29
+ Homepage = "https://www.github.com/ARM-Development/radclss"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,11 @@
1
+ """
2
+ ====================================================
3
+ RadCLss: Extracted Radar Columns and In-Situ Sensors
4
+ ====================================================
5
+ """
6
+
7
+ from . import config # noqa
8
+ from . import core # noqa
9
+ from . import util # noqa
10
+ from . import vis # noqa
11
+ from . import io # noqa
@@ -0,0 +1,18 @@
1
+ from .default_config import DEFAULT_DISCARD_VAR, set_discarded_variables # noqa
2
+ from .output_config import (
3
+ set_output_site, # noqa
4
+ set_output_facility, # noqa
5
+ set_output_platform, # noqa
6
+ set_output_level, # noqa
7
+ ) # noqa
8
+ from .output_config import (
9
+ set_output_gate_time_attrs, # noqa
10
+ set_output_time_offset_attrs, # noqa
11
+ get_output_config, # noqa
12
+ ) # noqa
13
+ from .output_config import (
14
+ set_output_alt_attrs, # noqa
15
+ set_output_lat_attrs, # noqa
16
+ set_output_lon_attrs, # noqa
17
+ set_output_station_attrs, # noqa
18
+ ) # noqa
@@ -0,0 +1,248 @@
1
+ """
2
+ Default configuration file for RadCLss
3
+
4
+ This file contains default parameters and variables used throughout RadCLss.
5
+
6
+ """
7
+
8
+ # Define variables to drop from RadCLss from the respective datastreams
9
+ DEFAULT_DISCARD_VAR = {
10
+ "radar": [
11
+ "classification_mask",
12
+ "uncorrected_copol_correlation_coeff",
13
+ "uncorrected_differential_phase",
14
+ "uncorrected_differential_reflectivity",
15
+ "uncorrected_differential_reflectivity_lag_1",
16
+ "uncorrected_mean_doppler_velocity_h",
17
+ "uncorrected_mean_doppler_velocity_v",
18
+ "uncorrected_reflectivity_h",
19
+ "uncorrected_reflectivity_v",
20
+ "uncorrected_spectral_width_h",
21
+ "uncorrected_spectral_width_v",
22
+ "clutter_masked_velocity",
23
+ "gate_id",
24
+ "ground_clutter",
25
+ "partial_beam_blockage",
26
+ "cumulative_beam_blockage",
27
+ "unfolded_differential_phase",
28
+ "path_integrated_attenuation",
29
+ "path_integrated_differential_attenuation",
30
+ "unthresholded_power_copolar_v",
31
+ "unthresholded_power_copolar_h",
32
+ "specific_differential_phase",
33
+ "specific_differential_attenuation",
34
+ "reflectivity_v",
35
+ "reflectivity",
36
+ "mean_doppler_velocity_v",
37
+ "mean_doppler_velocity",
38
+ "differential_reflectivity_lag_1",
39
+ "differential_reflectivity",
40
+ "differential_phase",
41
+ "normalized_coherent_power",
42
+ "normalized_coherent_power_v",
43
+ "signal_to_noise_ratio_copolar_h",
44
+ "signal_to_noise_ratio_copolar_v",
45
+ "specific_attenuation",
46
+ "spectral_width",
47
+ "spectral_width_v",
48
+ "sounding_temperature",
49
+ "signal_to_noise_ratio",
50
+ "velocity_texture",
51
+ "simulated_velocity",
52
+ "height_over_iso0",
53
+ ],
54
+ "met": [
55
+ "base_time",
56
+ "time_offset",
57
+ "time_bounds",
58
+ "logger_volt",
59
+ "logger_temp",
60
+ "qc_logger_temp",
61
+ "lat",
62
+ "lon",
63
+ "alt",
64
+ "qc_temp_mean",
65
+ "qc_rh_mean",
66
+ "qc_vapor_pressure_mean",
67
+ "qc_wspd_arith_mean",
68
+ "qc_wspd_vec_mean",
69
+ "qc_wdir_vec_mean",
70
+ "qc_pwd_mean_vis_1min",
71
+ "qc_pwd_mean_vis_10min",
72
+ "qc_pwd_pw_code_inst",
73
+ "qc_pwd_pw_code_15min",
74
+ "qc_pwd_pw_code_1hr",
75
+ "qc_pwd_precip_rate_mean_1min",
76
+ "qc_pwd_cumul_rain",
77
+ "qc_pwd_cumul_snow",
78
+ "qc_org_precip_rate_mean",
79
+ "qc_tbrg_precip_total",
80
+ "qc_tbrg_precip_total_corr",
81
+ "qc_logger_volt",
82
+ "qc_logger_temp",
83
+ "qc_atmos_pressure",
84
+ "pwd_pw_code_inst",
85
+ "pwd_pw_code_15min",
86
+ "pwd_pw_code_1hr",
87
+ "temp_std",
88
+ "rh_std",
89
+ "vapor_pressure_std",
90
+ "wdir_vec_std",
91
+ "tbrg_precip_total",
92
+ "org_precip_rate_mean",
93
+ "pwd_mean_vis_1min",
94
+ "pwd_mean_vis_10min",
95
+ "pwd_precip_rate_mean_1min",
96
+ "pwd_cumul_rain",
97
+ "pwd_cumul_snow",
98
+ "pwd_err_code",
99
+ ],
100
+ "sonde": [
101
+ "base_time",
102
+ "time_offset",
103
+ "lat",
104
+ "lon",
105
+ "qc_pres",
106
+ "qc_tdry",
107
+ "qc_dp",
108
+ "qc_wspd",
109
+ "qc_deg",
110
+ "qc_rh",
111
+ "qc_u_wind",
112
+ "qc_v_wind",
113
+ "qc_asc",
114
+ "wstat",
115
+ "asc",
116
+ ],
117
+ "pluvio": [
118
+ "base_time",
119
+ "time_offset",
120
+ "load_cell_temp",
121
+ "heater_status",
122
+ "elec_unit_temp",
123
+ "supply_volts",
124
+ "orifice_temp",
125
+ "volt_min",
126
+ "ptemp",
127
+ "lat",
128
+ "lon",
129
+ "alt",
130
+ "maintenance_flag",
131
+ "reset_flag",
132
+ "qc_rh_mean",
133
+ "pluvio_status",
134
+ "bucket_rt",
135
+ "accum_total_nrt",
136
+ ],
137
+ "ldquants": [
138
+ "specific_differential_attenuation_xband20c",
139
+ "specific_differential_attenuation_kaband20c",
140
+ "specific_differential_attenuation_sband20c",
141
+ "bringi_conv_stra_flag",
142
+ "exppsd_slope",
143
+ "norm_num_concen",
144
+ "num_concen",
145
+ "gammapsd_shape",
146
+ "gammapsd_slope",
147
+ "mean_doppler_vel_wband20c",
148
+ "mean_doppler_vel_kaband20c",
149
+ "mean_doppler_vel_xband20c",
150
+ "mean_doppler_vel_sband20c",
151
+ "specific_attenuation_kaband20c",
152
+ "specific_attenuation_xband20c",
153
+ "specific_attenuation_sband20c",
154
+ "specific_differential_phase_kaband20c",
155
+ "specific_differential_phase_xband20c",
156
+ "specific_differential_phase_sband20c",
157
+ "differential_reflectivity_kaband20c",
158
+ "differential_reflectivity_xband20c",
159
+ "differential_reflectivity_sband20c",
160
+ "reflectivity_factor_wband20c",
161
+ "reflectivity_factor_kaband20c",
162
+ "reflectivity_factor_xband20c",
163
+ "reflectivity_factor_sband20c",
164
+ "bringi_conv_stra_flag",
165
+ "time_offset",
166
+ "base_time",
167
+ "lat",
168
+ "lon",
169
+ "alt",
170
+ ],
171
+ "vdisquants": [
172
+ "specific_differential_attenuation_xband20c",
173
+ "specific_differential_attenuation_kaband20c",
174
+ "specific_differential_attenuation_sband20c",
175
+ "bringi_conv_stra_flag",
176
+ "exppsd_slope",
177
+ "norm_num_concen",
178
+ "num_concen",
179
+ "gammapsd_shape",
180
+ "gammapsd_slope",
181
+ "mean_doppler_vel_wband20c",
182
+ "mean_doppler_vel_kaband20c",
183
+ "mean_doppler_vel_xband20c",
184
+ "mean_doppler_vel_sband20c",
185
+ "specific_attenuation_kaband20c",
186
+ "specific_attenuation_xband20c",
187
+ "specific_attenuation_sband20c",
188
+ "specific_differential_phase_kaband20c",
189
+ "specific_differential_phase_xband20c",
190
+ "specific_differential_phase_sband20c",
191
+ "differential_reflectivity_kaband20c",
192
+ "differential_reflectivity_xband20c",
193
+ "differential_reflectivity_sband20c",
194
+ "reflectivity_factor_wband20c",
195
+ "reflectivity_factor_kaband20c",
196
+ "reflectivity_factor_xband20c",
197
+ "reflectivity_factor_sband20c",
198
+ "bringi_conv_stra_flag",
199
+ "time_offset",
200
+ "base_time",
201
+ "lat",
202
+ "lon",
203
+ "alt",
204
+ ],
205
+ "wxt": [
206
+ "base_time",
207
+ "time_offset",
208
+ "time_bounds",
209
+ "qc_temp_mean",
210
+ "temp_std",
211
+ "rh_mean",
212
+ "qc_rh_mean",
213
+ "rh_std",
214
+ "atmos_pressure",
215
+ "qc_atmos_pressure",
216
+ "wspd_arith_mean",
217
+ "qc_wspd_arith_mean",
218
+ "wspd_vec_mean",
219
+ "qc_wspd_vec_mean",
220
+ "wdir_vec_mean",
221
+ "qc_wdir_vec_mean",
222
+ "wdir_vec_std",
223
+ "qc_wxt_precip_rate_mean",
224
+ "qc_wxt_cumul_precip",
225
+ "logger_volt",
226
+ "qc_logger_volt",
227
+ "logger_temp",
228
+ "qc_logger_temp",
229
+ "lat",
230
+ "lon",
231
+ "alt",
232
+ ],
233
+ }
234
+
235
+
236
+ def set_discarded_variables(instrument, var_list):
237
+ """
238
+ Set the variables to be discarded from a given instrument datastream.
239
+
240
+ Parameters
241
+ ----------
242
+ instrument : str
243
+ The instrument name (e.g., 'radar', 'met', 'sonde', etc.).
244
+ var_list : list
245
+ List of variable names to discard.
246
+ """
247
+ global DEFAULT_DISCARD_VAR
248
+ DEFAULT_DISCARD_VAR[instrument] = var_list
@@ -0,0 +1,185 @@
1
+ OUTPUT_SITE = "BNF"
2
+ OUTPUT_FACILITY = "S2"
3
+ OUTPUT_PLATFORM = "csapr2radclss"
4
+ OUTPUT_LEVEL = "c2"
5
+ OUTPUT_GATE_TIME_ATTRS = {
6
+ "long_name": (
7
+ "Time in Seconds that Cooresponds to the Start"
8
+ + " of each Individual Radar Volume Scan before"
9
+ + " Concatenation"
10
+ ),
11
+ "description": "Time in Seconds that Cooresponds to the Minimum Height Gate",
12
+ }
13
+ OUTPUT_TIME_OFFSET_ATTRS = dict(
14
+ long_name=("Time in Seconds Since Midnight"),
15
+ description=(
16
+ "Time in Seconds Since Midnight that Cooresponds"
17
+ + "to the Center of Each Height Gate"
18
+ + "Above the Target Location "
19
+ ),
20
+ )
21
+ OUTPUT_STATION_ATTRS = dict(
22
+ long_name="Bankhead National Forest AMF-3 In-Situ Ground Observation Station Identifers"
23
+ )
24
+ OUTPUT_LAT_ATTRS = dict(
25
+ long_name="Latitude of BNF AMF-3 Ground Observation Site", units="Degrees North"
26
+ )
27
+ OUTPUT_LON_ATTRS = dict(
28
+ long_name="Longitude of BNF AMF-3 Ground Observation Site", units="Degrees East"
29
+ )
30
+ OUTPUT_ALT_ATTRS = dict(
31
+ long_name="Altitude above mean sea level for each station", units="m"
32
+ )
33
+
34
+
35
+ def set_output_site(site):
36
+ """
37
+ Set the output site for RadCLss files.
38
+
39
+ Parameters
40
+ ----------
41
+ site : str
42
+ The output site name.
43
+ """
44
+ global OUTPUT_SITE
45
+ OUTPUT_SITE = site
46
+
47
+
48
+ def set_output_facility(facility):
49
+ """
50
+ Set the output facility for RadCLss files.
51
+
52
+ Parameters
53
+ ----------
54
+ facility : str
55
+ The output facility name.
56
+ """
57
+ global OUTPUT_FACILITY
58
+ OUTPUT_FACILITY = facility
59
+
60
+
61
+ def set_output_platform(platform):
62
+ """
63
+ Set the output platform for RadCLss files.
64
+
65
+ Parameters
66
+ ----------
67
+ platform : str
68
+ The output platform name.
69
+ """
70
+ global OUTPUT_PLATFORM
71
+ OUTPUT_PLATFORM = platform
72
+
73
+
74
+ def set_output_level(level):
75
+ """
76
+ Set the output level for RadCLss files.
77
+
78
+ Parameters
79
+ ----------
80
+ level : str
81
+ The output level name.
82
+ """
83
+ global OUTPUT_LEVEL
84
+ OUTPUT_LEVEL = level
85
+
86
+
87
+ def set_output_gate_time_attrs(attrs):
88
+ """
89
+ Set the attributes for the gate_time variable.
90
+
91
+ Parameters
92
+ ----------
93
+ attrs : dict
94
+ Dictionary of attributes for gate_time.
95
+ """
96
+ global OUTPUT_GATE_TIME_ATTRS
97
+ OUTPUT_GATE_TIME_ATTRS = attrs
98
+
99
+
100
+ def set_output_time_offset_attrs(attrs):
101
+ """
102
+ Set the attributes for the time_offset variable.
103
+
104
+ Parameters
105
+ ----------
106
+ attrs : dict
107
+ Dictionary of attributes for time_offset.
108
+ """
109
+ global OUTPUT_TIME_OFFSET_ATTRS
110
+ OUTPUT_TIME_OFFSET_ATTRS = attrs
111
+
112
+
113
+ def set_output_station_attrs(attrs):
114
+ """
115
+ Set the attributes for the station variable.
116
+
117
+ Parameters
118
+ ----------
119
+ attrs : dict
120
+ Dictionary of attributes for station.
121
+ """
122
+ global OUTPUT_STATION_ATTRS
123
+ OUTPUT_STATION_ATTRS = attrs
124
+
125
+
126
+ def set_output_lat_attrs(attrs):
127
+ """
128
+ Set the attributes for the lat variable.
129
+
130
+ Parameters
131
+ ----------
132
+ attrs : dict
133
+ Dictionary of attributes for lat.
134
+ """
135
+ global OUTPUT_LAT_ATTRS
136
+ OUTPUT_LAT_ATTRS = attrs
137
+
138
+
139
+ def set_output_lon_attrs(attrs):
140
+ """
141
+ Set the attributes for the lon variable.
142
+
143
+ Parameters
144
+ ----------
145
+ attrs : dict
146
+ Dictionary of attributes for lon.
147
+ """
148
+ global OUTPUT_LON_ATTRS
149
+ OUTPUT_LON_ATTRS = attrs
150
+
151
+
152
+ def set_output_alt_attrs(attrs):
153
+ """
154
+ Set the attributes for the alt variable.
155
+
156
+ Parameters
157
+ ----------
158
+ attrs : dict
159
+ Dictionary of attributes for alt.
160
+ """
161
+ global OUTPUT_ALT_ATTRS
162
+ OUTPUT_ALT_ATTRS = attrs
163
+
164
+
165
+ def get_output_config():
166
+ """
167
+ Get the current output configuration as a dictionary.
168
+
169
+ Returns
170
+ -------
171
+ dict
172
+ Dictionary containing the current output configuration.
173
+ """
174
+ return {
175
+ "site": OUTPUT_SITE,
176
+ "facility": OUTPUT_FACILITY,
177
+ "platform": OUTPUT_PLATFORM,
178
+ "level": OUTPUT_LEVEL,
179
+ "gate_time_attrs": OUTPUT_GATE_TIME_ATTRS,
180
+ "time_offset_attrs": OUTPUT_TIME_OFFSET_ATTRS,
181
+ "station_attrs": OUTPUT_STATION_ATTRS,
182
+ "lat_attrs": OUTPUT_LAT_ATTRS,
183
+ "lon_attrs": OUTPUT_LON_ATTRS,
184
+ "alt_attrs": OUTPUT_ALT_ATTRS,
185
+ }
@@ -0,0 +1,17 @@
1
+ """
2
+ =============================
3
+ radclss.core package
4
+ =============================
5
+
6
+ This package contains the core functions for RadCLss.
7
+
8
+ ... autosummary::
9
+ :toctree: generated/
10
+
11
+ radclss_core
12
+
13
+ """
14
+
15
+ from .radclss_core import radclss # noqa: F401
16
+
17
+ __all__ = ["radclss"]