diff --git a/halo_plot.py b/halo_plot.py index fa7a8f8..e7227e1 100644 --- a/halo_plot.py +++ b/halo_plot.py @@ -43,10 +43,10 @@ def main(): if has_1024_simulations: resolutions.append(1024) fig: Figure = plt.figure( - figsize=figsize_from_page_fraction(columns=2, height_to_width=1 if is_box else 1.2) + figsize=figsize_from_page_fraction(columns=2, height_to_width=1.05), layout="constrained" ) axes: List[List[Axes]] = fig.subplots( - len(waveforms) if is_box else len(waveforms) * 2, 4, sharex="row", sharey="row" + len(waveforms), 4, sharex="row", sharey="row" ) with h5py.File(vis_datafile) as vis_out: halo_group = vis_out[str(initial_halo_id)] @@ -57,11 +57,7 @@ def main(): for j, resolution in enumerate(resolutions): dir = base_dir / f"{waveform}_{resolution}_100" halos = read_velo_halos(dir) - if is_box: - ax_both = axes[i][j] - else: - ax_both = axes[i * 2][j] - ax_without = axes[i * 2 + 1][j] + ax = axes[i][j] dataset_group = halo_group[f"{waveform}_{resolution}"] rho = np.asarray(dataset_group["rho"]) # radius, X, Y, Z @@ -73,58 +69,55 @@ def main(): vmax_scaled = (vmax + offset) * mass rho = (rho + offset) * mass extent = coord_to_2d_extent(coords) - for ax in [ax_both, ax_without] if not is_box else [ax_both]: - img = ax.imshow( - rho.T.T, - norm=LogNorm(vmin=vmin_scaled, vmax=vmax_scaled), - extent=extent, - origin="lower", - cmap="Greys", - interpolation="none" - ) # ax.set_axis_off() - ax.set_xticks([]) - ax.set_yticks([]) - if not is_box: - ax.set_ylim(Y - radius * .5, Y + radius * .5) - if j == 0: - scalebar = AnchoredSizeBar( - ax.transData, - 1, - "1 Mpc", - "lower left", - # pad=0.1, - color="black", - frameon=False, - # size_vertical=1 - ) - ax.add_artist(scalebar) + img = ax.imshow( + rho.T.T, + norm=LogNorm(vmin=vmin_scaled, vmax=vmax_scaled), + extent=extent, + origin="lower", + cmap="Greys", + interpolation="none" + ) # ax.set_axis_off() + ax.set_xticks([]) + ax.set_yticks([]) + if j == 0: + scalebar = AnchoredSizeBar( + ax.transData, + 1, + "1 Mpc", + "lower left", + # pad=0.1, + color="black", + frameon=False, + # size_vertical=1 + ) + ax.add_artist(scalebar) if not is_box: found_main_halo = False for halo_id, halo in halos.iterrows(): - if halo["Vmax"] > 75: + if halo["Vmax"] > 50: if in_area(coords, halo.X, halo.Y, halo.Z): if halo_id == main_halo_id: color = "C2" elif halo["Structuretype"] > 10: - color = "C0" - else: color = "C1" + else: + color = "C0" if halo_id == main_halo_id: found_main_halo = True print("plotting main halo") circle = Circle( (halo.Y - Y + X, halo.X - X + Y), - halo["Rvir"], + halo["R_200crit"], zorder=10, linewidth=1, edgecolor=color, fill=None, alpha=0.2, ) - ax_both.add_artist(circle) - - assert found_main_halo + ax.add_artist(circle) + print(found_main_halo) + # assert found_main_halo print(img) # break diff --git a/halo_vis.py b/halo_vis.py index 3ef08f9..e65d36e 100644 --- a/halo_vis.py +++ b/halo_vis.py @@ -92,12 +92,13 @@ def main(): if has_1024_simulations: resolutions.append(1024) coords = {} + radius = None if argv[1] == "box": initial_halo_id = 0 first_halo = False + radius = 15 for wf in waveforms: - coords[wf] = (15, 85, 85, 85) - + coords[wf] = (radius, 85, 85, 85) else: initial_halo_id = int(argv[1]) first_halo = True @@ -136,8 +137,14 @@ def main(): halo, halo_particles, meta, image_coords = load_halo_data( waveform, resolution, halo_id, coords[waveform] ) + if not radius: + radius = image_coords[0] if not coords[waveform]: - coords[waveform] = image_coords + tmp=list(image_coords) + tmp[0] = radius + coords[waveform] = tuple(tmp) + + print(coords[waveform]) # print("mass", halo["Mvir"]) # print("sleep") @@ -163,10 +170,10 @@ def main(): dataset_group.create_dataset("mass", data=meta.particle_mass) if halo_id: dataset_group.create_dataset("halo_id", data=halo_id) - imsave( - rho, - f"out_halo{initial_halo_id}_{waveform}_{resolution}_{halo_id}.png", - ) + # imsave( + # rho, + # f"out_halo{initial_halo_id}_{waveform}_{resolution}_{halo_id}.png", + # ) halo_group.create_dataset("vmin_vmax", data=[vmin, vmax])