pikobs 3.0.331__tar.gz → 3.0.332__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.
Files changed (169) hide show
  1. {pikobs-3.0.331 → pikobs-3.0.332}/CHANGELOG.md +4 -0
  2. {pikobs-3.0.331/pikobs.egg-info → pikobs-3.0.332}/PKG-INFO +1 -1
  3. pikobs-3.0.332/VERSION +1 -0
  4. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obstimedb/obstimedb.py +55 -40
  5. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obstimedb/obstimedb_plot.py +1 -1
  6. {pikobs-3.0.331 → pikobs-3.0.332/pikobs.egg-info}/PKG-INFO +1 -1
  7. pikobs-3.0.331/VERSION +0 -1
  8. {pikobs-3.0.331 → pikobs-3.0.332}/.gitignore +0 -0
  9. {pikobs-3.0.331 → pikobs-3.0.332}/MANIFEST.in +0 -0
  10. {pikobs-3.0.331 → pikobs-3.0.332}/README.md +0 -0
  11. {pikobs-3.0.331 → pikobs-3.0.332}/clear.sh +0 -0
  12. {pikobs-3.0.331 → pikobs-3.0.332}/conda_build/pikobs/activate.sh +0 -0
  13. {pikobs-3.0.331 → pikobs-3.0.332}/conda_build/pikobs/build.sh +0 -0
  14. {pikobs-3.0.331 → pikobs-3.0.332}/conda_build/pikobs/meta.yaml +0 -0
  15. {pikobs-3.0.331 → pikobs-3.0.332}/conda_build/pikobs/pikobs.yml +0 -0
  16. {pikobs-3.0.331 → pikobs-3.0.332}/docs/Makefile +0 -0
  17. {pikobs-3.0.331 → pikobs-3.0.332}/docs/make.bat +0 -0
  18. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/cardio.rst +0 -0
  19. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/conf.py +0 -0
  20. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/families.rst +0 -0
  21. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/flag.rst +0 -0
  22. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/flags_criteria.rst +0 -0
  23. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/histogram.rst +0 -0
  24. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/index.rst +0 -0
  25. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/mapobs.rst +0 -0
  26. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/obscountdb.rst +0 -0
  27. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/obstimedb.rst +0 -0
  28. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/pikobsburp2rdb.rst +0 -0
  29. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/profile.rst +0 -0
  30. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/profile_ft.rst +0 -0
  31. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/profile_ft2.rst +0 -0
  32. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/projection.rst +0 -0
  33. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/region.rst +0 -0
  34. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/scatter.rst +0 -0
  35. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/spatial.rst +0 -0
  36. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/timeserie.rst +0 -0
  37. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/unittest.rst +0 -0
  38. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/varno.rst +0 -0
  39. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/vdedr.rst +0 -0
  40. {pikobs-3.0.331 → pikobs-3.0.332}/docs/source/zone.rst +0 -0
  41. {pikobs-3.0.331 → pikobs-3.0.332}/env/.mambarc +0 -0
  42. {pikobs-3.0.331 → pikobs-3.0.332}/env/conda-meta/history +0 -0
  43. {pikobs-3.0.331 → pikobs-3.0.332}/env/etc/aau_token +0 -0
  44. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/__init__.py +0 -0
  45. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/__not_used/plot_proj.py +0 -0
  46. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/__not_used/vdedr2.py +0 -0
  47. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/__not_used/vdedr3.py +0 -0
  48. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/cardio/__init__.py +0 -0
  49. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/cardio/cardio.py +0 -0
  50. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/cardio/cardio_plot.py +0 -0
  51. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/cardio/cardio_plot_old.py +0 -0
  52. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/__init__.py +0 -0
  53. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/delete_folder.py +0 -0
  54. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/families.py +0 -0
  55. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/familyobs.py +0 -0
  56. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/flags_criteria.py +0 -0
  57. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/regionsobs.py +0 -0
  58. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/special_family.py +0 -0
  59. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/type_boxes.py +0 -0
  60. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/type_projection.py +0 -0
  61. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/configobs/type_varno.py +0 -0
  62. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/extension/color_mapping.json +0 -0
  63. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/extension/libudfsqlite-shared.so +0 -0
  64. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/__init__.py +0 -0
  65. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/flags.py +0 -0
  66. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/flags_count.py +0 -0
  67. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/flags_plot.py +0 -0
  68. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/flags_plot0.py +0 -0
  69. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/flags_plot3.py +0 -0
  70. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/flags_plotv2.py +0 -0
  71. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo.py +0 -0
  72. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo2.py +0 -0
  73. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo3.py +0 -0
  74. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo4.py +0 -0
  75. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo5.py +0 -0
  76. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo7.py +0 -0
  77. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo8.py +0 -0
  78. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/flags/plotpo9.py +0 -0
  79. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/histogram/__init__.py +0 -0
  80. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/histogram/histogram.py +0 -0
  81. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/histogram/histogram_plot.py +0 -0
  82. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/mapobs/__init__.py +0 -0
  83. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/mapobs/color.j +0 -0
  84. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/mapobs/mapobs.py +0 -0
  85. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obscountdb/__init__.py +0 -0
  86. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obscountdb/obscountdb.py +0 -0
  87. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obscountdb/obscountdb_old.py +0 -0
  88. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obscountdb/obscountdb_plot.py +0 -0
  89. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obscutoff/__init__.py +0 -0
  90. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obscutoff/obscutoff.py +0 -0
  91. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obscutoff/obscutoff_plot.py +0 -0
  92. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/obstimedb/__init__.py +0 -0
  93. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/pbs_submit/__init__.py +0 -0
  94. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/pbs_submit/pbs_submit.py +0 -0
  95. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/pikobsburp2rdb/__init__.py +0 -0
  96. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/pikobsburp2rdb/pikobsburp2rdb.py +0 -0
  97. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/profile/__init__.py +0 -0
  98. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/profile/profile.py +0 -0
  99. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/profile/profile_plot.py +0 -0
  100. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/progps/__init__.py +0 -0
  101. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/progps/progps.py +0 -0
  102. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/progps2/__init__.py +0 -0
  103. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/progps2/progps2.py +0 -0
  104. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/scatter/__init__.py +0 -0
  105. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/scatter/scatter.py +0 -0
  106. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/remove.sh +0 -0
  107. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/remove2.py +0 -0
  108. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_2exp.sh +0 -0
  109. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_cardio.sh +0 -0
  110. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_cardio_lco.sh +0 -0
  111. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_cardio_sky.sh +0 -0
  112. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_flag.sh +0 -0
  113. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_histogra.sh +0 -0
  114. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_mapobs.sh +0 -0
  115. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_obscountdb.sh +0 -0
  116. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_obscountdb_1.sh +0 -0
  117. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_obstimedb.sh +0 -0
  118. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_pikobsburp2rdb.sh +0 -0
  119. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_profile.sh +0 -0
  120. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_profile_1.sh +0 -0
  121. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_profile_ra.sh +0 -0
  122. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_profile_radar.sh +0 -0
  123. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_profile_s.sh +0 -0
  124. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_progps.sh +0 -0
  125. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_progps2.sh +0 -0
  126. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_scatter.sh +0 -0
  127. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_scatter_diff.sh +0 -0
  128. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_scatter_one.sh +0 -0
  129. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_scatter_two_sw.sh +0 -0
  130. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_spatial.sh +0 -0
  131. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_timeserie.sh +0 -0
  132. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_timeserie_radar.sh +0 -0
  133. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_vdedr.sh +0 -0
  134. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/run_zone2.sh +0 -0
  135. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/setup_pikobs.sh +0 -0
  136. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/script/setup_pikobs.sh.1 +0 -0
  137. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/spatial/__init__.py +0 -0
  138. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/spatial/spatial.py +0 -0
  139. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/timeserie/__init__.py +0 -0
  140. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/timeserie/timeserie.py +0 -0
  141. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/timeserie/timeserie_plot.py +0 -0
  142. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/unittestpikobs/__init__.py +0 -0
  143. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/unittestpikobs/test_pikobs.py +0 -0
  144. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/unittestpikobs/unittest_timeserie.py +0 -0
  145. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/vdedr/__init__.py +0 -0
  146. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/vdedr/vdedr.py +0 -0
  147. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/vdedr/vdedr_plot.py +0 -0
  148. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/web/__init__.py +0 -0
  149. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/web/viewer.py +0 -0
  150. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/zone/__init__.py +0 -0
  151. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/zone/zone.py +0 -0
  152. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs/zone/zone_plot.py +0 -0
  153. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs.egg-info/SOURCES.txt +0 -0
  154. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs.egg-info/dependency_links.txt +0 -0
  155. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs.egg-info/requires.txt +0 -0
  156. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs.egg-info/top_level.txt +0 -0
  157. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs_env.yml +0 -0
  158. {pikobs-3.0.331 → pikobs-3.0.332}/pikobs_env2.yml +0 -0
  159. {pikobs-3.0.331 → pikobs-3.0.332}/publique.sh +0 -0
  160. {pikobs-3.0.331 → pikobs-3.0.332}/publique.txt +0 -0
  161. {pikobs-3.0.331 → pikobs-3.0.332}/readme/flag_criteria.md +0 -0
  162. {pikobs-3.0.331 → pikobs-3.0.332}/readme/geographic.md +0 -0
  163. {pikobs-3.0.331 → pikobs-3.0.332}/readme/read_projection.md +0 -0
  164. {pikobs-3.0.331 → pikobs-3.0.332}/readme/readme_cardiograme.md +0 -0
  165. {pikobs-3.0.331 → pikobs-3.0.332}/readme/readme_scatter.md +0 -0
  166. {pikobs-3.0.331 → pikobs-3.0.332}/setup.cfg +0 -0
  167. {pikobs-3.0.331 → pikobs-3.0.332}/setup.py +0 -0
  168. {pikobs-3.0.331 → pikobs-3.0.332}/setup_pikobs.sh +0 -0
  169. {pikobs-3.0.331 → pikobs-3.0.332}/setup_pikobs.sh.1 +0 -0
