osiris-utils 1.2.1__py3-none-any.whl → 1.2.2__py3-none-any.whl

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.
osiris_utils/data/data.py CHANGED
@@ -186,7 +186,7 @@ class OsirisGridFile(OsirisData):
186
186
  Field label/name (LaTeX formatted, e.g., r'$E_x$')
187
187
  """
188
188
 
189
- def __init__(self, filename, data_slice: slice | None = None):
189
+ def __init__(self, filename, data_slice: slice | None = None, load_data: bool = True):
190
190
  super().__init__(filename)
191
191
 
192
192
  variable_key = self._get_variable_key(self._file)
@@ -195,12 +195,14 @@ class OsirisGridFile(OsirisData):
195
195
  self._label = self._file.attrs["LABEL"][0].decode("utf-8")
196
196
  self._FFTdata = None
197
197
 
198
- data = np.array(self._file[variable_key][:]) if data_slice is None else np.array(self._file[variable_key][data_slice])
198
+ # Use dataset.shape to obtain sizes without loading full data when possible
199
+ dset = self._file[variable_key]
199
200
 
200
201
  axis = list(self._file["AXIS"].keys())
201
202
  if len(axis) == 1:
202
203
  self._grid = self._file["AXIS/" + axis[0]][()]
203
- self._nx = len(data)
204
+ # nx for 1D is dataset length along its only axis
205
+ self._nx = dset.shape[0]
204
206
  self._dx = (self.grid[1] - self.grid[0]) / self.nx
205
207
  self._x = np.arange(self.grid[0], self.grid[1], self.dx)
206
208
  else:
@@ -208,15 +210,14 @@ class OsirisGridFile(OsirisData):
208
210
  for ax in axis:
209
211
  grid.append(self._file["AXIS/" + ax][()])
210
212
  self._grid = np.array(grid)
211
- self._nx = self._file[variable_key][()].transpose().shape
213
+ # use dataset.shape to avoid reading the whole dataset
214
+ # dataset stored may need transpose to match expected ordering; preserve shape only
215
+ self._nx = tuple(dset.shape[::-1]) if len(dset.shape) > 1 else (dset.shape[0],)
212
216
  self._dx = (self.grid[:, 1] - self.grid[:, 0]) / self.nx
213
217
 
214
- # There's an issue when the dimension is 3 and we want to plot a 2D phasespace. I believe this
215
- # is a problem for all cases where the dim != dim_of_phasespace
216
218
  try:
217
219
  self._x = [np.arange(self.grid[i, 0], self.grid[i, 1], self.dx[i]) for i in range(self.dim)]
218
- except Exception as e:
219
- print(f"Error occurred while creating spatial coordinates: {e}")
220
+ except Exception:
220
221
  self._x = [np.arange(self.grid[i, 0], self.grid[i, 1], self.dx[i]) for i in range(1)]
221
222
 
222
223
  self._axis = []
@@ -231,7 +232,13 @@ class OsirisGridFile(OsirisData):
231
232
  }
232
233
  self._axis.append(axis_data)
233
234
 
234
- self._data = np.ascontiguousarray(data.T)
235
+ # Only load data if explicitly requested. Otherwise keep a placeholder so metadata-only
236
+ # initializations are cheap for large files.
237
+ if load_data:
238
+ data = np.array(dset[:]) if data_slice is None else np.array(dset[data_slice])
239
+ self._data = np.ascontiguousarray(data.T)
240
+ else:
241
+ self._data = None
235
242
 
236
243
  self._close_file()
237
244
 
@@ -398,7 +398,7 @@ class Diagnostic:
398
398
  for file_num in range(1, self._maxiter + 1):
399
399
  path_file = os.path.join(file_template + f"{file_num:06d}.h5")
400
400
  if os.path.exists(path_file):
401
- dump = OsirisGridFile(path_file)
401
+ dump = OsirisGridFile(path_file, load_data=False)
402
402
  self._dx = dump.dx
403
403
  self._nx = dump.nx
404
404
  self._x = dump.x
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: osiris_utils
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: Utilities to manipulate and visualise OSIRIS plasma PIC output data
5
5
  Author-email: João Pedro Ferreira Biu <joaopedrofbiu@tecnico.ulisboa.pt>
6
6
  License: MIT
@@ -1056,8 +1056,8 @@ osiris_utils/cli/info.py,sha256=E2JPwGpO3T6OJFWDOuLIRD6gJkbYxNoyDztyHLo22JQ,5177
1056
1056
  osiris_utils/cli/plot.py,sha256=HV69rxcouDQTA3MNFx62HUWaEKMcVSoKQ1NUR4yoSvI,5063
1057
1057
  osiris_utils/cli/validate.py,sha256=MdOzsVzgQPwVNHmoAICpcRn-POhpz9yN2I9bb8TYRro,7253
1058
1058
  osiris_utils/data/__init__.py,sha256=Yc7SyMDBO-HHE8VNqug1yf_gxyl2uawVd80E0q3FDAE,394
1059
- osiris_utils/data/data.py,sha256=VtoMDoTj8nXZlGZeCjIgIZUICtwkST9TxBFShzYsnAI,22059
1060
- osiris_utils/data/diagnostic.py,sha256=sy-e4hz4G8Am9wjtkeTr3w64elMLXGizsfGcA9xfHAw,39181
1059
+ osiris_utils/data/data.py,sha256=zk7CyW2TnXVkd8P94Qop_VPGa47sogAELggCqVUW0RY,22372
1060
+ osiris_utils/data/diagnostic.py,sha256=v9RaRF1UfWA6PxwwWJthYHyevOy0yqsgcpwxNsQU4kM,39198
1061
1061
  osiris_utils/data/simulation.py,sha256=bn5-Uv894dm38PNhUtMl9TZCmEBQlVqN4DuteM6ui-Y,7256
1062
1062
  osiris_utils/decks/__init__.py,sha256=m6lNzGk5DSHs9wpRmW6d3vdir4Wg28ImWkeg5fzQx3k,114
1063
1063
  osiris_utils/decks/decks.py,sha256=HW9iAGP2xjtJ5VpHceLhXYK2tnB4rcYdsfDquRQVv3o,12194
@@ -1072,9 +1072,9 @@ osiris_utils/postprocessing/postprocess.py,sha256=-_zydCuK7RsH2kTT5vGpIZd5dQco9i
1072
1072
  osiris_utils/postprocessing/pressure_correction.py,sha256=N0UwUmW7eEcr1OdgzyIwY-rFxUKXomfsQvTUobKXBlw,7223
1073
1073
  osiris_utils/vis/__init__.py,sha256=Vr0o8wtRFtPOJdSK5cRIa_bDvbylAe2sHTk8c7qO_tM,51
1074
1074
  osiris_utils/vis/plot3d.py,sha256=ywP9UGI4i3SRgUdsz-ILHxc7W_StCSN1D1U4Tmpd_6o,4658
1075
- osiris_utils-1.2.1.dist-info/licenses/LICENSE.txt,sha256=z1lVzLA_QsfcnLffhfWMrFw5cR_nuwpvbOGCOFUN7iY,1066
1076
- osiris_utils-1.2.1.dist-info/METADATA,sha256=p7q91bTXXIo2cZzX2gXsDno84ItWr4_x9oI3kKG4uM0,5582
1077
- osiris_utils-1.2.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
1078
- osiris_utils-1.2.1.dist-info/entry_points.txt,sha256=s3WXJWsWF5AWEFhJ8rXscjGttQCOXvViOiNmX45AJjo,49
1079
- osiris_utils-1.2.1.dist-info/top_level.txt,sha256=tSs2XcOs-JtYsqVepo5WVSNcilf6ALHfKyYuPaVZLco,38
1080
- osiris_utils-1.2.1.dist-info/RECORD,,
1075
+ osiris_utils-1.2.2.dist-info/licenses/LICENSE.txt,sha256=z1lVzLA_QsfcnLffhfWMrFw5cR_nuwpvbOGCOFUN7iY,1066
1076
+ osiris_utils-1.2.2.dist-info/METADATA,sha256=EUi5pM1-7_vd0eneUXPL-TZF2qxPwdzalO7flX_wndw,5582
1077
+ osiris_utils-1.2.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
1078
+ osiris_utils-1.2.2.dist-info/entry_points.txt,sha256=s3WXJWsWF5AWEFhJ8rXscjGttQCOXvViOiNmX45AJjo,49
1079
+ osiris_utils-1.2.2.dist-info/top_level.txt,sha256=tSs2XcOs-JtYsqVepo5WVSNcilf6ALHfKyYuPaVZLco,38
1080
+ osiris_utils-1.2.2.dist-info/RECORD,,