ocf-data-sampler 0.2.37__tar.gz → 0.2.38__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.

Potentially problematic release.


This version of ocf-data-sampler might be problematic. Click here for more details.

Files changed (67) hide show
  1. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/PKG-INFO +1 -1
  2. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/find_contiguous_time_periods.py +9 -3
  3. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler.egg-info/PKG-INFO +1 -1
  4. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/LICENSE +0 -0
  5. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/README.md +0 -0
  6. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/__init__.py +0 -0
  7. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/config/__init__.py +0 -0
  8. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/config/load.py +0 -0
  9. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/config/model.py +0 -0
  10. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/config/save.py +0 -0
  11. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/data/uk_gsp_locations_20220314.csv +0 -0
  12. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/data/uk_gsp_locations_20250109.csv +0 -0
  13. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/__init__.py +0 -0
  14. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/gsp.py +0 -0
  15. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/load_dataset.py +0 -0
  16. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/__init__.py +0 -0
  17. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/nwp.py +0 -0
  18. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/providers/__init__.py +0 -0
  19. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/providers/cloudcasting.py +0 -0
  20. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/providers/ecmwf.py +0 -0
  21. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/providers/gfs.py +0 -0
  22. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/providers/icon.py +0 -0
  23. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/providers/ukv.py +0 -0
  24. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/nwp/providers/utils.py +0 -0
  25. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/satellite.py +0 -0
  26. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/site.py +0 -0
  27. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/load/utils.py +0 -0
  28. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/__init__.py +0 -0
  29. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/collate.py +0 -0
  30. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/common_types.py +0 -0
  31. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/datetime_features.py +0 -0
  32. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/gsp.py +0 -0
  33. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/nwp.py +0 -0
  34. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/satellite.py +0 -0
  35. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/site.py +0 -0
  36. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/numpy_sample/sun_position.py +0 -0
  37. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/__init__.py +0 -0
  38. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/dropout.py +0 -0
  39. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/fill_time_periods.py +0 -0
  40. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/geospatial.py +0 -0
  41. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/location.py +0 -0
  42. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/select_spatial_slice.py +0 -0
  43. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/select/select_time_slice.py +0 -0
  44. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/datasets/__init__.py +0 -0
  45. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/datasets/pvnet_uk.py +0 -0
  46. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/datasets/site.py +0 -0
  47. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/sample/__init__.py +0 -0
  48. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/sample/base.py +0 -0
  49. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/sample/site.py +0 -0
  50. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/sample/uk_regional.py +0 -0
  51. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/utils/__init__.py +0 -0
  52. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/utils/channel_dict_to_dataarray.py +0 -0
  53. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/utils/merge_and_fill_utils.py +0 -0
  54. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/utils/spatial_slice_for_dataset.py +0 -0
  55. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/utils/time_slice_for_dataset.py +0 -0
  56. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/utils/valid_time_periods.py +0 -0
  57. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/torch_datasets/utils/validation_utils.py +0 -0
  58. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler/utils.py +0 -0
  59. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler.egg-info/SOURCES.txt +0 -0
  60. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler.egg-info/dependency_links.txt +0 -0
  61. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler.egg-info/requires.txt +0 -0
  62. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/ocf_data_sampler.egg-info/top_level.txt +0 -0
  63. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/pyproject.toml +0 -0
  64. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/scripts/download_gsp_location_data.py +0 -0
  65. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/scripts/refactor_site.py +0 -0
  66. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/setup.cfg +0 -0
  67. {ocf_data_sampler-0.2.37 → ocf_data_sampler-0.2.38}/utils/compute_icon_mean_stddev.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ocf-data-sampler
3
- Version: 0.2.37
3
+ Version: 0.2.38
4
4
  Author: James Fulton, Peter Dudfield
5
5
  Author-email: Open Climate Fix team <info@openclimatefix.org>
6
6
  License: MIT License
@@ -242,6 +242,11 @@ def intersection_of_2_dataframes_of_periods(a: pd.DataFrame, b: pd.DataFrame) ->
242
242
  if a.empty or b.empty:
243
243
  return pd.DataFrame(columns=["start_dt", "end_dt"])
244
244
 
245
+ # Maybe switch these for efficiency in the next section. We will do the native python loop over
246
+ # the shorter dataframe
247
+ if len(a) > len(b):
248
+ a, b = b, a
249
+
245
250
  all_intersecting_periods = []
246
251
  for a_period in a.itertuples():
247
252
  # Five ways in which two periods may overlap:
@@ -250,12 +255,12 @@ def intersection_of_2_dataframes_of_periods(a: pd.DataFrame, b: pd.DataFrame) ->
250
255
  # In all five, `a` must always start before (or equal to) where `b` ends,
251
256
  # and `a` must always end after (or equal to) where `b` starts.
252
257
 
253
- overlapping_periods = b[(a_period.start_dt <= b.end_dt) & (a_period.end_dt >= b.start_dt)]
254
-
255
258
  # There are two ways in which two periods may *not* overlap:
256
259
  # a: |---| or |---|
257
260
  # b: |---| |---|
258
- # `overlapping` will not include periods which do *not* overlap.
261
+ # `overlapping_periods` will not include periods which do *not* overlap.
262
+
263
+ overlapping_periods = b[(a_period.start_dt <= b.end_dt) & (a_period.end_dt >= b.start_dt)]
259
264
 
260
265
  # Now find the intersection of each period in `overlapping_periods` with
261
266
  # the period from `a` that starts at `a_start_dt` and ends at `a_end_dt`.
@@ -269,5 +274,6 @@ def intersection_of_2_dataframes_of_periods(a: pd.DataFrame, b: pd.DataFrame) ->
269
274
 
270
275
  all_intersecting_periods.append(intersection)
271
276
 
277
+
272
278
  all_intersecting_periods = pd.concat(all_intersecting_periods)
273
279
  return all_intersecting_periods.sort_values(by="start_dt").reset_index(drop=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ocf-data-sampler
3
- Version: 0.2.37
3
+ Version: 0.2.38
4
4
  Author: James Fulton, Peter Dudfield
5
5
  Author-email: Open Climate Fix team <info@openclimatefix.org>
6
6
  License: MIT License