|
57 | 57 | } |
58 | 58 |
|
59 | 59 |
|
| 60 | +DEFINED_RECORDING_INTERVALS = { |
| 61 | + "SA-0174": (1, "hour"), |
| 62 | + "SO-0140": (15, "minute"), |
| 63 | + "SO-0145": (15, "minute"), |
| 64 | + "SO-0146": (15, "minute"), |
| 65 | + "SO-0148": (15, "minute"), |
| 66 | + "SO-0160": (15, "minute"), |
| 67 | + "SO-0163": (15, "minute"), |
| 68 | + "SO-0165": (15, "minute"), |
| 69 | + "SO-0166": (15, "minute"), |
| 70 | + "SO-0175": (15, "minute"), |
| 71 | + "SO-0177": (15, "minute"), |
| 72 | + "SO-0189": (15, "minute"), |
| 73 | + "SO-0191": (15, "minute"), |
| 74 | + "SO-0194": (15, "minute"), |
| 75 | + "SO-0200": (15, "minute"), |
| 76 | + "SO-0204": (15, "minute"), |
| 77 | + "SO-0224": (15, "minute"), |
| 78 | + "SO-0238": (15, "minute"), |
| 79 | + "SO-0247": (15, "minute"), |
| 80 | + "SO-0249": (15, "minute"), |
| 81 | + "SO-0261": (15, "minute"), |
| 82 | + "SM-0055": (6, "hour"), |
| 83 | + "SM-0259": (12, "hour"), |
| 84 | + "HS-038": (12, "hour"), |
| 85 | + "EB-220": (12, "hour"), |
| 86 | + "SO-0144": (15, "minute"), |
| 87 | + "SO-0142": (15, "minute"), |
| 88 | + "SO-0190": (15, "minute"), |
| 89 | +} |
| 90 | + |
| 91 | + |
60 | 92 | class MeasuringPointEstimator: |
61 | 93 | def __init__(self): |
62 | 94 | df = read_csv("WaterLevels") |
@@ -123,6 +155,12 @@ def estimate_measuring_point_height( |
123 | 155 | return mphs, mph_descs, start_dates, end_dates |
124 | 156 |
|
125 | 157 |
|
| 158 | +def _get_defined_recording_interval(pointid: str) -> tuple[int, str] | None: |
| 159 | + if pointid in DEFINED_RECORDING_INTERVALS: |
| 160 | + return DEFINED_RECORDING_INTERVALS[pointid] |
| 161 | + return None |
| 162 | + |
| 163 | + |
126 | 164 | class SensorParameterEstimator: |
127 | 165 | def __init__(self, sensor_type: str): |
128 | 166 | if sensor_type == "Pressure Transducer": |
@@ -156,7 +194,16 @@ def estimate_recording_interval( |
156 | 194 | installation_date: datetime = None, |
157 | 195 | removal_date: datetime = None, |
158 | 196 | ) -> tuple[int | None, str | None, str | None]: |
| 197 | + """ |
| 198 | + return estimated recording interval, unit, and error message if applicable |
| 199 | + """ |
159 | 200 | point_id = record.PointID |
| 201 | + |
| 202 | + # get statically defined recording interval provided by Ethan |
| 203 | + ri = _get_defined_recording_interval(point_id) |
| 204 | + if ri is not None: |
| 205 | + return ri[0], ri[1], None |
| 206 | + |
160 | 207 | cdf = self._get_values(point_id) |
161 | 208 | if len(cdf) == 0: |
162 | 209 | return None, None, f"No measurements found for PointID: {point_id}" |
|
0 commit comments