use strict zip
This commit is contained in:
parent
a15e4bc05e
commit
e29c0901bd
@ -144,13 +144,13 @@ def draw_polygons(
|
|||||||
|
|
||||||
# Find indices in w_xy which are modified by polygon
|
# Find indices in w_xy which are modified by polygon
|
||||||
# First for the edge coordinates (+1 since we're indexing edges)
|
# First for the edge coordinates (+1 since we're indexing edges)
|
||||||
edge_slices = [numpy.s_[i:f + 2] for i, f in zip(corner_min, corner_max)]
|
edge_slices = [numpy.s_[i:f + 2] for i, f in zip(corner_min, corner_max, strict=True)]
|
||||||
# Then for the pixel centers (-bdi_min since we're
|
# Then for the pixel centers (-bdi_min since we're
|
||||||
# calculating weights within a subspace)
|
# calculating weights within a subspace)
|
||||||
centers_slice = tuple(numpy.s_[i:f + 1] for i, f in zip(corner_min - bdi_min[surface],
|
centers_slice = tuple(numpy.s_[i:f + 1] for i, f in zip(corner_min - bdi_min[surface],
|
||||||
corner_max - bdi_min[surface]))
|
corner_max - bdi_min[surface], strict=True))
|
||||||
|
|
||||||
aa_x, aa_y = (self.shifted_exyz(i)[a][s] for a, s in zip(surface, edge_slices))
|
aa_x, aa_y = (self.shifted_exyz(i)[a][s] for a, s in zip(surface, edge_slices, strict=True))
|
||||||
w_xy[centers_slice] += raster(polygon.T, aa_x, aa_y)
|
w_xy[centers_slice] += raster(polygon.T, aa_x, aa_y)
|
||||||
|
|
||||||
# Clamp overlapping polygons to 1
|
# Clamp overlapping polygons to 1
|
||||||
@ -380,7 +380,7 @@ def draw_extrude_rectangle(
|
|||||||
def f_foreground(xs, ys, zs, i=i, foreground=foreground) -> NDArray[numpy.int_]:
|
def f_foreground(xs, ys, zs, i=i, foreground=foreground) -> NDArray[numpy.int_]:
|
||||||
# transform from natural position to index
|
# transform from natural position to index
|
||||||
xyzi = numpy.array([self.pos2ind(qrs, which_shifts=i)
|
xyzi = numpy.array([self.pos2ind(qrs, which_shifts=i)
|
||||||
for qrs in zip(xs.flat, ys.flat, zs.flat)], dtype=int)
|
for qrs in zip(xs.flat, ys.flat, zs.flat, strict=True)], dtype=int)
|
||||||
# reshape to original shape and keep only in-plane components
|
# reshape to original shape and keep only in-plane components
|
||||||
qi, ri = (numpy.reshape(xyzi[:, k], xs.shape) for k in surface)
|
qi, ri = (numpy.reshape(xyzi[:, k], xs.shape) for k in surface)
|
||||||
return foreground[qi, ri]
|
return foreground[qi, ri]
|
||||||
|
@ -135,7 +135,7 @@ class Grid:
|
|||||||
list of [dxs, dys, dzs] with each element same length as elements of `self.xyz`
|
list of [dxs, dys, dzs] with each element same length as elements of `self.xyz`
|
||||||
"""
|
"""
|
||||||
el = [0 if p else -1 for p in self.periodic]
|
el = [0 if p else -1 for p in self.periodic]
|
||||||
return [numpy.hstack((self.dxyz[a], self.dxyz[a][e])) for a, e in zip(range(3), el)]
|
return [numpy.hstack((self.dxyz[a], self.dxyz[a][e])) for a, e in zip(range(3), el, strict=True)]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def center(self) -> NDArray[numpy.float64]:
|
def center(self) -> NDArray[numpy.float64]:
|
||||||
|
@ -72,7 +72,7 @@ def get_slice(
|
|||||||
|
|
||||||
# Extract grid values from planes above and below visualized slice
|
# Extract grid values from planes above and below visualized slice
|
||||||
sliced_grid = numpy.zeros(self.shape[surface])
|
sliced_grid = numpy.zeros(self.shape[surface])
|
||||||
for ci, weight in zip(centers, w):
|
for ci, weight in zip(centers, w, strict=True):
|
||||||
s = tuple(ci if a == surface_normal else numpy.s_[::sp] for a in range(3))
|
s = tuple(ci if a == surface_normal else numpy.s_[::sp] for a in range(3))
|
||||||
sliced_grid += weight * cell_data[which_shifts][tuple(s)]
|
sliced_grid += weight * cell_data[which_shifts][tuple(s)]
|
||||||
|
|
||||||
@ -193,7 +193,7 @@ def visualize_isosurface(
|
|||||||
ybs = 0.5 * max_range * mg[1].flatten() + 0.5 * (ys.max() + ys.min())
|
ybs = 0.5 * max_range * mg[1].flatten() + 0.5 * (ys.max() + ys.min())
|
||||||
zbs = 0.5 * max_range * mg[2].flatten() + 0.5 * (zs.max() + zs.min())
|
zbs = 0.5 * max_range * mg[2].flatten() + 0.5 * (zs.max() + zs.min())
|
||||||
# Comment or uncomment following both lines to test the fake bounding box:
|
# Comment or uncomment following both lines to test the fake bounding box:
|
||||||
for xb, yb, zb in zip(xbs, ybs, zbs):
|
for xb, yb, zb in zip(xbs, ybs, zbs, strict=True):
|
||||||
ax.plot([xb], [yb], [zb], 'w')
|
ax.plot([xb], [yb], [zb], 'w')
|
||||||
|
|
||||||
if finalize:
|
if finalize:
|
||||||
|
Loading…
Reference in New Issue
Block a user