|
34 | 34 |
|
35 | 35 | def _threed_extract( |
36 | 36 | step: Step, var: str, walls: bool = False |
37 | | -) -> Tuple[Tuple[ndarray, ndarray], Any]: |
| 37 | +) -> Tuple[Tuple[ndarray, ndarray], ndarray]: |
38 | 38 | """Return suitable slices and coords for 3D fields.""" |
39 | 39 | is_vector = not valid_field_var(var) |
40 | 40 | hwalls = is_vector or walls |
@@ -101,24 +101,28 @@ def get_meshes_fld( |
101 | 101 | x position, y position, the values and the metadata of the requested |
102 | 102 | field. |
103 | 103 | """ |
104 | | - fld, meta = step.fields[var] |
105 | | - hwalls = walls or fld.shape[0] != step.geom.nxtot or fld.shape[1] != step.geom.nytot |
| 104 | + fld = step.fields[var] |
| 105 | + hwalls = ( |
| 106 | + walls |
| 107 | + or fld.values.shape[0] != step.geom.nxtot |
| 108 | + or fld.values.shape[1] != step.geom.nytot |
| 109 | + ) |
106 | 110 | if step.geom.threed and step.geom.cartesian: |
107 | | - (xcoord, ycoord), fld = _threed_extract(step, var, walls) |
| 111 | + (xcoord, ycoord), vals = _threed_extract(step, var, walls) |
108 | 112 | elif step.geom.twod_xz: |
109 | 113 | xcoord = step.geom.x_walls if hwalls else step.geom.x_centers |
110 | 114 | ycoord = step.geom.z_walls if walls else step.geom.z_centers |
111 | | - fld = fld[:, 0, :, 0] |
| 115 | + vals = fld.values[:, 0, :, 0] |
112 | 116 | else: # twod_yz |
113 | 117 | xcoord = step.geom.y_walls if hwalls else step.geom.y_centers |
114 | 118 | ycoord = step.geom.z_walls if walls else step.geom.z_centers |
115 | 119 | if step.geom.curvilinear: |
116 | 120 | pmesh, rmesh = np.meshgrid(xcoord, ycoord, indexing="ij") |
117 | 121 | xmesh, ymesh = rmesh * np.cos(pmesh), rmesh * np.sin(pmesh) |
118 | | - fld = fld[0, :, :, 0] |
| 122 | + vals = fld.values[0, :, :, 0] |
119 | 123 | if step.geom.cartesian: |
120 | 124 | xmesh, ymesh = np.meshgrid(xcoord, ycoord, indexing="ij") |
121 | | - return xmesh, ymesh, fld, meta |
| 125 | + return xmesh, ymesh, vals, fld.meta |
122 | 126 |
|
123 | 127 |
|
124 | 128 | def get_meshes_vec(step: Step, var: str) -> Tuple[ndarray, ndarray, ndarray, ndarray]: |
@@ -336,15 +340,15 @@ def _findminmax( |
336 | 340 | for step in sdat.walk.filter(snap=True): |
337 | 341 | for var in sovs: |
338 | 342 | if var in step.fields: |
339 | | - field, meta = step.fields[var] |
340 | | - field, _ = sdat.scale(field, meta.dim) |
| 343 | + field = step.fields[var] |
| 344 | + vals, _ = sdat.scale(field.values, field.meta.dim) |
341 | 345 | if var in minmax: |
342 | 346 | minmax[var] = ( |
343 | | - min(minmax[var][0], np.nanmin(field)), |
344 | | - max(minmax[var][1], np.nanmax(field)), |
| 347 | + min(minmax[var][0], np.nanmin(vals)), |
| 348 | + max(minmax[var][1], np.nanmax(vals)), |
345 | 349 | ) |
346 | 350 | else: |
347 | | - minmax[var] = np.nanmin(field), np.nanmax(field) |
| 351 | + minmax[var] = np.nanmin(vals), np.nanmax(vals) |
348 | 352 | return minmax |
349 | 353 |
|
350 | 354 |
|
|
0 commit comments