@@ -720,9 +720,7 @@ def _render(self, double_check, num_threads, image, sampler):
720720 pbar .update (total_cells )
721721
722722 pbar .finish ()
723- image = sampler .aimage
724- image = self .finalize_image (image )
725- return image
723+ return self .finalize_image (sampler .aimage )
726724
727725 def _pyplot (self ):
728726 from matplotlib import pyplot
@@ -1318,26 +1316,22 @@ def get_sampler_args(self, image):
13181316 sample_y .reshape (1 , self .resolution [1 ], 3 ), self .resolution [0 ], axis = 0
13191317 )
13201318
1321- normal_vec = np .zeros (
1322- (self .resolution [0 ], self .resolution [1 ], 3 ), dtype = "float64" , order = "C"
1323- )
1319+ normal_vec = np .empty ((* self .resolution , 3 ), dtype = "float64" , order = "C" )
13241320 normal_vec [:, :, 0 ] = self .orienter .unit_vectors [2 , 0 ]
13251321 normal_vec [:, :, 1 ] = self .orienter .unit_vectors [2 , 1 ]
13261322 normal_vec [:, :, 2 ] = self .orienter .unit_vectors [2 , 2 ]
13271323
13281324 vectors = sample_x + sample_y + normal_vec * self .width [2 ]
13291325
1330- positions = np .zeros (
1331- (self .resolution [0 ], self .resolution [1 ], 3 ), dtype = "float64" , order = "C"
1332- )
1326+ positions = np .empty ((* self .resolution , 3 ), dtype = "float64" , order = "C" )
13331327 positions [:, :, 0 ] = self .center [0 ]
13341328 positions [:, :, 1 ] = self .center [1 ]
13351329 positions [:, :, 2 ] = self .center [2 ]
13361330
13371331 positions = self .ds .arr (positions , units = "code_length" )
13381332
13391333 dummy = np .ones (3 , dtype = "float64" )
1340- image . shape = ( self .resolution [ 0 ], self . resolution [ 1 ] , 4 )
1334+ image = image . reshape ( * self .resolution , 4 )
13411335
13421336 args = (
13431337 positions ,
@@ -1373,13 +1367,13 @@ def _render(self, double_check, num_threads, image, sampler):
13731367 pbar .update (total_cells )
13741368
13751369 pbar .finish ()
1376- image = self .finalize_image (sampler .aimage )
1377- return image
1370+ return self .finalize_image (sampler .aimage )
13781371
13791372 def finalize_image (self , image ):
13801373 view_pos = self .front_center
1381- image .shape = self .resolution [0 ], self .resolution [1 ], 4
1382- image = self .volume .reduce_tree_images (image , view_pos )
1374+ image = self .volume .reduce_tree_images (
1375+ image .reshape (* self .resolution , 4 ), view_pos
1376+ )
13831377 if not self .transfer_function .grey_opacity :
13841378 image [:, :, 3 ] = 1.0
13851379 return image
@@ -1498,8 +1492,7 @@ def new_image(self):
14981492
14991493 def get_sampler_args (self , image ):
15001494 nv = 12 * self .nside ** 2
1501- vs = arr_pix2vec_nest (self .nside , np .arange (nv ))
1502- vs .shape = (nv , 1 , 3 )
1495+ vs = arr_pix2vec_nest (self .nside , np .arange (nv )).reshape (nv , 1 , 3 )
15031496 vs += 1e-8
15041497 uv = np .ones (3 , dtype = "float64" )
15051498 positions = np .ones ((nv , 1 , 3 ), dtype = "float64" ) * self .center
@@ -1541,16 +1534,10 @@ def _render(self, double_check, num_threads, image, sampler):
15411534 pbar .update (total_cells )
15421535
15431536 pbar .finish ()
1544- image = sampler .aimage
1545-
1546- self .finalize_image (image )
1547-
1548- return image
1537+ return self .finalize_image (sampler .aimage )
15491538
15501539 def finalize_image (self , image ):
1551- view_pos = self .center
1552- image = self .volume .reduce_tree_images (image , view_pos )
1553- return image
1540+ return self .volume .reduce_tree_images (image , self .center )
15541541
15551542 def get_information (self ):
15561543 info_dict = {
@@ -1718,8 +1705,9 @@ def new_image(self):
17181705 return image
17191706
17201707 def get_sampler_args (self , image ):
1721- vp = arr_fisheye_vectors (self .resolution , self .fov )
1722- vp .shape = (self .resolution ** 2 , 1 , 3 )
1708+ vp = arr_fisheye_vectors (self .resolution , self .fov ).reshape (
1709+ self .resolution ** 2 , 1 , 3
1710+ )
17231711 vp2 = vp .copy ()
17241712 for i in range (3 ):
17251713 vp [:, :, i ] = (vp2 * self .rotation_matrix [:, i ]).sum (axis = 2 )
@@ -1744,7 +1732,7 @@ def get_sampler_args(self, image):
17441732 return args , {}
17451733
17461734 def finalize_image (self , image ):
1747- image .shape = self .resolution , self .resolution , 4
1735+ return image .reshape ( self .resolution , self .resolution , 4 )
17481736
17491737 def _render (self , double_check , num_threads , image , sampler ):
17501738 pbar = get_pbar (
@@ -1764,11 +1752,7 @@ def _render(self, double_check, num_threads, image, sampler):
17641752 pbar .update (total_cells )
17651753
17661754 pbar .finish ()
1767- image = sampler .aimage
1768-
1769- self .finalize_image (image )
1770-
1771- return image
1755+ return self .finalize_image (sampler .aimage )
17721756
17731757
17741758class MosaicCamera (Camera ):
@@ -2191,8 +2175,7 @@ def _render(self, double_check, num_threads, image, sampler):
21912175 grid .clear_data ()
21922176 sampler (pg , num_threads = num_threads )
21932177
2194- image = self .finalize_image (sampler .aimage )
2195- return image
2178+ return self .finalize_image (sampler .aimage )
21962179
21972180 def save_image (self , image , fn = None , clip_ratio = None ):
21982181 dd = self .ds .all_data ()
@@ -2248,9 +2231,7 @@ def get_sampler_args(self, image):
22482231 None , :
22492232 ]
22502233
2251- vectors = np .zeros (
2252- (self .resolution [0 ], self .resolution [1 ], 3 ), dtype = "float64" , order = "C"
2253- )
2234+ vectors = np .empty ((* self .resolution , 3 ), dtype = "float64" , order = "C" )
22542235 vectors [:, :, 0 ] = np .cos (px ) * np .cos (py )
22552236 vectors [:, :, 1 ] = np .sin (px ) * np .cos (py )
22562237 vectors [:, :, 2 ] = np .sin (py )
@@ -2261,14 +2242,13 @@ def get_sampler_args(self, image):
22612242 R2 = get_rotation_matrix (0.5 * np .pi , [0 , 0 , 1 ])
22622243 uv = np .dot (R1 , self .orienter .unit_vectors )
22632244 uv = np .dot (R2 , uv )
2264- vectors .reshape ((self .resolution [0 ] * self .resolution [1 ], 3 ))
22652245 vectors = np .dot (vectors , uv )
2266- vectors .reshape ((self .resolution [0 ], self .resolution [1 ], 3 ))
22672246
22682247 dummy = np .ones (3 , dtype = "float64" )
2269- image .shape = (self .resolution [0 ] * self .resolution [1 ], 1 , 4 )
2270- vectors .shape = (self .resolution [0 ] * self .resolution [1 ], 1 , 3 )
2271- positions .shape = (self .resolution [0 ] * self .resolution [1 ], 1 , 3 )
2248+ size = np .prod (self .resolution )
2249+ image = image .reshape (* size , 1 , 4 )
2250+ vectors = vectors .reshape (size , 1 , 3 )
2251+ positions = positions .reshape (size , 1 , 3 )
22722252 args = (
22732253 positions ,
22742254 vectors ,
@@ -2299,17 +2279,16 @@ def _render(self, double_check, num_threads, image, sampler):
22992279 pbar .update (total_cells )
23002280
23012281 pbar .finish ()
2302- image = self .finalize_image (sampler .aimage )
2303- return image
2282+ return self .finalize_image (sampler .aimage )
23042283
23052284 def finalize_image (self , image ):
23062285 view_pos = self .front_center
2307- image .shape = self .resolution [0 ], self .resolution [1 ], 4
2308- image = self .volume .reduce_tree_images (image , view_pos )
2286+ image = self .volume .reduce_tree_images (
2287+ image .reshape (* self .resolution , 4 ), view_pos
2288+ )
23092289 if not self .transfer_function .grey_opacity :
23102290 image [:, :, 3 ] = 1.0
2311- image = image [1 :- 1 , 1 :- 1 , :]
2312- return image
2291+ return image [1 :- 1 , 1 :- 1 , :]
23132292
23142293
23152294data_object_registry ["spherical_camera" ] = SphericalCamera
@@ -2337,33 +2316,28 @@ def get_sampler_args(self, image):
23372316 None , :
23382317 ]
23392318
2340- vectors = np .zeros (
2341- (self .resolution [0 ], self .resolution [1 ], 3 ), dtype = "float64" , order = "C"
2342- )
2319+ vectors = np .empty ((* self .resolution , 3 ), dtype = "float64" , order = "C" )
23432320 vectors [:, :, 0 ] = np .cos (px ) * np .cos (py )
23442321 vectors [:, :, 1 ] = np .sin (px ) * np .cos (py )
23452322 vectors [:, :, 2 ] = np .sin (py )
2346- vectors2 = np .zeros (
2347- (self .resolution [0 ], self .resolution [1 ], 3 ), dtype = "float64" , order = "C"
2348- )
2323+ vectors2 = np .empty ((* self .resolution , 3 ), dtype = "float64" , order = "C" )
23492324 vectors2 [:, :, 0 ] = - np .sin (px ) * np .ones ((1 , self .resolution [1 ]))
23502325 vectors2 [:, :, 1 ] = np .cos (px ) * np .ones ((1 , self .resolution [1 ]))
23512326 vectors2 [:, :, 2 ] = 0
23522327
23532328 positions = self .center + vectors2 * self .disparity_s
2354- vectors = vectors * self .width [0 ]
2329+ vectors *= self .width [0 ]
23552330 R1 = get_rotation_matrix (0.5 * np .pi , [1 , 0 , 0 ])
23562331 R2 = get_rotation_matrix (0.5 * np .pi , [0 , 0 , 1 ])
23572332 uv = np .dot (R1 , self .orienter .unit_vectors )
23582333 uv = np .dot (R2 , uv )
2359- vectors .reshape ((self .resolution [0 ] * self .resolution [1 ], 3 ))
23602334 vectors = np .dot (vectors , uv )
2361- vectors .reshape ((self .resolution [0 ], self .resolution [1 ], 3 ))
23622335
23632336 dummy = np .ones (3 , dtype = "float64" )
2364- image .shape = (self .resolution [0 ] * self .resolution [1 ], 1 , 4 )
2365- vectors .shape = (self .resolution [0 ] * self .resolution [1 ], 1 , 3 )
2366- positions .shape = (self .resolution [0 ] * self .resolution [1 ], 1 , 3 )
2337+ size = np .prod (self .resolution )
2338+ image = image .reshape (size , 1 , 4 )
2339+ vectors = vectors .reshape (size , 1 , 3 )
2340+ positions = positions .reshape (size , 1 , 3 )
23672341 args = (
23682342 positions ,
23692343 vectors ,
@@ -2428,8 +2402,7 @@ def _render(self, double_check, num_threads, image, sampler, msg):
24282402
24292403 pbar .finish ()
24302404
2431- image = sampler .aimage .copy ()
2432- image .shape = self .resolution [0 ], self .resolution [1 ], 4
2405+ image = sampler .aimage .copy ().reshape (* self .resolution , 4 )
24332406 if not self .transfer_function .grey_opacity :
24342407 image [:, :, 3 ] = 1.0
24352408 image = image [1 :- 1 , 1 :- 1 , :]
0 commit comments