def test_sky_shell2(): width = 2 * u.deg rad = 2 * u.deg model = Shell2SpatialModel(lon_0="1 deg", lat_0="45 deg", r_0=rad + width, eta=0.5) lon = [1, 2, 4] * u.deg lat = 45 * u.deg val = model(lon, lat) assert val.unit == "deg-2" desired = [55.979449, 57.831651, 94.919895] assert_allclose(val.to_value("sr-1"), desired) radius = model.evaluation_radius assert radius.unit == "deg" assert_allclose(radius.value, rad.value + width.value) assert_allclose(model.r_in.value, rad.value) assert isinstance(model.to_region(), CircleAnnulusSkyRegion)
Shell2SpatialModel, SkyModel, ) tags = [ r"Disk-like, $\eta \rightarrow 0$", r"Shell, $\eta=0.25$", r"Peaked, $\eta\rightarrow 1$", ] eta_range = [0.001, 0.25, 1] fig, axes = plt.subplots(1, 3, figsize=(9, 6)) for ax, eta, tag in zip(axes, eta_range, tags): model = Shell2SpatialModel( lon_0="10 deg", lat_0="20 deg", r_0="2 deg", eta=eta, frame="galactic", ) model.plot(ax=ax) ax.set_title(tag) ax.set_xticks([]) ax.set_yticks([]) plt.tight_layout() # %% # YAML representation # ------------------- # Here is an example YAML file using the model: pwl = PowerLawSpectralModel()