diff --git a/lsst/cone_search/Fink_lsst_conesearch.ipynb b/lsst/cone_search/Fink_lsst_conesearch.ipynb new file mode 100644 index 0000000..2bb61f5 --- /dev/null +++ b/lsst/cone_search/Fink_lsst_conesearch.ipynb @@ -0,0 +1,444 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "id": "7f6cee5c-1bf8-4562-a661-a4b259c82838", + "metadata": {}, + "source": [ + "\n", + "\n", + "# Fink service demonstration: Cone Search" + ] + }, + { + "cell_type": "markdown", + "id": "c6c81b13-f8ad-4f6c-a84b-7cad87f3d1e7", + "metadata": {}, + "source": [ + "### Goal\n", + "\n", + "The goal of this notebook is to demonstrate how to use Fink to match a local list of sources to LSST alerts.\n", + "\n", + "For Rubin, Fink API is updated in real time, even during observation periods in Chile. \n", + "Thus, it is possible to use the examples shown for quick decision making and inspection. " + ] + }, + { + "cell_type": "markdown", + "id": "646fbd81-1db3-496f-9c84-f97f81d7cb6f", + "metadata": {}, + "source": [ + "### Environment set-up\n", + "\n", + "To run this notebook, you need to import the following libraries (already installed in colab):" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e5ba9641-bc16-436b-9bd4-e860d97a1459", + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "import io\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "sns.set_context('talk')\n", + "\n", + "APIURL = 'https://api.lsst.fink-portal.org'" + ] + }, + { + "cell_type": "markdown", + "id": "2edc7b4e-ba0c-4da9-87ce-7aa15883c152", + "metadata": {}, + "source": [ + "### Case 1: cone search around one position and error" + ] + }, + { + "cell_type": "markdown", + "id": "7bb9072d-ac3e-4687-b463-64579bfa86e0", + "metadata": {}, + "source": [ + "First set is to identify all the `objects` within your circle of interest" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "232753db-9994-46c4-af79-956279f5add2", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the diaObjectId for the alert(s) within a circle on the sky\n", + "r0 = requests.post(\n", + " '{}/api/v1/conesearch'.format(APIURL),\n", + " \n", + " json={\n", + " \"ra\": \"61.9648\",\n", + " \"dec\": \"-48.713\",\n", + " \"radius\": \"10\" # radius should be in arcsec\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "c52bf34c-2fef-46f2-8451-6bbf724f93b9", + "metadata": {}, + "source": [ + "The query above will return the last alert per objectId found within your search area.\n", + "\n", + "The second step is to extract the `objectId` themselves and subsequently, the photometric data." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "af7b9a56-578d-44c3-99d4-0165e4a91101", + "metadata": {}, + "outputs": [], + "source": [ + "# extract the list of objectIds\n", + "mylist = [val[\"r:diaObjectId\"] for val in r0.json()]" + ] + }, + { + "cell_type": "markdown", + "id": "c3f92f7a-28af-4f53-ba9f-cf98da1ce637", + "metadata": {}, + "source": [ + "You can directly inspect these objects in the portal" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "56fcf162-d083-48c3-8954-33d18f1ddaf4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://lsst.fink-portal.org/313761043604045880\n", + "https://lsst.fink-portal.org/170028498820792325\n" + ] + } + ], + "source": [ + "for name in mylist:\n", + " print('https://lsst.fink-portal.org/{}'.format(name))" + ] + }, + { + "cell_type": "markdown", + "id": "88d40bd5-ffbe-413e-bb3d-b1ca71b5364f", + "metadata": {}, + "source": [ + "In order to get full light curves for these two objects, you should query the `sources` endpoint" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "365320d0-1193-44e4-bcbc-d7e639656a29", + "metadata": {}, + "outputs": [], + "source": [ + "# get full lightcurves for all these alerts\n", + "r1 = requests.post(\n", + " '{}/api/v1/sources'.format(APIURL),\n", + "\n", + " json={\n", + " \"diaObjectId\": \", \".join(map(str, mylist)),\n", + " \n", + " # choose which columns you want to transfer: https://lsst.fink-portal.org/schemas\n", + " \"columns\": \"r:diaObjectId,r:midpointMjdTai,r:psfFlux,r:psfFluxErr,r:band\",\n", + " \"output-format\": \"json\"\n", + " }\n", + ")\n", + "\n", + "# Format output in a DataFrame\n", + "pdf = pd.read_json(io.BytesIO(r1.content))" + ] + }, + { + "cell_type": "markdown", + "id": "521837a5-80ca-47ff-8cb4-82a52e3257e8", + "metadata": {}, + "source": [ + "You can now plot the resulting light curves for any of the given objectIds" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "f79f4db7-6306-4318-9024-98571b6129ff", + "metadata": {}, + "outputs": [], + "source": [ + "# get only data for the first object in the list\n", + "mask = pdf['r:diaObjectId'] == mylist[0]\n", + "obj_lc = pdf[mask]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e53f4783-c782-4d31-bcdc-56292b8af984", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9u3Tv//9b7366qvasmWLTNOUJPXr109//etfNWLECC1cuFAvvviivvrqK7344otq1aqVHnjgAV+WAQAAAAA1i4iSBtwjnTlBaiQbTJJjkwlqAQBognzynczChQs1cuRItW/fXvfdd582b96s6OhojRkzRj/88IN++OEHjR49WnFxcRo+fLiWLl2ql19+WaZp6vXXX/dFCQAAAABQu4goaciD0v3Z0oB7G02oCwAAmi6vd+zu3r1br732mmbNmqVt27a5dueecMIJ+stf/qLrr79ecXFxtc6/5ZZbNHnyZP3+++/elgAAAAAAFSJjar7eCHfoAgAASA0Idjt06KDy8nKZpimbzabhw4frL3/5i8466yy3nxEXF6e8vDxvSwAAAACACvGpVd8T6AIAgEbO62C3rKxMaWlpGjt2rEaPHq2kpCSPn/Hf//5XxcXF3pYAAAAAABUSOv7x+95XSRf/Q7Jag1cPAACAn3kd7M6fP19//vOfPZqzY8cOtW/f3vX+1FNP9XZ5AAAAAPhDXOXhYYa05h1p368VPXW7DJUMI6ilAQAA+IPXn0maO3euR+N37typwYMHe7scAAAAALih4uwPZa+V3hwuvTJY2vyldORMkECKjYwN6DwAANC0eB3svv7663rggQfcGpudna3Bgwdr69at3i4HAAAAAO4zyyt+DWLA2655u4DOAwAATYvXwW5MTIymTZuml156qc5xu3fv1uDBg7VlyxYdf/zx3i4HAAAAAJ4LYsCbnpAe0HkAAKBpaVArhoiICN15552aM2dOjWP27NmjIUOGKDMzU8cdd5wWLVrkdaEAAABAOCnOzNSOW29TcWZmsEuBVHPAu2WJX5c8NflURRieHWsSYUTo1GTOIgEAAPXz+vC0c889V7NmzdKoUaN03XXXKSkpSYMGDXLd37dvn4YOHapff/1VXbt21aJFi9SmTRtf1AwAAACEvPyly5S/eLGi+5yoqG7dgl0OKlUGvLtWS59OksZ977elkmOT9b/L/qfckly35yTaE5Ucm1z/QAAA0OR5HexK0rXXXqvdu3dr4sSJuvTSS7Vs2TL16tVLOTk5Gjp0qH755Rd16dJFixcvVnIy35wAAACg6ShYuVKSVLjyO+nmm4NcDVwMa0W4m9JHGjrF78slxyYT1AIAAL9oULArSffcc4927dql5557Tueff74+/vhj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t69WrVrl02cDAAAgNPyy/xddseAKj+f998L/6oSWJ/ihIgAAGrcVm3I0/bNf3Qp0j5beOlab9+bLUO1h7tF6pcbp4/FneVUjfMfdfM3i7QJRUVFKSEgIu1BXkv7yl78oOztbXbt21bp167RlyxatXr1ae/fu1YQJE2SapiZOnKhNmzZVmTdmzBht3LhR/fr102+//aaMjAxt375dM2bMkGmauv322/XTTz9VW2/VqlW68847JUkzZszQ9u3blZGRod9++039+vXThg0bdPPNN9dYazDWBAAAAAAAQOiYOHeNx6GuJG3emy/JvVBXqjg8DeHD62D3T3/6kw4dOqT8/Hxf1uN3hw8f1pIlSyRJTz75pE444Y8dA1FRUXryySeVnp6usrIyff755657q1ev1scffyyLxaJ3331XKSkpkio+snfLLbfouuuuU3l5uf72t79VW/Nvf/ubnE6nrrvuOt1yyy2uj/mlpKTonXfekcVi0bx587R27doq84KxJgAAAAAAABqHSKtn4w8Xl/mnEPiF18HuuHHjVF5ertdee82X9fhdSUmJKrtPdOnSpdp9wzBc1x0Oh+v6nDlzJElDhgxRenp6tXljx46VJP3vf/9TQcEfjabz8/P12WefSZJuueWWavO6du2qIUOGSJLef//9KveCsSYAAADCX3Z+tn7Z/4vbr+z87GCXDMCHTNNUSVl5sMsA4EMD0lt5Nc/h4b8KSsudXq2D4PD68LQRI0botttu06RJk5SYmKjrrrvOl3X5TVJSktq1a6edO3fqm2++Uc+ePavcLygocLU2OOWUU1zXV65cKUkaMGBAjc895ZRTZLfbVVxcrJ9++kn9+/eXVLHrtqSkRHa7vcrzjnbWWWfpyy+/dK0RzDUBAAAQ3rLzs/XnD/4sh9NR/+AjIi2R+uTST9w+pCzRniib1abScvc/rmmz2pRoD782bkA4OfrU+10Hi/TxuDOVkhAd7LIA+MCcjJ0BWcfp3VFcCBKvg93Ro0dLkpo1a6YbbrhBDz30kE4++WQ1b9681jmGYWjWrFneLukz06ZN03XXXad7771XFotFF154oeLi4rR+/Xrdd9992rNnj6699lpXUCpJmZmZkmre5StJkZGRat++vTZv3qyNGze65lbO69ChgyIjI2ucW/nMjRs3VrkejDVrMmPGDM2cObPecZK0YcMGt8YBAADAPzYd3ORRqCtJDqdDmw5ucjvYTY5N1oJhC5Rbkuv2Gon2RLefD8AzRwe6a3fmyTAk06zolUmwCzQOkVZDZU7/h67kuuHF62D39ddfl2EYrrYG27dv1/bt22scWzkuVILda665RvHx8Xr00UerHSCWnJysf/3rX642B5UOHDggSWrRokWtz628l5v7xze43s4L1po1yc7OVkZGRr3jAAAAEHyHSg8FZF5ybDJBLRBkxwa6FqPyenDrAuB7jnL+j43qvA52r7/+eteBXOFo8+bN2rt3rywWizp06KC4uDht3rxZ2dnZev3113XmmWdWadNQXFwsSbLZbLU+0263S5KKiooaPC9Ya9YkOTlZffv2rXecVLFj151nAgAAAAC8U1ugG4DNfACC5ITkOK3NyvP7OmEc9TVJDdqxG65uu+02/fOf/9TJJ5+szz77TN26dZNUEXJOmTJFTz75pPr376+1a9eqY8eOkqSoqCgVFhaqtLT2PmIlJSWSpOjoPz7qEhUVJUkezwvWmjUZO3ZstR3MtenXrx+7ewEAAADAD6q1XDhynUAXaPwCEepKkiGS3XBiCXYBgbZ27Vr961//UmRkpN5//31XqCtVhJzTp0/X0KFDdejQIT3++OOue4mJFQc9VLY5qEnlvcqxDZkXrDUBAAAAAKFnxaYcXfKPrzXqte+1/kjAQ54LwNfYsRtemlywu2LFCpmmqa5du7p24x7r3HPPlST9+OOPrmuVAfDmzZtrnONwOFw9ho8Oiyt/v337djkcNR9isWXLlmrzgrUmAAAAACD0TJ3/s9burAh02aELND2RlsAkrtYArQPfaHLB7uHDh90eW9mrVpJOO+00SdLy5ctrHPv999+rtLRUUVFROvHEE13X+/TpI5vNppKSEn3//fc1zq185umnn17lejDWBAAAAACEnqkX9VCvdvGSJHIXoOlxBmiPvj2iyUWFYa3B/7R2796txx57TBdccIF69eqlLl26qHPnzjW+unTp4ouaG6Ryh+qmTZv0+++/1zjmiy++kCR1797ddW3EiBGSpCVLltS4g3bGjBmSpPPPP1+xsbGu682bN9f//d//SZJmzpxZbd6mTZu0ePHiKmsEc00AAAAAQOg5s2uSPrqtv94YfYp6phLwAk3NyL7tvZp3y1lp6tSymdvjE5tFerUOgqNBwe4HH3ygbt266aGHHtJnn32m9evXa+vWrdq2bZvr9fvvv1d5H2znnnuuWrduLYfDoZEjRyozM9N1r6ioSBMnTtSiRYskSddff73rXt++fXXhhReqvLxcV155pbKzsyVVNK+fOXOmZs+eLYvFogcffLDamg899JAMw9Ds2bM1c+ZMmWbF37JkZ2frqquuktPp1LBhw9S7d+8q84KxJgAAAIDgME1TJWXlwS4DIcwwDA3s1oqAF2iCftye69U8wzAUF+V+WNuqeZRX6yA4vA52f/nlF1199dXKz8/XBRdcoH/+85+SpPj4eL366qt69NFHNWjQIJmmqaSkJL300kt67bXXfFa4t2JiYvTWW28pJiZGP/zwg44//nh17txZvXv3VlJSkp588klJ0m233aZLLrmkytzXXntNXbt21apVq5SWlqa+ffuqY8eOGjt2rAzD0HPPPae+fftWW/Pkk0/WM888I0kaO3asOnbsqL59+yotLU2rVq1S9+7d9corr9RYbzDWBAAAABA4pmlqWeY+XfKPr9V/2mLtOlgU7JIQ4gh4gabn6HYsnpjx1W9avyvP7fE9UuI8XgPB43Ww++yzz6qkpETXXnut5s+fr7/85S+SpOjoaI0ePVr333+/Fi9erE8++USFhYV64403dPXVV/us8IY4++yztXbtWo0bN07dunXT7t27tWHDBsXHx+uSSy7RggUL9NJLL1Wb16pVK61atUr333+/OnbsqF9++UUFBQU6//zztWjRIo0fP77WNe+8804tXLhQ559/vgoKCvTLL7+oY8eOuv/++/Xjjz8qKSmpxnnBWBMAAACA/x0d6I567Xuty8pTTn6pDhSUBrs0hInaAl5OtQcan6PbsXga8Hpy4OKZXVt5WBmCyTArP6Pvoa5du+q3337T+vXrdfzxx0uSLBaL2rZtq127dlUZO2PGDP31r3/VE088oXvvvbfhVSNk9evXTxkZGerbt69WrVoV7HIAAACanK92fKXbFt/m8bx/DPmHBrQf4IeKcCzTNPXVphw9/cVGrd2ZJ4tR9YfuBePPdAV0gCeO/t9W9sFifTy+v5Ljo4NdFgAfO/a/I/U59r8ztWkeFaEv7hrAvzdCgLv5mtc7drOyshQREeEKdaWKvy0sKSmpNva6666T1WrVu+++6+1yAAAAANzQNbGrIi2eHXwSaYlU18SufqoIlY7dobs+q+KH8WN/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3aN17dpVXbt21bhx41zXDh48qOLiYrVs2ZIQFwCAcLN7jfTNS1KXwW5PcezZo7KcHNd7s7RUhd9V7PotWLlShatXy7DZXPcjkpIU2aaN72quR32BLgAAAACEK6+D3ZokJCT48nEAACDQtnzp0fCsuyeoaNWqmm+Wl+v3q66ucin6pJPU6c3aWzj5CoEuAAAAgMbOp8EuAAAIIVa753Mim3k0PGHkCBWvWyfT4ZCO9NWvkWHIiIxUwojhntfkoRWbcvTEZxsIdAEAAAA0apZgFwAAAPzEFuPZ+IgoaeAkj6YkDBumtHlzZevYUbLU8m2FxSJbp05KmzdXCcOGeVaTFybOXUOoCwAAAKDRI9gFAKCxstrqH3O0smLpp7c9Xsaenq60eXMVM+CsGu/HDhygtHlzZU9P9/jZAAAAAICaEewCANBYRbjZisGwVvya0kc6/wmvljKio1Wes7/6rl2LRWU5+2VERXn1XG9MH95bvVLjA7YeAAAAAARDkw92//e//+myyy5TSkqK7Ha72rZtq/79++vBBx9UWVlZtfEOh0NPPvmkevfurZiYGCUmJmrw4MGaN29evWutXr1aV1xxhdq2bauoqCh17txZd9xxh/bt21fnvGCsCQBoAioD3eRe0rVzpZuXSF0Ge/WoghVfq3j9esnprHrD6VTxunUq+PqbBhbrvjO7Jumjcf31xuhTCHgBAAAANFqGadZ10knjVVZWphtvvFFvvvmmJKl9+/Zq27at9u/fr507d6q0tFSHDx9WbGysa05xcbHOOeccrVixQlarVT169FBBQYG2bNkiSZo0aZKmTZtW43rz5s3TlVdeKYfDodatW6tdu3bauHGjCgoKlJycrBUrVqhz587V5gVjzYbo16+fMjIy1LdvX62q7ZR0AEBgfHyHlPF69euGVTLLK3boDnlQ6jJUMgyvlzFNU9tGXq7i9esV2amTYk4/XREtWqjswAEVfPONHL//rqg//Umd3vuvjAas421tX23K0dOfb9TarLxaxz13xYka1ic1gJUBAAAAQM3czdea7I7dv/71r3rzzTd18sknKyMjQ9u3b9f333+vLVu2KDc3Vx999JHs9qofYZ00aZJWrFihtLQ0/fzzz1qzZo02b97sGvvEE09o/vz51dbKysrSddddJ4fDoYceekhZWVlatWqVsrKydN555yk7O1tXXHGFasrYg7EmAKCROO7Cqu9r2qGbfnaDQl1JksMha1yc4i+7TJ0/mKfkKQ+r1fhxSp7ysDp/ME/xl14qa1xzqYZPwvibYRga2K0VO3gBAAAANDpNcsfukiVLNGTIEHXq1Elr165V8+bN652zZ88edejQQaWlpVq8eLEGD676UdWHH35Yf/vb32pM0u+88049//zzGjBggJYtW1blXm5urtLS0pSXl6ePP/5YF110UVDXbCh27AJACNn1kzRzoCRDkumzHbo1MU2zzt249d0PlNp28L5+48ka1L11ECsDAAAAgArs2K3D008/LUmaMGGCW6GuJH388ccqLS1V165dqwWskjR27FhJUkZGhqtNQqU5c+ZIkm655ZZq8xITEzVy5EhJ0nvvvRf0NQEAjUhMKym2tZRyom936NagvtA2FEJdqeYdvEmxNnVv6973AwAAAAAQKrwOdt955x2PxhcWFmrMmDHeLuczxcXF+uKLLyRJZ599tn755RfdeeedOvfcc3XRRRfp4Ycf1u+//15t3sqVKyVJZ511Vo3PTU1NVVpaWpWxkrRjxw5lZWVJkgYMGFDj3MpnHj0vWGsCABqR+FTpzvV+DXTD1dEB79eThyg5PrreOaZpqqSsPADVAQAAAED9IrydeM0112jhwoV66aWX1KxZszrH/vTTT7ryyiu1adMmzZo1y9slfWLNmjVyOBySpOXLl2vcuHEqLS113V+wYIGmT5+uf//737rqqqtc1zMzMyVJXbp0qfXZXbp00datW7Vx48Zq82w2m9q1a1frPEn67bff5HA4FBkZGbQ1azJjxgzNnDmz1vtH27Bhg1vjAAABEmGvf0wTZhiG7BHWOse42jd8sVG7Dhbp43FnKiWh/iAYAAAAAPzJ62BXkt544w198803euedd9SnT58axzz77LO6//77VVJSopYtWzZkOZ/Izs52/f62225T37599eKLL6p3797avn27HnjgAb333nsaNWqUjjvuONef68CBA5KkFi1a1Prsynu5ubmua5XzEhMTa/0YauU8p9OpQ4cOub5OwVizJtnZ2crIyKj1PgAAjdHRge7anX/04z1QUEqwCwAAACDovA52FyxYoBtvvFGZmZk6/fTT9fjjj+uuu+5y3d+3b59GjRqlzz//XKZpatCgQZo9e7ZPim6I/Px81++bNWumTz/9VImJiZKk9PR0vfPOO8rMzNRPP/2kv//9765etcXFxZIqdsHWxm6v2BVVVFTkuubJvIbM9dWaNUlOTlbfvn3rHFNpw4YN9T4PAIBQdmyge+xfke47XBKUugAAAADgaF4HuxdccIHWrFmj6667TosWLdI999yjhQsX6vXXX9dPP/2kUaNGae/evbJarZo6daruu+++kDg4JSoqyvX7G264wRXqVrJYLLrrrrs0atQoffHFF3I6nbJYLK55R7dtOFZJScUPetHRf+zi8WReQ+b6as2ajB071nVQW30qT+0DACDc1BbomseM27a/INClAQAAAEA1DWrF0LZtWy1cuFDTpk3TlClT9Pnnn+u4447ToUOH5HQ61alTJ7399ts67bTTfFVvgx0d5B5//PE1jqm8fvjwYe3fv1+tWrVyzatsc1CTo1sgHLtebm6uTNOsMdyunGexWBQXF1dtbiDXBACgqXE30K2UX1wWqNIAAAAAoFYWXzxk8uTJeu2112SapvLy8uR0OtW7d2+tWbMmpEJdSTruuONcv6+tVcHRu3qdTqckqVu3bpKkzZs31/rsLVu2VBl79O9LS0u1Y8eOOuelpaVVOcQsGGsCANCUrNiUo0v+8bVGvfa91h3po1tboAsAAAAAocQnwe7s2bN16623yjAMmWbFj0Nr167V3XffHXL9VlNTU9WxY0dJ0m+//VbjmMrQMyoqynWoWGVAvWLFihrnZGVlaevWrVXGSlKHDh2UkpIiSVq+fHmNcyuvn3766VWuB2NNAACakqnzf3YdjEagCwAAACCcNCjYLSgo0PXXX68bbrhBhw8fVp8+fbRu3TqNGzdOpmnqtddeU9++ffXTTz/5qFzfuOKKKyRJb731lsrKqn+c8rXXXpMkDRw4UBERFd0qLrnkEkVGRmrTpk1asmRJtTkzZsyQJPXp00fp6elV7g0fPlySNHPmzGrzcnNz9f7770uSRo4cWeVeMNYEAKApGdG3naIifPL33AAAAAAQUF7/JPPjjz/qxBNP1FtvvSVJuvvuu/Xtt9+qR48eeuGFF/Txxx+rZcuW2rhxo0477TQ9++yzPiu6oe655x7Fx8dr69atGjdunIqLiyVV9Nh74YUXNH/+fBmGocmTJ7vmtGnTxnWA2JgxY7Rx40bXvfnz52v69OmSpClTplRb795771V0dLS++uorPfzwwyovL5ck5eXl6eqrr1ZeXp769Omjiy66qMq8YKwJAEBT8p+V21Rc5gx2GQAAAADgMcOs7J3gIbvdLofDodatW+v111/XeeedV23M7t27de2112rx4sUyDEPnnnuuPv300wYX7QtffvmlLr74YhUVFSk+Pl7dunXTzp07lZ2dLcMwNH36dN1zzz1V5hQVFWno0KH69ttvZbVa1bNnT+Xn57taN0yYMEFPPfVUjevNmTNHV111lcrKytS6dWu1b99ev/76qwoKCtSmTRutWLGi2q7bYK3ZEP369VNGRob69u2rVatW+fTZAAD42hnTFmnXwWKP5kw4p5vGD+3qp4oAAAAANHXu5mte79h1OBw655xztGbNmhpDXUlq27atFi5cqMcee0wRERH64osvvF3O584++2ytWbNGN9xwg5o3b66ffvpJDodDF198sZYsWVIt1JWk6OhoLV26VNOmTdMJJ5ygzMxM5eTkaODAgZozZ06tAaskjRgxQt99951GjBghSVq3bp1atWqlcePGae3atbUGrMFYEwCApmL68N7qlRof7DIAAAAAwGNe79idPn26Jk6c6Pb477//XldffbU2b97szXIIE+zYBQCEG9M09dWmHD39+Uatzcqrdzw7dgEAAAD4k7v5WoS3C3gS6krSKaecEnKHqAEAABiGoYHdWmlA1yS3At7mUV5/+wQAAAAAPhPQn0xiY2MDuRwAAIDb3A14E5rZglAdAAAAAFTFlhMAAICj1BfwJjSLDGJ1AAAAAFDB62B3yJAhHs8xDEOLFi3ydkkAAICAqSng3ZVXpO5tmwe7NAAAAADwPthdunSpW+MMw5BUcTBJ5e8BAADCxdEBb2m5U/YIa7BLAgAAAADvg90pU6bUeT8vL0/fffedvv32W7Vs2VJ//etfZbXygxAAAAhPhmEQ6gIAAAAIGX4LdistXrxYl112mX755RfNmTPH2+UAAAAAAAAAAEdY/L3AkCFD9Pzzz+uDDz7Qq6++6u/lAAAAAAAAAKDR83uwK0lXXHGFrFYrwS4AAAAAAAAA+EBAgt2oqCjFxMRow4YNgVgOAAAAAAAAABq1gAS7WVlZysvLk2magVgOAAAAAAAAABo1vwe7RUVFuvXWWyVJf/rTn/y9HAAAAAAAAAA0ehHeTnzkkUfqvF9cXKwdO3bo888/1/79+2UYhm677TZvlwMAAAAAAAAAHOF1sDt1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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# all lsst bands\n", + "all_bands = ['u', 'g', 'r', 'i', 'z', 'y']\n", + "symbols = ['o', '<', '>', 's', '*', 'p']\n", + "\n", + "# get unique filters\n", + "lc_bands = np.unique(obj_lc['r:band'])\n", + "\n", + "plt.figure(figsize=(16,10))\n", + "\n", + "for i in range(len(all_bands)):\n", + " if all_bands[i] in lc_bands:\n", + " flag = obj_lc['r:band'] == all_bands[i] # identify one filter at a time\n", + " \n", + " mjd = obj_lc['r:midpointMjdTai'][flag] # get observation days (MJD)\n", + " flux = obj_lc['r:psfFlux'][flag] # get difference flux\n", + " fluxerr = obj_lc['r:psfFluxErr'][flag] # get difference flux error\n", + "\n", + " plt.errorbar(mjd, flux, yerr=fluxerr, fmt=symbols[i], label=all_bands[i])\n", + "\n", + "plt.xlabel('MJD')\n", + "plt.ylabel('difference flux (milijansky)')\n", + "plt.legend(loc='upper left')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "45985478-08cb-4970-b9f7-3b7ed29afed4", + "metadata": {}, + "source": [ + "### Case 2: cone search for a list of positions" + ] + }, + { + "cell_type": "markdown", + "id": "a8404a7e-0458-4e61-8138-ac910a82bf86", + "metadata": {}, + "source": [ + "In order to cross-match with an entire catalog, you can loop over your sources" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "ab00345e-3328-423d-a316-787ca0703f15", + "metadata": {}, + "outputs": [], + "source": [ + "# read your catalog\n", + "my_cat = pd.read_csv('cone_search_example.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "68a9c34b-523d-4941-8bf8-411794c637e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(25, 3)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# check the size of your catalog\n", + "my_cat.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "6ae204a2-7c31-4102-be6a-c0db03b8c095", + "metadata": {}, + "outputs": [], + "source": [ + "store_objs = []\n", + "\n", + "# launch a sequence of queries\n", + "for i in range(my_cat.shape[0]):\n", + " \n", + " r = requests.post(\n", + " '{}/api/v1/conesearch'.format(APIURL),\n", + " \n", + " json={\n", + " \"ra\": str(my_cat['ra'][i]),\n", + " \"dec\": str(my_cat['dec'][i]),\n", + " \"radius\": \"1.5\" # radius should be in arcsec\n", + " }\n", + " )\n", + "\n", + " pdf = pd.read_json(io.BytesIO(r.content))\n", + " store_objs.append(pdf)\n", + "\n", + "data_all = pd.concat(store_objs, ignore_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "9f90bf87-4b4b-470b-bbb6-36f273c2cd97", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(41, 186)" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#check how many objects were found\n", + "data_all.shape" + ] + }, + { + "cell_type": "markdown", + "id": "b7c64d2d-1c42-4a41-bb7e-01e2eddce30d", + "metadata": {}, + "source": [ + "Note that each one of the searches identifies the last alert of each object, but the same alert can be associated to more than one source in your catalog.\n", + "\n", + "In this example, we found 41 alerts, but the number of objects is different." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "9187d8c3-e103-4743-8b6a-a641f5453ab8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(11,)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "obj_ids = np.unique(data_all['r:diaObjectId'])\n", + "obj_ids.shape" + ] + }, + { + "cell_type": "markdown", + "id": "0a4aa8f4-1d90-4072-807c-c8e1506f3b8b", + "metadata": {}, + "source": [ + "You can now extract the `objectId` for every source which got cross-matched and check them at the Fink portal" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "ec1e24a0-c133-4450-bed6-c4267da2103c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://lsst.fink-portal.org/170028510695916335\n", + "https://lsst.fink-portal.org/170028510831181832\n", + "https://lsst.fink-portal.org/170028521943466017\n", + "https://lsst.fink-portal.org/170028527544959074\n", + "https://lsst.fink-portal.org/170032908006326285\n", + "https://lsst.fink-portal.org/313862203201028173\n", + "https://lsst.fink-portal.org/313871014369951753\n", + "https://lsst.fink-portal.org/313875416991924268\n", + "https://lsst.fink-portal.org/313998569677259171\n", + "https://lsst.fink-portal.org/314007379158499424\n", + "https://lsst.fink-portal.org/314007379963805782\n" + ] + } + ], + "source": [ + "for name in obj_ids:\n", + " print('https://lsst.fink-portal.org/{}'.format(name))" + ] + }, + { + "cell_type": "markdown", + "id": "c6bc3eeb-9530-46b0-aa55-8ae7f6545369", + "metadata": {}, + "source": [ + "> **⚠️ Warning**\n", + "> This service should not be used for catalogs containing more than a few thousand entries\n", + "> The xmatch service for larger samples will be made available shortly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f194fa5-c43c-4828-8876-dfb870b1eeba", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/lsst/cone_search/cone_search_example.csv b/lsst/cone_search/cone_search_example.csv new file mode 100644 index 0000000..22ae7c6 --- /dev/null +++ b/lsst/cone_search/cone_search_example.csv @@ -0,0 +1,26 @@ +id,ra,dec +SN 2025hlf,185.9885269576657,8.763203076474348 +SN 2025mbp,151.59258155968166,1.1583334010976534 +SN 2025hlf,185.98852305065634,8.763210957025105 +SN 2022and,150.02772046270303,3.7568883682336343 +TDE 2018hyz,151.71199219490367,1.6927875596017365 +SN 2025mbp,151.59257968790465,1.1583349887200571 +SN 2025hlf,185.9885222759368,8.763210159176577 +SN 2025mbp,151.5925787772887,1.158328777812482 +TDE 2018hyz,151.71199074831256,1.6927760569545407 +SN 2025mbp,151.59257891450594,1.1583230163050986 +SN 2022and,150.02727924147476,3.757105282227618 +SN 2025mbp,151.59258269417936,1.158336006078109 +SN 2025mbp,151.59258210001013,1.1583314546095491 +SN 2025mbp,151.59258461644018,1.158326331969271 +SN 2025hlf,185.9885238018117,8.763209705258399 +SN 2025hlf,185.98852345314916,8.763206377352834 +SN 2025hlf,185.9885257866466,8.763201263017224 +SN 2022and,150.02736558904886,3.757268112550088 +SN 2025hlf,185.9885261861473,8.76320846794194 +SN 2022and,150.02718191139454,3.7571565483459395 +SN 2025mbp,151.592588557289,1.1583225689171535 +TDE 2018hyz,151.7119053572508,1.6929866612208528 +SN 2025mbp,151.59257951482942,1.1583349512890457 +SN 2025mbp,151.5925823998322,1.1583323434104336 +SN 2025hlf,185.98852255870577,8.76320814912579