364364
365365 # TODO: would be cleaner if could just make ps_map with
366366 # cutoff instead of relying on the mask
367- ps_mask = so_map .read_map (d [f"ps_mask_{ sv } _{ m } " ])
367+ ps_mask = so_map .read_map (d [f"ps_mask_{ sv } _{ m } " ], geometry = win_T . data . geometry )
368368 ps_map .data *= ps_mask .data
369369 split .data += ps_map .data
370370
384384
385385 if apply_kspace_filter and deconvolve_pixwin :
386386 if k == 0 :
387- log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] Apply kspace filter and inv pixwin on { sv } , { m } , { snk } " )
387+ log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] Apply kspace filter and inv pixwin on { sv } , { m } " )
388388 split = kspace .filter_map (split ,
389389 filter ,
390390 win_kspace ,
393393 use_ducc_rfft = True )
394394 elif apply_kspace_filter :
395395 if k == 0 :
396- log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: apply kspace filter but no inv pixwin on { sv } , { m } , { snk } " )
396+ log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: apply kspace filter but no inv pixwin on { sv } , { m } " )
397397 split = kspace .filter_map (split ,
398398 filter ,
399399 win_kspace ,
403403
404404 elif deconvolve_pixwin :
405405 if k == 0 :
406- log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: inv pixwin but no kspace filter on { sv } , { m } , { snk } " )
406+ log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: inv pixwin but no kspace filter on { sv } , { m } " )
407407 split = so_map .fourier_convolution (split ,
408408 inv_pwin ,
409409 window = win_kspace ,
410410 use_ducc_rfft = True )
411411 else :
412412 if k == 0 :
413- log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: no kspace filter and no inv pixwin on { sv } , { m } , { snk } " )
413+ log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: no kspace filter and no inv pixwin on { sv } , { m } " )
414414
415415
416416 elif win_T .pixel == "HEALPIX" :
429429
430430 if deconvolve_pixwin :
431431 if k == 0 :
432- log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: inv pixwin but no kspace filter on { sv } , { m } , { snk } (HEALPIX)" )
432+ log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: inv pixwin but no kspace filter on { sv } , { m } (HEALPIX)" )
433433 else :
434434 if k == 0 :
435- log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: no kspace filter and no inv pixwin on { sv } , { m } , { snk } (HEALPIX)" )
435+ log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] WARNING: no kspace filter and no inv pixwin on { sv } , { m } (HEALPIX)" )
436436
437437 split = split .calibrate (cal = cal , pol_eff = pol_eff )
438438
457457
458458 # compute the power spectra
459459
460- # if data, need to load alms, and so need to wait
461- # for all alms to be done
460+ # if data, need to load alms, and so need to wait for all alms to be done to
461+ # load safely. NOTE: but, just need to load the alms needed for this task.
462+ # this saves a lot of memory
462463 if which == 'data' :
463464 t0 = time .time ()
464465 log .info (f"[Rank { so_mpi .rank } ] Loading alms" )
465466 so_mpi .barrier ()
466467
467468 master_alms = {}
468- for sv , m in zip (sv_list , map_list ): # all of them, not just this process
469+ for sv , m in zip (sv_list , map_list ):
470+ if (sv not in sv1_iterator ) and (sv not in sv2_iterator ):
471+ continue
472+ if (m not in m1_iterator ) and (m not in m2_iterator ):
473+ continue
469474 for k , snk in enumerate (splits_iterator [sv ]): # k == split_idx, since data
470475 master_alms [sv , m , snk ] = np .load (f"{ alms_dir } " + f"alms_{ sv } _{ m } _set{ k } .npy" )
471476 log .info (f"[Rank { so_mpi .rank } ] Loaded alms: { time .time () - t0 } seconds" )
569574 master_alms = None
570575
571576 log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] Spectra computation time: { time .time () - t0 } seconds" )
572- t0 = time .time ()
573-
577+
574578 if which == 'data' :
575579 spec_name_all = f"{ type } _all_sn_cross_data"
576580
593597 # each process has separate maps in its mapset
594598 np .save (f"{ spec_dir } " + f"{ spec_name_all } .npy" , ps_dict_all )
595599
596- ps_dict_all = None
597-
598- log .info (f"[Rank { so_mpi .rank } , Mapset { iii } ] Spectra save time: { time .time () - t0 } seconds" )
600+ ps_dict_all = None
0 commit comments