@@ -1151,3 +1151,7 @@ Please use the following tags when editing this file:
1151
1151
  ## [3.0.331] 2026-09-01
1152
1152
  ### Added
1153
1153
  - bugs
1154
+
1155
+ ## [3.0.332] 2026-09-01
1156
+ ### Added
1157
+ - bugs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pikobs
3
- Version: 3.0.331
3
+ Version: 3.0.332
4
4
  Summary: pikobs
5
5
  Home-page: https://gitlab.science.gc.ca/dlo001/pikobs
6
6
  Author: David Lobon
pikobs-3.0.332/VERSION ADDED
@@ -0,0 +1 @@
1
+ 3.0.332
@@ -374,50 +374,65 @@ def create_and_populate_moyenne_table(
374
374
  # it into its own column. Every other family leaves `channel` as
375
375
  # a literal NULL and groups exactly as before -- this is a pure
376
376
  # addition, the non-radiance extraction path is unchanged.
377
+ #
378
+ # CRITICAL: the per-channel rows must NEVER be the only rows
379
+ # inserted for a radiance family. The SAME id_obs (profile)
380
+ # appears in MANY channel rows (one per channel it reports), so
381
+ # summing Nobsdata/Nobsprofile ACROSS channel rows -- exactly
382
+ # what every consumer of `moyenne` that isn't channel-aware does
383
+ # (the main Nobs/Nobsprofile series behind the mosaic, global
384
+ # time series, and profile summary table) -- silently multiplies
385
+ # the true profile count by roughly the number of channels
386
+ # reported (confirmed directly: a 10-profile/15-channel test
387
+ # case summed to 150, not 10). The fix is to ALSO insert a
388
+ # SEPARATE, non-channel-split row (channel=NULL) with the
389
+ # correct, ungrouped-by-channel counts, so every consumer that
390
+ # filters `WHERE channel IS NULL` (the main series) gets the
391
+ # right numbers, while `WHERE channel IS NOT NULL` (the
392
+ # per-channel breakdown) still works exactly as before.
377
393
  # ------------------------------------------------------------------
378
394
  is_radiance = (VCOTYP == 'CANAL')
379
395
  if is_radiance:
380
- channel_expr = "vcoord"
381
- group_by_clause = f"{group_col}, vcoord"
396
+ passes = [("NULL", group_col), ("vcoord", f"{group_col}, vcoord")]
382
397
  else:
383
- channel_expr = "NULL"
384
- group_by_clause = group_col
385
-
386
- insert_query = f"""
387
- INSERT INTO moyenne (Nobsdata, Nobsprofile, avg_omp, avg_oma, id_stn, channel, date)
388
- SELECT
389
- count(DISTINCT(id_data)),
390
- count(DISTINCT(id_obs)),
391
- {avg_omp_expr},
392
- {avg_oma_expr},
393
- {id_stn_expr},
394
- {channel_expr},
395
- {date_match.group(1)}
396
- FROM db.header
397
- NATURAL JOIN db.DATA
398
- WHERE obsvalue IS NOT NULL
399
- {flag_criteria}
400
- {LATLONCRIT}
401
- {VCOCRIT}
402
- {family_filter}
403
- GROUP BY {group_by_clause};
404
- """
405
-
406
- try:
407
- cursor.execute(insert_query)
408
- except sqlite3.OperationalError as err:
409
- msg = str(err).lower()
410
- fb_query = insert_query
411
- for metric in agr_list:
412
- if metric in msg:
413
- print(f"[WARNING] Column '{metric}' not found in "
414
- f"{os.path.basename(existing_db_filename)}; storing NULL.",
415
- flush=True)
416
- fb_query = fb_query.replace(f"AVG({metric})", "NULL")
417
- if fb_query != insert_query:
418
- cursor.execute(fb_query)
419
- else:
420
- raise
398
+ passes = [("NULL", group_col)]
399
+
400
+ for channel_expr, group_by_clause in passes:
401
+ insert_query = f"""
402
+ INSERT INTO moyenne (Nobsdata, Nobsprofile, avg_omp, avg_oma, id_stn, channel, date)
403
+ SELECT
404
+ count(DISTINCT(id_data)),
405
+ count(DISTINCT(id_obs)),
406
+ {avg_omp_expr},
407
+ {avg_oma_expr},
408
+ {id_stn_expr},
409
+ {channel_expr},
410
+ {date_match.group(1)}
411
+ FROM db.header
412
+ NATURAL JOIN db.DATA
413
+ WHERE obsvalue IS NOT NULL
414
+ {flag_criteria}
415
+ {LATLONCRIT}
416
+ {VCOCRIT}
417
+ {family_filter}
418
+ GROUP BY {group_by_clause};
419
+ """
420
+
421
+ try:
422
+ cursor.execute(insert_query)
423
+ except sqlite3.OperationalError as err:
424
+ msg = str(err).lower()
425
+ fb_query = insert_query
426
+ for metric in agr_list:
427
+ if metric in msg:
428
+ print(f"[WARNING] Column '{metric}' not found in "
429
+ f"{os.path.basename(existing_db_filename)}; storing NULL.",
430
+ flush=True)
431
+ fb_query = fb_query.replace(f"AVG({metric})", "NULL")
432
+ if fb_query != insert_query:
433
+ cursor.execute(fb_query)
434
+ else:
435
+ raise
421
436
  mem_conn.commit()
422
437
 
423
438
  try:
@@ -891,7 +891,7 @@ def obstimedb_plot(
891
891
  select_extra.append(
892
892
  f"SUM(CASE WHEN {col} IS NOT NULL THEN Nobsdata ELSE 0 END) as _wden_{metric}")
893
893
  query = ("SELECT date, id_stn, " + ", ".join(select_extra) +
894
- " FROM moyenne GROUP BY date, id_stn;")
894
+ " FROM moyenne WHERE channel IS NULL GROUP BY date, id_stn;")
895
895
  try:
896
896
  df = pd.read_sql_query(query, conn)
897
897
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pikobs
3
- Version: 3.0.331
3
+ Version: 3.0.332
4
4
  Summary: pikobs
5
5
  Home-page: https://gitlab.science.gc.ca/dlo001/pikobs
6
6
  Author: David Lobon
pikobs-3.0.331/VERSION DELETED
@@ -1 +0,0 @@
1
- 3.0.331
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes