ocf-data-sampler 0.5.23__tar.gz → 0.5.25__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.23 → ocf_data_sampler-0.5.25}/PKG-INFO +3 -2
  2. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/README.md +2 -1
  3. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/providers/utils.py +1 -1
  4. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/open_xarray_tensorstore.py +26 -7
  5. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/satellite.py +1 -1
  6. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler.egg-info/PKG-INFO +3 -2
  7. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/LICENSE +0 -0
  8. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/__init__.py +0 -0
  9. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/config/__init__.py +0 -0
  10. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/config/load.py +0 -0
  11. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/config/model.py +0 -0
  12. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/config/save.py +0 -0
  13. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/data/uk_gsp_locations_20220314.csv +0 -0
  14. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/data/uk_gsp_locations_20250109.csv +0 -0
  15. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/__init__.py +0 -0
  16. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/gsp.py +0 -0
  17. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/load_dataset.py +0 -0
  18. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/__init__.py +0 -0
  19. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/nwp.py +0 -0
  20. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/providers/__init__.py +0 -0
  21. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/providers/cloudcasting.py +0 -0
  22. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/providers/ecmwf.py +0 -0
  23. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/providers/gfs.py +0 -0
  24. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/providers/icon.py +0 -0
  25. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/nwp/providers/ukv.py +0 -0
  26. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/site.py +0 -0
  27. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/load/utils.py +0 -0
  28. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/__init__.py +0 -0
  29. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/collate.py +0 -0
  30. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/common_types.py +0 -0
  31. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/datetime_features.py +0 -0
  32. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/gsp.py +0 -0
  33. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/nwp.py +0 -0
  34. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/satellite.py +0 -0
  35. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/site.py +0 -0
  36. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/numpy_sample/sun_position.py +0 -0
  37. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/__init__.py +0 -0
  38. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/diff_channels.py +0 -0
  39. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/dropout.py +0 -0
  40. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/fill_time_periods.py +0 -0
  41. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/find_contiguous_time_periods.py +0 -0
  42. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/geospatial.py +0 -0
  43. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/location.py +0 -0
  44. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/select_spatial_slice.py +0 -0
  45. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/select/select_time_slice.py +0 -0
  46. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/datasets/__init__.py +0 -0
  47. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/datasets/picklecache.py +0 -0
  48. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/datasets/pvnet_uk.py +0 -0
  49. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/datasets/site.py +0 -0
  50. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/sample/__init__.py +0 -0
  51. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/sample/base.py +0 -0
  52. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/sample/site.py +0 -0
  53. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/sample/uk_regional.py +0 -0
  54. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/__init__.py +0 -0
  55. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/add_alterate_coordinate_projections.py +0 -0
  56. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/config_normalization_values_to_dicts.py +0 -0
  57. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/diff_nwp_data.py +0 -0
  58. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/merge_and_fill_utils.py +0 -0
  59. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/spatial_slice_for_dataset.py +0 -0
  60. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/time_slice_for_dataset.py +0 -0
  61. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/valid_time_periods.py +0 -0
  62. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/torch_datasets/utils/validation_utils.py +0 -0
  63. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler/utils.py +0 -0
  64. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler.egg-info/SOURCES.txt +0 -0
  65. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler.egg-info/dependency_links.txt +0 -0
  66. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler.egg-info/requires.txt +0 -0
  67. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/ocf_data_sampler.egg-info/top_level.txt +0 -0
  68. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/pyproject.toml +0 -0
  69. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/scripts/download_gsp_location_data.py +0 -0
  70. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/scripts/refactor_site.py +0 -0
  71. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/setup.cfg +0 -0
  72. {ocf_data_sampler-0.5.23 → ocf_data_sampler-0.5.25}/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.23
3
+ Version: 0.5.25
4
4
  Author: James Fulton, Peter Dudfield
5
5
  Author-email: Open Climate Fix team <info@openclimatefix.org>
6
6
  License: MIT License
@@ -50,7 +50,7 @@ Requires-Dist: zarr>=3
50
50
  # ocf-data-sampler
