|
23 | 23 | from backend.constants import ( |
24 | 24 | MILLIGRAMS_PER_LITER, |
25 | 25 | PARTS_PER_MILLION, |
| 26 | + PARTS_PER_BILLION, |
26 | 27 | FEET, |
27 | 28 | METERS, |
28 | 29 | TONS_PER_ACRE_FOOT, |
@@ -181,6 +182,7 @@ def convert_units( |
181 | 182 | mgl = MILLIGRAMS_PER_LITER.lower() |
182 | 183 | ugl = MICROGRAMS_PER_LITER.lower() |
183 | 184 | ppm = PARTS_PER_MILLION.lower() |
| 185 | + ppb = PARTS_PER_BILLION.lower() |
184 | 186 | tpaf = TONS_PER_ACRE_FOOT.lower() |
185 | 187 | ft = FEET.lower() |
186 | 188 | m = METERS.lower() |
@@ -210,7 +212,7 @@ def convert_units( |
210 | 212 | conversion_factor = 0.004427 |
211 | 213 | elif input_units == "pci/l": |
212 | 214 | conversion_factor = 0.00149 |
213 | | - elif input_units == ugl: |
| 215 | + elif input_units in (ugl, ppb): |
214 | 216 | conversion_factor = 0.001 |
215 | 217 | elif input_units == tpaf: |
216 | 218 | conversion_factor = 735.47 |
@@ -239,7 +241,7 @@ def convert_units( |
239 | 241 | return input_value, conversion_factor, warning |
240 | 242 |
|
241 | 243 |
|
242 | | -def standardize_datetime(dt): |
| 244 | +def standardize_datetime(dt, record_id): |
243 | 245 | if isinstance(dt, tuple): |
244 | 246 | dt = [di for di in dt if di is not None] |
245 | 247 | dt = " ".join(dt) |
@@ -274,7 +276,7 @@ def standardize_datetime(dt): |
274 | 276 | except ValueError as e: |
275 | 277 | pass |
276 | 278 | else: |
277 | | - raise ValueError(f"Failed to parse datetime {dt}") |
| 279 | + raise ValueError(f"Failed to parse datetime {dt} for {record_id}") |
278 | 280 |
|
279 | 281 | if fmt == "%Y-%m-%d": |
280 | 282 | return dt.strftime("%Y-%m-%d"), "" |
@@ -405,13 +407,13 @@ def do_transform( |
405 | 407 | # standardize datetime |
406 | 408 | dt = record.get(DT_MEASURED) |
407 | 409 | if dt: |
408 | | - d, t = standardize_datetime(dt) |
| 410 | + d, t = standardize_datetime(dt, record["id"]) |
409 | 411 | record["date_measured"] = d |
410 | 412 | record["time_measured"] = t |
411 | 413 | else: |
412 | 414 | mrd = record.get("most_recent_datetime") |
413 | 415 | if mrd: |
414 | | - d, t = standardize_datetime(mrd) |
| 416 | + d, t = standardize_datetime(mrd, record["id"]) |
415 | 417 | record["date_measured"] = d |
416 | 418 | record["time_measured"] = t |
417 | 419 |
|
@@ -661,7 +663,7 @@ def _transform(self, record, site_record): |
661 | 663 | rec = {} |
662 | 664 |
|
663 | 665 | if self.config.output_summary: |
664 | | - self._transform_most_recents(record) |
| 666 | + self._transform_most_recents(record, site_record.id) |
665 | 667 |
|
666 | 668 | parameter, units = self._get_parameter_name_and_units() |
667 | 669 | rec.update( |
@@ -693,9 +695,9 @@ def _transform(self, record, site_record): |
693 | 695 | rec.update(source_id) |
694 | 696 | return rec |
695 | 697 |
|
696 | | - def _transform_most_recents(self, record): |
| 698 | + def _transform_most_recents(self, record, site_id): |
697 | 699 | # convert most_recents |
698 | | - dt, tt = standardize_datetime(record["most_recent_datetime"]) |
| 700 | + dt, tt = standardize_datetime(record["most_recent_datetime"], site_id) |
699 | 701 | record["most_recent_date"] = dt |
700 | 702 | record["most_recent_time"] = tt |
701 | 703 | parameter_name, unit = self._get_parameter_name_and_units() |
|
0 commit comments