{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Investigate rotation of masks in healpy\n", "- categories: [healpy,cmb,cosmology]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Investigating a [question about healpy on Stackoverflow](https://stackoverflow.com/questions/68010539/healpy-rotate-a-mask-together-with-the-map-in-hp-ma-vs-separately-produce-di#)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import healpy as hp\n", "import numpy as np\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "hp.disable_warnings()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "nside = 16\n", "npix = hp.nside2npix(nside)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "m = hp.ma(np.arange(npix, dtype=np.float32))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "mask = np.zeros(npix, dtype=np.bool)\n", "mask[hp.query_strip(nside, np.radians(75), np.radians(105))] = 1\n", "mask[hp.query_disc(nside, hp.dir2vec(0,0, lonlat=True), np.radians(40))] = 1" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "m.mask = mask" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hp.mollview(m);" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "gal2eq = hp.Rotator(coord=[\"G\",\"E\"])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "m_rotated = gal2eq.rotate_map_pixel(m)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "mask_rotated = gal2eq.rotate_map_pixel(m.mask)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hp.mollview(mask_rotated)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hp.mollview(m_rotated.mask)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now in the first case `healpy` fills the map with `UNSEEN` and then interpolation is handled by `HEALPix C++`. I don't know how internally HEALPix handles that.\n", "In the second case we pass a map of 0 and 1 and HEALPix does the interpolation, but we don't trigger any special case of handling `UNSEEN` values." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "ename": "AssertionError", "evalue": "\nArrays are not equal\n\nMismatched elements: 105 / 3072 (3.42%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# consider all values less than 1 masked\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtesting\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0massert_array_equal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm_rotated\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask_rotated\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", "\u001b[0;31mAssertionError\u001b[0m: \nArrays are not equal\n\nMismatched elements: 105 / 3072 (3.42%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])" ] } ], "source": [ "# consider all values less than 1 masked\n", "np.testing.assert_array_equal(m_rotated.mask, mask_rotated == 1)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "ename": "AssertionError", "evalue": "\nArrays are not equal\n\nMismatched elements: 169 / 3072 (5.5%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# consider only values of 1 masked\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtesting\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0massert_array_equal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm_rotated\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask_rotated\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", "\u001b[0;31mAssertionError\u001b[0m: \nArrays are not equal\n\nMismatched elements: 169 / 3072 (5.5%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])" ] } ], "source": [ "# consider only values of 1 masked\n", "np.testing.assert_array_equal(m_rotated.mask, mask_rotated > 0)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "ename": "AssertionError", "evalue": "\nArrays are not equal\n\nMismatched elements: 26 / 3072 (0.846%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# try a value close to 1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtesting\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0massert_array_equal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm_rotated\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask_rotated\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m.9\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", "\u001b[0;31mAssertionError\u001b[0m: \nArrays are not equal\n\nMismatched elements: 26 / 3072 (0.846%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])" ] } ], "source": [ "# try a value close to 1\n", "np.testing.assert_array_equal(m_rotated.mask, mask_rotated > .9)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "ename": "AssertionError", "evalue": "\nArrays are not equal\n\nMismatched elements: 1 / 3072 (0.0326%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# try a value close to 1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtesting\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0massert_array_equal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm_rotated\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask_rotated\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m.999\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", "\u001b[0;31mAssertionError\u001b[0m: \nArrays are not equal\n\nMismatched elements: 1 / 3072 (0.0326%)\n x: array([False, False, False, ..., False, False, False])\n y: array([False, False, False, ..., False, False, False])" ] } ], "source": [ "# try a value close to 1\n", "np.testing.assert_array_equal(m_rotated.mask, mask_rotated > .999)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# try a value close to 1\n", "np.testing.assert_array_equal(m_rotated.mask, mask_rotated > .9999)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:so]", "language": "python", "name": "conda-env-so-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" } }, "nbformat": 4, "nbformat_minor": 4 }