51
51
 
52
52
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
53
- [![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat-square)](#contributors-)
53
+ [![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors-)
54
54
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
55
55
 
56
56
  [![tags badge](https://img.shields.io/github/v/tag/openclimatefix/ocf-data-sampler?include_prereleases&sort=semver&color=FFAC5F)](https://github.com/openclimatefix/ocf-data-sampler/tags)
@@ -139,6 +139,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
139
139
  </tr>
140
140
  <tr>
141
141
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/utsav-pal"><img src="https://avatars.githubusercontent.com/u/159793156?v=4?s=100" width="100px;" alt="utsav-pal"/><br /><sub><b>utsav-pal</b></sub></a><br /><a href="https://github.com/openclimatefix/ocf-data-sampler/commits?author=utsav-pal" title="Code">💻</a></td>
142
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/zaryab-ali"><img src="https://avatars.githubusercontent.com/u/85732412?v=4?s=100" width="100px;" alt="zaryab-ali"/><br /><sub><b>zaryab-ali</b></sub></a><br /><a href="https://github.com/openclimatefix/ocf-data-sampler/commits?author=zaryab-ali" title="Code">💻</a></td>
142
143
  </tr>
143
144
  </tbody>
144
145
  </table>
@@ -1,7 +1,7 @@
1
1
  # ocf-data-sampler
2
2
 
3
3
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
4
- [![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat-square)](#contributors-)
4
+ [![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors-)
5
5
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
6
6
 
7
7
  [![tags badge](https://img.shields.io/github/v/tag/openclimatefix/ocf-data-sampler?include_prereleases&sort=semver&color=FFAC5F)](https://github.com/openclimatefix/ocf-data-sampler/tags)
@@ -90,6 +90,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
90
90
  </tr>
91
91
  <tr>
92
92
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/utsav-pal"><img src="https://avatars.githubusercontent.com/u/159793156?v=4?s=100" width="100px;" alt="utsav-pal"/><br /><sub><b>utsav-pal</b></sub></a><br /><a href="https://github.com/openclimatefix/ocf-data-sampler/commits?author=utsav-pal" title="Code">💻</a></td>
93
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/zaryab-ali"><img src="https://avatars.githubusercontent.com/u/85732412?v=4?s=100" width="100px;" alt="zaryab-ali"/><br /><sub><b>zaryab-ali</b></sub></a><br /><a href="https://github.com/openclimatefix/ocf-data-sampler/commits?author=zaryab-ali" title="Code">💻</a></td>
93
94
  </tr>
94
95
  </tbody>
95
96
  </table>
@@ -75,7 +75,7 @@ def _tensostore_open_zarr_paths(zarr_path: str | list[str], time_dim: str) -> xr
75
75
  zarr_path = sorted(glob(zarr_path))
76
76
 
77
77
  if isinstance(zarr_path, list | tuple):
78
- ds = open_zarrs(zarr_path, concat_dim=time_dim).sortby(time_dim)
78
+ ds = open_zarrs(zarr_path, concat_dim=time_dim, data_source="nwp").sortby(time_dim)
79
79
  else:
80
80
  ds = open_zarr(zarr_path)
81
81
  return ds
@@ -14,6 +14,7 @@ References:
14
14
  [2] https://www.apache.org/licenses/LICENSE-2.0
15
15
  """
16
16
 
17
+ import logging
17
18
  import os.path
18
19
  import re
19
20
 
@@ -26,6 +27,7 @@ from xarray_tensorstore import (
26
27
  _TensorStoreAdapter,
27
28
  )
28
29
 
30
+ logger = logging.getLogger(__name__)
29
31
 
30
32
  def _zarr_spec_from_path(path: str, zarr_format: int) -> ...:
31
33
  if re.match(r"\w+\://", path): # path is a URI
@@ -127,6 +129,7 @@ def open_zarrs(
127
129
  concat_dim: str,
128
130
  context: ts.Context | None = None,
129
131
  mask_and_scale: bool = True,
132
+ data_source: str = "unknown",
130
133
  ) -> xr.Dataset:
131
134
  """Open multiple zarrs with TensorStore.
132
135
 
@@ -135,6 +138,7 @@ def open_zarrs(
135
138
  concat_dim: Dimension along which to concatenate the data variables.
136
139
  context: TensorStore context.
137
140
  mask_and_scale: Whether to mask and scale the data.
141
+ data_source: Which data source is being opened. Used for warning context.
138
142
 
139
143
  Returns:
140
144
  Concatenated Dataset with all data variables opened via TensorStore.
@@ -143,13 +147,28 @@ def open_zarrs(
143
147
  context = ts.Context()
144
148
 
145
149
  ds_list = [xr.open_zarr(p, mask_and_scale=mask_and_scale, decode_timedelta=True) for p in paths]
146
- ds = xr.concat(
147
- ds_list,
148
- dim=concat_dim,
149
- data_vars="minimal",
150
- compat="equals",
151
- combine_attrs="drop_conflicts",
152
- )
150
+ try:
151
+ ds = xr.concat(
152
+ ds_list,
153
+ dim=concat_dim,
154
+ data_vars="minimal",
155
+ compat="equals",
156
+ combine_attrs="drop_conflicts",
157
+ join="exact",
158
+ )
159
+ except ValueError:
160
+ logger.warning(f"Coordinate mismatch found in {data_source} input data. "
161
+ f"The coordinates will be overwritten! "
162
+ f"This might be fine for satellite data. "
163
+ f"Proceed with caution.")
164
+ ds = xr.concat(
165
+ ds_list,
166
+ dim=concat_dim,
167
+ data_vars="minimal",
168
+ compat="equals",
169
+ combine_attrs="drop_conflicts",
170
+ join="override",
171
+ )
153
172
 
154
173
  if mask_and_scale:
155
174
  _raise_if_mask_and_scale_used_for_data_vars(ds)
@@ -19,7 +19,7 @@ def open_sat_data(zarr_path: str | list[str]) -> xr.DataArray:
19
19
  """
20
20
  # Open the data
21
21
  if isinstance(zarr_path, list | tuple):
22
- ds = open_zarrs(zarr_path, concat_dim="time")
22
+ ds = open_zarrs(zarr_path, concat_dim="time", data_source="satellite")
23
23
  else:
24
24
  ds = open_zarr(zarr_path)
25
25
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ocf-data-sampler
3
- Version: 0.5.23
3
+ Version: 0.5.25
4
4
  Author: James Fulton, Peter Dudfield
5
5
  Author-email: Open Climate Fix team <info@openclimatefix.org>
6
6
  License: MIT License
@@ -50,7 +50,7 @@ Requires-Dist: zarr>=3
50
50
  # ocf-data-sampler
51
51
 
52
52
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
53
- [![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat-square)](#contributors-)
53
+ [![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors-)
54
54
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
55
55
 
56
56
  [![tags badge](https://img.shields.io/github/v/tag/openclimatefix/ocf-data-sampler?include_prereleases&sort=semver&color=FFAC5F)](https://github.com/openclimatefix/ocf-data-sampler/tags)
@@ -139,6 +139,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
139
139
  </tr>
140
140
  <tr>
141
141
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/utsav-pal"><img src="https://avatars.githubusercontent.com/u/159793156?v=4?s=100" width="100px;" alt="utsav-pal"/><br /><sub><b>utsav-pal</b></sub></a><br /><a href="https://github.com/openclimatefix/ocf-data-sampler/commits?author=utsav-pal" title="Code">💻</a></td>
142
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/zaryab-ali"><img src="https://avatars.githubusercontent.com/u/85732412?v=4?s=100" width="100px;" alt="zaryab-ali"/><br /><sub><b>zaryab-ali</b></sub></a><br /><a href="https://github.com/openclimatefix/ocf-data-sampler/commits?author=zaryab-ali" title="Code">💻</a></td>
142
143
  </tr>
143
144
  </tbody>
144
145
  </table>