Created
August 1, 2021 02:26
-
-
Save zonca/30354c8e03ff0f34459735a6fcbbacbb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@ARTICLE{gorski05, | |
author = {{G{\'o}rski}, K.~M. and {Hivon}, E. and {Banday}, A.~J. and | |
{Wandelt}, B.~D. and {Hansen}, F.~K. and {Reinecke}, M. and | |
{Bartelmann}, M.}, | |
title = "{HEALPix: A Framework for High-Resolution Discretization and Fast Analysis of Data Distributed on the Sphere}", | |
journal = {\apj}, | |
eprint = {astro-ph/0409513}, | |
keywords = {Cosmology: Cosmic Microwave Background, Cosmology: Observations, Methods: Statistical}, | |
year = 2005, | |
month = apr, | |
volume = 622, | |
pages = {759-771}, | |
doi = {10.1086/427976}, | |
adsurl = {http://adsabs.harvard.edu/abs/2005ApJ...622..759G}, | |
adsnote = {Provided by the SAO/NASA Astrophysics Data System} | |
} | |
@article{healpy09, | |
doi = {10.21105/joss.01298}, | |
url = {https://doi.org/10.21105/joss.01298}, | |
year = {2019}, | |
publisher = {The Open Journal}, | |
volume = {4}, | |
number = {35}, | |
pages = {1298}, | |
author = {Andrea Zonca and Leo P. Singer and Daniel Lenz and Martin Reinecke and Cyrille Rosset and Eric Hivon and Krzysztof M. Gorski}, | |
title = {healpy: equal area pixelization and spherical harmonics transforms for data on the sphere in Python}, | |
journal = {Journal of Open Source Software} | |
} | |
@article{pysm17, | |
title={The Python Sky Model: software for simulating the Galactic microwave sky}, | |
volume={469}, | |
ISSN={1365-2966}, | |
url={http://dx.doi.org/10.1093/mnras/stx949}, | |
DOI={10.1093/mnras/stx949}, | |
number={3}, | |
journal={Monthly Notices of the Royal Astronomical Society}, | |
publisher={Oxford University Press (OUP)}, | |
author={Thorne, B. and Dunkley, J. and Alonso, D. and Næss, S.}, | |
year={2017}, | |
month={May}, | |
pages={2821–2833} | |
} | |
@ARTICLE{wmap13, | |
author = {{Bennett}, C.~L. and {Larson}, D. and {Weiland}, J.~L. and {Jarosik}, N. and | |
{Hinshaw}, G. and {Odegard}, N. and {Smith}, K.~M. and {Hill}, R.~S. and | |
{Gold}, B. and {Halpern}, M. and {Komatsu}, E. and {Nolta}, M.~R. and | |
{Page}, L. and {Spergel}, D.~N. and {Wollack}, E. and {Dunkley}, J. and | |
{Kogut}, A. and {Limon}, M. and {Meyer}, S.~S. and {Tucker}, G.~S. and | |
{Wright}, E.~L.}, | |
title = "{Nine-year Wilkinson Microwave Anisotropy Probe (WMAP) Observations: Final Maps and Results}", | |
journal = {\apjs}, | |
archivePrefix = "arXiv", | |
eprint = {1212.5225}, | |
keywords = {cosmic background radiation, cosmology: observations, dark matter, early universe, instrumentation: detectors, space vehicles, space vehicles: instruments, telescopes}, | |
year = 2013, | |
month = oct, | |
volume = 208, | |
eid = {20}, | |
pages = {20}, | |
doi = {10.1088/0067-0049/208/2/20}, | |
adsurl = {http://adsabs.harvard.edu/abs/2013ApJS..208...20B}, | |
adsnote = {Provided by the SAO/NASA Astrophysics Data System} | |
} | |
@article{planck18, | |
author = "{Planck Collaboration}", | |
title = "{Planck 2018 results. I. Overview and the cosmological legacy of Planck}", | |
collaboration = "Planck", | |
year = "2018", | |
eprint = "1807.06205", | |
archivePrefix = "arXiv", | |
primaryClass = "astro-ph.CO", | |
SLACcitation = "%%CITATION = ARXIV:1807.06205;%%" | |
} | |
@inproceedings{numba, | |
author = {Lam, Siu Kwan and Pitrou, Antoine and Seibert, Stanley}, | |
title = {Numba: A LLVM-Based Python JIT Compiler}, | |
year = {2015}, | |
isbn = {9781450340052}, | |
publisher = {Association for Computing Machinery}, | |
address = {New York, NY, USA}, | |
url = {https://doi.org/10.1145/2833157.2833162}, | |
doi = {10.1145/2833157.2833162}, | |
abstract = {Dynamic, interpreted languages, like Python, are attractive for domain-experts and | |
scientists experimenting with new ideas. However, the performance of the interpreter | |
is often a barrier when scaling to larger data sets. This paper presents a just-in-time | |
compiler for Python that focuses in scientific and array-oriented computing. Starting | |
with the simple syntax of Python, Numba compiles a subset of the language into efficient | |
machine code that is comparable in performance to a traditional compiled language. | |
In addition, we share our experience in building a JIT compiler using LLVM[1].}, | |
booktitle = {Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC}, | |
articleno = {7}, | |
numpages = {6}, | |
keywords = {compiler, LLVM, Python}, | |
location = {Austin, Texas}, | |
series = {LLVM '15} | |
} | |
@article{libsharp, | |
title={Libsharp – spherical harmonic transforms revisited}, | |
volume={554}, | |
ISSN={1432-0746}, | |
url={http://dx.doi.org/10.1051/0004-6361/201321494}, | |
DOI={10.1051/0004-6361/201321494}, | |
journal={Astronomy & Astrophysics}, | |
publisher={EDP Sciences}, | |
author={Reinecke, M. and Seljebotn, D. S.}, | |
year={2013}, | |
month={Jun}, | |
pages={A112} | |
} | |
@article{astropy2013, | |
Adsnote = {Provided by the SAO/NASA Astrophysics Data System}, | |
Adsurl = {http://adsabs.harvard.edu/abs/2013A%26A...558A..33A}, | |
Archiveprefix = {arXiv}, | |
Author = {{Astropy Collaboration} and {Robitaille}, T.~P. and {Tollerud}, E.~J. and {Greenfield}, P. and {Droettboom}, M. and {Bray}, E. and {Aldcroft}, T. and {Davis}, M. and {Ginsburg}, A. and {Price-Whelan}, A.~M. and {Kerzendorf}, W.~E. and {Conley}, A. and {Crighton}, N. and {Barbary}, K. and {Muna}, D. and {Ferguson}, H. and {Grollier}, F. and {Parikh}, M.~M. and {Nair}, P.~H. and {Unther}, H.~M. and {Deil}, C. and {Woillez}, J. and {Conseil}, S. and {Kramer}, R. and {Turner}, J.~E.~H. and {Singer}, L. and {Fox}, R. and {Weaver}, B.~A. and {Zabalza}, V. and {Edwards}, Z.~I. and {Azalee Bostroem}, K. and {Burke}, D.~J. and {Casey}, A.~R. and {Crawford}, S.~M. and {Dencheva}, N. and {Ely}, J. and {Jenness}, T. and {Labrie}, K. and {Lim}, P.~L. and {Pierfederici}, F. and {Pontzen}, A. and {Ptak}, A. and {Refsdal}, B. and {Servillat}, M. and {Streicher}, O.}, | |
Doi = {10.1051/0004-6361/201322068}, | |
Eid = {A33}, | |
Eprint = {1307.6212}, | |
Journal = {\aap}, | |
Keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools}, | |
Month = oct, | |
Pages = {A33}, | |
Primaryclass = {astro-ph.IM}, | |
Title = {{Astropy: A community Python package for astronomy}}, | |
Volume = 558, | |
Year = 2013, | |
Bdsk-Url-1 = {https://dx.doi.org/10.1051/0004-6361/201322068}} | |
@ARTICLE{astropy2018, | |
author = {{Astropy Collaboration} and {Price-Whelan}, A.~M. and | |
{Sip{\H{o}}cz}, B.~M. and {G{\"u}nther}, H.~M. and {Lim}, P.~L. and | |
{Crawford}, S.~M. and {Conseil}, S. and {Shupe}, D.~L. and | |
{Craig}, M.~W. and {Dencheva}, N. and {Ginsburg}, A. and {Vand | |
erPlas}, J.~T. and {Bradley}, L.~D. and {P{\'e}rez-Su{\'a}rez}, D. and | |
{de Val-Borro}, M. and {Aldcroft}, T.~L. and {Cruz}, K.~L. and | |
{Robitaille}, T.~P. and {Tollerud}, E.~J. and {Ardelean}, C. and | |
{Babej}, T. and {Bach}, Y.~P. and {Bachetti}, M. and {Bakanov}, A.~V. and | |
{Bamford}, S.~P. and {Barentsen}, G. and {Barmby}, P. and | |
{Baumbach}, A. and {Berry}, K.~L. and {Biscani}, F. and {Boquien}, M. and | |
{Bostroem}, K.~A. and {Bouma}, L.~G. and {Brammer}, G.~B. and | |
{Bray}, E.~M. and {Breytenbach}, H. and {Buddelmeijer}, H. and | |
{Burke}, D.~J. and {Calderone}, G. and {Cano Rodr{\'\i}guez}, J.~L. and | |
{Cara}, M. and {Cardoso}, J.~V.~M. and {Cheedella}, S. and {Copin}, Y. and | |
{Corrales}, L. and {Crichton}, D. and {D'Avella}, D. and {Deil}, C. and | |
{Depagne}, {\'E}. and {Dietrich}, J.~P. and {Donath}, A. and | |
{Droettboom}, M. and {Earl}, N. and {Erben}, T. and {Fabbro}, S. and | |
{Ferreira}, L.~A. and {Finethy}, T. and {Fox}, R.~T. and | |
{Garrison}, L.~H. and {Gibbons}, S.~L.~J. and {Goldstein}, D.~A. and | |
{Gommers}, R. and {Greco}, J.~P. and {Greenfield}, P. and | |
{Groener}, A.~M. and {Grollier}, F. and {Hagen}, A. and {Hirst}, P. and | |
{Homeier}, D. and {Horton}, A.~J. and {Hosseinzadeh}, G. and {Hu}, L. and | |
{Hunkeler}, J.~S. and {Ivezi{\'c}}, {\v{Z}}. and {Jain}, A. and | |
{Jenness}, T. and {Kanarek}, G. and {Kendrew}, S. and {Kern}, N.~S. and | |
{Kerzendorf}, W.~E. and {Khvalko}, A. and {King}, J. and {Kirkby}, D. and | |
{Kulkarni}, A.~M. and {Kumar}, A. and {Lee}, A. and {Lenz}, D. and | |
{Littlefair}, S.~P. and {Ma}, Z. and {Macleod}, D.~M. and | |
{Mastropietro}, M. and {McCully}, C. and {Montagnac}, S. and | |
{Morris}, B.~M. and {Mueller}, M. and {Mumford}, S.~J. and {Muna}, D. and | |
{Murphy}, N.~A. and {Nelson}, S. and {Nguyen}, G.~H. and | |
{Ninan}, J.~P. and {N{\"o}the}, M. and {Ogaz}, S. and {Oh}, S. and | |
{Parejko}, J.~K. and {Parley}, N. and {Pascual}, S. and {Patil}, R. and | |
{Patil}, A.~A. and {Plunkett}, A.~L. and {Prochaska}, J.~X. and | |
{Rastogi}, T. and {Reddy Janga}, V. and {Sabater}, J. and | |
{Sakurikar}, P. and {Seifert}, M. and {Sherbert}, L.~E. and | |
{Sherwood-Taylor}, H. and {Shih}, A.~Y. and {Sick}, J. and | |
{Silbiger}, M.~T. and {Singanamalla}, S. and {Singer}, L.~P. and | |
{Sladen}, P.~H. and {Sooley}, K.~A. and {Sornarajah}, S. and | |
{Streicher}, O. and {Teuben}, P. and {Thomas}, S.~W. and | |
{Tremblay}, G.~R. and {Turner}, J.~E.~H. and {Terr{\'o}n}, V. and | |
{van Kerkwijk}, M.~H. and {de la Vega}, A. and {Watkins}, L.~L. and | |
{Weaver}, B.~A. and {Whitmore}, J.~B. and {Woillez}, J. and | |
{Zabalza}, V. and {Astropy Contributors}}, | |
title = "{The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package}", | |
journal = {\aj}, | |
keywords = {methods: data analysis, methods: miscellaneous, methods: statistical, reference systems, Astrophysics - Instrumentation and Methods for Astrophysics}, | |
year = 2018, | |
month = sep, | |
volume = {156}, | |
number = {3}, | |
eid = {123}, | |
pages = {123}, | |
doi = {10.3847/1538-3881/aabc4f}, | |
archivePrefix = {arXiv}, | |
eprint = {1801.02634}, | |
primaryClass = {astro-ph.IM}, | |
adsurl = {https://ui.adsabs.harvard.edu/abs/2018AJ....156..123A}, | |
adsnote = {Provided by the SAO/NASA Astrophysics Data System} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[10pt,a4paper,onecolumn]{article} | |
\usepackage{marginnote} | |
\usepackage{graphicx} | |
\usepackage{xcolor} | |
\usepackage{authblk,etoolbox} | |
\usepackage{titlesec} | |
\usepackage{calc} | |
\usepackage{tikz} | |
\usepackage{hyperref} | |
\hypersetup{colorlinks,breaklinks=true, | |
urlcolor=[rgb]{0.0, 0.5, 1.0}, | |
linkcolor=[rgb]{0.0, 0.5, 1.0}} | |
\usepackage{caption} | |
\usepackage{tcolorbox} | |
\usepackage{amssymb,amsmath} | |
\usepackage{ifxetex,ifluatex} | |
\usepackage{seqsplit} | |
\usepackage{xstring} | |
\usepackage{float} | |
\let\origfigure\figure | |
\let\endorigfigure\endfigure | |
\renewenvironment{figure}[1][2] { | |
\expandafter\origfigure\expandafter[H] | |
} { | |
\endorigfigure | |
} | |
\usepackage{fixltx2e} % provides \textsubscript | |
\usepackage[ | |
backend=biber, | |
% style=alphabetic, | |
% citestyle=numeric | |
]{biblatex} | |
\bibliography{paper.bib} | |
% --- Splitting \texttt -------------------------------------------------- | |
\let\textttOrig=\texttt | |
\def\texttt#1{\expandafter\textttOrig{\seqsplit{#1}}} | |
\renewcommand{\seqinsert}{\ifmmode | |
\allowbreak | |
\else\penalty6000\hspace{0pt plus 0.02em}\fi} | |
% --- Pandoc does not distinguish between links like [foo](bar) and | |
% --- [foo](foo) -- a simplistic Markdown model. However, this is | |
% --- wrong: in links like [foo](foo) the text is the url, and must | |
% --- be split correspondingly. | |
% --- Here we detect links \href{foo}{foo}, and also links starting | |
% --- with https://doi.org, and use path-like splitting (but not | |
% --- escaping!) with these links. | |
% --- Another vile thing pandoc does is the different escaping of | |
% --- foo and bar. This may confound our detection. | |
% --- This problem we do not try to solve at present, with the exception | |
% --- of doi-like urls, which we detect correctly. | |
\makeatletter | |
\let\href@Orig=\href | |
\def\href@Urllike#1#2{\href@Orig{#1}{\begingroup | |
\def\Url@String{#2}\Url@FormatString | |
\endgroup}} | |
\def\href@Notdoi#1#2{\def\tempa{#1}\def\tempb{#2}% | |
\ifx\tempa\tempb\relax\href@Urllike{#1}{#2}\else | |
\href@Orig{#1}{#2}\fi} | |
\def\href#1#2{% | |
\IfBeginWith{#1}{https://doi.org}% | |
{\href@Urllike{#1}{#2}}{\href@Notdoi{#1}{#2}}} | |
\makeatother | |
\newlength{\cslhangindent} | |
\setlength{\cslhangindent}{1.5em} | |
\newlength{\csllabelwidth} | |
\setlength{\csllabelwidth}{3em} | |
\newenvironment{CSLReferences}[3] % #1 hanging-ident, #2 entry spacing | |
{% don't indent paragraphs | |
\setlength{\parindent}{0pt} | |
% turn on hanging indent if param 1 is 1 | |
\ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi | |
% set entry spacing | |
\ifnum #2 > 0 | |
\setlength{\parskip}{#2\baselineskip} | |
\fi | |
}% | |
{} | |
\usepackage{calc} | |
\newcommand{\CSLBlock}[1]{#1\hfill\break} | |
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}} | |
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}} | |
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1} | |
% --- Page layout ------------------------------------------------------------- | |
\usepackage[top=3.5cm, bottom=3cm, right=1.5cm, left=1.0cm, | |
headheight=2.2cm, reversemp, includemp, marginparwidth=4.5cm]{geometry} | |
% --- Default font ------------------------------------------------------------ | |
\renewcommand\familydefault{\sfdefault} | |
% --- Style ------------------------------------------------------------------- | |
\renewcommand{\bibfont}{\small \sffamily} | |
\renewcommand{\captionfont}{\small\sffamily} | |
\renewcommand{\captionlabelfont}{\bfseries} | |
% --- Section/SubSection/SubSubSection ---------------------------------------- | |
\titleformat{\section} | |
{\normalfont\sffamily\Large\bfseries} | |
{}{0pt}{} | |
\titleformat{\subsection} | |
{\normalfont\sffamily\large\bfseries} | |
{}{0pt}{} | |
\titleformat{\subsubsection} | |
{\normalfont\sffamily\bfseries} | |
{}{0pt}{} | |
\titleformat*{\paragraph} | |
{\sffamily\normalsize} | |
% --- Header / Footer --------------------------------------------------------- | |
\usepackage{fancyhdr} | |
\pagestyle{fancy} | |
\fancyhf{} | |
%\renewcommand{\headrulewidth}{0.50pt} | |
\renewcommand{\headrulewidth}{0pt} | |
\fancyhead[L]{\hspace{-0.75cm}\includegraphics[width=5.5cm]{/usr/local/share/openjournals/joss/logo.png}} | |
\fancyhead[C]{} | |
\fancyhead[R]{} | |
\renewcommand{\footrulewidth}{0.25pt} | |
\fancyfoot[L]{\parbox[t]{0.98\headwidth}{\footnotesize{\sffamily ¿citation\_author?, (2021). The | |
Python Sky Model 3 | |
software. \textit{Journal of Open Source Software}, ¿VOL?(¿ISSUE?), ¿PAGE?. \url{https://doi.org/DOI unavailable}}}} | |
\fancyfoot[R]{\sffamily \thepage} | |
\makeatletter | |
\let\ps@plain\ps@fancy | |
\fancyheadoffset[L]{4.5cm} | |
\fancyfootoffset[L]{4.5cm} | |
% --- Macros --------- | |
\definecolor{linky}{rgb}{0.0, 0.5, 1.0} | |
\newtcolorbox{repobox} | |
{colback=red, colframe=red!75!black, | |
boxrule=0.5pt, arc=2pt, left=6pt, right=6pt, top=3pt, bottom=3pt} | |
\newcommand{\ExternalLink}{% | |
\tikz[x=1.2ex, y=1.2ex, baseline=-0.05ex]{% | |
\begin{scope}[x=1ex, y=1ex] | |
\clip (-0.1,-0.1) | |
--++ (-0, 1.2) | |
--++ (0.6, 0) | |
--++ (0, -0.6) | |
--++ (0.6, 0) | |
--++ (0, -1); | |
\path[draw, | |
line width = 0.5, | |
rounded corners=0.5] | |
(0,0) rectangle (1,1); | |
\end{scope} | |
\path[draw, line width = 0.5] (0.5, 0.5) | |
-- (1, 1); | |
\path[draw, line width = 0.5] (0.6, 1) | |
-- (1, 1) -- (1, 0.6); | |
} | |
} | |
% --- Title / Authors --------------------------------------------------------- | |
% patch \maketitle so that it doesn't center | |
\patchcmd{\@maketitle}{center}{flushleft}{}{} | |
\patchcmd{\@maketitle}{center}{flushleft}{}{} | |
% patch \maketitle so that the font size for the title is normal | |
\patchcmd{\@maketitle}{\LARGE}{\LARGE\sffamily}{}{} | |
% patch the patch by authblk so that the author block is flush left | |
\def\maketitle{{% | |
\renewenvironment{tabular}[2][] | |
{\begin{flushleft}} | |
{\end{flushleft}} | |
\AB@maketitle}} | |
\makeatletter | |
\renewcommand\AB@affilsepx{ \protect\Affilfont} | |
%\renewcommand\AB@affilnote[1]{{\bfseries #1}\hspace{2pt}} | |
\renewcommand\AB@affilnote[1]{{\bfseries #1}\hspace{3pt}} | |
\renewcommand{\affil}[2][]% | |
{\newaffiltrue\let\AB@blk@and\AB@pand | |
\if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}% | |
\setcounter{Maxaffil}{0}\fi | |
\begingroup | |
\let\href=\href@Orig | |
\let\texttt=\textttOrig | |
\let\protect\@unexpandable@protect | |
\def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% | |
\@temptokena=\expandafter{\AB@authors}% | |
{\def\\{\protect\\\protect\Affilfont}\xdef\AB@temp{#2}}% | |
\xdef\AB@authors{\the\@temptokena\AB@las\AB@au@str | |
\protect\\[\affilsep]\protect\Affilfont\AB@temp}% | |
\gdef\AB@las{}\gdef\AB@au@str{}% | |
{\def\\{, \ignorespaces}\xdef\AB@temp{#2}}% | |
\@temptokena=\expandafter{\AB@affillist}% | |
\xdef\AB@affillist{\the\@temptokena \AB@affilsep | |
\AB@affilnote{\AB@note}\protect\Affilfont\AB@temp}% | |
\endgroup | |
\let\AB@affilsep\AB@affilsepx | |
} | |
\makeatother | |
\renewcommand\Authfont{\sffamily\bfseries} | |
\renewcommand\Affilfont{\sffamily\small\mdseries} | |
\setlength{\affilsep}{1em} | |
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |
\usepackage[T1]{fontenc} | |
\usepackage[utf8]{inputenc} | |
\else % if luatex or xelatex | |
\ifxetex | |
\usepackage{mathspec} | |
\usepackage{fontspec} | |
\else | |
\usepackage{fontspec} | |
\fi | |
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase} | |
\fi | |
% use upquote if available, for straight quotes in verbatim environments | |
\IfFileExists{upquote.sty}{\usepackage{upquote}}{} | |
% use microtype if available | |
\IfFileExists{microtype.sty}{% | |
\usepackage{microtype} | |
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts | |
}{} | |
\usepackage{hyperref} | |
\hypersetup{unicode=true, | |
pdftitle={The Python Sky Model 3 software}, | |
pdfborder={0 0 0}, | |
breaklinks=true} | |
\urlstyle{same} % don't use monospace font for urls | |
\usepackage{longtable,booktabs} | |
% --- We redefined \texttt, but in sections and captions we want the | |
% --- old definition | |
\let\addcontentslineOrig=\addcontentsline | |
\def\addcontentsline#1#2#3{\bgroup | |
\let\texttt=\textttOrig\addcontentslineOrig{#1}{#2}{#3}\egroup} | |
\let\markbothOrig\markboth | |
\def\markboth#1#2{\bgroup | |
\let\texttt=\textttOrig\markbothOrig{#1}{#2}\egroup} | |
\let\markrightOrig\markright | |
\def\markright#1{\bgroup | |
\let\texttt=\textttOrig\markrightOrig{#1}\egroup} | |
\IfFileExists{parskip.sty}{% | |
\usepackage{parskip} | |
}{% else | |
\setlength{\parindent}{0pt} | |
\setlength{\parskip}{6pt plus 2pt minus 1pt} | |
} | |
\setlength{\emergencystretch}{3em} % prevent overfull lines | |
\providecommand{\tightlist}{% | |
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} | |
\setcounter{secnumdepth}{0} | |
% Redefines (sub)paragraphs to behave more like sections | |
\ifx\paragraph\undefined\else | |
\let\oldparagraph\paragraph | |
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} | |
\fi | |
\ifx\subparagraph\undefined\else | |
\let\oldsubparagraph\subparagraph | |
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} | |
\fi | |
\title{The Python Sky Model 3 software} | |
\author[1]{Andrea Zonca} | |
\author[2]{Ben Thorne} | |
\author[3,4,5]{Nicoletta Krachmalnicoff} | |
\author[6,7]{Julian Borrill} | |
\affil[1]{San Diego Supercomputer Center, University of California | |
San Diego, San Diego, USA} | |
\affil[2]{Department of Physics, University of California Davis, | |
One Shields Avenue, Davis, CA 95616, USA} | |
\affil[3]{SISSA, Via Bonomea 265, 34136 Trieste, Italy} | |
\affil[4]{INFN, Via Valerio 2, 34127 Trieste, Italy} | |
\affil[5]{IFPU, Via Beirut 2, 34014 Trieste, Italy} | |
\affil[6]{Computational Cosmology Center, Lawrence Berkeley | |
National Laboratory, Berkeley, CA 94720, USA} | |
\affil[7]{Space Sciences Laboratory at University of California, 7 | |
Gauss Way, Berkeley, CA 94720} | |
\date{\vspace{-7ex}} | |
\begin{document} | |
\maketitle | |
\marginpar{ | |
\begin{flushleft} | |
%\hrule | |
\sffamily\small | |
{\bfseries DOI:} \href{https://doi.org/DOI unavailable}{\color{linky}{DOI unavailable}} | |
\vspace{2mm} | |
{\bfseries Software} | |
\begin{itemize} | |
\setlength\itemsep{0em} | |
\item \href{N/A}{\color{linky}{Review}} \ExternalLink | |
\item \href{NO_REPOSITORY}{\color{linky}{Repository}} \ExternalLink | |
\item \href{DOI unavailable}{\color{linky}{Archive}} \ExternalLink | |
\end{itemize} | |
\vspace{2mm} | |
\par\noindent\hrulefill\par | |
\vspace{2mm} | |
{\bfseries Editor:} \href{https://example.com}{Pending | |
Editor} \ExternalLink \\ | |
\vspace{1mm} | |
{\bfseries Reviewers:} | |
\begin{itemize} | |
\setlength\itemsep{0em} | |
\item \href{https://github.com/Pending Reviewers}{@Pending | |
Reviewers} | |
\end{itemize} | |
\vspace{2mm} | |
{\bfseries Submitted:} N/A\\ | |
{\bfseries Published:} N/A | |
\vspace{2mm} | |
{\bfseries License}\\ | |
Authors of papers retain copyright and release the work under a Creative Commons Attribution 4.0 International License (\href{http://creativecommons.org/licenses/by/4.0/}{\color{linky}{CC BY 4.0}}). | |
\end{flushleft} | |
} | |
\hypertarget{statement-of-need}{% | |
\section{Statement of Need}\label{statement-of-need}} | |
The Cosmic Microwave Background (CMB) radiation, emitted just 370 | |
thousand years after the Big Bang, is a pristine probe of the Early | |
Universe. After being emitted at high temperatures, the CMB was | |
redshifted by the subsequent 13.8 billion years of cosmic expansion, | |
such that it is brightest at microwave frequencies today. However, our | |
own Milky Way galaxy also emits in the microwave portion of the | |
spectrum, obscuring our view of the CMB. Examples of this emission are | |
thermal radiation by interstellar dust grains, and synchrotron emission | |
by relativistic electrons spiraling in magnetic fields. Cosmologists | |
need to create synthetic maps of the CMB and of the galactic emission | |
based on available data and on physical models that extrapolate | |
observations to different frequencies. The resulting maps are useful to | |
test data reduction algorithms, to understand residual systematics, to | |
forecast maps produced by future instruments, to run Monte Carlo | |
analysis for noise estimation, and more. | |
\hypertarget{summary}{% | |
\section{Summary}\label{summary}} | |
The Python Sky Model (PySM) is a Python package used by Cosmic Microwave | |
Background (CMB) experiments to simulate maps, in HEALPix (Górski et | |
al., 2005; Zonca et al., 2019) pixelization, of the various diffuse | |
astrophysical components of Galactic emission relevant at CMB | |
frequencies (i.e.~dust, synchrotron, free-free and Anomalous Microwave | |
Emission), as well as the CMB itself. These maps may be integrated over | |
a given instrument bandpass and smoothed with a given instrument beam. | |
The template emission maps used by PySM are based on Planck (Planck | |
Collaboration, 2018) and WMAP (Bennett et al., 2013) data and are | |
noise-dominated at small scales. Therefore, PySM simulation templates | |
are smoothed to retain the large-scale information, and then | |
supplemented with modulated Gaussian realizations at smaller scales. | |
This strategy allows one to simulate data at higher resolution than the | |
input maps. | |
PySM 2 (Thorne et al., 2017), released in 2016, has become the de-facto | |
standard for simulating Galactic emission, for example it is used by | |
CMB-S4, Simons Observatory, LiteBird, PICO, CLASS, POLARBEAR and other | |
CMB experiments, as shown by the | |
\href{https://scholar.google.com/scholar?start=0\&hl=en\&as_sdt=2005\&sciodt=0,5\&cites=16628417670342266167\&scipsc=}{80+ | |
citations of the PySM 2 publication}. As the resolution of upcoming | |
experiments increases, the PySM 2 software has started to show some | |
limitations: | |
\begin{itemize} | |
\tightlist | |
\item | |
Emission templates are provided at 7.9 arcminutes resolution (HEALPix | |
\(N_{side}=512\)), while the next generation of CMB experiments will | |
require sub-arcminute resolution. | |
\item | |
The software is implemented in pure \texttt{numpy}, meaning that it | |
has significant memory overhead and is not multi-threaded, precluding | |
simply replacing the current templates with higher-resolution versions | |
\item | |
Emission templates are included in the PySM 2 Python package, this is | |
still practical when each of the roughly 40 input maps is | |
\textasciitilde10 Megabytes, but will not be if they are over 1 | |
Gigabyte. | |
\end{itemize} | |
The solution to these issues was to reimplement PySM from scratch | |
focusing of these features: | |
\begin{itemize} | |
\tightlist | |
\item | |
Reimplement all the models with the \texttt{numba} (Lam et al., 2015) | |
Just-In-Time compiler for Python to reduce memory overhead and | |
optimize performance: the whole integration loop of a template map | |
over the frequency response of an instrument is performed in a single | |
pass in automatically compiled and multi-threaded Python code. | |
\item | |
Use MPI through \texttt{mpi4py} to coordinate execution of PySM 3 | |
across multiple nodes, this allows to support template maps at a | |
resolution up to 0.4 arcminutes (HEALPix \(N_{side}=8192\)). | |
\item | |
Rely on \texttt{libsharp} (Reinecke \& Seljebotn, 2013), a distributed | |
implementation of spherical harmonic transforms, to smooth the maps | |
with the instrument beam when maps are distributed over multiple nodes | |
with MPI. | |
\item | |
Employ the data utilities infrastructure provided by \texttt{astropy} | |
(Astropy Collaboration et al., 2018, 2013) to download the input | |
templates and cache them when requested. | |
\end{itemize} | |
At this stage we strive to maintain full compatibility with PySM 2, | |
therefore we implement the exact same astrophysical emission models with | |
the same naming scheme. In the extensive test suite we compare the | |
output of each PySM 3 model with the results obtained by PySM 2. | |
\hypertarget{performance}{% | |
\section{Performance}\label{performance}} | |
As an example of the performance improvements achieved with PySM 3 over | |
PySM 2, we run the following configuration: | |
\begin{itemize} | |
\tightlist | |
\item | |
An instrument with 3 channels, with different beams, and a top-hat | |
bandpass defined numerically at 10 frequency samples. | |
\item | |
A sky model with the simplest models of dust, synchrotron, free-free | |
and AME {[}\texttt{a1,d1,s1,f1} in PySM terms{]}. | |
\item | |
Execute on a 12-core Intel processor with 12 GB of RAM. | |
\end{itemize} | |
The following tables shows the walltime and peak memory usage of this | |
simulation executed at the native PySM 2 resolution of \(N_{side}=512\) | |
and at two higher resolutions: | |
\begin{longtable}[]{@{}lll@{}} | |
\toprule | |
Output \(N_{side}\) & PySM 3 & PySM 2\tabularnewline | |
\midrule | |
\endhead | |
512 & 1m 0.7 GB & 1m40s 1.45 GB\tabularnewline | |
1024 & 3m30s 2.3 GB & 7m20s 5.5 GB\tabularnewline | |
2048 & 16m10s 8.5 GB & Out of memory\tabularnewline | |
\bottomrule | |
\end{longtable} | |
At the moment it is not very useful to run at resolutions higher than | |
\(N_{side}=512\) because there is no actual template signal at smaller | |
scales. However, it demonstrates the performance improvements that will | |
make working with higher resolution templates possible. | |
\hypertarget{future-work}{% | |
\section{Future work}\label{future-work}} | |
PySM 3 opens the way to implement a new category of models at much | |
higher resolution. However, instead of just upgrading the current models | |
to smaller scales we want to also update them with the latest knowledge | |
of Galactic emission and gather feedback from each of the numerous CMB | |
experiments. For this reason we are collaborating with the Panexperiment | |
Galactic Science group to lead the development of the new class of | |
models to be included in PySM 3. | |
\hypertarget{how-to-cite}{% | |
\section{How to cite}\label{how-to-cite}} | |
If you are using PySM 3 for your work, please cite this paper for the | |
software itself; for the actual emission modeling please also cite the | |
original PySM 2 paper (Thorne et al., 2017). There will be a future | |
paper on the generation of new PySM 3 astrophysical models. | |
\hypertarget{acknowledgments}{% | |
\section{Acknowledgments}\label{acknowledgments}} | |
\begin{itemize} | |
\tightlist | |
\item | |
This work was supported in part by NASA grant \texttt{80NSSC18K1487}. | |
\item | |
The software was tested, in part, on facilities run by the Scientific | |
Computing Core of the Flatiron Institute. | |
\item | |
This research used resources of the National Energy Research | |
Scientific Computing Center (NERSC), a U.S. Department of Energy | |
Office of Science User Facility located at Lawrence Berkeley National | |
Laboratory, operated under Contract No.~\texttt{DE-AC02-05CH11231}. | |
\end{itemize} | |
\hypertarget{references}{% | |
\section*{References}\label{references}} | |
\addcontentsline{toc}{section}{References} | |
\hypertarget{refs}{} | |
\begin{CSLReferences}{1}{0} | |
\leavevmode\hypertarget{ref-astropy2018}{}% | |
Astropy Collaboration, Price-Whelan, A. M., Sipőcz, B. M., Günther, H. | |
M., Lim, P. L., Crawford, S. M., Conseil, S., Shupe, D. L., Craig, M. | |
W., Dencheva, N., Ginsburg, A., Vand erPlas, J. T., Bradley, L. D., | |
Pérez-Suárez, D., de Val-Borro, M., Aldcroft, T. L., Cruz, K. L., | |
Robitaille, T. P., Tollerud, E. J., \ldots{} Astropy Contributors. | |
(2018). {The Astropy Project: Building an Open-science Project and | |
Status of the v2.0 Core Package}. \emph{156}(3), 123. | |
\url{https://doi.org/10.3847/1538-3881/aabc4f} | |
\leavevmode\hypertarget{ref-astropy2013}{}% | |
Astropy Collaboration, Robitaille, T. P., Tollerud, E. J., Greenfield, | |
P., Droettboom, M., Bray, E., Aldcroft, T., Davis, M., Ginsburg, A., | |
Price-Whelan, A. M., Kerzendorf, W. E., Conley, A., Crighton, N., | |
Barbary, K., Muna, D., Ferguson, H., Grollier, F., Parikh, M. M., Nair, | |
P. H., \ldots{} Streicher, O. (2013). {Astropy: A community Python | |
package for astronomy}. \emph{558}, A33. | |
\url{https://doi.org/10.1051/0004-6361/201322068} | |
\leavevmode\hypertarget{ref-wmap13}{}% | |
Bennett, C. L., Larson, D., Weiland, J. L., Jarosik, N., Hinshaw, G., | |
Odegard, N., Smith, K. M., Hill, R. S., Gold, B., Halpern, M., Komatsu, | |
E., Nolta, M. R., Page, L., Spergel, D. N., Wollack, E., Dunkley, J., | |
Kogut, A., Limon, M., Meyer, S. S., \ldots{} Wright, E. L. (2013). | |
{Nine-year Wilkinson Microwave Anisotropy Probe (WMAP) Observations: | |
Final Maps and Results}. \emph{208}, 20. | |
\url{https://doi.org/10.1088/0067-0049/208/2/20} | |
\leavevmode\hypertarget{ref-gorski05}{}% | |
Górski, K. M., Hivon, E., Banday, A. J., Wandelt, B. D., Hansen, F. K., | |
Reinecke, M., \& Bartelmann, M. (2005). {HEALPix: A Framework for | |
High-Resolution Discretization and Fast Analysis of Data Distributed on | |
the Sphere}. \emph{622}, 759--771. \url{https://doi.org/10.1086/427976} | |
\leavevmode\hypertarget{ref-numba}{}% | |
Lam, S. K., Pitrou, A., \& Seibert, S. (2015). Numba: A LLVM-based | |
python JIT compiler. \emph{Proceedings of the Second Workshop on the | |
LLVM Compiler Infrastructure in HPC}. | |
\url{https://doi.org/10.1145/2833157.2833162} | |
\leavevmode\hypertarget{ref-planck18}{}% | |
Planck Collaboration. (2018). \emph{{Planck 2018 results. I. Overview | |
and the cosmological legacy of Planck}}. | |
\url{http://arxiv.org/abs/1807.06205} | |
\leavevmode\hypertarget{ref-libsharp}{}% | |
Reinecke, M., \& Seljebotn, D. S. (2013). Libsharp -- spherical harmonic | |
transforms revisited. \emph{Astronomy \& Astrophysics}, \emph{554}, | |
A112. \url{https://doi.org/10.1051/0004-6361/201321494} | |
\leavevmode\hypertarget{ref-pysm17}{}% | |
Thorne, B., Dunkley, J., Alonso, D., \& Næss, S. (2017). The python sky | |
model: Software for simulating the galactic microwave sky. \emph{Monthly | |
Notices of the Royal Astronomical Society}, \emph{469}(3), 2821--2833. | |
\url{https://doi.org/10.1093/mnras/stx949} | |
\leavevmode\hypertarget{ref-healpy09}{}% | |
Zonca, A., Singer, L. P., Lenz, D., Reinecke, M., Rosset, C., Hivon, E., | |
\& Gorski, K. M. (2019). Healpy: Equal area pixelization and spherical | |
harmonics transforms for data on the sphere in python. \emph{Journal of | |
Open Source Software}, \emph{4}(35), 1298. | |
\url{https://doi.org/10.21105/joss.01298} | |
\end{CSLReferences} | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment