+
+ Read the Docs
+ v: ${config.versions.current.slug}
+
+
+
+
+ ${renderLanguages(config)}
+ ${renderVersions(config)}
+ ${renderDownloads(config)}
+
+ On Read the Docs
+
+ Project Home
+
+
+ Builds
+
+
+ Downloads
+
+
+
+ Search
+
+
+
+
+
+
+ Hosted by Read the Docs
+
+
+
+ `;
+
+ // Inject the generated flyout into the body HTML element.
+ document.body.insertAdjacentHTML("beforeend", flyout);
+
+ // Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout.
+ document
+ .querySelector("#flyout-search-form")
+ .addEventListener("focusin", () => {
+ const event = new CustomEvent("readthedocs-search-show");
+ document.dispatchEvent(event);
+ });
+ })
+}
+
+if (themeLanguageSelector || themeVersionSelector) {
+ function onSelectorSwitch(event) {
+ const option = event.target.selectedIndex;
+ const item = event.target.options[option];
+ window.location.href = item.dataset.url;
+ }
+
+ document.addEventListener("readthedocs-addons-data-ready", function (event) {
+ const config = event.detail.data();
+
+ const versionSwitch = document.querySelector(
+ "div.switch-menus > div.version-switch",
+ );
+ if (themeVersionSelector) {
+ let versions = config.versions.active;
+ if (config.versions.current.hidden || config.versions.current.type === "external") {
+ versions.unshift(config.versions.current);
+ }
+ const versionSelect = `
+
+ ${versions
+ .map(
+ (version) => `
+
+ ${version.slug}
+ `,
+ )
+ .join("\n")}
+
+ `;
+
+ versionSwitch.innerHTML = versionSelect;
+ versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
+ }
+
+ const languageSwitch = document.querySelector(
+ "div.switch-menus > div.language-switch",
+ );
+
+ if (themeLanguageSelector) {
+ if (config.projects.translations.length) {
+ // Add the current language to the options on the selector
+ let languages = config.projects.translations.concat(
+ config.projects.current,
+ );
+ languages = languages.sort((a, b) =>
+ a.language.name.localeCompare(b.language.name),
+ );
+
+ const languageSelect = `
+
+ ${languages
+ .map(
+ (language) => `
+
+ ${language.language.name}
+ `,
+ )
+ .join("\n")}
+
+ `;
+
+ languageSwitch.innerHTML = languageSelect;
+ languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
+ }
+ else {
+ languageSwitch.remove();
+ }
+ }
+ });
+}
+
+document.addEventListener("readthedocs-addons-data-ready", function (event) {
+ // Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav.
+ document
+ .querySelector("[role='search'] input")
+ .addEventListener("focusin", () => {
+ const event = new CustomEvent("readthedocs-search-show");
+ document.dispatchEvent(event);
+ });
+});
\ No newline at end of file
diff --git a/docs/_static/language_data.js b/docs/_static/language_data.js
new file mode 100644
index 00000000..c7fe6c6f
--- /dev/null
+++ b/docs/_static/language_data.js
@@ -0,0 +1,192 @@
+/*
+ * This script contains the language-specific data used by searchtools.js,
+ * namely the list of stopwords, stemmer, scorer and splitter.
+ */
+
+var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
+
+
+/* Non-minified version is copied as a separate JS file, if available */
+
+/**
+ * Porter Stemmer
+ */
+var Stemmer = function() {
+
+ var step2list = {
+ ational: 'ate',
+ tional: 'tion',
+ enci: 'ence',
+ anci: 'ance',
+ izer: 'ize',
+ bli: 'ble',
+ alli: 'al',
+ entli: 'ent',
+ eli: 'e',
+ ousli: 'ous',
+ ization: 'ize',
+ ation: 'ate',
+ ator: 'ate',
+ alism: 'al',
+ iveness: 'ive',
+ fulness: 'ful',
+ ousness: 'ous',
+ aliti: 'al',
+ iviti: 'ive',
+ biliti: 'ble',
+ logi: 'log'
+ };
+
+ var step3list = {
+ icate: 'ic',
+ ative: '',
+ alize: 'al',
+ iciti: 'ic',
+ ical: 'ic',
+ ful: '',
+ ness: ''
+ };
+
+ var c = "[^aeiou]"; // consonant
+ var v = "[aeiouy]"; // vowel
+ var C = c + "[^aeiouy]*"; // consonant sequence
+ var V = v + "[aeiou]*"; // vowel sequence
+
+ var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
+ var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
+ var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
+ var s_v = "^(" + C + ")?" + v; // vowel in stem
+
+ this.stemWord = function (w) {
+ var stem;
+ var suffix;
+ var firstch;
+ var origword = w;
+
+ if (w.length < 3)
+ return w;
+
+ var re;
+ var re2;
+ var re3;
+ var re4;
+
+ firstch = w.substr(0,1);
+ if (firstch == "y")
+ w = firstch.toUpperCase() + w.substr(1);
+
+ // Step 1a
+ re = /^(.+?)(ss|i)es$/;
+ re2 = /^(.+?)([^s])s$/;
+
+ if (re.test(w))
+ w = w.replace(re,"$1$2");
+ else if (re2.test(w))
+ w = w.replace(re2,"$1$2");
+
+ // Step 1b
+ re = /^(.+?)eed$/;
+ re2 = /^(.+?)(ed|ing)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ re = new RegExp(mgr0);
+ if (re.test(fp[1])) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ }
+ else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1];
+ re2 = new RegExp(s_v);
+ if (re2.test(stem)) {
+ w = stem;
+ re2 = /(at|bl|iz)$/;
+ re3 = new RegExp("([^aeiouylsz])\\1$");
+ re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re2.test(w))
+ w = w + "e";
+ else if (re3.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ else if (re4.test(w))
+ w = w + "e";
+ }
+ }
+
+ // Step 1c
+ re = /^(.+?)y$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(s_v);
+ if (re.test(stem))
+ w = stem + "i";
+ }
+
+ // Step 2
+ re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem))
+ w = stem + step2list[suffix];
+ }
+
+ // Step 3
+ re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem))
+ w = stem + step3list[suffix];
+ }
+
+ // Step 4
+ re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+ re2 = /^(.+?)(s|t)(ion)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ if (re.test(stem))
+ w = stem;
+ }
+ else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1] + fp[2];
+ re2 = new RegExp(mgr1);
+ if (re2.test(stem))
+ w = stem;
+ }
+
+ // Step 5
+ re = /^(.+?)e$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ re2 = new RegExp(meq1);
+ re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
+ w = stem;
+ }
+ re = /ll$/;
+ re2 = new RegExp(mgr1);
+ if (re.test(w) && re2.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+
+ // and turn initial Y back to y
+ if (firstch == "y")
+ w = firstch.toLowerCase() + w.substr(1);
+ return w;
+ }
+}
+
diff --git a/docs/_static/minus.png b/docs/_static/minus.png
new file mode 100644
index 00000000..d96755fd
Binary files /dev/null and b/docs/_static/minus.png differ
diff --git a/docs/_static/plus.png b/docs/_static/plus.png
new file mode 100644
index 00000000..7107cec9
Binary files /dev/null and b/docs/_static/plus.png differ
diff --git a/docs/_static/pygments.css b/docs/_static/pygments.css
new file mode 100644
index 00000000..5f2b0a25
--- /dev/null
+++ b/docs/_static/pygments.css
@@ -0,0 +1,75 @@
+pre { line-height: 125%; }
+td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #eeffcc; }
+.highlight .c { color: #408090; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #F00 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #666 } /* Operator */
+.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #408090; background-color: #FFF0F0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
+.highlight .gr { color: #F00 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #333 } /* Generic.Output */
+.highlight .gp { color: #C65D09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #04D } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #208050 } /* Literal.Number */
+.highlight .s { color: #4070A0 } /* Literal.String */
+.highlight .na { color: #4070A0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0E84B5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60ADD5 } /* Name.Constant */
+.highlight .nd { color: #555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #D55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #06287E } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0E84B5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #BB60D5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #BBB } /* Text.Whitespace */
+.highlight .mb { color: #208050 } /* Literal.Number.Bin */
+.highlight .mf { color: #208050 } /* Literal.Number.Float */
+.highlight .mh { color: #208050 } /* Literal.Number.Hex */
+.highlight .mi { color: #208050 } /* Literal.Number.Integer */
+.highlight .mo { color: #208050 } /* Literal.Number.Oct */
+.highlight .sa { color: #4070A0 } /* Literal.String.Affix */
+.highlight .sb { color: #4070A0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070A0 } /* Literal.String.Char */
+.highlight .dl { color: #4070A0 } /* Literal.String.Delimiter */
+.highlight .sd { color: #4070A0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070A0 } /* Literal.String.Double */
+.highlight .se { color: #4070A0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070A0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70A0D0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #C65D09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070A0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #06287E } /* Name.Function.Magic */
+.highlight .vc { color: #BB60D5 } /* Name.Variable.Class */
+.highlight .vg { color: #BB60D5 } /* Name.Variable.Global */
+.highlight .vi { color: #BB60D5 } /* Name.Variable.Instance */
+.highlight .vm { color: #BB60D5 } /* Name.Variable.Magic */
+.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/docs/_static/searchtools.js b/docs/_static/searchtools.js
new file mode 100644
index 00000000..2c774d17
--- /dev/null
+++ b/docs/_static/searchtools.js
@@ -0,0 +1,632 @@
+/*
+ * Sphinx JavaScript utilities for the full-text search.
+ */
+"use strict";
+
+/**
+ * Simple result scoring code.
+ */
+if (typeof Scorer === "undefined") {
+ var Scorer = {
+ // Implement the following function to further tweak the score for each result
+ // The function takes a result array [docname, title, anchor, descr, score, filename]
+ // and returns the new score.
+ /*
+ score: result => {
+ const [docname, title, anchor, descr, score, filename, kind] = result
+ return score
+ },
+ */
+
+ // query matches the full name of an object
+ objNameMatch: 11,
+ // or matches in the last dotted part of the object name
+ objPartialMatch: 6,
+ // Additive scores depending on the priority of the object
+ objPrio: {
+ 0: 15, // used to be importantResults
+ 1: 5, // used to be objectResults
+ 2: -5, // used to be unimportantResults
+ },
+ // Used when the priority is not in the mapping.
+ objPrioDefault: 0,
+
+ // query found in title
+ title: 15,
+ partialTitle: 7,
+ // query found in terms
+ term: 5,
+ partialTerm: 2,
+ };
+}
+
+// Global search result kind enum, used by themes to style search results.
+class SearchResultKind {
+ static get index() { return "index"; }
+ static get object() { return "object"; }
+ static get text() { return "text"; }
+ static get title() { return "title"; }
+}
+
+const _removeChildren = (element) => {
+ while (element && element.lastChild) element.removeChild(element.lastChild);
+};
+
+/**
+ * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
+ */
+const _escapeRegExp = (string) =>
+ string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
+
+const _displayItem = (item, searchTerms, highlightTerms) => {
+ const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
+ const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
+ const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
+ const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
+ const contentRoot = document.documentElement.dataset.content_root;
+
+ const [docName, title, anchor, descr, score, _filename, kind] = item;
+
+ let listItem = document.createElement("li");
+ // Add a class representing the item's type:
+ // can be used by a theme's CSS selector for styling
+ // See SearchResultKind for the class names.
+ listItem.classList.add(`kind-${kind}`);
+ let requestUrl;
+ let linkUrl;
+ if (docBuilder === "dirhtml") {
+ // dirhtml builder
+ let dirname = docName + "/";
+ if (dirname.match(/\/index\/$/))
+ dirname = dirname.substring(0, dirname.length - 6);
+ else if (dirname === "index/") dirname = "";
+ requestUrl = contentRoot + dirname;
+ linkUrl = requestUrl;
+ } else {
+ // normal html builders
+ requestUrl = contentRoot + docName + docFileSuffix;
+ linkUrl = docName + docLinkSuffix;
+ }
+ let linkEl = listItem.appendChild(document.createElement("a"));
+ linkEl.href = linkUrl + anchor;
+ linkEl.dataset.score = score;
+ linkEl.innerHTML = title;
+ if (descr) {
+ listItem.appendChild(document.createElement("span")).innerHTML =
+ " (" + descr + ")";
+ // highlight search terms in the description
+ if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
+ highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
+ }
+ else if (showSearchSummary)
+ fetch(requestUrl)
+ .then((responseData) => responseData.text())
+ .then((data) => {
+ if (data)
+ listItem.appendChild(
+ Search.makeSearchSummary(data, searchTerms, anchor)
+ );
+ // highlight search terms in the summary
+ if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
+ highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
+ });
+ Search.output.appendChild(listItem);
+};
+const _finishSearch = (resultCount) => {
+ Search.stopPulse();
+ Search.title.innerText = _("Search Results");
+ if (!resultCount)
+ Search.status.innerText = Documentation.gettext(
+ "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
+ );
+ else
+ Search.status.innerText = Documentation.ngettext(
+ "Search finished, found one page matching the search query.",
+ "Search finished, found ${resultCount} pages matching the search query.",
+ resultCount,
+ ).replace('${resultCount}', resultCount);
+};
+const _displayNextItem = (
+ results,
+ resultCount,
+ searchTerms,
+ highlightTerms,
+) => {
+ // results left, load the summary and display it
+ // this is intended to be dynamic (don't sub resultsCount)
+ if (results.length) {
+ _displayItem(results.pop(), searchTerms, highlightTerms);
+ setTimeout(
+ () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
+ 5
+ );
+ }
+ // search finished, update title and status message
+ else _finishSearch(resultCount);
+};
+// Helper function used by query() to order search results.
+// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
+// Order the results by score (in opposite order of appearance, since the
+// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
+const _orderResultsByScoreThenName = (a, b) => {
+ const leftScore = a[4];
+ const rightScore = b[4];
+ if (leftScore === rightScore) {
+ // same score: sort alphabetically
+ const leftTitle = a[1].toLowerCase();
+ const rightTitle = b[1].toLowerCase();
+ if (leftTitle === rightTitle) return 0;
+ return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
+ }
+ return leftScore > rightScore ? 1 : -1;
+};
+
+/**
+ * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
+ * custom function per language.
+ *
+ * The regular expression works by splitting the string on consecutive characters
+ * that are not Unicode letters, numbers, underscores, or emoji characters.
+ * This is the same as ``\W+`` in Python, preserving the surrogate pair area.
+ */
+if (typeof splitQuery === "undefined") {
+ var splitQuery = (query) => query
+ .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
+ .filter(term => term) // remove remaining empty strings
+}
+
+/**
+ * Search Module
+ */
+const Search = {
+ _index: null,
+ _queued_query: null,
+ _pulse_status: -1,
+
+ htmlToText: (htmlString, anchor) => {
+ const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
+ for (const removalQuery of [".headerlink", "script", "style"]) {
+ htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
+ }
+ if (anchor) {
+ const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
+ if (anchorContent) return anchorContent.textContent;
+
+ console.warn(
+ `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
+ );
+ }
+
+ // if anchor not specified or not found, fall back to main content
+ const docContent = htmlElement.querySelector('[role="main"]');
+ if (docContent) return docContent.textContent;
+
+ console.warn(
+ "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
+ );
+ return "";
+ },
+
+ init: () => {
+ const query = new URLSearchParams(window.location.search).get("q");
+ document
+ .querySelectorAll('input[name="q"]')
+ .forEach((el) => (el.value = query));
+ if (query) Search.performSearch(query);
+ },
+
+ loadIndex: (url) =>
+ (document.body.appendChild(document.createElement("script")).src = url),
+
+ setIndex: (index) => {
+ Search._index = index;
+ if (Search._queued_query !== null) {
+ const query = Search._queued_query;
+ Search._queued_query = null;
+ Search.query(query);
+ }
+ },
+
+ hasIndex: () => Search._index !== null,
+
+ deferQuery: (query) => (Search._queued_query = query),
+
+ stopPulse: () => (Search._pulse_status = -1),
+
+ startPulse: () => {
+ if (Search._pulse_status >= 0) return;
+
+ const pulse = () => {
+ Search._pulse_status = (Search._pulse_status + 1) % 4;
+ Search.dots.innerText = ".".repeat(Search._pulse_status);
+ if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
+ };
+ pulse();
+ },
+
+ /**
+ * perform a search for something (or wait until index is loaded)
+ */
+ performSearch: (query) => {
+ // create the required interface elements
+ const searchText = document.createElement("h2");
+ searchText.textContent = _("Searching");
+ const searchSummary = document.createElement("p");
+ searchSummary.classList.add("search-summary");
+ searchSummary.innerText = "";
+ const searchList = document.createElement("ul");
+ searchList.setAttribute("role", "list");
+ searchList.classList.add("search");
+
+ const out = document.getElementById("search-results");
+ Search.title = out.appendChild(searchText);
+ Search.dots = Search.title.appendChild(document.createElement("span"));
+ Search.status = out.appendChild(searchSummary);
+ Search.output = out.appendChild(searchList);
+
+ const searchProgress = document.getElementById("search-progress");
+ // Some themes don't use the search progress node
+ if (searchProgress) {
+ searchProgress.innerText = _("Preparing search...");
+ }
+ Search.startPulse();
+
+ // index already loaded, the browser was quick!
+ if (Search.hasIndex()) Search.query(query);
+ else Search.deferQuery(query);
+ },
+
+ _parseQuery: (query) => {
+ // stem the search terms and add them to the correct list
+ const stemmer = new Stemmer();
+ const searchTerms = new Set();
+ const excludedTerms = new Set();
+ const highlightTerms = new Set();
+ const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
+ splitQuery(query.trim()).forEach((queryTerm) => {
+ const queryTermLower = queryTerm.toLowerCase();
+
+ // maybe skip this "word"
+ // stopwords array is from language_data.js
+ if (
+ stopwords.indexOf(queryTermLower) !== -1 ||
+ queryTerm.match(/^\d+$/)
+ )
+ return;
+
+ // stem the word
+ let word = stemmer.stemWord(queryTermLower);
+ // select the correct list
+ if (word[0] === "-") excludedTerms.add(word.substr(1));
+ else {
+ searchTerms.add(word);
+ highlightTerms.add(queryTermLower);
+ }
+ });
+
+ if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
+ localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
+ }
+
+ // console.debug("SEARCH: searching for:");
+ // console.info("required: ", [...searchTerms]);
+ // console.info("excluded: ", [...excludedTerms]);
+
+ return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
+ },
+
+ /**
+ * execute search (requires search index to be loaded)
+ */
+ _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
+ const filenames = Search._index.filenames;
+ const docNames = Search._index.docnames;
+ const titles = Search._index.titles;
+ const allTitles = Search._index.alltitles;
+ const indexEntries = Search._index.indexentries;
+
+ // Collect multiple result groups to be sorted separately and then ordered.
+ // Each is an array of [docname, title, anchor, descr, score, filename, kind].
+ const normalResults = [];
+ const nonMainIndexResults = [];
+
+ _removeChildren(document.getElementById("search-progress"));
+
+ const queryLower = query.toLowerCase().trim();
+ for (const [title, foundTitles] of Object.entries(allTitles)) {
+ if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
+ for (const [file, id] of foundTitles) {
+ const score = Math.round(Scorer.title * queryLower.length / title.length);
+ const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
+ normalResults.push([
+ docNames[file],
+ titles[file] !== title ? `${titles[file]} > ${title}` : title,
+ id !== null ? "#" + id : "",
+ null,
+ score + boost,
+ filenames[file],
+ SearchResultKind.title,
+ ]);
+ }
+ }
+ }
+
+ // search for explicit entries in index directives
+ for (const [entry, foundEntries] of Object.entries(indexEntries)) {
+ if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
+ for (const [file, id, isMain] of foundEntries) {
+ const score = Math.round(100 * queryLower.length / entry.length);
+ const result = [
+ docNames[file],
+ titles[file],
+ id ? "#" + id : "",
+ null,
+ score,
+ filenames[file],
+ SearchResultKind.index,
+ ];
+ if (isMain) {
+ normalResults.push(result);
+ } else {
+ nonMainIndexResults.push(result);
+ }
+ }
+ }
+ }
+
+ // lookup as object
+ objectTerms.forEach((term) =>
+ normalResults.push(...Search.performObjectSearch(term, objectTerms))
+ );
+
+ // lookup as search terms in fulltext
+ normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
+
+ // let the scorer override scores with a custom scoring function
+ if (Scorer.score) {
+ normalResults.forEach((item) => (item[4] = Scorer.score(item)));
+ nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
+ }
+
+ // Sort each group of results by score and then alphabetically by name.
+ normalResults.sort(_orderResultsByScoreThenName);
+ nonMainIndexResults.sort(_orderResultsByScoreThenName);
+
+ // Combine the result groups in (reverse) order.
+ // Non-main index entries are typically arbitrary cross-references,
+ // so display them after other results.
+ let results = [...nonMainIndexResults, ...normalResults];
+
+ // remove duplicate search results
+ // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
+ let seen = new Set();
+ results = results.reverse().reduce((acc, result) => {
+ let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
+ if (!seen.has(resultStr)) {
+ acc.push(result);
+ seen.add(resultStr);
+ }
+ return acc;
+ }, []);
+
+ return results.reverse();
+ },
+
+ query: (query) => {
+ const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
+ const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
+
+ // for debugging
+ //Search.lastresults = results.slice(); // a copy
+ // console.info("search results:", Search.lastresults);
+
+ // print the results
+ _displayNextItem(results, results.length, searchTerms, highlightTerms);
+ },
+
+ /**
+ * search for object names
+ */
+ performObjectSearch: (object, objectTerms) => {
+ const filenames = Search._index.filenames;
+ const docNames = Search._index.docnames;
+ const objects = Search._index.objects;
+ const objNames = Search._index.objnames;
+ const titles = Search._index.titles;
+
+ const results = [];
+
+ const objectSearchCallback = (prefix, match) => {
+ const name = match[4]
+ const fullname = (prefix ? prefix + "." : "") + name;
+ const fullnameLower = fullname.toLowerCase();
+ if (fullnameLower.indexOf(object) < 0) return;
+
+ let score = 0;
+ const parts = fullnameLower.split(".");
+
+ // check for different match types: exact matches of full name or
+ // "last name" (i.e. last dotted part)
+ if (fullnameLower === object || parts.slice(-1)[0] === object)
+ score += Scorer.objNameMatch;
+ else if (parts.slice(-1)[0].indexOf(object) > -1)
+ score += Scorer.objPartialMatch; // matches in last name
+
+ const objName = objNames[match[1]][2];
+ const title = titles[match[0]];
+
+ // If more than one term searched for, we require other words to be
+ // found in the name/title/description
+ const otherTerms = new Set(objectTerms);
+ otherTerms.delete(object);
+ if (otherTerms.size > 0) {
+ const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
+ if (
+ [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
+ )
+ return;
+ }
+
+ let anchor = match[3];
+ if (anchor === "") anchor = fullname;
+ else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
+
+ const descr = objName + _(", in ") + title;
+
+ // add custom score for some objects according to scorer
+ if (Scorer.objPrio.hasOwnProperty(match[2]))
+ score += Scorer.objPrio[match[2]];
+ else score += Scorer.objPrioDefault;
+
+ results.push([
+ docNames[match[0]],
+ fullname,
+ "#" + anchor,
+ descr,
+ score,
+ filenames[match[0]],
+ SearchResultKind.object,
+ ]);
+ };
+ Object.keys(objects).forEach((prefix) =>
+ objects[prefix].forEach((array) =>
+ objectSearchCallback(prefix, array)
+ )
+ );
+ return results;
+ },
+
+ /**
+ * search for full-text terms in the index
+ */
+ performTermsSearch: (searchTerms, excludedTerms) => {
+ // prepare search
+ const terms = Search._index.terms;
+ const titleTerms = Search._index.titleterms;
+ const filenames = Search._index.filenames;
+ const docNames = Search._index.docnames;
+ const titles = Search._index.titles;
+
+ const scoreMap = new Map();
+ const fileMap = new Map();
+
+ // perform the search on the required terms
+ searchTerms.forEach((word) => {
+ const files = [];
+ const arr = [
+ { files: terms[word], score: Scorer.term },
+ { files: titleTerms[word], score: Scorer.title },
+ ];
+ // add support for partial matches
+ if (word.length > 2) {
+ const escapedWord = _escapeRegExp(word);
+ if (!terms.hasOwnProperty(word)) {
+ Object.keys(terms).forEach((term) => {
+ if (term.match(escapedWord))
+ arr.push({ files: terms[term], score: Scorer.partialTerm });
+ });
+ }
+ if (!titleTerms.hasOwnProperty(word)) {
+ Object.keys(titleTerms).forEach((term) => {
+ if (term.match(escapedWord))
+ arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
+ });
+ }
+ }
+
+ // no match but word was a required one
+ if (arr.every((record) => record.files === undefined)) return;
+
+ // found search word in contents
+ arr.forEach((record) => {
+ if (record.files === undefined) return;
+
+ let recordFiles = record.files;
+ if (recordFiles.length === undefined) recordFiles = [recordFiles];
+ files.push(...recordFiles);
+
+ // set score for the word in each file
+ recordFiles.forEach((file) => {
+ if (!scoreMap.has(file)) scoreMap.set(file, {});
+ scoreMap.get(file)[word] = record.score;
+ });
+ });
+
+ // create the mapping
+ files.forEach((file) => {
+ if (!fileMap.has(file)) fileMap.set(file, [word]);
+ else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
+ });
+ });
+
+ // now check if the files don't contain excluded terms
+ const results = [];
+ for (const [file, wordList] of fileMap) {
+ // check if all requirements are matched
+
+ // as search terms with length < 3 are discarded
+ const filteredTermCount = [...searchTerms].filter(
+ (term) => term.length > 2
+ ).length;
+ if (
+ wordList.length !== searchTerms.size &&
+ wordList.length !== filteredTermCount
+ )
+ continue;
+
+ // ensure that none of the excluded terms is in the search result
+ if (
+ [...excludedTerms].some(
+ (term) =>
+ terms[term] === file ||
+ titleTerms[term] === file ||
+ (terms[term] || []).includes(file) ||
+ (titleTerms[term] || []).includes(file)
+ )
+ )
+ break;
+
+ // select one (max) score for the file.
+ const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
+ // add result to the result list
+ results.push([
+ docNames[file],
+ titles[file],
+ "",
+ null,
+ score,
+ filenames[file],
+ SearchResultKind.text,
+ ]);
+ }
+ return results;
+ },
+
+ /**
+ * helper function to return a node containing the
+ * search summary for a given text. keywords is a list
+ * of stemmed words.
+ */
+ makeSearchSummary: (htmlText, keywords, anchor) => {
+ const text = Search.htmlToText(htmlText, anchor);
+ if (text === "") return null;
+
+ const textLower = text.toLowerCase();
+ const actualStartPosition = [...keywords]
+ .map((k) => textLower.indexOf(k.toLowerCase()))
+ .filter((i) => i > -1)
+ .slice(-1)[0];
+ const startWithContext = Math.max(actualStartPosition - 120, 0);
+
+ const top = startWithContext === 0 ? "" : "...";
+ const tail = startWithContext + 240 < text.length ? "..." : "";
+
+ let summary = document.createElement("p");
+ summary.classList.add("context");
+ summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
+
+ return summary;
+ },
+};
+
+_ready(Search.init);
diff --git a/docs/_static/sphinx_highlight.js b/docs/_static/sphinx_highlight.js
new file mode 100644
index 00000000..8a96c69a
--- /dev/null
+++ b/docs/_static/sphinx_highlight.js
@@ -0,0 +1,154 @@
+/* Highlighting utilities for Sphinx HTML documentation. */
+"use strict";
+
+const SPHINX_HIGHLIGHT_ENABLED = true
+
+/**
+ * highlight a given string on a node by wrapping it in
+ * span elements with the given class name.
+ */
+const _highlight = (node, addItems, text, className) => {
+ if (node.nodeType === Node.TEXT_NODE) {
+ const val = node.nodeValue;
+ const parent = node.parentNode;
+ const pos = val.toLowerCase().indexOf(text);
+ if (
+ pos >= 0 &&
+ !parent.classList.contains(className) &&
+ !parent.classList.contains("nohighlight")
+ ) {
+ let span;
+
+ const closestNode = parent.closest("body, svg, foreignObject");
+ const isInSVG = closestNode && closestNode.matches("svg");
+ if (isInSVG) {
+ span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ } else {
+ span = document.createElement("span");
+ span.classList.add(className);
+ }
+
+ span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+ const rest = document.createTextNode(val.substr(pos + text.length));
+ parent.insertBefore(
+ span,
+ parent.insertBefore(
+ rest,
+ node.nextSibling
+ )
+ );
+ node.nodeValue = val.substr(0, pos);
+ /* There may be more occurrences of search term in this node. So call this
+ * function recursively on the remaining fragment.
+ */
+ _highlight(rest, addItems, text, className);
+
+ if (isInSVG) {
+ const rect = document.createElementNS(
+ "http://www.w3.org/2000/svg",
+ "rect"
+ );
+ const bbox = parent.getBBox();
+ rect.x.baseVal.value = bbox.x;
+ rect.y.baseVal.value = bbox.y;
+ rect.width.baseVal.value = bbox.width;
+ rect.height.baseVal.value = bbox.height;
+ rect.setAttribute("class", className);
+ addItems.push({ parent: parent, target: rect });
+ }
+ }
+ } else if (node.matches && !node.matches("button, select, textarea")) {
+ node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
+ }
+};
+const _highlightText = (thisNode, text, className) => {
+ let addItems = [];
+ _highlight(thisNode, addItems, text, className);
+ addItems.forEach((obj) =>
+ obj.parent.insertAdjacentElement("beforebegin", obj.target)
+ );
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+const SphinxHighlight = {
+
+ /**
+ * highlight the search words provided in localstorage in the text
+ */
+ highlightSearchWords: () => {
+ if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
+
+ // get and clear terms from localstorage
+ const url = new URL(window.location);
+ const highlight =
+ localStorage.getItem("sphinx_highlight_terms")
+ || url.searchParams.get("highlight")
+ || "";
+ localStorage.removeItem("sphinx_highlight_terms")
+ url.searchParams.delete("highlight");
+ window.history.replaceState({}, "", url);
+
+ // get individual terms from highlight string
+ const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
+ if (terms.length === 0) return; // nothing to do
+
+ // There should never be more than one element matching "div.body"
+ const divBody = document.querySelectorAll("div.body");
+ const body = divBody.length ? divBody[0] : document.querySelector("body");
+ window.setTimeout(() => {
+ terms.forEach((term) => _highlightText(body, term, "highlighted"));
+ }, 10);
+
+ const searchBox = document.getElementById("searchbox");
+ if (searchBox === null) return;
+ searchBox.appendChild(
+ document
+ .createRange()
+ .createContextualFragment(
+ '
' +
+ '' +
+ _("Hide Search Matches") +
+ "
"
+ )
+ );
+ },
+
+ /**
+ * helper function to hide the search marks again
+ */
+ hideSearchWords: () => {
+ document
+ .querySelectorAll("#searchbox .highlight-link")
+ .forEach((el) => el.remove());
+ document
+ .querySelectorAll("span.highlighted")
+ .forEach((el) => el.classList.remove("highlighted"));
+ localStorage.removeItem("sphinx_highlight_terms")
+ },
+
+ initEscapeListener: () => {
+ // only install a listener if it is really needed
+ if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
+
+ document.addEventListener("keydown", (event) => {
+ // bail for input elements
+ if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
+ // bail with special keys
+ if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
+ if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
+ SphinxHighlight.hideSearchWords();
+ event.preventDefault();
+ }
+ });
+ },
+};
+
+_ready(() => {
+ /* Do not call highlightSearchWords() when we are on the search page.
+ * It will highlight words from the *previous* search query.
+ */
+ if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
+ SphinxHighlight.initEscapeListener();
+});
diff --git a/docs/genindex.html b/docs/genindex.html
new file mode 100644
index 00000000..c3d0de2c
--- /dev/null
+++ b/docs/genindex.html
@@ -0,0 +1,1211 @@
+
+
+
+
+
+
+
+
Index — driftscan 0.0.1 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ driftscan
+
+
+
+
+
+
+
+
+
+
Index
+
+
+
_
+ |
A
+ |
B
+ |
C
+ |
D
+ |
E
+ |
F
+ |
G
+ |
H
+ |
I
+ |
K
+ |
L
+ |
M
+ |
N
+ |
O
+ |
P
+ |
Q
+ |
R
+ |
S
+ |
T
+ |
U
+ |
V
+ |
W
+ |
Z
+
+
+
_
+
+
+
A
+
+
+
B
+
+
+
C
+
+
+
D
+
+
+
+
+ drift.pipeline.pipeline
+
+
+
+ drift.pipeline.timestream
+
+
+
+ drift.scripts
+
+
+
+ drift.telescope
+
+
+
+ drift.telescope.cylbeam
+
+
+
+ drift.telescope.cylinder
+
+
+
+ drift.telescope.disharray
+
+
+
+ drift.telescope.exotic_cylinder
+
+
+
+ drift.telescope.focalplane
+
+
+
+ drift.telescope.gmrt
+
+
+
+ drift.telescope.oldcylinder
+
+
+
+ drift.telescope.restrictedcylinder
+
+
+
+ drift.util
+
+
+
+ drift.util.blockla
+
+
+
+ drift.util.plotutil
+
+
+
+ drift.util.util
+
+
+
+
+
+
E
+
+
+
F
+
+
+
G
+
+
+
H
+
+
+
I
+
+
+
K
+
+
+
L
+
+
+
M
+
+
+
N
+
+
+
O
+
+
+
P
+
+
+
Q
+
+
+
R
+
+
+
S
+
+
+
T
+
+
+
U
+
+
+
V
+
+
+
W
+
+
+
Z
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 00000000..8b6af262
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
driftscan — driftscan 0.0.1 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ driftscan
+
+
+
+
+
+
+
+
+
+driftscan
+A package for the analysis of transit radio interferometers, with a particular
+focus on compact arrays searching for cosmological 21cm emission.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/objects.inv b/docs/objects.inv
new file mode 100644
index 00000000..88a5853a
Binary files /dev/null and b/docs/objects.inv differ
diff --git a/docs/overview.html b/docs/overview.html
new file mode 100644
index 00000000..1845e7bd
--- /dev/null
+++ b/docs/overview.html
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
Overview of Driftscan — driftscan 0.0.1 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ driftscan
+
+
+
+
+
+
+
+
+
+Overview of Driftscan
+driftscan is a package for the analysis of data from transit radio
+interferometers using the m-mode formalism which is described in
+arXiv:1302.0327 and arXiv:1401.2095 .
+Given a design of a telescope, this package can:
+
+Generate a set of products used to analyse data from it and simulate
+timestreams.
+Construct a filter which can be used to extract cosmological 21 cm emission
+from astrophysical foregrounds, such as our galaxy and radio point sources.
+Estimate the 21cm power spectrum using an optimal quadratic estimator
+
+There are essentially two separate parts to running driftscan: generating the
+analysis products, and running the pipeline. We describe how these work below.
+
+Generating the Analysis Products
+
+Describing a Telescope
+
+The first step in running driftscan is to give a model for the telescope. This
+consists of:
+
+A description of the primary beam of each feed. This is a two component
+vector at every at every point in the sky to describe the electric field
+response of the beam.
+The locations of each feed which are assumed to be co-planar and located at
+a specified latitude.
+A model of the instrument noise. The noise is assumed to be stationary and
+Gaussian and so is uniquely described by its power spectrum.
+
+
+
+Beam Transfer Matrices
+Now the fun can begin. The next step is to generate the Beam Transfer matrices
+for each m-mode. This is conceptually straightforward:
+
+
+Make sky maps of the polarised response for each feed pair at all observed
+frequencies.
+Take the spherical harmonic transform of each polarised set of maps.
+Transpose to group by the m, of each spherical harmonic transform. We must
+also conjugate the negative m modes to group them with the positive m
+modes.
+
+In practice this can be numerically challenging due to the shear quantity of
+frequencies and feed pairs present. This step is MPI
parallelised and
+proceeds by distributing subsets of the responses to geneate and transform
+across many nodes, and performing an in memory transpose across all these
+nodes to group by m. It then processes the next subset, and repeats until we
+have generated the complete set.
+As much of the information measured by an interferometer is redundant (in that
+it tells us nothing new about the sky), we generate a new set of transfer
+matrices that map to only the useful subset of the data. This is the next step
+of the analysis (described in detail in arXiv:1401.2095 ) and is done by
+taking repeated singular value decompositions of each m-mode. We generate
+three matrices for each m-mode:
+
+\(\mathbf{U}\) which maps the measured data into the SVD basis.
+\(\tilde{\mathbf{B}}\) which describes how the SVD modes relate to the sky
+\(\tilde{\mathbf{B}}^+\) the pseudo-inverse or map-making matrix,
+
+As each m-mode and each frequency is independent this can be trivially
+parallelised. This step also generates the pseudo-inverse matrices used for
+imaging.
+
+
+
+
+Running the Pipeline
+Meh 2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/py-modindex.html b/docs/py-modindex.html
new file mode 100644
index 00000000..08fa3ebc
--- /dev/null
+++ b/docs/py-modindex.html
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+
+
Python Module Index — driftscan 0.0.1 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ driftscan
+
+
+
+
+
+
+
+ Python Module Index
+
+
+
+
+
+
+
+
+
+
Python Module Index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/reference.html b/docs/reference.html
new file mode 100644
index 00000000..b9b80142
--- /dev/null
+++ b/docs/reference.html
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
Programming References — driftscan 0.0.1 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ driftscan
+
+
+
+
+
+
+
+
+
+Programming References
+Modelling for transit radio telescopes.
+The existing code is mostly focussed on interferometers but can also be used
+for multi-beam transit telescopes.
+
+Submodules
+
+
+core
+Core functionality for driftscan modelling.
+
+pipeline
+A very simple pipeline for analysis of noiseless simulation data.
+
+scripts
+
+
+telescope
+Telescope class implementation
+
+util
+Utility functions for driftscan
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/search.html b/docs/search.html
new file mode 100644
index 00000000..b7d0dbe1
--- /dev/null
+++ b/docs/search.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
Search — driftscan 0.0.1 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ driftscan
+
+
+
+
+
+
+
+
+
+
+
+ Please activate JavaScript to enable the search functionality.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/searchindex.js b/docs/searchindex.js
new file mode 100644
index 00000000..cad7b93b
--- /dev/null
+++ b/docs/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({"alltitles": {"Beam Transfer Matrices": [[29, "beam-transfer-matrices"]], "Code tips": [[29, null], [29, null]], "Contents": [[28, "contents"]], "Describing a Telescope": [[29, "describing-a-telescope"]], "Generating the Analysis Products": [[29, "generating-the-analysis-products"]], "Indices and tables": [[28, "indices-and-tables"]], "Karhunen Loeve Transform": [[29, "karhunen-loeve-transform"]], "Overview of Driftscan": [[29, null]], "Programming References": [[30, null]], "Running the Pipeline": [[29, "running-the-pipeline"]], "Submodules": [[30, "submodules"]], "drift.core": [[0, null]], "drift.core.beamtransfer": [[1, null]], "drift.core.crosspower": [[2, null]], "drift.core.doublekl": [[3, null]], "drift.core.kltransform": [[4, null]], "drift.core.manager": [[5, null]], "drift.core.psestimation": [[6, null]], "drift.core.psmc": [[7, null]], "drift.core.skymodel": [[8, null]], "drift.core.telescope": [[9, null]], "drift.core.visibility": [[10, null]], "drift.pipeline": [[11, null]], "drift.pipeline.pipeline": [[12, null]], "drift.pipeline.timestream": [[13, null]], "drift.scripts": [[14, null]], "drift.telescope": [[15, null]], "drift.telescope.cylbeam": [[16, null]], "drift.telescope.cylinder": [[17, null]], "drift.telescope.disharray": [[18, null]], "drift.telescope.exotic_cylinder": [[19, null]], "drift.telescope.focalplane": [[20, null]], "drift.telescope.gmrt": [[21, null]], "drift.telescope.oldcylinder": [[22, null]], "drift.telescope.restrictedcylinder": [[23, null]], "drift.util": [[24, null]], "drift.util.blockla": [[25, null]], "drift.util.plotutil": [[26, null]], "drift.util.util": [[27, null]], "driftscan": [[28, null]]}, "docnames": ["_autosummary/drift.core", "_autosummary/drift.core.beamtransfer", "_autosummary/drift.core.crosspower", "_autosummary/drift.core.doublekl", "_autosummary/drift.core.kltransform", "_autosummary/drift.core.manager", "_autosummary/drift.core.psestimation", "_autosummary/drift.core.psmc", "_autosummary/drift.core.skymodel", "_autosummary/drift.core.telescope", "_autosummary/drift.core.visibility", "_autosummary/drift.pipeline", "_autosummary/drift.pipeline.pipeline", "_autosummary/drift.pipeline.timestream", "_autosummary/drift.scripts", "_autosummary/drift.telescope", "_autosummary/drift.telescope.cylbeam", "_autosummary/drift.telescope.cylinder", "_autosummary/drift.telescope.disharray", "_autosummary/drift.telescope.exotic_cylinder", "_autosummary/drift.telescope.focalplane", "_autosummary/drift.telescope.gmrt", "_autosummary/drift.telescope.oldcylinder", "_autosummary/drift.telescope.restrictedcylinder", "_autosummary/drift.util", "_autosummary/drift.util.blockla", "_autosummary/drift.util.plotutil", "_autosummary/drift.util.util", "index", "overview", "reference"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["_autosummary/drift.core.rst", "_autosummary/drift.core.beamtransfer.rst", "_autosummary/drift.core.crosspower.rst", "_autosummary/drift.core.doublekl.rst", "_autosummary/drift.core.kltransform.rst", "_autosummary/drift.core.manager.rst", "_autosummary/drift.core.psestimation.rst", "_autosummary/drift.core.psmc.rst", "_autosummary/drift.core.skymodel.rst", "_autosummary/drift.core.telescope.rst", "_autosummary/drift.core.visibility.rst", "_autosummary/drift.pipeline.rst", "_autosummary/drift.pipeline.pipeline.rst", "_autosummary/drift.pipeline.timestream.rst", "_autosummary/drift.scripts.rst", "_autosummary/drift.telescope.rst", "_autosummary/drift.telescope.cylbeam.rst", "_autosummary/drift.telescope.cylinder.rst", "_autosummary/drift.telescope.disharray.rst", "_autosummary/drift.telescope.exotic_cylinder.rst", "_autosummary/drift.telescope.focalplane.rst", "_autosummary/drift.telescope.gmrt.rst", "_autosummary/drift.telescope.oldcylinder.rst", "_autosummary/drift.telescope.restrictedcylinder.rst", "_autosummary/drift.util.rst", "_autosummary/drift.util.blockla.rst", "_autosummary/drift.util.plotutil.rst", "_autosummary/drift.util.util.rst", "index.rst", "overview.rst", "reference.rst"], "indexentries": {"_foreground_regulariser (drift.core.kltransform.kltransform attribute)": [[4, "drift.core.kltransform.KLTransform._foreground_regulariser", false]], "accuracy_boost (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.accuracy_boost", false]], "apply_config() (drift.core.manager.productmanager method)": [[5, "drift.core.manager.ProductManager.apply_config", false]], "auto_correlations (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.auto_correlations", false]], "bandtype (drift.core.psestimation.psestimation attribute)": [[6, "drift.core.psestimation.PSEstimation.bandtype", false]], "baselines (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.baselines", false]], "beam() (drift.core.telescope.unpolarisedtelescope method)": [[9, "drift.core.telescope.UnpolarisedTelescope.beam", false]], "beam() (drift.telescope.cylinder.unpolarisedcylindertelescope method)": [[17, "drift.telescope.cylinder.UnpolarisedCylinderTelescope.beam", false]], "beam() (drift.telescope.disharray.disharray method)": [[18, "drift.telescope.disharray.DishArray.beam", false]], "beam() (drift.telescope.focalplane.focalplanearray method)": [[20, "drift.telescope.focalplane.FocalPlaneArray.beam", false]], "beam() (drift.telescope.gmrt.gmrtarray method)": [[21, "drift.telescope.gmrt.GmrtArray.beam", false]], "beam() (drift.telescope.oldcylinder.unpolarisedcylindertelescope method)": [[22, "drift.telescope.oldcylinder.UnpolarisedCylinderTelescope.beam", false]], "beam() (drift.telescope.restrictedcylinder.restrictedcylinder method)": [[23, "drift.telescope.restrictedcylinder.RestrictedCylinder.beam", false]], "beam_amp() (in module drift.telescope.cylbeam)": [[16, "drift.telescope.cylbeam.beam_amp", false]], "beam_cache_size (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.beam_cache_size", false]], "beam_circular() (in module drift.telescope.disharray)": [[18, "drift.telescope.disharray.beam_circular", false]], "beam_circular() (in module drift.telescope.focalplane)": [[20, "drift.telescope.focalplane.beam_circular", false]], "beam_circular() (in module drift.telescope.gmrt)": [[21, "drift.telescope.gmrt.beam_circular", false]], "beam_dipole() (in module drift.telescope.cylbeam)": [[16, "drift.telescope.cylbeam.beam_dipole", false]], "beam_m() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.beam_m", false]], "beam_singularvalues() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.beam_singularvalues", false]], "beam_svd() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.beam_svd", false]], "beam_svd() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.beam_svd", false]], "beam_ut() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.beam_ut", false]], "beam_x() (in module drift.telescope.cylbeam)": [[16, "drift.telescope.cylbeam.beam_x", false]], "beam_y() (in module drift.telescope.cylbeam)": [[16, "drift.telescope.cylbeam.beam_y", false]], "beamclass (drift.core.telescope.simplepolarisedtelescope property)": [[9, "drift.core.telescope.SimplePolarisedTelescope.beamclass", false]], "beamclass (drift.core.telescope.simpleunpolarisedtelescope property)": [[9, "drift.core.telescope.SimpleUnpolarisedTelescope.beamclass", false]], "beamclass (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.beamclass", false]], "beamclass (drift.telescope.exotic_cylinder.cylinderperturbed property)": [[19, "drift.telescope.exotic_cylinder.CylinderPerturbed.beamclass", false]], "beamtransfer (class in drift.core.beamtransfer)": [[1, "drift.core.beamtransfer.BeamTransfer", false]], "beamtransferfullsvd (class in drift.core.beamtransfer)": [[1, "drift.core.beamtransfer.BeamTransferFullSVD", false]], "beamtransfernosvd (class in drift.core.beamtransfer)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD", false]], "beamtransfertempsvd (class in drift.core.beamtransfer)": [[1, "drift.core.beamtransfer.BeamTransferTempSVD", false]], "beamx() (drift.core.telescope.simplepolarisedtelescope method)": [[9, "drift.core.telescope.SimplePolarisedTelescope.beamx", false]], "beamx() (drift.telescope.cylinder.polarisedcylindertelescope method)": [[17, "drift.telescope.cylinder.PolarisedCylinderTelescope.beamx", false]], "beamx() (drift.telescope.disharray.disharray method)": [[18, "drift.telescope.disharray.DishArray.beamx", false]], "beamx() (drift.telescope.exotic_cylinder.cylinderperturbed method)": [[19, "drift.telescope.exotic_cylinder.CylinderPerturbed.beamx", false]], "beamx() (drift.telescope.gmrt.gmrtarray method)": [[21, "drift.telescope.gmrt.GmrtArray.beamx", false]], "beamx() (drift.telescope.oldcylinder.polarisedcylindertelescope method)": [[22, "drift.telescope.oldcylinder.PolarisedCylinderTelescope.beamx", false]], "beamx() (drift.telescope.restrictedcylinder.restrictedpolarisedcylinder method)": [[23, "drift.telescope.restrictedcylinder.RestrictedPolarisedCylinder.beamx", false]], "beamy() (drift.core.telescope.simplepolarisedtelescope method)": [[9, "drift.core.telescope.SimplePolarisedTelescope.beamy", false]], "beamy() (drift.telescope.cylinder.polarisedcylindertelescope method)": [[17, "drift.telescope.cylinder.PolarisedCylinderTelescope.beamy", false]], "beamy() (drift.telescope.disharray.disharray method)": [[18, "drift.telescope.disharray.DishArray.beamy", false]], "beamy() (drift.telescope.exotic_cylinder.cylinderperturbed method)": [[19, "drift.telescope.exotic_cylinder.CylinderPerturbed.beamy", false]], "beamy() (drift.telescope.gmrt.gmrtarray method)": [[21, "drift.telescope.gmrt.GmrtArray.beamy", false]], "beamy() (drift.telescope.oldcylinder.polarisedcylindertelescope method)": [[22, "drift.telescope.oldcylinder.PolarisedCylinderTelescope.beamy", false]], "beamy() (drift.telescope.restrictedcylinder.restrictedpolarisedcylinder method)": [[23, "drift.telescope.restrictedcylinder.RestrictedPolarisedCylinder.beamy", false]], "block_root() (in module drift.core.psmc)": [[7, "drift.core.psmc.block_root", false]], "cache_last() (in module drift.util.util)": [[27, "drift.util.util.cache_last", false]], "cacheproj() (drift.core.psestimation.psexact method)": [[6, "drift.core.psestimation.PSExact.cacheproj", false]], "calculate_feedpairs() (drift.core.telescope.transittelescope method)": [[9, "drift.core.telescope.TransitTelescope.calculate_feedpairs", false]], "channel_bin (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.channel_bin", false]], "channel_list (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.channel_list", false]], "channel_range (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.channel_range", false]], "chunk_cache_size (drift.core.beamtransfer.beamtransfer attribute)": [[1, "drift.core.beamtransfer.BeamTransfer.chunk_cache_size", false]], "crosspower (class in drift.core.crosspower)": [[2, "drift.core.crosspower.CrossPower", false]], "cylinder_beam() (in module drift.core.visibility)": [[10, "drift.core.visibility.cylinder_beam", false]], "cylinder_width (drift.telescope.cylinder.cylindertelescope attribute)": [[17, "drift.telescope.cylinder.CylinderTelescope.cylinder_width", false]], "cylinder_width (drift.telescope.oldcylinder.cylindertelescope attribute)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.cylinder_width", false]], "cylinderextra (class in drift.telescope.exotic_cylinder)": [[19, "drift.telescope.exotic_cylinder.CylinderExtra", false]], "cylinderperturbed (class in drift.telescope.exotic_cylinder)": [[19, "drift.telescope.exotic_cylinder.CylinderPerturbed", false]], "cylindershift (class in drift.telescope.exotic_cylinder)": [[19, "drift.telescope.exotic_cylinder.CylinderShift", false]], "cylindertelescope (class in drift.telescope.cylinder)": [[17, "drift.telescope.cylinder.CylinderTelescope", false]], "cylindertelescope (class in drift.telescope.oldcylinder)": [[22, "drift.telescope.oldcylinder.CylinderTelescope", false]], "cylspacing (drift.telescope.cylinder.cylindertelescope attribute)": [[17, "drift.telescope.cylinder.CylinderTelescope.cylspacing", false]], "cylspacing (drift.telescope.oldcylinder.cylindertelescope attribute)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.cylspacing", false]], "decorrelate_ps() (in module drift.core.psestimation)": [[6, "drift.core.psestimation.decorrelate_ps", false]], "decorrelate_ps_file() (in module drift.core.psestimation)": [[6, "drift.core.psestimation.decorrelate_ps_file", false]], "delbands() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.delbands", false]], "delproj() (drift.core.psestimation.psexact method)": [[6, "drift.core.psestimation.PSExact.delproj", false]], "dish_width (drift.telescope.disharray.disharray attribute)": [[18, "drift.telescope.disharray.DishArray.dish_width", false]], "dish_width (drift.telescope.gmrt.gmrtarray attribute)": [[21, "drift.telescope.gmrt.GmrtArray.dish_width", false]], "disharray (class in drift.telescope.disharray)": [[18, "drift.telescope.disharray.DishArray", false]], "doublekl (class in drift.core.doublekl)": [[3, "drift.core.doublekl.DoubleKL", false]], "drift": [[30, "module-drift", false]], "drift.core": [[0, "module-drift.core", false]], "drift.core.beamtransfer": [[1, "module-drift.core.beamtransfer", false]], "drift.core.crosspower": [[2, "module-drift.core.crosspower", false]], "drift.core.doublekl": [[3, "module-drift.core.doublekl", false]], "drift.core.kltransform": [[4, "module-drift.core.kltransform", false]], "drift.core.manager": [[5, "module-drift.core.manager", false]], "drift.core.psestimation": [[6, "module-drift.core.psestimation", false]], "drift.core.psmc": [[7, "module-drift.core.psmc", false]], "drift.core.skymodel": [[8, "module-drift.core.skymodel", false]], "drift.core.telescope": [[9, "module-drift.core.telescope", false]], "drift.core.visibility": [[10, "module-drift.core.visibility", false]], "drift.pipeline": [[11, "module-drift.pipeline", false]], "drift.pipeline.pipeline": [[12, "module-drift.pipeline.pipeline", false]], "drift.pipeline.timestream": [[13, "module-drift.pipeline.timestream", false]], "drift.scripts": [[14, "module-drift.scripts", false]], "drift.telescope": [[15, "module-drift.telescope", false]], "drift.telescope.cylbeam": [[16, "module-drift.telescope.cylbeam", false]], "drift.telescope.cylinder": [[17, "module-drift.telescope.cylinder", false]], "drift.telescope.disharray": [[18, "module-drift.telescope.disharray", false]], "drift.telescope.exotic_cylinder": [[19, "module-drift.telescope.exotic_cylinder", false]], "drift.telescope.focalplane": [[20, "module-drift.telescope.focalplane", false]], "drift.telescope.gmrt": [[21, "module-drift.telescope.gmrt", false]], "drift.telescope.oldcylinder": [[22, "module-drift.telescope.oldcylinder", false]], "drift.telescope.restrictedcylinder": [[23, "module-drift.telescope.restrictedcylinder", false]], "drift.util": [[24, "module-drift.util", false]], "drift.util.blockla": [[25, "module-drift.util.blockla", false]], "drift.util.plotutil": [[26, "module-drift.util.plotutil", false]], "drift.util.util": [[27, "module-drift.util.util", false]], "eigh_gen() (in module drift.core.kltransform)": [[4, "drift.core.kltransform.eigh_gen", false]], "evals_all() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.evals_all", false]], "evals_m() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.evals_m", false]], "feed_positions_cylinder() (drift.telescope.cylinder.cylindertelescope method)": [[17, "drift.telescope.cylinder.CylinderTelescope.feed_positions_cylinder", false]], "feed_positions_cylinder() (drift.telescope.exotic_cylinder.cylinderextra method)": [[19, "drift.telescope.exotic_cylinder.CylinderExtra.feed_positions_cylinder", false]], "feed_positions_cylinder() (drift.telescope.exotic_cylinder.cylindershift method)": [[19, "drift.telescope.exotic_cylinder.CylinderShift.feed_positions_cylinder", false]], "feed_positions_cylinder() (drift.telescope.exotic_cylinder.gradientcylinder method)": [[19, "drift.telescope.exotic_cylinder.GradientCylinder.feed_positions_cylinder", false]], "feed_positions_cylinder() (drift.telescope.exotic_cylinder.randomcylinder method)": [[19, "drift.telescope.exotic_cylinder.RandomCylinder.feed_positions_cylinder", false]], "feed_positions_cylinder() (drift.telescope.oldcylinder.cylindertelescope method)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.feed_positions_cylinder", false]], "feed_positions_cylinder() (drift.telescope.restrictedcylinder.restrictedextra method)": [[23, "drift.telescope.restrictedcylinder.RestrictedExtra.feed_positions_cylinder", false]], "feed_spacing (drift.telescope.cylinder.cylindertelescope attribute)": [[17, "drift.telescope.cylinder.CylinderTelescope.feed_spacing", false]], "feed_spacing (drift.telescope.oldcylinder.cylindertelescope attribute)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.feed_spacing", false]], "feedconj (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.feedconj", false]], "feedmap (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.feedmap", false]], "feedmask (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.feedmask", false]], "feedpositions (drift.core.telescope.simplepolarisedtelescope property)": [[9, "drift.core.telescope.SimplePolarisedTelescope.feedpositions", false]], "feedpositions (drift.core.telescope.simpleunpolarisedtelescope property)": [[9, "drift.core.telescope.SimpleUnpolarisedTelescope.feedpositions", false]], "feedpositions (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.feedpositions", false]], "feedpositions (drift.telescope.disharray.disharray property)": [[18, "drift.telescope.disharray.DishArray.feedpositions", false]], "feedpositions (drift.telescope.exotic_cylinder.cylinderperturbed property)": [[19, "drift.telescope.exotic_cylinder.CylinderPerturbed.feedpositions", false]], "feedpositions (drift.telescope.focalplane.focalplanearray property)": [[20, "drift.telescope.focalplane.FocalPlaneArray.feedpositions", false]], "fisher_bias_m() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.fisher_bias_m", false]], "fisher_file() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.fisher_file", false]], "fixpath() (in module drift.pipeline.pipeline)": [[12, "drift.pipeline.pipeline.fixpath", false]], "focalplanearray (class in drift.telescope.focalplane)": [[20, "drift.telescope.focalplane.FocalPlaneArray", false]], "foreground() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.foreground", false]], "foreground_threshold (drift.core.doublekl.doublekl attribute)": [[3, "drift.core.doublekl.DoubleKL.foreground_threshold", false]], "fraunhofer_cylinder() (in module drift.telescope.cylbeam)": [[16, "drift.telescope.cylbeam.fraunhofer_cylinder", false]], "freq_mode (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.freq_mode", false]], "frequencies (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.frequencies", false]], "from_config() (drift.core.manager.productmanager class method)": [[5, "drift.core.manager.ProductManager.from_config", false]], "fwhm_e (drift.telescope.cylinder.cylindertelescope property)": [[17, "drift.telescope.cylinder.CylinderTelescope.fwhm_e", false]], "fwhm_h (drift.telescope.cylinder.cylindertelescope property)": [[17, "drift.telescope.cylinder.CylinderTelescope.fwhm_h", false]], "gen_sample() (drift.core.psmc.psmontecarlo method)": [[7, "drift.core.psmc.PSMonteCarlo.gen_sample", false]], "gen_vecs() (drift.core.psmc.psmontecarloalt method)": [[7, "drift.core.psmc.PSMonteCarloAlt.gen_vecs", false]], "genbands() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.genbands", false]], "generate() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.generate", false]], "generate() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.generate", false]], "generate() (drift.core.manager.productmanager method)": [[5, "drift.core.manager.ProductManager.generate", false]], "generate() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.generate", false]], "generate() (drift.pipeline.pipeline.pipelinemanager method)": [[12, "drift.pipeline.pipeline.PipelineManager.generate", false]], "generate_cache() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.generate_cache", false]], "generate_klmodes (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.generate_klmodes", false]], "generate_modes (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.generate_modes", false]], "generate_powerspectra (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.generate_powerspectra", false]], "getproj() (drift.core.psestimation.psexact method)": [[6, "drift.core.psestimation.PSExact.getproj", false]], "gmrtarray (class in drift.telescope.gmrt)": [[21, "drift.telescope.gmrt.GmrtArray", false]], "gmrtunpolarised (class in drift.telescope.gmrt)": [[21, "drift.telescope.gmrt.GmrtUnpolarised", false]], "gradientcylinder (class in drift.telescope.exotic_cylinder)": [[19, "drift.telescope.exotic_cylinder.GradientCylinder", false]], "horizon() (in module drift.core.visibility)": [[10, "drift.core.visibility.horizon", false]], "in_cylinder (drift.telescope.cylinder.cylindertelescope attribute)": [[17, "drift.telescope.cylinder.CylinderTelescope.in_cylinder", false]], "in_cylinder (drift.telescope.oldcylinder.cylindertelescope attribute)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.in_cylinder", false]], "in_range() (in module drift.core.telescope)": [[9, "drift.core.telescope.in_range", false]], "included_baseline (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.included_baseline", false]], "included_freq (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.included_freq", false]], "included_pol (drift.core.telescope.polarisedtelescope property)": [[9, "drift.core.telescope.PolarisedTelescope.included_pol", false]], "included_pol (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.included_pol", false]], "index_map_prod (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.index_map_prod", false]], "index_map_stack (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.index_map_stack", false]], "input_index (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.input_index", false]], "intpattern() (in module drift.util.util)": [[27, "drift.util.util.intpattern", false]], "inv_gen() (in module drift.core.kltransform)": [[4, "drift.core.kltransform.inv_gen", false]], "invbeam_m() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.invbeam_m", false]], "invbeam_svd() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.invbeam_svd", false]], "inverse (drift.core.kltransform.kltransform attribute)": [[4, "drift.core.kltransform.KLTransform.inverse", false]], "invmodes_m() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.invmodes_m", false]], "klmodes (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.klmodes", false]], "kltransform (class in drift.core.kltransform)": [[4, "drift.core.kltransform.KLTransform", false]], "l_boost (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.l_boost", false]], "lmax (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.lmax", false]], "local_origin (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.local_origin", false]], "make_clzz() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.make_clzz", false]], "makeproj() (drift.core.psestimation.psexact method)": [[6, "drift.core.psestimation.PSExact.makeproj", false]], "max_lm() (in module drift.core.telescope)": [[9, "drift.core.telescope.max_lm", false]], "mem_chunk (drift.core.beamtransfer.beamtransfer attribute)": [[1, "drift.core.beamtransfer.BeamTransfer.mem_chunk", false]], "mmax (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.mmax", false]], "modes_m() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.modes_m", false]], "module": [[0, "module-drift.core", false], [1, "module-drift.core.beamtransfer", false], [2, "module-drift.core.crosspower", false], [3, "module-drift.core.doublekl", false], [4, "module-drift.core.kltransform", false], [5, "module-drift.core.manager", false], [6, "module-drift.core.psestimation", false], [7, "module-drift.core.psmc", false], [8, "module-drift.core.skymodel", false], [9, "module-drift.core.telescope", false], [10, "module-drift.core.visibility", false], [11, "module-drift.pipeline", false], [12, "module-drift.pipeline.pipeline", false], [13, "module-drift.pipeline.timestream", false], [14, "module-drift.scripts", false], [15, "module-drift.telescope", false], [16, "module-drift.telescope.cylbeam", false], [17, "module-drift.telescope.cylinder", false], [18, "module-drift.telescope.disharray", false], [19, "module-drift.telescope.exotic_cylinder", false], [20, "module-drift.telescope.focalplane", false], [21, "module-drift.telescope.gmrt", false], [22, "module-drift.telescope.oldcylinder", false], [23, "module-drift.telescope.restrictedcylinder", false], [24, "module-drift.util", false], [25, "module-drift.util.blockla", false], [26, "module-drift.util.plotutil", false], [27, "module-drift.util.util", false], [30, "module-drift", false]], "multiply_dm_dm() (in module drift.util.blockla)": [[25, "drift.util.blockla.multiply_dm_dm", false]], "multiply_dm_v() (in module drift.util.blockla)": [[25, "drift.util.blockla.multiply_dm_v", false]], "natpattern() (in module drift.util.util)": [[27, "drift.util.util.natpattern", false]], "nbands (drift.core.psestimation.psestimation property)": [[6, "drift.core.psestimation.PSEstimation.nbands", false]], "nbase (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.nbase", false]], "ndays (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.ndays", false]], "ndof() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.ndof", false]], "ndof() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.ndof", false]], "ndofmax (drift.core.beamtransfer.beamtransfernosvd property)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.ndofmax", false]], "nfeed (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.nfeed", false]], "nfeed (drift.telescope.focalplane.focalplanearray property)": [[20, "drift.telescope.focalplane.FocalPlaneArray.nfeed", false]], "nfreq (drift.core.beamtransfer.beamtransfer property)": [[1, "drift.core.beamtransfer.BeamTransfer.nfreq", false]], "nfreq (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.nfreq", false]], "noisepower() (drift.core.telescope.transittelescope method)": [[9, "drift.core.telescope.TransitTelescope.noisepower", false]], "noisepower() (drift.core.telescope.unpolarisedtelescope method)": [[9, "drift.core.telescope.UnpolarisedTelescope.noisepower", false]], "npairs (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.npairs", false]], "nsamples (drift.core.psmc.psmontecarlo attribute)": [[7, "drift.core.psmc.PSMonteCarlo.nsamples", false]], "nsamples (drift.core.psmc.psmontecarloalt attribute)": [[7, "drift.core.psmc.PSMonteCarloAlt.nsamples", false]], "nsky (drift.core.beamtransfer.beamtransfer property)": [[1, "drift.core.beamtransfer.BeamTransfer.nsky", false]], "nswitch (drift.core.psmc.psmontecarloalt attribute)": [[7, "drift.core.psmc.PSMonteCarloAlt.nswitch", false]], "ntel (drift.core.beamtransfer.beamtransfer property)": [[1, "drift.core.beamtransfer.BeamTransfer.ntel", false]], "num_cylinders (drift.telescope.cylinder.cylindertelescope attribute)": [[17, "drift.telescope.cylinder.CylinderTelescope.num_cylinders", false]], "num_cylinders (drift.telescope.oldcylinder.cylindertelescope attribute)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.num_cylinders", false]], "num_evals() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.num_evals", false]], "num_feeds (drift.telescope.cylinder.cylindertelescope attribute)": [[17, "drift.telescope.cylinder.CylinderTelescope.num_feeds", false]], "num_feeds (drift.telescope.oldcylinder.cylindertelescope attribute)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.num_feeds", false]], "num_freq (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.num_freq", false]], "num_pol_sky (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.num_pol_sky", false]], "output_directory (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.output_directory", false]], "pinv_dm() (in module drift.util.blockla)": [[25, "drift.util.blockla.pinv_dm", false]], "pipelinemanager (class in drift.pipeline.pipeline)": [[12, "drift.pipeline.pipeline.PipelineManager", false]], "pointsources (class in drift.core.skymodel)": [[8, "drift.core.skymodel.PointSources", false]], "pol_iqu() (in module drift.core.visibility)": [[10, "drift.core.visibility.pol_IQU", false]], "polarisation (drift.core.telescope.polarisedtelescope property)": [[9, "drift.core.telescope.PolarisedTelescope.polarisation", false]], "polarisation (drift.core.telescope.simplepolarisedtelescope property)": [[9, "drift.core.telescope.SimplePolarisedTelescope.polarisation", false]], "polarisedcylindertelescope (class in drift.telescope.cylinder)": [[17, "drift.telescope.cylinder.PolarisedCylinderTelescope", false]], "polarisedcylindertelescope (class in drift.telescope.oldcylinder)": [[22, "drift.telescope.oldcylinder.PolarisedCylinderTelescope", false]], "polarisedtelescope (class in drift.core.telescope)": [[9, "drift.core.telescope.PolarisedTelescope", false]], "polpattern() (in module drift.telescope.cylbeam)": [[16, "drift.telescope.cylbeam.polpattern", false]], "polsvcut (drift.core.beamtransfer.beamtransfer attribute)": [[1, "drift.core.beamtransfer.BeamTransfer.polsvcut", false]], "powerspectra (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.powerspectra", false]], "prodstack (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.prodstack", false]], "product_directory (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.product_directory", false]], "productmanager (class in drift.core.manager)": [[5, "drift.core.manager.ProductManager", false]], "project_matrix_diagonal_telescope_to_svd() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_matrix_diagonal_telescope_to_svd", false]], "project_matrix_diagonal_telescope_to_svd() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.project_matrix_diagonal_telescope_to_svd", false]], "project_matrix_forward() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_matrix_forward", false]], "project_matrix_sky_to_kl() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.project_matrix_sky_to_kl", false]], "project_matrix_sky_to_svd() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_matrix_sky_to_svd", false]], "project_matrix_sky_to_svd() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.project_matrix_sky_to_svd", false]], "project_matrix_sky_to_telescope() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_matrix_sky_to_telescope", false]], "project_matrix_svd_to_kl() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.project_matrix_svd_to_kl", false]], "project_matrix_telescope_to_svd() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.project_matrix_telescope_to_svd", false]], "project_vector_backward() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_backward", false]], "project_vector_forward() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_forward", false]], "project_vector_kl_to_svd() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.project_vector_kl_to_svd", false]], "project_vector_sky_to_kl() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.project_vector_sky_to_kl", false]], "project_vector_sky_to_svd() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_sky_to_svd", false]], "project_vector_sky_to_svd() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.project_vector_sky_to_svd", false]], "project_vector_sky_to_telescope() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_sky_to_telescope", false]], "project_vector_svd_to_kl() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.project_vector_svd_to_kl", false]], "project_vector_svd_to_sky() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_svd_to_sky", false]], "project_vector_svd_to_sky() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.project_vector_svd_to_sky", false]], "project_vector_svd_to_telescope() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_svd_to_telescope", false]], "project_vector_telescope_to_sky() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_telescope_to_sky", false]], "project_vector_telescope_to_svd() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.project_vector_telescope_to_svd", false]], "project_vector_telescope_to_svd() (drift.core.beamtransfer.beamtransfernosvd method)": [[1, "drift.core.beamtransfer.BeamTransferNoSVD.project_vector_telescope_to_svd", false]], "psestimation (class in drift.core.psestimation)": [[6, "drift.core.psestimation.PSEstimation", false]], "psexact (class in drift.core.psestimation)": [[6, "drift.core.psestimation.PSExact", false]], "psmontecarlo (class in drift.core.psmc)": [[7, "drift.core.psmc.PSMonteCarlo", false]], "psmontecarloalt (class in drift.core.psmc)": [[7, "drift.core.psmc.PSMonteCarloAlt", false]], "q_estimator() (drift.core.psestimation.psestimation method)": [[6, "drift.core.psestimation.PSEstimation.q_estimator", false]], "randomcylinder (class in drift.telescope.exotic_cylinder)": [[19, "drift.telescope.exotic_cylinder.RandomCylinder", false]], "redundancy (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.redundancy", false]], "regrid_polar() (in module drift.util.plotutil)": [[26, "drift.util.plotutil.regrid_polar", false]], "restrictedbeam (class in drift.telescope.restrictedcylinder)": [[23, "drift.telescope.restrictedcylinder.RestrictedBeam", false]], "restrictedcylinder (class in drift.telescope.restrictedcylinder)": [[23, "drift.telescope.restrictedcylinder.RestrictedCylinder", false]], "restrictedextra (class in drift.telescope.restrictedcylinder)": [[23, "drift.telescope.restrictedcylinder.RestrictedExtra", false]], "restrictedpolarisedcylinder (class in drift.telescope.restrictedcylinder)": [[23, "drift.telescope.restrictedcylinder.RestrictedPolarisedCylinder", false]], "reverse_map_stack (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.reverse_map_stack", false]], "run() (drift.pipeline.pipeline.pipelinemanager method)": [[12, "drift.pipeline.pipeline.PipelineManager.run", false]], "signal() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.signal", false]], "sim_skyvec() (in module drift.core.psmc)": [[7, "drift.core.psmc.sim_skyvec", false]], "simplepolarisedtelescope (class in drift.core.telescope)": [[9, "drift.core.telescope.SimplePolarisedTelescope", false]], "simpleunpolarisedtelescope (class in drift.core.telescope)": [[9, "drift.core.telescope.SimpleUnpolarisedTelescope", false]], "simulate() (in module drift.pipeline.timestream)": [[13, "drift.pipeline.timestream.simulate", false]], "skip_baselines (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.skip_baselines", false]], "skip_freq (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.skip_freq", false]], "skip_pol (drift.core.telescope.polarisedtelescope attribute)": [[9, "drift.core.telescope.PolarisedTelescope.skip_pol", false]], "skip_v (drift.core.telescope.polarisedtelescope attribute)": [[9, "drift.core.telescope.PolarisedTelescope.skip_V", false]], "skymodes_m() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.skymodes_m", false]], "sn_covariance() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.sn_covariance", false]], "subset (drift.core.kltransform.kltransform attribute)": [[4, "drift.core.kltransform.KLTransform.subset", false]], "svcut (drift.core.beamtransfer.beamtransfer attribute)": [[1, "drift.core.beamtransfer.BeamTransfer.svcut", false]], "svd_all() (drift.core.beamtransfer.beamtransfer method)": [[1, "drift.core.beamtransfer.BeamTransfer.svd_all", false]], "svd_dm() (in module drift.util.blockla)": [[25, "drift.util.blockla.svd_dm", false]], "svd_gen() (in module drift.core.beamtransfer)": [[1, "drift.core.beamtransfer.svd_gen", false]], "svd_len (drift.core.beamtransfer.beamtransfer property)": [[1, "drift.core.beamtransfer.BeamTransfer.svd_len", false]], "svd_len (drift.core.beamtransfer.beamtransferfullsvd property)": [[1, "drift.core.beamtransfer.BeamTransferFullSVD.svd_len", false]], "threshold (drift.core.kltransform.kltransform attribute)": [[4, "drift.core.kltransform.KLTransform.threshold", false]], "timestream_directory (drift.pipeline.pipeline.pipelinemanager attribute)": [[12, "drift.pipeline.pipeline.PipelineManager.timestream_directory", false]], "touching (drift.telescope.cylinder.cylindertelescope attribute)": [[17, "drift.telescope.cylinder.CylinderTelescope.touching", false]], "touching (drift.telescope.oldcylinder.cylindertelescope attribute)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.touching", false]], "transfer_for_baseline() (drift.core.telescope.transittelescope method)": [[9, "drift.core.telescope.TransitTelescope.transfer_for_baseline", false]], "transfer_for_frequency() (drift.core.telescope.transittelescope method)": [[9, "drift.core.telescope.TransitTelescope.transfer_for_frequency", false]], "transfer_matrices() (drift.core.telescope.transittelescope method)": [[9, "drift.core.telescope.TransitTelescope.transfer_matrices", false]], "transform_save() (drift.core.kltransform.kltransform method)": [[4, "drift.core.kltransform.KLTransform.transform_save", false]], "transittelescope (class in drift.core.telescope)": [[9, "drift.core.telescope.TransitTelescope", false]], "truncate (drift.core.beamtransfer.beamtransfer attribute)": [[1, "drift.core.beamtransfer.BeamTransfer.truncate", false]], "truncate_maxl (drift.core.beamtransfer.beamtransfer attribute)": [[1, "drift.core.beamtransfer.BeamTransfer.truncate_maxl", false]], "truncate_rel (drift.core.beamtransfer.beamtransfer attribute)": [[1, "drift.core.beamtransfer.BeamTransfer.truncate_rel", false]], "tsys() (drift.core.telescope.transittelescope method)": [[9, "drift.core.telescope.TransitTelescope.tsys", false]], "tsys_flat (drift.core.telescope.transittelescope attribute)": [[9, "drift.core.telescope.TransitTelescope.tsys_flat", false]], "u_width (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.u_width", false]], "u_width (drift.telescope.cylinder.cylindertelescope property)": [[17, "drift.telescope.cylinder.CylinderTelescope.u_width", false]], "u_width (drift.telescope.disharray.disharray property)": [[18, "drift.telescope.disharray.DishArray.u_width", false]], "u_width (drift.telescope.focalplane.focalplanearray property)": [[20, "drift.telescope.focalplane.FocalPlaneArray.u_width", false]], "u_width (drift.telescope.gmrt.gmrtarray property)": [[21, "drift.telescope.gmrt.GmrtArray.u_width", false]], "u_width (drift.telescope.oldcylinder.cylindertelescope property)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.u_width", false]], "uniquepairs (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.uniquepairs", false]], "unpolarisedcylindertelescope (class in drift.telescope.cylinder)": [[17, "drift.telescope.cylinder.UnpolarisedCylinderTelescope", false]], "unpolarisedcylindertelescope (class in drift.telescope.oldcylinder)": [[22, "drift.telescope.oldcylinder.UnpolarisedCylinderTelescope", false]], "unpolarisedtelescope (class in drift.core.telescope)": [[9, "drift.core.telescope.UnpolarisedTelescope", false]], "uv_plane_cart() (in module drift.core.visibility)": [[10, "drift.core.visibility.uv_plane_cart", false]], "v_width (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.v_width", false]], "v_width (drift.telescope.cylinder.cylindertelescope property)": [[17, "drift.telescope.cylinder.CylinderTelescope.v_width", false]], "v_width (drift.telescope.disharray.disharray property)": [[18, "drift.telescope.disharray.DishArray.v_width", false]], "v_width (drift.telescope.focalplane.focalplanearray property)": [[20, "drift.telescope.focalplane.FocalPlaneArray.v_width", false]], "v_width (drift.telescope.gmrt.gmrtarray property)": [[21, "drift.telescope.gmrt.GmrtArray.v_width", false]], "v_width (drift.telescope.oldcylinder.cylindertelescope property)": [[22, "drift.telescope.oldcylinder.CylinderTelescope.v_width", false]], "wavelengths (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.wavelengths", false]], "zenith (drift.core.telescope.transittelescope property)": [[9, "drift.core.telescope.TransitTelescope.zenith", false]]}, "objects": {"": [[30, 0, 0, "-", "drift"]], "drift": [[0, 0, 0, "-", "core"], [11, 0, 0, "-", "pipeline"], [14, 0, 0, "-", "scripts"], [15, 0, 0, "-", "telescope"], [24, 0, 0, "-", "util"]], "drift.core": [[1, 0, 0, "-", "beamtransfer"], [2, 0, 0, "-", "crosspower"], [3, 0, 0, "-", "doublekl"], [4, 0, 0, "-", "kltransform"], [5, 0, 0, "-", "manager"], [6, 0, 0, "-", "psestimation"], [7, 0, 0, "-", "psmc"], [8, 0, 0, "-", "skymodel"], [9, 0, 0, "-", "telescope"], [10, 0, 0, "-", "visibility"]], "drift.core.beamtransfer": [[1, 1, 1, "", "BeamTransfer"], [1, 1, 1, "", "BeamTransferFullSVD"], [1, 1, 1, "", "BeamTransferNoSVD"], [1, 1, 1, "", "BeamTransferTempSVD"], [1, 5, 1, "", "svd_gen"]], "drift.core.beamtransfer.BeamTransfer": [[1, 2, 1, "", "beam_m"], [1, 2, 1, "", "beam_singularvalues"], [1, 2, 1, "", "beam_svd"], [1, 2, 1, "", "beam_ut"], [1, 3, 1, "", "chunk_cache_size"], [1, 2, 1, "", "generate"], [1, 2, 1, "", "generate_cache"], [1, 2, 1, "", "invbeam_m"], [1, 2, 1, "", "invbeam_svd"], [1, 3, 1, "", "mem_chunk"], [1, 2, 1, "", "ndof"], [1, 4, 1, "", "nfreq"], [1, 4, 1, "", "nsky"], [1, 4, 1, "", "ntel"], [1, 3, 1, "", "polsvcut"], [1, 2, 1, "", "project_matrix_diagonal_telescope_to_svd"], [1, 2, 1, "", "project_matrix_forward"], [1, 2, 1, "", "project_matrix_sky_to_svd"], [1, 2, 1, "", "project_matrix_sky_to_telescope"], [1, 2, 1, "", "project_vector_backward"], [1, 2, 1, "", "project_vector_forward"], [1, 2, 1, "", "project_vector_sky_to_svd"], [1, 2, 1, "", "project_vector_sky_to_telescope"], [1, 2, 1, "", "project_vector_svd_to_sky"], [1, 2, 1, "", "project_vector_svd_to_telescope"], [1, 2, 1, "", "project_vector_telescope_to_sky"], [1, 2, 1, "", "project_vector_telescope_to_svd"], [1, 3, 1, "", "svcut"], [1, 2, 1, "", "svd_all"], [1, 4, 1, "", "svd_len"], [1, 3, 1, "", "truncate"], [1, 3, 1, "", "truncate_maxl"], [1, 3, 1, "", "truncate_rel"]], "drift.core.beamtransfer.BeamTransferFullSVD": [[1, 4, 1, "", "svd_len"]], "drift.core.beamtransfer.BeamTransferNoSVD": [[1, 2, 1, "", "beam_svd"], [1, 2, 1, "", "ndof"], [1, 4, 1, "", "ndofmax"], [1, 2, 1, "", "project_matrix_diagonal_telescope_to_svd"], [1, 2, 1, "", "project_matrix_sky_to_svd"], [1, 2, 1, "", "project_matrix_telescope_to_svd"], [1, 2, 1, "", "project_vector_sky_to_svd"], [1, 2, 1, "", "project_vector_svd_to_sky"], [1, 2, 1, "", "project_vector_telescope_to_svd"]], "drift.core.crosspower": [[2, 1, 1, "", "CrossPower"]], "drift.core.doublekl": [[3, 1, 1, "", "DoubleKL"]], "drift.core.doublekl.DoubleKL": [[3, 3, 1, "", "foreground_threshold"]], "drift.core.kltransform": [[4, 1, 1, "", "KLTransform"], [4, 5, 1, "", "eigh_gen"], [4, 5, 1, "", "inv_gen"]], "drift.core.kltransform.KLTransform": [[4, 3, 1, "", "_foreground_regulariser"], [4, 2, 1, "", "evals_all"], [4, 2, 1, "", "evals_m"], [4, 2, 1, "", "foreground"], [4, 2, 1, "", "generate"], [4, 3, 1, "", "inverse"], [4, 2, 1, "", "invmodes_m"], [4, 2, 1, "", "modes_m"], [4, 2, 1, "", "project_matrix_sky_to_kl"], [4, 2, 1, "", "project_matrix_svd_to_kl"], [4, 2, 1, "", "project_vector_kl_to_svd"], [4, 2, 1, "", "project_vector_sky_to_kl"], [4, 2, 1, "", "project_vector_svd_to_kl"], [4, 2, 1, "", "signal"], [4, 2, 1, "", "skymodes_m"], [4, 2, 1, "", "sn_covariance"], [4, 3, 1, "", "subset"], [4, 3, 1, "", "threshold"], [4, 2, 1, "", "transform_save"]], "drift.core.manager": [[5, 1, 1, "", "ProductManager"]], "drift.core.manager.ProductManager": [[5, 2, 1, "", "apply_config"], [5, 2, 1, "", "from_config"], [5, 2, 1, "", "generate"]], "drift.core.psestimation": [[6, 1, 1, "", "PSEstimation"], [6, 1, 1, "", "PSExact"], [6, 5, 1, "", "decorrelate_ps"], [6, 5, 1, "", "decorrelate_ps_file"]], "drift.core.psestimation.PSEstimation": [[6, 3, 1, "", "bandtype"], [6, 2, 1, "", "delbands"], [6, 2, 1, "", "fisher_bias_m"], [6, 2, 1, "", "fisher_file"], [6, 2, 1, "", "genbands"], [6, 2, 1, "", "generate"], [6, 2, 1, "", "make_clzz"], [6, 4, 1, "", "nbands"], [6, 2, 1, "", "num_evals"], [6, 2, 1, "", "q_estimator"]], "drift.core.psestimation.PSExact": [[6, 2, 1, "", "cacheproj"], [6, 2, 1, "", "delproj"], [6, 2, 1, "", "getproj"], [6, 2, 1, "", "makeproj"]], "drift.core.psmc": [[7, 1, 1, "", "PSMonteCarlo"], [7, 1, 1, "", "PSMonteCarloAlt"], [7, 5, 1, "", "block_root"], [7, 5, 1, "", "sim_skyvec"]], "drift.core.psmc.PSMonteCarlo": [[7, 2, 1, "", "gen_sample"], [7, 3, 1, "", "nsamples"]], "drift.core.psmc.PSMonteCarloAlt": [[7, 2, 1, "", "gen_vecs"], [7, 3, 1, "", "nsamples"], [7, 3, 1, "", "nswitch"]], "drift.core.skymodel": [[8, 1, 1, "", "PointSources"]], "drift.core.telescope": [[9, 1, 1, "", "PolarisedTelescope"], [9, 1, 1, "", "SimplePolarisedTelescope"], [9, 1, 1, "", "SimpleUnpolarisedTelescope"], [9, 1, 1, "", "TransitTelescope"], [9, 1, 1, "", "UnpolarisedTelescope"], [9, 5, 1, "", "in_range"], [9, 5, 1, "", "max_lm"]], "drift.core.telescope.PolarisedTelescope": [[9, 4, 1, "", "included_pol"], [9, 4, 1, "", "polarisation"], [9, 3, 1, "", "skip_V"], [9, 3, 1, "", "skip_pol"]], "drift.core.telescope.SimplePolarisedTelescope": [[9, 4, 1, "", "beamclass"], [9, 2, 1, "", "beamx"], [9, 2, 1, "", "beamy"], [9, 4, 1, "", "feedpositions"], [9, 4, 1, "", "polarisation"]], "drift.core.telescope.SimpleUnpolarisedTelescope": [[9, 4, 1, "", "beamclass"], [9, 4, 1, "", "feedpositions"]], "drift.core.telescope.TransitTelescope": [[9, 3, 1, "", "accuracy_boost"], [9, 3, 1, "", "auto_correlations"], [9, 4, 1, "", "baselines"], [9, 3, 1, "", "beam_cache_size"], [9, 4, 1, "", "beamclass"], [9, 2, 1, "", "calculate_feedpairs"], [9, 3, 1, "", "channel_bin"], [9, 3, 1, "", "channel_list"], [9, 3, 1, "", "channel_range"], [9, 4, 1, "", "feedconj"], [9, 4, 1, "", "feedmap"], [9, 4, 1, "", "feedmask"], [9, 4, 1, "", "feedpositions"], [9, 3, 1, "", "freq_mode"], [9, 4, 1, "", "frequencies"], [9, 4, 1, "", "included_baseline"], [9, 4, 1, "", "included_freq"], [9, 4, 1, "", "included_pol"], [9, 4, 1, "", "index_map_prod"], [9, 4, 1, "", "index_map_stack"], [9, 4, 1, "", "input_index"], [9, 3, 1, "", "l_boost"], [9, 4, 1, "", "lmax"], [9, 3, 1, "", "local_origin"], [9, 4, 1, "", "mmax"], [9, 4, 1, "", "nbase"], [9, 3, 1, "", "ndays"], [9, 4, 1, "", "nfeed"], [9, 4, 1, "", "nfreq"], [9, 2, 1, "", "noisepower"], [9, 4, 1, "", "npairs"], [9, 3, 1, "", "num_freq"], [9, 4, 1, "", "num_pol_sky"], [9, 4, 1, "", "prodstack"], [9, 4, 1, "", "redundancy"], [9, 4, 1, "", "reverse_map_stack"], [9, 3, 1, "", "skip_baselines"], [9, 3, 1, "", "skip_freq"], [9, 2, 1, "", "transfer_for_baseline"], [9, 2, 1, "", "transfer_for_frequency"], [9, 2, 1, "", "transfer_matrices"], [9, 2, 1, "", "tsys"], [9, 3, 1, "", "tsys_flat"], [9, 4, 1, "", "u_width"], [9, 4, 1, "", "uniquepairs"], [9, 4, 1, "", "v_width"], [9, 4, 1, "", "wavelengths"], [9, 4, 1, "", "zenith"]], "drift.core.telescope.UnpolarisedTelescope": [[9, 2, 1, "", "beam"], [9, 2, 1, "", "noisepower"]], "drift.core.visibility": [[10, 5, 1, "", "cylinder_beam"], [10, 5, 1, "", "horizon"], [10, 5, 1, "", "pol_IQU"], [10, 5, 1, "", "uv_plane_cart"]], "drift.pipeline": [[12, 0, 0, "-", "pipeline"], [13, 0, 0, "-", "timestream"]], "drift.pipeline.pipeline": [[12, 1, 1, "", "PipelineManager"], [12, 5, 1, "", "fixpath"]], "drift.pipeline.pipeline.PipelineManager": [[12, 2, 1, "", "generate"], [12, 3, 1, "", "generate_klmodes"], [12, 3, 1, "", "generate_modes"], [12, 3, 1, "", "generate_powerspectra"], [12, 3, 1, "", "klmodes"], [12, 3, 1, "", "output_directory"], [12, 3, 1, "", "powerspectra"], [12, 3, 1, "", "product_directory"], [12, 2, 1, "", "run"], [12, 3, 1, "", "timestream_directory"]], "drift.pipeline.timestream": [[13, 5, 1, "", "simulate"]], "drift.telescope": [[16, 0, 0, "-", "cylbeam"], [17, 0, 0, "-", "cylinder"], [18, 0, 0, "-", "disharray"], [19, 0, 0, "-", "exotic_cylinder"], [20, 0, 0, "-", "focalplane"], [21, 0, 0, "-", "gmrt"], [22, 0, 0, "-", "oldcylinder"], [23, 0, 0, "-", "restrictedcylinder"]], "drift.telescope.cylbeam": [[16, 5, 1, "", "beam_amp"], [16, 5, 1, "", "beam_dipole"], [16, 5, 1, "", "beam_x"], [16, 5, 1, "", "beam_y"], [16, 5, 1, "", "fraunhofer_cylinder"], [16, 5, 1, "", "polpattern"]], "drift.telescope.cylinder": [[17, 1, 1, "", "CylinderTelescope"], [17, 1, 1, "", "PolarisedCylinderTelescope"], [17, 1, 1, "", "UnpolarisedCylinderTelescope"]], "drift.telescope.cylinder.CylinderTelescope": [[17, 3, 1, "", "cylinder_width"], [17, 3, 1, "", "cylspacing"], [17, 2, 1, "", "feed_positions_cylinder"], [17, 3, 1, "", "feed_spacing"], [17, 4, 1, "", "fwhm_e"], [17, 4, 1, "", "fwhm_h"], [17, 3, 1, "", "in_cylinder"], [17, 3, 1, "", "num_cylinders"], [17, 3, 1, "", "num_feeds"], [17, 3, 1, "", "touching"], [17, 4, 1, "", "u_width"], [17, 4, 1, "", "v_width"]], "drift.telescope.cylinder.PolarisedCylinderTelescope": [[17, 2, 1, "", "beamx"], [17, 2, 1, "", "beamy"]], "drift.telescope.cylinder.UnpolarisedCylinderTelescope": [[17, 2, 1, "", "beam"]], "drift.telescope.disharray": [[18, 1, 1, "", "DishArray"], [18, 5, 1, "", "beam_circular"]], "drift.telescope.disharray.DishArray": [[18, 2, 1, "", "beam"], [18, 2, 1, "", "beamx"], [18, 2, 1, "", "beamy"], [18, 3, 1, "", "dish_width"], [18, 4, 1, "", "feedpositions"], [18, 4, 1, "", "u_width"], [18, 4, 1, "", "v_width"]], "drift.telescope.exotic_cylinder": [[19, 1, 1, "", "CylinderExtra"], [19, 1, 1, "", "CylinderPerturbed"], [19, 1, 1, "", "CylinderShift"], [19, 1, 1, "", "GradientCylinder"], [19, 1, 1, "", "RandomCylinder"]], "drift.telescope.exotic_cylinder.CylinderExtra": [[19, 2, 1, "", "feed_positions_cylinder"]], "drift.telescope.exotic_cylinder.CylinderPerturbed": [[19, 4, 1, "", "beamclass"], [19, 2, 1, "", "beamx"], [19, 2, 1, "", "beamy"], [19, 4, 1, "", "feedpositions"]], "drift.telescope.exotic_cylinder.CylinderShift": [[19, 2, 1, "", "feed_positions_cylinder"]], "drift.telescope.exotic_cylinder.GradientCylinder": [[19, 2, 1, "", "feed_positions_cylinder"]], "drift.telescope.exotic_cylinder.RandomCylinder": [[19, 2, 1, "", "feed_positions_cylinder"]], "drift.telescope.focalplane": [[20, 1, 1, "", "FocalPlaneArray"], [20, 5, 1, "", "beam_circular"]], "drift.telescope.focalplane.FocalPlaneArray": [[20, 2, 1, "", "beam"], [20, 4, 1, "", "feedpositions"], [20, 4, 1, "", "nfeed"], [20, 4, 1, "", "u_width"], [20, 4, 1, "", "v_width"]], "drift.telescope.gmrt": [[21, 1, 1, "", "GmrtArray"], [21, 1, 1, "", "GmrtUnpolarised"], [21, 5, 1, "", "beam_circular"]], "drift.telescope.gmrt.GmrtArray": [[21, 2, 1, "", "beam"], [21, 2, 1, "", "beamx"], [21, 2, 1, "", "beamy"], [21, 3, 1, "", "dish_width"], [21, 4, 1, "", "u_width"], [21, 4, 1, "", "v_width"]], "drift.telescope.oldcylinder": [[22, 1, 1, "", "CylinderTelescope"], [22, 1, 1, "", "PolarisedCylinderTelescope"], [22, 1, 1, "", "UnpolarisedCylinderTelescope"]], "drift.telescope.oldcylinder.CylinderTelescope": [[22, 3, 1, "", "cylinder_width"], [22, 3, 1, "", "cylspacing"], [22, 2, 1, "", "feed_positions_cylinder"], [22, 3, 1, "", "feed_spacing"], [22, 3, 1, "", "in_cylinder"], [22, 3, 1, "", "num_cylinders"], [22, 3, 1, "", "num_feeds"], [22, 3, 1, "", "touching"], [22, 4, 1, "", "u_width"], [22, 4, 1, "", "v_width"]], "drift.telescope.oldcylinder.PolarisedCylinderTelescope": [[22, 2, 1, "", "beamx"], [22, 2, 1, "", "beamy"]], "drift.telescope.oldcylinder.UnpolarisedCylinderTelescope": [[22, 2, 1, "", "beam"]], "drift.telescope.restrictedcylinder": [[23, 1, 1, "", "RestrictedBeam"], [23, 1, 1, "", "RestrictedCylinder"], [23, 1, 1, "", "RestrictedExtra"], [23, 1, 1, "", "RestrictedPolarisedCylinder"]], "drift.telescope.restrictedcylinder.RestrictedCylinder": [[23, 2, 1, "", "beam"]], "drift.telescope.restrictedcylinder.RestrictedExtra": [[23, 2, 1, "", "feed_positions_cylinder"]], "drift.telescope.restrictedcylinder.RestrictedPolarisedCylinder": [[23, 2, 1, "", "beamx"], [23, 2, 1, "", "beamy"]], "drift.util": [[25, 0, 0, "-", "blockla"], [26, 0, 0, "-", "plotutil"], [27, 0, 0, "-", "util"]], "drift.util.blockla": [[25, 5, 1, "", "multiply_dm_dm"], [25, 5, 1, "", "multiply_dm_v"], [25, 5, 1, "", "pinv_dm"], [25, 5, 1, "", "svd_dm"]], "drift.util.plotutil": [[26, 5, 1, "", "regrid_polar"]], "drift.util.util": [[27, 5, 1, "", "cache_last"], [27, 5, 1, "", "intpattern"], [27, 5, 1, "", "natpattern"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:property", "5": "py:function"}, "terms": {"": [1, 3, 4, 6, 7, 9, 10, 16], "0": [6, 7, 8, 9, 13, 16, 17, 18, 19, 20, 21, 22, 23], "0327": 29, "1": [1, 6, 8, 9, 16, 26], "1024": [9, 26], "128": 1, "1302": 29, "1401": 29, "15": 4, "1997": 6, "1d": 16, "2": [1, 9, 16, 17, 19, 22, 23, 29], "200": 9, "2003": 7, "2012": 7, "2095": 29, "21": 29, "21cm": [4, 28, 29], "2d": 4, "2e": 4, "3": [1, 9, 16], "4": 9, "400": 9, "45": [9, 17, 18, 19, 20, 22, 23], "5": 6, "50": 9, "733": 9, "800": 9, "A": [1, 4, 9, 11, 17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 29], "As": [9, 29], "By": 4, "For": [7, 10, 11], "If": [1, 4, 6, 9, 16, 17, 22], "In": [1, 29], "It": 29, "No": 1, "One": 9, "The": [1, 2, 4, 6, 7, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 29, 30], "There": [9, 29], "These": [6, 9, 29], "To": 1, "_copy_transfer_into_singl": 9, "_foreground_regularis": 4, "_get_uniqu": [9, 19], "_make_matrix_arrai": 9, "_nside": [9, 17, 18, 19, 20, 21, 22, 23], "_transfer_singl": 9, "a_": 4, "ab": [7, 10], "about": [1, 29], "abov": [7, 16], "abstract": [9, 19], "accept": 9, "access": [4, 5, 9, 29], "accuracy_boost": 9, "across": [1, 4, 9, 16, 29], "ad": 4, "add": [4, 9], "add_const": 4, "addit": 1, "after": 1, "again": [9, 19], "against": [6, 9], "al": 7, "align": 10, "all": [1, 4, 6, 9, 17, 20, 22, 29], "allow": [7, 9], "alm": 7, "almost": 9, "along": [17, 22], "alreadi": [4, 6], "also": [4, 29, 30], "alwai": 27, "amount": [1, 9], "amplitud": [6, 8, 16], "an": [4, 6, 7, 9, 10, 17, 18, 19, 21, 22, 23, 25, 26, 29], "analys": 29, "analysi": [5, 11, 12, 28], "angl": [9, 16], "angpo": [16, 18, 20, 21], "angular": [6, 7, 9, 10, 16, 18, 20, 21], "ani": 9, "anoth": 25, "antenna": [16, 17], "antenna_func": 16, "anyth": [5, 9], "ap": 6, "appli": [1, 4, 5, 12, 16], "apply_config": 5, "approxim": [9, 13, 17, 18, 20, 21, 22], "ar": [1, 4, 6, 9, 12, 17, 19, 22, 29], "arbitari": [9, 19], "arg": [1, 23, 25], "arr": 9, "arrai": [4, 6, 9, 18, 19, 20, 21, 25, 28], "array_lik": [4, 9], "arxiv": 29, "ascens": 9, "assum": [1, 9, 13, 16, 29], "astrophys": 29, "attempt": 4, "attribut": 7, "auto": 9, "auto_correl": 9, "automat": 1, "avail": 4, "avoid": 4, "awai": [3, 4], "b": [4, 10, 29], "back": 4, "band": [6, 7, 9], "bandpow": 7, "bandtyp": 6, "bandwidth": 9, "base": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 17, 18, 19, 20, 21, 22, 23], "baselin": [1, 9], "basi": [1, 4, 6, 16, 29], "beam": [1, 5, 9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 30], "beam_amp": 16, "beam_cache_s": 9, "beam_circular": [18, 20, 21], "beam_dipol": 16, "beam_i": 16, "beam_m": [1, 29], "beam_singularvalu": 1, "beam_svd": 1, "beam_ut": 1, "beam_x": 16, "beamclass": [9, 19], "beami": [9, 17, 18, 19, 21, 22, 23], "beamtransf": [4, 29], "beamtransferfullsvd": 1, "beamtransfernosvd": 1, "beamtransfertempsvd": 1, "beamx": [9, 17, 18, 19, 21, 22, 23], "becaus": 1, "been": [4, 9], "befor": 9, "begin": 29, "behaviour": 9, "being": [3, 9], "below": [1, 3, 4, 29], "between": [1, 7, 9, 17, 22], "bi": 6, "bia": [6, 7], "big": 9, "bin": [6, 9, 26], "bl_ind": 9, "bl_indic": 9, "block": [1, 9, 25], "block_root": 7, "bool": [1, 9], "boolean": [1, 4, 6, 9, 12, 17, 22, 25], "boolen": 1, "boost": 16, "both": [4, 5, 9], "boundari": [6, 26], "break": 26, "broadcast": 9, "bt": [3, 4], "c_l": 7, "cach": [1, 4, 6, 7, 9, 27], "cache_last": 27, "cacheproj": 6, "calcul": [1, 4, 5, 6, 7, 9, 10, 12, 13, 16, 17, 18, 20, 21, 22], "calculate_feedpair": 9, "call": 27, "can": [1, 9, 29, 30], "cannot": 1, "caput": 9, "care": 4, "carlo": [6, 7], "cart_img": 26, "cartesian": [6, 16, 26], "case": [1, 4, 9], "casper": 9, "caveat": 4, "center": 9, "centr": 9, "central": 9, "centre_nyquist": 9, "cf": 4, "challeng": 29, "chan_id": 9, "chang": [1, 4], "channel": 9, "channel_bin": 9, "channel_list": 9, "channel_rang": 9, "check": 9, "choos": 9, "chunk": 1, "chunk_cache_s": 1, "circular": [18, 20, 21], "class": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 29], "classmethod": 5, "clzz": 7, "cm": 29, "cmu": 18, "co": [10, 18, 20, 21, 29], "code": 30, "coeffici": 6, "collect": [1, 4, 9], "column": 4, "combin": [1, 9], "common": [17, 22], "compact": 28, "compar": 9, "complet": [17, 22, 29], "complex": [9, 17, 18, 20, 21, 22, 23], "complex128": 9, "complic": 9, "compon": 29, "comput": [1, 4, 7, 9], "conceptu": 29, "config": [1, 5], "configfil": 5, "configur": 5, "conj": [1, 9, 25], "conjug": [1, 9, 25, 29], "consid": [9, 11], "consist": 29, "constant": 4, "constraint": 6, "construct": [4, 25, 29], "contain": [5, 9, 25], "contamin": 3, "control": 10, "convent": 9, "coordin": 10, "copi": [5, 9], "correct": 4, "correctli": 9, "correl": [9, 17, 22], "correlator_input": 9, "correspond": 9, "cosmolog": [28, 29], "covari": [1, 4, 6, 7], "creat": [4, 5, 13], "current": [4, 9], "currenti": 9, "custom": 9, "cut": [1, 4, 8], "cv_fg": 4, "cyl": 9, "cylind": [10, 16, 19, 22, 23], "cylinder_beam": 10, "cylinder_index": [17, 19, 22, 23], "cylinder_width": [17, 22], "cylinderextra": 19, "cylinderperturb": 19, "cylindershift": 19, "cylindertelescop": [17, 22, 23], "cylspac": [17, 22], "cylwidth": 10, "dai": [9, 13], "data": [1, 4, 6, 7, 11, 29], "decomposit": [1, 29], "decor": 27, "decorrel": 6, "decorrelate_p": 6, "decorrelate_ps_fil": 6, "default": [1, 2, 4, 6, 7, 9, 13, 16, 26], "defin": [9, 10], "definit": 4, "degre": [1, 9, 17, 18, 19, 20, 21, 22, 23], "delband": 6, "delet": 6, "delproj": 6, "depend": 1, "deprec": 9, "describ": [9, 16, 18, 21], "descript": 29, "design": 29, "detail": [4, 6, 29], "determin": 9, "devid": 9, "diagon": [1, 4, 25], "diagonalis": 3, "diamet": [18, 20, 21], "dict": [5, 12], "dictionari": 5, "differ": 9, "diffract": 16, "dillon": 7, "dimension": 9, "dipol": 16, "direct": [9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 26], "directori": [1, 2, 5, 6, 7, 12, 13], "directorynam": 13, "dish": [9, 17, 18, 20, 21, 22], "dish_width": [18, 21], "disk": [1, 4, 5, 6, 13], "distribut": [4, 7, 29], "dk": 12, "dmat": 1, "do": [4, 9], "document": 25, "doe": [4, 5], "done": [1, 29], "draco": [9, 11], "draw": 7, "driftscan": [0, 1, 5, 24], "dtype": 9, "dual": [9, 19], "due": [4, 29], "dynam": 1, "e": [6, 9, 10, 16, 17], "each": [1, 6, 7, 9, 10, 16, 17, 18, 20, 21, 22, 25, 26, 29], "earth": [9, 17, 18, 19, 20, 21, 22, 23], "east": 10, "edg": 9, "effect": [9, 10], "eigenbasi": 4, "eigenmod": [6, 7], "eigenvalu": [4, 6, 7], "eigenvector": [4, 25], "eigh_gen": 4, "either": [4, 6, 9], "electr": 29, "element": [1, 9], "emiss": [9, 28, 29], "end": 9, "enough": [6, 9], "entir": 9, "entri": [7, 9, 12], "errmsg": 1, "error": [6, 26], "essenti": [1, 29], "estim": [2, 5, 6, 7, 12, 29], "et": 7, "etc": [9, 12, 17, 18, 20, 21, 22], "eval": 4, "evals_al": 4, "evals_m": 4, "evalu": 1, "evarrai": 4, "evec": 4, "even": 1, "everi": 29, "exact": 6, "exactli": 9, "except": 4, "exclud": 1, "exist": [1, 6, 30], "expand": 12, "exptan": 16, "extens": 7, "extract": 29, "f": 3, "f_1": 10, "f_2": 10, "f_indic": 9, "fact": 7, "factor": [9, 16], "fals": [1, 4, 6, 7, 9, 25], "feed": [9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 29], "feed1": 10, "feed2": 10, "feed_posit": [17, 19, 22, 23], "feed_positions_cylind": [17, 19, 22, 23], "feed_spac": [17, 22], "feedconj": 9, "feedmap": 9, "feedmask": 9, "feedpair": 9, "feedposit": [9, 18, 19, 20], "fetch": [1, 4, 6, 9, 10], "fi": 1, "fiduci": 6, "field": [9, 17, 19, 22, 23, 29], "file": [1, 4, 5, 6], "filenam": 13, "fill": 9, "filter": [1, 2, 5, 6, 7, 12, 29], "final": 9, "find": [1, 4], "fir": 9, "first": [3, 9, 29], "fisher": [6, 7, 26], "fisher_bias_m": 6, "fisher_fil": 6, "fix": 12, "fixpath": 12, "flag": 1, "flat": 9, "flexibl": 11, "float": [1, 9], "fname": 6, "focalplanearrai": 20, "focu": 28, "focuss": 30, "forc": [1, 6], "force_lmax": 9, "force_mmax": 9, "forecast": 6, "foreground": [3, 4, 29], "foreground_threshold": 3, "form": [4, 13, 25], "formal": 29, "found": [4, 7], "four": 7, "fpa": 20, "fraunhof": 16, "fraunhofer_cylind": 16, "freedom": 1, "freq": [1, 4, 9, 17, 18, 19, 20, 21, 22, 23], "freq1": 4, "freq2": 4, "freq_end": 9, "freq_high": 9, "freq_ind": 9, "freq_low": 9, "freq_mod": 9, "freq_start": 9, "frequenc": [1, 6, 9, 17, 18, 19, 20, 21, 22, 23, 29], "from": [1, 4, 5, 6, 7, 9, 13, 16, 17, 19, 22, 23, 29], "from_config": 5, "full": [1, 3, 4, 9, 10, 16, 17, 25], "full_matric": 25, "fun": 29, "func": 27, "function": [0, 1, 4, 6, 7, 8, 9, 10, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "fwhm_e": [16, 17], "fwhm_h": [16, 17], "fwhm_x": 16, "fwhm_y": 16, "g": [6, 9], "galaxi": 29, "gap": [17, 22], "gaussian": 29, "gaussvar": 7, "gb": 1, "gen_sampl": 7, "gen_vec": 7, "genband": 6, "geneat": 29, "gener": [1, 4, 5, 6, 7, 9, 12], "generalis": 4, "generate_cach": 1, "generate_klmod": 12, "generate_mod": 12, "generate_powerspectra": 12, "get": [4, 9, 17, 19, 22, 23], "getproj": 6, "give": [9, 19, 29], "given": [1, 4, 6, 7, 9, 10, 29], "global_lmax": 9, "gmrtarrai": 21, "gmrtunpolaris": 21, "gradientcylind": 19, "greater": [4, 7], "greenwich": 9, "grid": 26, "gridu": [18, 21], "gridv": [18, 21], "ground": 16, "group": 29, "h": [1, 16, 17], "h5py": 6, "ha": [1, 4, 9], "half": [16, 17], "handl": 6, "harmon": [9, 29], "hat": 10, "have": [1, 6, 9, 16, 29], "hdf5": [1, 6], "healpix": [9, 17, 18, 19, 20, 21, 22, 23], "helper": 29, "hermitian": 25, "higher": 8, "highest": 9, "hold": 9, "horizon": 10, "how": 29, "howev": 4, "i": [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 17, 22, 25, 29, 30], "ident": 9, "identifi": 9, "ignor": [1, 7, 9], "illumin": 16, "imag": [26, 29], "implement": [9, 15, 19, 29], "implicitli": 9, "in_cylind": [17, 22], "in_rang": 9, "includ": [4, 6, 9, 10, 17, 22], "included_baselin": 9, "included_freq": 9, "included_pol": 9, "increas": 9, "independ": 29, "index": [1, 4, 6, 9, 17, 18, 19, 20, 21, 22, 23, 28], "index_map": 9, "index_map_prod": 9, "index_map_stack": 9, "indic": [1, 9], "individu": 9, "infinit": 13, "inform": [1, 29], "initialis": [2, 6, 7, 9, 17, 18, 19, 20, 21, 22, 23], "input": [6, 9], "input_a": 9, "input_b": 9, "input_index": 9, "instead": 9, "instrument": [3, 4, 9, 29], "int": [1, 9, 13], "integ": [1, 4, 6, 7, 9, 17, 18, 19, 20, 21, 22, 23, 26, 27], "intend": 9, "interferomet": [9, 28, 29, 30], "interferometr": [18, 21], "intern": 9, "intpattern": 27, "inv": [1, 4], "inv_gen": 4, "invbeam": 1, "invbeam_m": [1, 29], "invbeam_svd": 1, "invers": [1, 4, 25, 29], "invert": [1, 4], "invmod": 4, "invmodes_m": 4, "issu": [1, 4], "its": [4, 29], "just": [1, 6, 7], "jy": 8, "k": [6, 9, 25, 26], "k1": 25, "k2": 25, "k_band": 6, "kl": [2, 3, 4, 5, 6, 7, 12], "klcov": 6, "klmode": 12, "klname": 12, "klname1": 12, "klname2": 12, "kltran": [2, 6, 7], "kltransform": [2, 3, 6, 7], "know": 9, "kpar": 26, "kpar_band": 6, "kperp": 26, "kperp_band": 6, "kwarg": [1, 9, 13, 17, 18, 19, 20, 22, 23, 25], "l": [1, 4, 7, 9, 17, 18, 20, 21, 22], "l_boost": 9, "l_max": 9, "label": 9, "lambda": 4, "larg": 9, "last": [6, 9, 27], "later": 4, "latitud": [9, 17, 18, 19, 20, 21, 22, 23, 29], "left": [9, 25], "length": [9, 16, 17, 18, 20, 21, 22, 25], "like": [9, 12], "limit": 1, "linalg": 25, "list": [9, 12, 13], "lm": 4, "lmax": [1, 6, 9], "load": [1, 5, 6], "local": 9, "local_origin": 9, "locat": [9, 10, 29], "longer": 6, "longest": 9, "longitud": [9, 17, 18, 19, 20, 21, 22, 23], "look": 29, "lose": 1, "low": 1, "lowest": 9, "lside": 9, "m": [1, 4, 5, 6, 7, 9, 12, 13, 17, 18, 19, 20, 21, 22, 25, 29], "m_max": 9, "mai": [1, 9], "make": [1, 4, 6, 9, 29], "make_clzz": 6, "makeproj": 6, "manag": [1, 12, 29], "mani": [4, 29], "map": [1, 9, 13, 17, 18, 19, 20, 21, 22, 23, 29], "mask": 9, "mat": [1, 4], "match": 9, "mathbf": [4, 29], "mathcal": 10, "matric": [1, 4, 5, 7, 9, 25], "matrix": [1, 4, 6, 7, 9, 25, 29], "matrix1": 25, "matrix2": 25, "matter": 6, "max": [4, 9, 17], "max_lm": 9, "maximum": [1, 9, 16, 17, 18, 20, 21, 22], "maxlength": 9, "mayb": 4, "mb": [1, 9], "mean": [6, 9], "measur": [1, 29], "meh": 29, "mem_chunk": 1, "memori": [1, 4, 6, 29], "messag": 4, "method": [1, 9, 19, 29], "metr": [9, 17, 18, 21, 22], "mhz": 9, "mi": [1, 4, 6, 7], "mild": 9, "min": [9, 25], "minimis": 9, "minimum": 9, "minlength": 9, "mlist": 4, "mmax": [1, 9, 13], "mode": [1, 3, 4, 6, 7, 9, 12, 19, 29], "model": [0, 16, 29, 30], "modes_m": 4, "modifi": 3, "modul": 28, "mont": [6, 7], "moor": [1, 4], "more": [9, 11], "most": 11, "mostli": 30, "mpi": [4, 29], "mu": 6, "much": [11, 29], "multi": 30, "multipli": 25, "multiply_dm_dm": 25, "multiply_dm_v": 25, "must": [1, 6, 9, 29], "n": [1, 4, 7, 10, 16, 25, 27], "n_dof": 1, "name": 6, "narrai": 6, "natpattern": 27, "natur": 27, "nband": 6, "nbase": [1, 9], "nblock": 25, "ndai": [9, 13], "ndarrai": [1, 4, 6, 7, 9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26], "ndof": 1, "ndofmax": 1, "need": 1, "neg": 29, "neval": 6, "new": 29, "newvector": 25, "next": 29, "nfeed": [9, 19, 20], "nfreq": [1, 4, 6, 9], "nmatrix": 25, "nmode": 7, "node": 29, "noic": 4, "nois": [1, 3, 4, 6, 9, 13, 29], "noise_p": 9, "noiseless": 11, "noiseonli": 7, "noisepow": 9, "none": [1, 3, 4, 6, 7, 9, 13], "normal": 29, "normalis": 16, "north": [10, 16], "nosvd": 1, "note": [4, 10], "noth": 29, "now": 29, "np": [1, 4, 6, 7, 9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26], "npair": [1, 9], "npoint": 16, "npol": 1, "npol_ski": 1, "nsampl": 7, "nside": 9, "nsky": 1, "nsvd": 1, "nswitch": 7, "ntel": [1, 4], "nu": [4, 7], "null": [1, 7], "num_cylind": [17, 19, 22, 23], "num_ev": 6, "num_fe": [17, 22], "num_freq": 9, "num_kl": 6, "num_pol_ski": 9, "num_r": 26, "num_realisaton": 6, "num_theta": [6, 26], "numband": 6, "number": [1, 6, 7, 9, 13, 17, 18, 20, 21, 22, 26, 27], "numer": [4, 29], "nyquist": 9, "object": [1, 5, 6, 7, 9, 13, 17, 18, 19, 20, 21, 22, 23], "observ": [9, 13, 29], "off": 9, "old": 1, "omit": 9, "one": [6, 10], "onli": [1, 4, 6, 9, 19, 29], "onto": [1, 4, 10, 26], "oper": 4, "oppos": 1, "optim": [1, 29], "option": [1, 2, 4, 6, 7, 9, 13, 16, 25, 26], "ordin": [10, 18, 20, 21], "origin": [1, 9], "other": [1, 9], "otherwis": [4, 25], "our": 29, "out": [1, 9, 26, 27], "out_mat": 1, "outdir": 13, "output": [1, 5, 9, 12], "output_directori": 12, "over": 9, "overhead": 9, "overrid": 9, "overview": 28, "p": [2, 6, 7, 10], "pack": [1, 4, 9, 17, 18, 19, 22, 23], "packag": [28, 29], "padmanabhan": 7, "page": 28, "pair": [9, 29], "paper": 6, "parallelis": 29, "paramet": [1, 2, 4, 5, 6, 7, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26], "part": [1, 29], "particular": [4, 7, 9, 10, 17, 18, 20, 21, 22, 23, 28], "path": [1, 5, 12], "pattern": [9, 16, 17, 18, 19, 20, 21, 22, 23, 27], "pen": 7, "penros": [1, 4], "per": 1, "perform": [1, 3, 4, 9, 25, 29], "pfb": 9, "phi": [9, 10, 16, 17, 19, 22, 23], "phihat": 16, "physic": [9, 17, 18, 20, 21, 22], "pi": 10, "pinv_dm": 25, "pinv_matrix": 25, "pipelinemanag": 12, "pitch": 16, "pixel": 26, "pk": 6, "planar": 29, "plane": [10, 16, 17, 18, 19, 22, 23, 26], "point": [6, 8, 9, 10, 16, 19, 21, 29], "pointsourc": 8, "pol": [1, 4, 9], "pol1": 4, "pol2": 4, "pol_ind": 9, "pol_iqu": 10, "polar": [6, 9, 10, 16, 26], "polar_img": 26, "polaris": [1, 9, 10, 16, 17, 19, 22, 23, 29], "polarisedcylindertelescop": [17, 19, 22, 23], "polarisedtelescop": 9, "polpattern": 16, "polsvcut": 1, "posit": [4, 9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 29], "potenti": [4, 9, 17, 18, 20, 21, 22, 23], "power": [3, 5, 6, 9, 16, 29], "powerspectra": [6, 12], "powerspectrum": [6, 7], "pq": 10, "practic": 29, "precis": [1, 4], "precomput": 6, "prefer": 9, "present": [9, 29], "previou": 4, "primari": [9, 29], "print": [4, 27], "prior": 9, "prioriti": 9, "problem": 4, "proce": 29, "process": [1, 29], "prod": 9, "prod_ind": 9, "prodmap": 9, "prodstack": 9, "product": [5, 6, 7, 12, 13], "product_directori": 12, "productmanag": [5, 13], "program": 28, "project": [1, 4, 6, 10], "project_matrix_diagonal_telescope_to_svd": 1, "project_matrix_forward": 1, "project_matrix_sky_to_kl": 4, "project_matrix_sky_to_svd": 1, "project_matrix_sky_to_telescop": 1, "project_matrix_svd_to_kl": 4, "project_matrix_telescope_to_svd": 1, "project_vector_backward": 1, "project_vector_forward": 1, "project_vector_kl_to_svd": 4, "project_vector_sky_to_kl": 4, "project_vector_sky_to_svd": 1, "project_vector_sky_to_telescop": 1, "project_vector_svd_to_kl": 4, "project_vector_svd_to_ski": 1, "project_vector_svd_to_telescop": 1, "project_vector_telescope_to_ski": 1, "project_vector_telescope_to_svd": 1, "projmatrix": 4, "projvector": 4, "properti": [1, 6, 9, 17, 18, 19, 20, 21, 22], "provid": 1, "ps1": 12, "psd": 6, "psestim": 7, "pseudo": [1, 4, 25, 29], "psexact": 6, "psmontecarlo": [2, 7], "psmontecarloalt": 7, "psname": 12, "pu": 10, "q": [6, 7, 9, 10], "q_estim": 6, "qa": 6, "quadrat": [6, 29], "quantiti": 29, "quarter": 26, "r": 26, "r_bin": 26, "radian": 9, "radio": [28, 29, 30], "random": 7, "randomcylind": 19, "rang": 9, "ratio": 3, "re": [16, 26], "read": [1, 4, 9], "reader": [1, 4, 6, 9, 12], "real": [4, 6], "realli": 9, "reason": 9, "recal": 1, "recalcul": 9, "receiv": [9, 17, 18, 19, 22, 23], "reconstruct": 1, "reduc": 7, "redund": [9, 29], "refer": 28, "reg": 4, "regen": [1, 4, 6], "regener": [1, 6], "regim": 9, "regrid": 26, "regrid_polar": 26, "regularis": 4, "regularli": [17, 22], "rel": [1, 9, 19], "relat": [1, 29], "remain": 3, "remov": 3, "reorder": 9, "repeat": 29, "represent": 4, "request": 9, "requir": [9, 12, 19], "resolut": [13, 16], "respons": 29, "restrictedbeam": 23, "restrictedextra": 23, "restrictedpolarisedcylind": 23, "result": [2, 4, 6, 7, 9, 27], "return": [1, 4, 5, 6, 7, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26], "revers": 1, "reverse_map": 9, "reverse_map_stack": 9, "rfi": 9, "right": [9, 25], "roll": 16, "root": 7, "rot": 16, "rotat": [4, 9, 16], "routin": [1, 4, 9, 10, 19], "row": 6, "run": 12, "rx": 26, "ry": 26, "s_": 8, "same": [4, 9], "sampl": 7, "satisfi": 4, "save": [1, 4, 6, 9, 13], "scalar": [3, 4, 6, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 23], "scale": [8, 9], "scipi": 25, "search": 28, "second": 13, "section": 6, "see": [1, 4, 6, 7, 25], "seed": 13, "select": 9, "self": [7, 9, 17, 18, 19, 20, 21, 22, 23], "sens": 1, "sensit": [1, 4, 9], "separ": [9, 29], "serial": 9, "set": [1, 4, 7, 9, 13, 18, 25, 29], "sever": 9, "shape": 9, "shear": 29, "should": [1, 6, 9, 10, 11], "show": 27, "side": 26, "sider": 9, "sig": 25, "sign": [1, 27], "signal": [4, 9], "sim_skyvec": 7, "similar": 9, "simpl": [9, 11, 19, 27], "simplepolarisedtelescop": [9, 17, 22, 29], "simpleunpolarisedtelescop": [9, 17, 21, 22], "simpli": 1, "simul": [7, 9, 11, 13, 29], "sin": 16, "singl": [1, 4, 9], "singular": [1, 25, 29], "sintheta": 16, "size": [1, 4, 9, 17, 18, 19, 20, 21, 22, 23, 25], "skip": [1, 9], "skip_baselin": 9, "skip_freq": 9, "skip_pol": 9, "skip_svd": 1, "skip_svd_inv": 1, "skip_v": 9, "sky": [1, 4, 9, 10, 13, 16, 29], "skymod": 4, "skymodes_m": 4, "slightli": 1, "small": 6, "sn": 4, "sn_covari": 4, "so": [1, 4, 9, 13, 29], "solv": 4, "some": [4, 9], "somewhat": 9, "sophist": [9, 11], "sourc": [8, 29], "space": [1, 3, 4, 17, 22], "specialis": 1, "specif": [6, 9], "specifi": [5, 9, 17, 19, 22, 23, 29], "spectrum": [1, 4, 5, 6, 9, 29], "sph_arr": 10, "sphere": 16, "spheric": [9, 10, 16, 29], "split": 1, "squar": 7, "squint": 16, "stack": 9, "stack_ind": 9, "standard": [1, 4], "start": 9, "state": 9, "stationari": 29, "stellar": 9, "step": [1, 9, 29], "still": 9, "stochast": 7, "stoke": 9, "stop": 9, "store": [2, 6, 7, 12, 13], "straightforward": 29, "strict": 1, "string": [1, 2, 4, 5, 6, 7, 9, 12], "strip": 10, "structur": 9, "subclass": 1, "subdir": [2, 3, 4, 6, 7], "subdirectori": [2, 6, 7], "subsequ": 3, "subset": [4, 9, 29], "sum": 13, "support": [7, 9], "sure": 9, "surfac": [9, 17, 18, 19, 20, 21, 22, 23], "svarrai": 1, "svcut": 1, "svd": [1, 12, 25, 29], "svd_all": 1, "svd_dm": 25, "svd_gen": 1, "svd_len": 1, "svdnum": 1, "svec": 1, "switch": 7, "system": [9, 10], "t": 9, "t_sy": 9, "take": [9, 29], "target": 1, "techniqu": 3, "tegmark": 6, "telescop": [1, 4, 5, 6, 13, 30], "tell": 29, "temperatur": [1, 9], "temponli": 1, "tensor": 10, "term": 10, "terrestri": 9, "test": 9, "than": 4, "thei": [1, 9], "them": [4, 17, 22, 29], "thermal": 9, "theta": [6, 9, 10, 16, 17, 19, 22, 23, 26], "theta_bin": 26, "thetahat": 16, "thi": [1, 4, 5, 6, 7, 9, 17, 22, 29], "thin": 10, "thing": [9, 19], "three": 29, "threshold": [4, 6, 7], "through": 9, "throw": [3, 4], "thrown": 4, "thu": 9, "tild": 29, "time": [1, 9, 13], "timestream": [12, 29], "timestream_directori": 12, "tmat": 1, "togeth": 9, "total": [6, 9], "touch": [17, 22], "trace": 7, "trade": 9, "tran": 7, "transfer": [1, 5, 7, 9], "transfer_for_baselin": 9, "transfer_for_frequ": 9, "transfer_matric": 9, "transfom_m": 4, "transform": [2, 3, 4, 6, 7], "transform_sav": 4, "transit": [9, 28, 29, 30], "transittelescop": [1, 9, 17, 18, 21, 22, 29], "transpos": 29, "triangl": 9, "trivial": 29, "true": [1, 4, 6, 9, 25], "truncat": [1, 25], "truncate_maxl": 1, "truncate_rel": 1, "try": [1, 4], "tsy": 9, "tsys_flat": 9, "tt": 1, "tvec": 1, "two": [9, 10, 29], "type": [1, 3, 4, 5, 6, 7, 9, 10, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26], "u": [1, 7, 9, 10, 17, 18, 20, 21, 22, 25, 29], "u1": [17, 18, 19, 22, 23], "u2": [17, 18, 19, 22, 23], "u_width": [9, 17, 18, 20, 21, 22], "uhat": 10, "uniqu": [9, 29], "unique_pair": 9, "uniquepair": 9, "unit": [10, 16, 18, 20, 21], "unit_band": 6, "unpolaris": [9, 17, 21, 22], "unpolarisedcylindertelescop": [17, 19, 22, 23], "unpolarisedtelescop": [9, 20], "until": 29, "up": [8, 9, 12], "upper": [1, 9], "upto": 27, "us": [1, 2, 4, 6, 7, 9, 11, 13, 16, 26, 29, 30], "usabl": 9, "use_foreground": 4, "use_therm": 4, "usual": 4, "uv": 10, "uv_diamet": [18, 20, 21], "uv_plane_cart": 10, "uwidth": 9, "v": [1, 4, 9, 10, 17, 18, 20, 21, 22, 25], "v1": [17, 18, 19, 22, 23], "v2": [17, 18, 19, 22, 23], "v_width": [9, 17, 18, 20, 21, 22], "val": 9, "valu": [1, 9, 13, 25, 26, 29], "variabl": 12, "vec": [1, 4, 6], "vec1": 6, "vec2": 6, "vector": [1, 4, 6, 7, 9, 10, 16, 25, 29], "veri": 11, "version": 1, "vhat": 10, "via": 7, "visibl": 1, "vwidth": 9, "w": 10, "want": 9, "wavelength": [9, 16, 18, 20, 21], "we": [3, 6, 7, 9, 13, 29], "well": 9, "what": 9, "when": [1, 4, 9], "where": [9, 10], "wherea": 4, "whether": [1, 4, 6, 9, 25], "which": [1, 3, 6, 7, 9, 11, 29], "while": 9, "white": 9, "whole": 9, "width": [9, 10, 16, 17, 18, 20, 21, 22], "window": 6, "wise": 6, "within": 9, "work": [4, 29], "write": 1, "x": [7, 9, 10, 16, 17, 19, 22, 23], "x_": 10, "y": [9, 16, 17, 19, 22, 23], "yaw": 16, "yconf": 5, "you": [1, 9, 11], "z": 7, "zenith": [9, 10, 16, 18, 20, 21], "zero": [1, 6, 9, 13, 20], "zero_mean": 6}, "titles": ["drift.core", "drift.core.beamtransfer", "drift.core.crosspower", "drift.core.doublekl", "drift.core.kltransform", "drift.core.manager", "drift.core.psestimation", "drift.core.psmc", "drift.core.skymodel", "drift.core.telescope", "drift.core.visibility", "drift.pipeline", "drift.pipeline.pipeline", "drift.pipeline.timestream", "drift.scripts", "drift.telescope", "drift.telescope.cylbeam", "drift.telescope.cylinder", "drift.telescope.disharray", "drift.telescope.exotic_cylinder", "drift.telescope.focalplane", "drift.telescope.gmrt", "drift.telescope.oldcylinder", "drift.telescope.restrictedcylinder", "drift.util", "drift.util.blockla", "drift.util.plotutil", "drift.util.util", "driftscan", "Overview of Driftscan", "Programming References"], "titleterms": {"analysi": 29, "beam": 29, "beamtransf": 1, "blockla": 25, "code": 29, "content": 28, "core": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "crosspow": 2, "cylbeam": 16, "cylind": 17, "describ": 29, "disharrai": 18, "doublekl": 3, "drift": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "driftscan": [28, 29], "exotic_cylind": 19, "focalplan": 20, "gener": 29, "gmrt": 21, "indic": 28, "karhunen": 29, "kltransform": 4, "loev": 29, "manag": 5, "matric": 29, "oldcylind": 22, "overview": 29, "pipelin": [11, 12, 13, 29], "plotutil": 26, "product": 29, "program": 30, "psestim": 6, "psmc": 7, "refer": 30, "restrictedcylind": 23, "run": 29, "script": 14, "skymodel": 8, "submodul": 30, "tabl": 28, "telescop": [9, 15, 16, 17, 18, 19, 20, 21, 22, 23, 29], "timestream": 13, "tip": 29, "transfer": 29, "transform": 29, "util": [24, 25, 26, 27], "visibl": 10}})
\ No newline at end of file