diff --git a/pinballrt/camera.py b/pinballrt/camera.py index 37f16c6..5153367 100644 --- a/pinballrt/camera.py +++ b/pinballrt/camera.py @@ -40,9 +40,9 @@ def emit_rays(self, x, y, nu, nx, ny, pixel_size): xflat, yflat = x.flatten(), y.flatten() intensity = np.zeros(xflat.shape+(nu.size,), dtype=np.float32) tau_intensity = np.zeros(xflat.shape+(nu.size,), dtype=float) - #image_ix, image_iy = np.meshgrid(np.arange(x.shape[0]), np.arange(x.shape[1])) - image_ix = (xflat / pixel_size + nx / 2).astype(np.int32) - image_iy = (yflat / pixel_size + ny / 2).astype(np.int32) + # image_ix, image_iy = np.meshgrid(np.arange(x.shape[0]), np.arange(x.shape[1])) + image_ix = np.rint(xflat / pixel_size + nx / 2).astype(np.int32) + image_iy = np.rint(yflat / pixel_size + ny / 2).astype(np.int32) pixel_too_large = np.zeros(xflat.shape).astype(bool) diff --git a/pinballrt/model.py b/pinballrt/model.py index 4dd5df9..bb5d353 100644 --- a/pinballrt/model.py +++ b/pinballrt/model.py @@ -369,15 +369,18 @@ def make_image(self, npix=100, pixel_size=None, channels=None, rest_frequency=No #data_vars={ # "intensity": (["x", "y", "lam"], np.zeros((nx, ny, lam.size))),}, coords={ - "x": ("x", (np.arange(nx) - nx / 2)*pixel_size), - "y": ("y", (np.arange(ny) - ny / 2)*pixel_size), + "x": ("x", (np.arange(nx) - nx / 2)*pixel_size.to(u.arcsec)), + "y": ("y", (np.arange(ny) - ny / 2)*pixel_size.to(u.arcsec)), "lam": ("lam", lam), "nu": ("lam", (const.c / lam).to(u.GHz)),}, attrs={ "pixel_size": pixel_size,}) - new_x, new_y = xr.broadcast(image.x, image.y) - new_x, new_y = new_x.values.flatten(), new_y.values.flatten() + new_x_arcsec, new_y_arcsec = xr.broadcast(image.x, image.y) + new_x_arcsec, new_y_arcsec = new_x_arcsec.values.flatten() * u.arcsec, new_y_arcsec.values.flatten() * u.arcsec + # convert to physical units + new_x = (new_x_arcsec * distance).to(self.grid.distance_unit, equivalencies=u.dimensionless_angles()).value + new_y = (new_y_arcsec * distance).to(self.grid.distance_unit, equivalencies=u.dimensionless_angles()).value njobs = self.ncores