ocf-data-sampler 0.5.25__tar.gz → 0.5.27__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 (72) hide show
  1. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/PKG-INFO +1 -1
  2. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/site.py +19 -14
  3. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/datasets/pvnet_uk.py +1 -3
  4. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/datasets/site.py +0 -2
  5. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler.egg-info/PKG-INFO +1 -1
  6. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/LICENSE +0 -0
  7. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/README.md +0 -0
  8. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/__init__.py +0 -0
  9. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/config/__init__.py +0 -0
  10. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/config/load.py +0 -0
  11. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/config/model.py +0 -0
  12. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/config/save.py +0 -0
  13. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/data/uk_gsp_locations_20220314.csv +0 -0
  14. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/data/uk_gsp_locations_20250109.csv +0 -0
  15. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/__init__.py +0 -0
  16. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/gsp.py +0 -0
  17. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/load_dataset.py +0 -0
  18. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/__init__.py +0 -0
  19. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/nwp.py +0 -0
  20. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/providers/__init__.py +0 -0
  21. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/providers/cloudcasting.py +0 -0
  22. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/providers/ecmwf.py +0 -0
  23. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/providers/gfs.py +0 -0
  24. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/providers/icon.py +0 -0
  25. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/providers/ukv.py +0 -0
  26. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/nwp/providers/utils.py +0 -0
  27. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/open_xarray_tensorstore.py +0 -0
  28. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/satellite.py +0 -0
  29. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/load/utils.py +0 -0
  30. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/__init__.py +0 -0
  31. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/collate.py +0 -0
  32. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/common_types.py +0 -0
  33. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/datetime_features.py +0 -0
  34. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/gsp.py +0 -0
  35. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/nwp.py +0 -0
  36. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/satellite.py +0 -0
  37. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/site.py +0 -0
  38. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/numpy_sample/sun_position.py +0 -0
  39. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/__init__.py +0 -0
  40. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/diff_channels.py +0 -0
  41. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/dropout.py +0 -0
  42. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/fill_time_periods.py +0 -0
  43. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/find_contiguous_time_periods.py +0 -0
  44. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/geospatial.py +0 -0
  45. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/location.py +0 -0
  46. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/select_spatial_slice.py +0 -0
  47. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/select/select_time_slice.py +0 -0
  48. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/datasets/__init__.py +0 -0
  49. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/datasets/picklecache.py +0 -0
  50. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/sample/__init__.py +0 -0
  51. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/sample/base.py +0 -0
  52. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/sample/site.py +0 -0
  53. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/sample/uk_regional.py +0 -0
  54. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/__init__.py +0 -0
  55. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/add_alterate_coordinate_projections.py +0 -0
  56. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/config_normalization_values_to_dicts.py +0 -0
  57. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/diff_nwp_data.py +0 -0
  58. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/merge_and_fill_utils.py +0 -0
  59. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/spatial_slice_for_dataset.py +0 -0
  60. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/time_slice_for_dataset.py +0 -0
  61. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/valid_time_periods.py +0 -0
  62. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/torch_datasets/utils/validation_utils.py +0 -0
  63. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler/utils.py +0 -0
  64. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler.egg-info/SOURCES.txt +0 -0
  65. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler.egg-info/dependency_links.txt +0 -0
  66. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler.egg-info/requires.txt +0 -0
  67. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/ocf_data_sampler.egg-info/top_level.txt +0 -0
  68. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/pyproject.toml +0 -0
  69. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/scripts/download_gsp_location_data.py +0 -0
  70. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/scripts/refactor_site.py +0 -0
  71. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/setup.cfg +0 -0
  72. {ocf_data_sampler-0.5.25 → ocf_data_sampler-0.5.27}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ocf-data-sampler
3
- Version: 0.5.25
3
+ Version: 0.5.27
4
4
  Author: James Fulton, Peter Dudfield
5
5
  Author-email: Open Climate Fix team <info@openclimatefix.org>
6
6
  License: MIT License
@@ -31,9 +31,10 @@ def open_site(generation_file_path: str, metadata_file_path: str) -> xr.DataArra
31
31
  capacity_kwp=("site_id", metadata_df["capacity_kwp"].values),
32
32
  )
33
33
 
34
- # Sanity checks
35
- if not np.isfinite(generation_ds.generation_kw.values).all():
36
- raise ValueError("generation_kw contains non-finite values")
34
+ # Sanity checks, to prevent inf or negative values
35
+ # Note NaNs are allowed in generation_kw as can have non overlapping time periods for sites
36
+ if np.isinf(generation_ds.generation_kw.values).all():
37
+ raise ValueError("generation_kw contains infinite (+/- inf) values")
37
38
  if not (generation_ds.capacity_kwp.values > 0).all():
38
39
  raise ValueError("capacity_kwp contains non-positive values")
39
40
 
@@ -43,17 +44,21 @@ def open_site(generation_file_path: str, metadata_file_path: str) -> xr.DataArra
43
44
  if not np.issubdtype(site_da.dtype, np.floating):
44
45
  raise TypeError(f"Generation data should be float, not {site_da.dtype}")
45
46
 
47
+
46
48
  coord_dtypes = {
47
- "time_utc": np.datetime64,
48
- "site_id": np.integer,
49
- "capacity_kwp": np.floating,
50
- "latitude": np.floating,
51
- "longitude": np.floating,
52
- }
53
-
54
- for coord, expected_dtype in coord_dtypes.items():
55
- if not np.issubdtype(site_da.coords[coord].dtype, expected_dtype):
49
+ "time_utc": (np.datetime64,),
50
+ "site_id": (np.integer,),
51
+ "capacity_kwp": (np.integer, np.floating),
52
+ "latitude": (np.floating,),
53
+ "longitude": (np.floating,),
54
+ }
55
+ for coord, expected_dtypes in coord_dtypes.items():
56
+ if not any(np.issubdtype(site_da.coords[coord].dtype, dt) for dt in expected_dtypes):
56
57
  dtype = site_da.coords[coord].dtype
57
- raise TypeError(f"{coord} should be {expected_dtype.__name__}, not {dtype}")
58
+ allowed = ", ".join(dt.__name__ for dt in expected_dtypes)
59
+ raise TypeError(f"{coord} should be one of ({allowed}), not {dtype}")
58
60
 
59
- return site_da
61
+ # Load the data eagerly into memory by calling compute
62
+ # this makes the dataset faster to sample from, but
63
+ # at the cost of a little extra memory usage
64
+ return site_da.compute()
@@ -267,10 +267,8 @@ class PVNetUKRegionalDataset(AbstractPVNetUKDataset):
267
267
 
268
268
  @override
269
269
  def __getitem__(self, idx: int) -> NumpySample:
270
- # Get the coordinates of the sample
271
-
272
- idx = int(idx)
273
270
 
271
+ # Get the coordinates of the sample
274
272
  if idx >= len(self):
275
273
  raise ValueError(f"Index {idx} out of range for dataset of length {len(self)}")
276
274
 
@@ -262,8 +262,6 @@ class SitesDataset(PickleCacheMixin, Dataset):
262
262
  @override
263
263
  def __getitem__(self, idx: int) -> dict:
264
264
 
265
- idx = int(idx)
266
-
267
265
  # Get the coordinates of the sample
268
266
  t0, site_id = self.valid_t0_and_site_ids.iloc[idx]
269
267
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ocf-data-sampler
3
- Version: 0.5.25
3
+ Version: 0.5.27
4
4
  Author: James Fulton, Peter Dudfield
5
5
  Author-email: Open Climate Fix team <info@openclimatefix.org>
6
6
  License: MIT License