{ "cells": [ { "cell_type": "markdown", "id": "a2ed3d3b-1e72-4751-b318-d131b1b55c00", "metadata": {}, "source": [ "# Resampling to lon-lat grid\n", "\n", "This notebook shows a quick way to resample HEALPix data to a lon/lat grid using nearest neighbors.\n", "\n", "## Remapping via source indices\n", "Likely, the easiest method for resampling HEALPix data is to compute which index of the HEALPix grid corresponds to each pixel of the target grid. We'll take this approach and build a function which computes the HEALPix pixel indices for each lon/lat pair in a [rectilinear grid](https://en.wikipedia.org/wiki/Regular_grid#Rectilinear_grid) of longitudes and latitudes:" ] }, { "cell_type": "code", "execution_count": 1, "id": "ed9df4e6-d8b6-4ce8-930a-fa6b17dbbacf", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import xarray as xr\n", "import healpy\n", "\n", "\n", "def get_nn_lon_lat_index(nside, lons, lats):\n", " lons2, lats2 = np.meshgrid(lons, lats)\n", " return xr.DataArray(\n", " healpy.ang2pix(nside, lons2, lats2, nest=True, lonlat=True),\n", " coords=[(\"lat\", lats), (\"lon\", lons)],\n", " )" ] }, { "cell_type": "markdown", "id": "002d7607-c480-4e49-8d25-40fcf422f226", "metadata": {}, "source": [ "Let's try this function on a coarse HEALPix grid (nside=2) and for a coarse global lon/lat grid. We'll obtain an array of cell indices:" ] }, { "cell_type": "code", "execution_count": 2, "id": "295c30d4-9f04-4583-b619-8445c209ece9", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "
<xarray.DataArray (lat: 5, lon: 10)>\n",
"array([[40, 40, 40, 44, 44, 32, 32, 36, 36, 40],\n",
"       [42, 42, 41, 46, 45, 34, 33, 38, 37, 42],\n",
"       [25, 25, 30, 29, 18, 17, 22, 21, 26, 25],\n",
"       [10, 10,  9, 14, 13,  2,  1,  6,  5, 10],\n",
"       [11, 11, 11, 15, 15,  3,  3,  7,  7, 11]])\n",
"Coordinates:\n",
"  * lat      (lat) float64 -90.0 -45.0 0.0 45.0 90.0\n",
"  * lon      (lon) float64 -180.0 -140.0 -100.0 -60.0 ... 60.0 100.0 140.0 180.0
" ], "text/plain": [ "\n", "array([[40, 40, 40, 44, 44, 32, 32, 36, 36, 40],\n", " [42, 42, 41, 46, 45, 34, 33, 38, 37, 42],\n", " [25, 25, 30, 29, 18, 17, 22, 21, 26, 25],\n", " [10, 10, 9, 14, 13, 2, 1, 6, 5, 10],\n", " [11, 11, 11, 15, 15, 3, 3, 7, 7, 11]])\n", "Coordinates:\n", " * lat (lat) float64 -90.0 -45.0 0.0 45.0 90.0\n", " * lon (lon) float64 -180.0 -140.0 -100.0 -60.0 ... 60.0 100.0 140.0 180.0" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_nn_lon_lat_index(2, np.linspace(-180, 180, 10), np.linspace(-90, 90, 5))" ] }, { "cell_type": "markdown", "id": "8f86136f-6330-4dc4-bac8-c8c7e382e22a", "metadata": {}, "source": [ "This doesn't look too bad (we expect values in the range of $0$ to $12 N_\\rm{side}^2-1$ or $0$ to $47$ in this case). But let's also check this result visually with a few more pixels:" ] }, { "cell_type": "code", "execution_count": 3, "id": "7ebcbefb-b629-47cb-9776-3cefd6be2002", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "