{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Universal Gap function for use with L01, CU SIM and L2D \n", "## Overall goal\n", "\n", "The overall goal here is to provide a simple and easy to use code that generates a masking function mimicking our best understanding of missing data with respect to LISA. \n", "\n", "## What does the code do? \n", "\n", "The code takes in a dictionary of planned and unplanned gaps with their specific types, rates per year and duration in hours. It can then produce a binary mask\n", "\n", "\\begin{equation}\n", " w(t) = 1 \\ \\text{if} \\ t \\not \\in T_{\\text{gap}} \\ \\text{and} \\ w(t) = \\boldsymbol{\\text{nan}} \\ \\text{if} \\ t \\in T_{\\text{gap}}\\,.\n", " \\end{equation}" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%reload_ext autoreload\n", "%autoreload 2\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from lisaglitch import GapMaskGenerator\n", "from lisaconstants import TROPICALYEAR_J2000DAY\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Usable data\n", "Duty cyle is = 90.5473681205097 %\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAX9FJREFUeJzt3QecE2XeB/B/kt2ldwSkCFJUpAuCHQtF11M5PUX0hEPFs6AevDZ8FURfxXKinqKcnoh3NvQ8y+lKb6IgvYiA0uvu0ssubMnO+/k/y2STbMokmfLMk9/XTySbTHnazPwz88w8Hk3TNAIAAABQhNfpBAAAAACYCcENAAAAKAXBDQAAACgFwQ0AAAAoBcENAAAAKAXBDQAAACgFwQ0AAAAoBcENAAAAKAXBDQAAACgFwQ1AmvrTn/5ErVq1IhXzVbNmzbjTXXrppeLlhNLSUnrkkUeoRYsW5PV6acCAASSjyZMnk8fjoa1btzqdFICEILgBSMKWLVto+PDhdMYZZ1D16tXF6+yzz6b77ruPVq9e7XTyQHKTJk2il156if7whz/Q+++/TyNGjHA0Pc899xx9+eWXjqYBwEwejC0FkJhvvvmGBg4cSBkZGXTrrbdSly5dxK/v9evX03/+8x/atm2bCH5atmxJMispKaGysjKqUqUKqXbm5t///jcdO3Ys5nTFxcXi36ysLLLbzTffTAsWLKCdO3eSDPhMFwdafKYmmN/vF+2E2wifwQFwiwynEwDgJps2bRIHJg5cZs2aRaeeemrI9y+88AK9+eabItiRVUFBAdWoUYMyMzMpnTkR1Ojy8/Opbt26JDufzydeAG4j7x4YQEIvvviiCA7ee++9SoEN47M5DzzwgOhLEYzP6vAv4/r161PVqlWpR48e9PXXX0fs3/DDDz/QyJEj6ZRTThFByO9//3vau3dvpXV99913dPHFF4tpatWqRVdffTWtXbs2Yv8TDsqys7PFdHy2KVqfGz6T89prr1GnTp1EOjkNV155JS1dujRmuXDflY4dO4pLcr179xaX6dq2bSvOoLB58+ZRr169qFq1anTmmWfSzJkzQ+bns1333nuv+I6nadCgAd14442V+nrwWYSxY8dSu3btRPp4uosuuohmzJgRM30rV64UeeF06md0wvvczJ07V5T/p59+Ss8++yw1b95crOOKK66gjRs3VlrmhAkTqHXr1iK9PXv2pO+//z5uPx7OD69jzpw5oq74Pb943fr6+d9I8wSfVdHrddeuXaK/Dr/n/D300EPibEsidcrL5jbNl8f09PDyY/W54QC+Q4cO4oxO06ZNxeXYQ4cORWwTv/zyC1122WWiTTRr1kxsQwBWQ3ADkOAlKT5o84HaKD6InXfeebRu3Tp67LHH6OWXXxYBCR+Uvvjii0rT33///bRq1SoaM2YM3XPPPfTf//5X9O8J9q9//UsEM3xQ47NFTz75pDiI8IE+/EDEnVf79+9PjRo1or/+9a90ww03RE3rHXfcQX/5y19EcMbL5fTyAXHRokVx83nw4EH63e9+J8qGD2B84OOzXFOmTBH/cnD1/PPPiwMpB3pHjx4NzLtkyRL68ccfxXR/+9vf6O677xZnxvgAWVhYGJjuqaeeEsENHyzfeOMN+t///V867bTTaPny5VHTxcu+/PLLqVu3biIgjNfZmNPI9cKBwqhRo0Te9YBQ99Zbb4k64QCI88pBJtdnvMtMHFhw3Z111lliXn7Pr/bt21OiOIjheuUAj+uVg0puW2+//XZCdcrr57riPOjp+fOf/xx1vVwHHMxwUMPr4/b097//nfr16yeCz/A2wYEUX7rlaTnfjz76qKgHAEtxnxsAiO/w4cPcP00bMGBApe8OHjyo7d27N/AqLCwMfHfFFVdonTp10k6cOBH4rKysTLvgggu0du3aBT577733xPL79OkjvteNGDFC8/l82qFDh8TfR48e1erWrasNGzYsJA25ublanTp1Qj4fMmSIWOZjjz1WKc38XcuWLQN/z549W0z7wAMPVJo2OD2R9O7dW8z70UcfBT5bv369+Mzr9WqLFi0KfD5t2jTxOedXF1xeuoULF4rp/vnPfwY+69Kli3b11VfHTAvnq0aNGuL9ggULtNq1a4t5gstfTzO/dHPmzBHra9++vVZUVBT4/LXXXhOfr1mzRvzN3zVo0EA799xztZKSksB0kydPFtMFLzNWeXXo0CHkM339/G+wLVu2VCovvV6ffvrpkGm7deumde/ePeE65fLiZYbT2ySngeXn52tZWVlav379NL/fH5jujTfeENNNmjQpJI/h9cdl16RJE+2GG26IW0YAqcCZGwCDjhw5Iv6N9MufzzDwr3L9xZcs2IEDB2j27Nl00003iTMV+/btE6/9+/eLX92/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set up simulation properties\n", "A_YEAR = TROPICALYEAR_J2000DAY * 86400 # seconds in a year\n", "dt = 0.25 # seconds\n", "t_start = 0 # start time in seconds\n", "t_obs = 0.5 * A_YEAR\n", "sim_t = t_start + np.arange(0, t_obs, dt) # time array\n", "\n", "planseed = 2618240388\n", "unplanseed = 3387490715\n", "\n", "# Build dictionary of gap definitions, planned and unplanned. We must\n", "# supply both of these, even if the rates are zero and durations are zero.\n", "# We can cope with arbitrary number of gaps.\n", "gap_definitions = {\n", " \"planned\": {\n", " \"antenna repointing\": {\"rate_per_year\": 26, \"duration_hr\": 3.3},\n", " \"TM stray potential\": {\"rate_per_year\": 2, \"duration_hr\": 24},\n", " \"TTL calibration\": {\"rate_per_year\": 4, \"duration_hr\": 48},\n", " # \"Aliens\": {\"rate_per_year\": 6, \"duration_hr\": 30*24}\n", " },\n", " \"unplanned\": {\n", " \"platform safe mode\": {\"rate_per_year\": 3, \"duration_hr\": 60},\n", " \"payload safe mode\": {\"rate_per_year\": 4, \"duration_hr\": 66},\n", " \"QPD loss micrometeoroid\": {\"rate_per_year\": 5, \"duration_hr\": 24},\n", " \"HR GRS loss micrometeoroid\": {\"rate_per_year\": 19, \"duration_hr\": 24},\n", " \"WR GRS loss micrometeoroid\": {\"rate_per_year\": 6, \"duration_hr\": 24},\n", " },\n", "}\n", "\n", "# Initialise the class with simulation properties and whether or not to treat gaps with\n", "# nans or not.\n", "gap_mask_gen = GapMaskGenerator(\n", " sim_t, gap_definitions, treat_as_nan=False, planseed=planseed, unplanseed=unplanseed\n", ")\n", "\n", "# Generate the mask as a np.array. Choose whether to include unplanned and/or planned gaps.\n", "# num_zeros = np.sum(full_mask == 0)/len(full_mask)\n", "full_mask = gap_mask_gen.generate_mask(include_unplanned=True, include_planned=True)\n", "num_zeros = np.sum(full_mask == 0) / len(full_mask)\n", "print(\"Usable data\")\n", "print(f\"Duty cyle is = {100*(1-num_zeros)} %\")\n", "\n", "plt.plot(sim_t / 60 / 60 / 24, full_mask)\n", "plt.xlabel(r\"Time [days]\")\n", "plt.ylabel(r\"Mask\")\n", "plt.title(r\"Generic masking function\")\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Some extra utilities\n", "\n", "It is possible to save the masking function as a `.h5` file. Similarly, we can load the `.h5` file as a class object and generate the masking function. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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lXnLli2Tyl3tzKpNSVjK/eGHH9aXpi+66KLIlbWq4+okk1i+5eXlun1AvHzVXxWMqvZDcWr/UPt/PEBzNRBRbaVUIKraCTRGlb9qO1H3NobLPvvsM91mJF6nw1jWda+AqmOaevImFOXtRdSTTz6pW9k/8sgjutX1Nddc43Xo0MErLS31wuC6667z2rdv7y1fvtzbsWNH7evAgQP6+w0bNni33367984773ibNm3y/vCHP3gDBgzwvvGNb3gu+7d/+zedZ5WnN954wxs/frzXpUsX/TSRcu2113p9+vTxXn75ZZ334uJi/QoD9USYytstt9yS9HmYynrfvn3eu+++q1/q8DVv3jz97/iTI3fddZfej1Ue33vvPf2kQf/+/b2DBw/WLuOCCy7wRo4c6b311lveihUrvJNOOsmbNGmS52Keq6qqvEsuucTr3bu3t27duqR9vbKyUs+/cuVK/WSF+n7jxo3eo48+6p1wwgne5MmTPZuly7f67kc/+pF+Ck7V6ZdeeskbNWqULstDhw45W9aZ1HGlrKzMa9OmjXf//fd7dbla3pENRpRf//rX+uBdUFCgH/V98803vbBQlTjV6+GHH9bfl5SU6JNRp06ddFB24oknejfffLOu5C6bOHGi16NHD12mvXr10u/VyThOnZR++MMfeh07dtQ782WXXaYP3GHwwgsv6DJev3590udhKutXXnklZb1Wj3nGH++97bbbvG7duum8nnfeefW2x+eff65PSG3btvXatWvnTZ06VZ8AXMyzOhE3tK+r+ZQ1a9Z448aN0z9OWrVq5Q0ePNi78847k07aruVb/ag6//zz9UlWPa6vHmWdNm1avR+TrpV1JnVc+c1vfuO1bt1aP7pel6vlHVP/M311BgAARFck24wAAAB7EIwAAACjCEYAAIBRBCMAAMAoghEAAGAUwQgAADCKYAQAABhFMAIAAIwiGAEAAEYRjAAAAKMIRgAAgFEEIwAAQEz6/7NjcsAINETwAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Save the masking function to a hdf5 file.\n", "gap_mask_gen.save_to_hdf5(full_mask, filename=\"gap_mask_data.h5\")\n", "\n", "# Load the masking function to a hdf5 file. Note that we do not need to instantiate the class.\n", "# This will load in the masking function and all important attributes.\n", "load_gating_func = GapMaskGenerator.from_hdf5(filename=\"gap_mask_data.h5\")\n", "plt.plot(\n", " sim_t / 60 / 60 / 24,\n", " load_gating_func.generate_mask(include_unplanned=True, include_planned=True),\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate summary of gap configuration\n", "\n", "We can easily generate a summary of the gap configuration using one of the functions in the class method. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'mask_analysis': {'duty_cycle_percent': np.float64(90.5474),\n", " 'number_of_gap_segments': 24,\n", " 'total_gap_hours': np.float64(414.3),\n", " 'total_gap_samples': 5965920},\n", " 'planned_gaps': {'TM stray potential': {'duration_hr': 24,\n", " 'duration_samples': 345600,\n", " 'duration_sec': 86400,\n", " 'rate_events_per_sec': 6.33775307356206e-08,\n", " 'rate_events_per_year': 2},\n", " 'TTL calibration': {'duration_hr': 48,\n", " 'duration_samples': 691200,\n", " 'duration_sec': 172800,\n", " 'rate_events_per_sec': 1.267550614712412e-07,\n", " 'rate_events_per_year': 4},\n", " 'antenna repointing': {'duration_hr': 3.3,\n", " 'duration_samples': 47520,\n", " 'duration_sec': 11880.0,\n", " 'rate_events_per_sec': 8.239078995630678e-07,\n", " 'rate_events_per_year': 26}},\n", " 'seeds': {'planned': 2618240388, 'unplanned': 3387490715},\n", " 'simulation': {'dt': np.float64(0.25),\n", " 'duration_days': np.float64(182.6210966435185),\n", " 'duration_sec': np.float64(15778462.75),\n", " 'n_data': 63113851},\n", " 'unplanned_gaps': {'HR GRS loss micrometeoroid': {'duration_hr': 24,\n", " 'duration_samples': 345600,\n", " 'duration_sec': 86400,\n", " 'rate_events_per_sec': 6.020865419883957e-07,\n", " 'rate_events_per_year': 19},\n", " 'QPD loss micrometeoroid': {'duration_hr': 24,\n", " 'duration_samples': 345600,\n", " 'duration_sec': 86400,\n", " 'rate_events_per_sec': 1.584438268390515e-07,\n", " 'rate_events_per_year': 5},\n", " 'WR GRS loss micrometeoroid': {'duration_hr': 24,\n", " 'duration_samples': 345600,\n", " 'duration_sec': 86400,\n", " 'rate_events_per_sec': 1.901325922068618e-07,\n", " 'rate_events_per_year': 6},\n", " 'payload safe mode': {'duration_hr': 66,\n", " 'duration_samples': 950400,\n", " 'duration_sec': 237600,\n", " 'rate_events_per_sec': 1.267550614712412e-07,\n", " 'rate_events_per_year': 4},\n", " 'platform safe mode': {'duration_hr': 60,\n", " 'duration_samples': 864000,\n", " 'duration_sec': 216000,\n", " 'rate_events_per_sec': 9.50662961034309e-08,\n", " 'rate_events_per_year': 3}}}\n" ] } ], "source": [ "check = gap_mask_gen.summary(mask=full_mask, export_json_path=\"gap_mask_summary.json\")\n", "from pprint import pprint\n", "\n", "pprint(check)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Smooth tapers\n", "\n", "So far the gap function generates a binary mask with eithers zeros or *nans* representing the gaps. For those within L2D, it may be preferable to smoothly taper the gap segments to zeros in order to reduce artefacts working in the frequency or time-frequency domains. \n", "\n", "To facilitate this, we have taken the binary mask and applied a smooth taper on either side of each gap with the \"length of the lobes\" provided as input. An example is given below " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from lisagap import GapWindowGenerator\n", "\n", "from lisagap import GapWindowGenerator\n", "\n", "masking_func_from_window = GapWindowGenerator(gap_mask_gen)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Define the length of the tapering window on each side of the gap. Must input lobe lengths in hours.\n", "\n", "# If we miss out a particular gap definition, it will not be tapered.\n", "\n", "taper_defs = {\n", " \"planned\": {\n", " \"antenna repointing\": {\"lobe_lengths_hr\": 5.0},\n", " \"TM stray potential\": {\"lobe_lengths_hr\": 0.5},\n", " \"TTL calibration\": {\"lobe_lengths_hr\": 2.0},\n", " },\n", " # \"Aliens\": {\"lobe_lengths_hr\" : 1 * 24}},\n", " \"unplanned\": {\n", " \"platform safe mode\": {\"lobe_lengths_hr\": 1.0},\n", " \"HR GRS loss micrometeoroid\": {\"lobe_lengths_hr\": 0.25},\n", " \"QPD loss micrometeoroid\": {\"lobe_lengths_hr\": 1.0},\n", " \"HR GRS loss micrometeoroid\": {\"lobe_lengths_hr\": 7.0},\n", " \"WR GRS loss micrometeoroid\": {\"lobe_lengths_hr\": 10.0},\n", " },\n", "}\n", "\n", "smoothed_mask = masking_func_from_window.generate_window(\n", " include_planned=True,\n", " include_unplanned=True,\n", " apply_tapering=True,\n", " taper_definitions=taper_defs,\n", ")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(sim_t / 60 / 60 / 24, smoothed_mask)\n", "plt.xlim([55.5, 57])\n", "plt.xlabel(r\"Time [days]\")\n", "plt.ylabel(r\"Mask\")\n", "plt.title(r\"Check antenna repointing lobe lengths\")\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Build quality masking data set with flags \n", "\n", "We can also use this class to build a masking function based off the nature of a data set. If a np.array is fed into a particular functino of the class, it can be read in and a further array with 1s for valid data and nans for invalid data can be produced" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Duty cycle = 90.54736812050972 %\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAX8pJREFUeJzt3Qd8FGX6B/Bns5vQe5UOgoCKgCCIDQsEXU/l9JRDTzhUrFjgb8NTEL0Ty4l6inJ6It6dBcuJhUhv0qRXCZ3QQkJPSEif/+d5N7PZvrO7s7Mz7/6+fiJbprxtZp6deecdm6IoCgEAAABIIiXRCQAAAADQE4IbAAAAkAqCGwAAAJAKghsAAACQCoIbAAAAkAqCGwAAAJAKghsAAACQCoIbAAAAkAqCGwAAAJAKghuAJPXnP/+Z2rVrRzLmq3bt2mGnu/rqq8VfIpSVldHTTz9NrVu3ppSUFBo8eDCZ0bRp08hms9G+ffsSnRSAiCC4AYjC3r17adSoUXTeeedRzZo1xd/5559PjzzyCG3atCnRyQOTmzp1Kr3xxhv0hz/8gT799FMaPXp0QtPzyiuv0IwZMxKaBgA92fBsKYDI/PTTTzRkyBByOBx01113Uffu3cWv78zMTPrf//5HWVlZIvhp27YtmVlpaSlVVFRQtWrVSLYzN9988w2dOXMm5HQlJSXi37S0NDLaH//4R1q6dCkdPHiQzIDPdHGgxWdqPJWXl4t2wm2Ez+AAWIUj0QkAsJLdu3eLAxMHLvPnz6dzzjnH6/vXXnuN3n//fRHsmFVBQQHVqlWLUlNTKZklIqhR5ebmUv369cns7Ha7+AOwGvPugQFM6PXXXxfBwSeffOIX2DA+m/PYY4+JvhSe+KwO/zJu2LAhVa9enXr37k0//PBDwP4Ny5YtozFjxlCTJk1EEPL73/+ejh496reun3/+ma688koxTZ06dejGG2+krVu3Bux/wkGZ0+kU0/HZpmB9bvhMzjvvvEPdunUT6eQ0XH/99bRmzZqQ5cJ9Vy688EJxSa5///7iMl3Hjh3FGRS2ePFi6tu3L9WoUYM6d+5M8+bN85qfz3Y9/PDD4jueplGjRnT77bf79fXgswgTJkygTp06ifTxdFdccQXNnTs3ZPo2bNgg8sLpVM/o+Pa5WbRokSj/r776iv72t79Rq1atxDquu+462rVrl98yJ0+eTB06dBDp7dOnD/3yyy9h+/FwfngdCxcuFHXFr/mP162un/8NNI/nWRW1Xg8dOiT66/Brzt+TTz4pzrZEUqe8bG7TfHlMTQ8vP1SfGw7gL7jgAnFGp0WLFuJy7KlTpwK2id9++42uueYa0SZatmwptiGAeENwAxDhJSk+aPOBWis+iF166aW0bds2evbZZ+nNN98UAQkflL777ju/6R999FHauHEjjR8/nh566CH68ccfRf8eT//5z39EMMMHNT5b9MILL4iDCB/ofQ9E3Hl10KBB1LRpU/r73/9Ot912W9C03nvvvfTEE0+I4IyXy+nlA+LKlSvD5vPkyZP0u9/9TpQNH8D4wMdnuaZPny7+5eDq1VdfFQdSDvTy8/Pd865evZqWL18upvvHP/5BDz74oDgzxgfIwsJC93QvvviiCG74YPnee+/RX/7yF2rTpg2tW7cuaLp42ddeey317NlTBIThOhtzGrleOFAYO3asyLsaEKo++OADUSccAHFeOcjk+gx3mYkDC667Ll26iHn5Nf917dqVIsVBDNcrB3hcrxxUctv68MMPI6pTXj/XFedBTc8DDzwQdL1cBxzMcFDD6+P29M9//pPS09NF8OnbJjiQ4ku3PC3n+5lnnhH1ABBX3OcGAMI7ffo0909TBg8e7PfdyZMnlaNHj7r/CgsL3d9dd911Srdu3ZSioiL3ZxUVFcpll12mdOrUyf3ZJ598IpY/YMAA8b1q9OjRit1uV06dOiXe5+fnK/Xr11dGjhzplYYjR44o9erV8/p8+PDhYpnPPvusX5r5u7Zt27rfL1iwQEz72GOP+U3rmZ5A+vfvL+b9/PPP3Z9lZmaKz1JSUpSVK1e6P589e7b4nPOr8iwv1YoVK8R0//73v92fde/eXbnxxhtDpoXzVatWLfF66dKlSt26dcU8nuWvppn/VAsXLhTr69q1q1JcXOz+/J133hGfb968Wbzn7xo1aqRccsklSmlpqXu6adOmiek8lxmqvC644AKvz9T187+e9u7d61dear2+9NJLXtP27NlT6dWrV8R1yuXFy/SltklOA8vNzVXS0tKU9PR0pby83D3de++9J6abOnWqVx5964/Lrnnz5sptt90WtowAYoEzNwAa5eXliX8D/fLnMwz8q1z940sW7MSJE7RgwQK64447xJmKY8eOib/jx4+LX907d+4UlxY8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hOAGAAAApILgBgAAAKSC4AYAAACkguAGAAAApILgBgAAAKSC4AYAAACkguAGAAAApILgBgAAAKSC4AYAAACkguAGAAAApILgBgAAAKSC4AYAAACkguAGAAAApILgBgAAAKSC4AYAAACkguAGAAAApILgBgAAAKSC4AYAAACkguAGAAAApILgBgAAAKSC4AYAAACkguAGAAAApOKgJKMoivg3Ly9P92WXlpZSYWGhWHZqaioli2TMdzLmmSHfyZPvZMwzQ77zTJtv9bitHsdDSbrgJj8/X/zbunXrRCcFAAAAojiO16tXL+Q0NkVLCCSRiooKOnz4MNWpU4dsNpvuUSUHTQcOHKC6detSskjGfCdjnhnynTz5TsY8M+T7gGnzzeEKBzYtWrSglJTQvWqS7swNF0irVq3iug5uGGZtHPGUjPlOxjwz5Dt5JGOeGfJtTuHO2KjQoRgAAACkguAGAAAApILgRkfVqlWj8ePHi3+TSTLmOxnzzJDv5Ml3MuaZId/VSAZJ16EYAAAA5IYzNwAAACAVBDcAAAAgFQQ3AAAAIBUENwAAACAVBDc6mTx5MrVr146qV69Offv2pVWrVpFMJk6cSJdccokY2blp06Y0ePBg2r59u9c0V199tRj12fPvwQcfJCt78cUX/fLUpUsX9/dFRUX0yCOPUKNGjah27dp02223UU5ODlkZt2PfPPMf51Omel6yZAnddNNNYrRTzsOMGTO8vud7LcaNG0fnnHMO1ahRgwYMGEA7d+70mubEiRN01113iUHP6tevT/feey+dOXOGrJpvfr7QM888Q926daNatWqJaYYNGyZGdQ/XRl599VWycn3/+c9/9svT9ddfb+n6XhImz4G2c/574403LF3XDMGNDqZPn05jxowRt9GtW7eOunfvToMGDaLc3FySxeLFi8XBbeXKlTR37lyxE0xPT6eCggKv6UaOHEnZ2dnuv9dff52s7oILLvDK09KlS93fjR49mn788Uf6+uuvRRnxQeDWW28lK1u9erVXfrm+2e233y5VPXPb5W2Vf5gEwnn6xz/+QVOmTKFff/1VHOx5u+aAVsUHuq1bt4oy+umnn8TB5P777yer5psfnMj7sBdeeEH8+7///U/8iLn55pv9pn3ppZe82sCjjz5KVq5vxsGMZ56++OILr++tVt8FYfLsmVf+mzp1qghe+Eealeta4FvBITZ9+vRRHnnkEff78vJypUWLFsrEiRMVWeXm5vIQAsrixYvdn/Xv3195/PHHFZmMHz9e6d69e8DvTp06paSmpipff/21+7Nt27aJclmxYoUiC67Tc889V6moqJC2nrnOvvvuO/d7zmvz5s2VN954w6u+q1WrpnzxxRfi/W+//SbmW716tXuan3/+WbHZbMqhQ4cUK+Y7kFWrVonpsrKy3J+1bdtWeeuttxSrCpTv4cOHK7fcckvQeaxe36Shrjn/1157rddnVq1rnLmJUUlJCa1du1acsvZ8fhW/X7FiBcnq9OnT4t+GDRt6ff7ZZ59R48aN6cILL6SxY8eKX4JWx5ci+LRuhw4dxC+3/fv3i8+53vkMlmfd8yWrNm3aSFP33L7/+9//0j333OP1oFkZ69nT3r176ciRI151y8+04UvOat3yv3xponfv3u5peHre/vlMj0zbOtc959UTX5rgy7E9e/YUlzHKysrI6hYtWiQuu3fu3JkeeughOn78uPs72es7JyeHZs6cKS61+bJiXSfdgzP1duzYMSovL6dmzZp5fc7vMzMzSdYnqz/xxBN0+eWXi4Ob6s4776S2bduKQGDTpk3i2j2f0uZT21bFB7Np06aJnR2fjp0wYQJdeeWVtGXLFnHwS0tL89vpc93zdzLga/SnTp0S/RFkrmdfav0F2q7V7/hfPhB6cjgcIuCXpf75EhzX79ChQ70epvjYY4/RxRdfLPK6fPlyEeDy9jFp0iSyKr4kxZeU27dvT7t376bnnnuObrjhBhHU2O126ev7008/FX0qfS+rW7WuEdxAxLjvDR/cPfueMM9rz9whkTtiXnfddWJHce6555IV8c5NddFFF4lghw/sX331lehkKruPP/5YlAEHMjLXM/jjs5J33HGH6Fj9wQcfeH3HfQw9twsO8h944AFx44FVh+//4x//6NWuOV/cnvlsDrdv2U2dOlWcmeabYmSoa1yWihGfmueo3vcOGX7fvHlzks2oUaNER7qFCxdSq1atQk7LgQDbtWsXyYLP0px33nkiT1y/fNmGz2zIWPdZWVk0b948uu+++5KuntX6C7Vd87++Nw3w6Xq+o8bq9a8GNtwGuPOs51mbYG2A875v3z6SBV+G5v272q5lru9ffvlFnH0Nt61bqa4R3MSIo9hevXrR/PnzvS7b8Pt+/fqRLPjX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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gap_mask_gen_w_nans = GapMaskGenerator(\n", " sim_t,\n", " gap_definitions,\n", " planseed=2618240388,\n", " unplanseed=3387490715,\n", " treat_as_nan=True,\n", ")\n", "\n", "# Generate the mask as a np.array. Choose whether to include unplanned and/or planned gaps.\n", "full_mask_w_nans = gap_mask_gen_w_nans.generate_mask(\n", " include_unplanned=True, include_planned=True\n", ")\n", "\n", "\n", "# Build the quality flags.\n", "quality_flags = gap_mask_gen.build_quality_flags(full_mask_w_nans)\n", "plt.plot(sim_t / 60 / 60 / 24, quality_flags)\n", "plt.ylim([-0.1, 1.1])\n", "plt.xlabel(r\"Time [days]\")\n", "plt.ylabel(r\"Mask\")\n", "plt.title(r\"Generic masking function\")\n", "plt.grid()\n", "# Check, what is the overall duty cycle?\n", "\n", "duty_cycle = 100 * (len(quality_flags) - np.sum(quality_flags)) / len(quality_flags)\n", "print(\"Duty cycle = \", duty_cycle, \"%\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Proportional Tapering for External Gap Masks\n", "\n", "The new `apply_proportional_tapering` static method allows you to apply smart tapering to gap masks loaded from external files (like `.npy` arrays). This is particularly useful when you have gap masks from other sources and want to apply proportional tapering based on gap duration.\n", "\n", "## Key Features:\n", "- **Automatic gap detection**: Finds both NaN and zero-valued gaps\n", "- **Smart categorization**: Different taper fractions for short, medium, and long gaps\n", "- **Proportional tapering**: Taper length scales with gap duration (e.g., 5% of gap length)\n", "- **Tukey window**: Uses optimal α calculation for smooth transitions" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "build_masking_func = GapMaskGenerator.quality_flags_to_mask(quality_flags)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Applying proportional tapering...\n" ] } ], "source": [ "# Apply proportional tapering using the static method\n", "print(\"Applying proportional tapering...\")\n", "\n", "# Standard proportional tapering (5% each side for medium/long gaps)\n", "tapered_standard = GapWindowGenerator.apply_proportional_tapering(\n", " build_masking_func,\n", " dt=dt,\n", " short_taper_fraction=1.0, # 25% each side for short gaps\n", " medium_taper_fraction=0.05, # 25% each side for medium gaps\n", " long_taper_fraction=0.05, # 5% each side for long gaps\n", " short_gap_threshold_minutes=2, # Gaps < 15 min are \"short\"\n", " long_gap_threshold_hours=0.5, # Gaps > 1 hour are \"long\"\n", ")" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(sim_t / 60 / 60 / 24, tapered_standard)\n", "plt.xlim([55.5, 57])\n", "plt.xlabel(r\"Time [days]\")\n", "plt.ylabel(r\"Mask\")\n", "plt.title(r\"Check proportional tapering\")\n", "plt.grid()" ] } ], "metadata": { "kernelspec": { "display_name": "lisagap", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.11" } }, "nbformat": 4, "nbformat_minor": 4 }