sparclclient 1.2.1.dev6__py2.py3-none-any.whl → 1.2.2b1__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1533 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {
6
+ "tags": []
7
+ },
8
+ "source": [
9
+ "# SPARCLCLIENT"
10
+ ]
11
+ },
12
+ {
13
+ "cell_type": "code",
14
+ "execution_count": 1,
15
+ "metadata": {
16
+ "tags": []
17
+ },
18
+ "outputs": [],
19
+ "source": [
20
+ "__author__ = 'Steve Pothier <steve.pothier@noirlab.edu>'\n",
21
+ "__version__ = '20240224' # yyyymmdd; \n",
22
+ "__keywords__ = ['HowTo', 'astronomy', 'tutorial', 'client', 'sparcl', 'NOIRlab']"
23
+ ]
24
+ },
25
+ {
26
+ "cell_type": "markdown",
27
+ "metadata": {
28
+ "editable": true,
29
+ "slideshow": {
30
+ "slide_type": ""
31
+ },
32
+ "tags": []
33
+ },
34
+ "source": [
35
+ "This notebook demonstrates using the `sparclclient` package to get metadata and spectra data from the *NOIRLab SPARCL Server*."
36
+ ]
37
+ },
38
+ {
39
+ "cell_type": "markdown",
40
+ "metadata": {
41
+ "tags": []
42
+ },
43
+ "source": [
44
+ "## Table of contents\n",
45
+ "* [Goals & Summary](#goals)\n",
46
+ "* [Imports and setup](#imports)\n",
47
+ "* [Install `sparclclient`](#install)\n",
48
+ "* [Prepare to use sparcl](#prepare)\n",
49
+ "* [Get general info from sparcl](#info)\n",
50
+ "* [Get Metadata and Spectra](#get)"
51
+ ]
52
+ },
53
+ {
54
+ "cell_type": "markdown",
55
+ "metadata": {
56
+ "tags": []
57
+ },
58
+ "source": [
59
+ "<a class=\"anchor\" id=\"goals\"></a>\n",
60
+ "## Goals & Summary \n",
61
+ "Demonstrate the use of the `sparclclient` package to get metadata and spectra data from the [NOIRLab SPARCL](https://astrosparcl.datalab.noirlab.edu/). Show how to get non-public data if you have authorized credentials.\n",
62
+ "- Discovery: Search for matching metadata and return metadata records.\n",
63
+ "- Retrieve spectra"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "markdown",
68
+ "metadata": {
69
+ "tags": []
70
+ },
71
+ "source": [
72
+ "<a class=\"anchor\" id=\"imports\"></a>\n",
73
+ "## Imports and Setup"
74
+ ]
75
+ },
76
+ {
77
+ "cell_type": "code",
78
+ "execution_count": 2,
79
+ "metadata": {},
80
+ "outputs": [],
81
+ "source": [
82
+ "from pprint import pformat as pf\n",
83
+ "from pprint import pp\n",
84
+ "import os.path\n",
85
+ "from importlib import reload\n",
86
+ "from collections import defaultdict\n",
87
+ "from datetime import datetime\n",
88
+ "import warnings\n",
89
+ "from getpass import getpass\n",
90
+ "\n",
91
+ "import matplotlib.pyplot as plt\n",
92
+ "import numpy as np\n",
93
+ "import pandas as pd\n",
94
+ "\n",
95
+ "class StopExecution(Exception):\n",
96
+ " def _render_traceback_(self):\n",
97
+ " pass\n",
98
+ "\n",
99
+ "# %matplotlib inline\n",
100
+ "# requires installing ipympl\n",
101
+ "%matplotlib widget\n",
102
+ "plt.rcParams['font.size'] = 14"
103
+ ]
104
+ },
105
+ {
106
+ "cell_type": "markdown",
107
+ "metadata": {
108
+ "tags": []
109
+ },
110
+ "source": [
111
+ "<a class=\"anchor\" id=\"install\"></a>\n",
112
+ "## Install most recent version of the `sparclclient`\n",
113
+ "*NOTE: After installing the most recent version, please restart your kernel.*"
114
+ ]
115
+ },
116
+ {
117
+ "cell_type": "code",
118
+ "execution_count": 3,
119
+ "metadata": {},
120
+ "outputs": [
121
+ {
122
+ "name": "stdout",
123
+ "output_type": "stream",
124
+ "text": [
125
+ "Processing /home/pothiers/sandbox/sparclclient\n",
126
+ " Installing build dependencies ... \u001b[?25ldone\n",
127
+ "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n",
128
+ "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n",
129
+ "\u001b[?25hBuilding wheels for collected packages: sparclclient\n",
130
+ " Building wheel for sparclclient (pyproject.toml) ... \u001b[?25ldone\n",
131
+ "\u001b[?25h Created wheel for sparclclient: filename=sparclclient-1.2.1-py2.py3-none-any.whl size=2720004 sha256=3a32482228256727ce0668582370ca7e21f1a15d56966195599ef45fca8dc8b7\n",
132
+ " Stored in directory: /tmp/pip-ephem-wheel-cache-pjh6yrrs/wheels/9b/de/a2/3f7a82cf4ca7c9e775a1ed1daeea35010570464a1aaa8c370c\n",
133
+ "Successfully built sparclclient\n",
134
+ "Installing collected packages: sparclclient\n",
135
+ " Attempting uninstall: sparclclient\n",
136
+ " Found existing installation: sparclclient 1.2.1\n",
137
+ " Uninstalling sparclclient-1.2.1:\n",
138
+ " Successfully uninstalled sparclclient-1.2.1\n",
139
+ "Successfully installed sparclclient-1.2.1\n"
140
+ ]
141
+ }
142
+ ],
143
+ "source": [
144
+ "#! pip install sparclclient==1.2.1.dev2 # A specific version \n",
145
+ "#!pip install -upgrade sparclclient # Latest released version\n",
146
+ "#!pip install --pre -upgrade sparclclient # Lastest pre-released version\n",
147
+ "\n",
148
+ "# Uncomment next line to load SPARCLCLIENT from local current version of software.\n",
149
+ "!pip install --pre --upgrade ../.."
150
+ ]
151
+ },
152
+ {
153
+ "cell_type": "code",
154
+ "execution_count": 4,
155
+ "metadata": {},
156
+ "outputs": [
157
+ {
158
+ "name": "stdout",
159
+ "output_type": "stream",
160
+ "text": [
161
+ "Run started: 2024-02-28 06:07:40.253046\n"
162
+ ]
163
+ }
164
+ ],
165
+ "source": [
166
+ "import sparcl.client\n",
167
+ "print(f'Run started: {str(datetime.now())}')"
168
+ ]
169
+ },
170
+ {
171
+ "cell_type": "markdown",
172
+ "metadata": {
173
+ "editable": true,
174
+ "slideshow": {
175
+ "slide_type": ""
176
+ },
177
+ "tags": []
178
+ },
179
+ "source": [
180
+ "<a class=\"anchor\" id=\"prepare\"></a>\n",
181
+ "# Configure SPARCLCLIENT"
182
+ ]
183
+ },
184
+ {
185
+ "cell_type": "code",
186
+ "execution_count": 5,
187
+ "metadata": {
188
+ "scrolled": true
189
+ },
190
+ "outputs": [
191
+ {
192
+ "name": "stdin",
193
+ "output_type": "stream",
194
+ "text": [
195
+ " ········\n"
196
+ ]
197
+ }
198
+ ],
199
+ "source": [
200
+ "# How much output to we want to show?\n",
201
+ "show_help = False # HELP for client functions\n",
202
+ "show_curl = False # Show the underlying SPARCL Server API call\n",
203
+ "\n",
204
+ "server = 'http://localhost:8050' # internal DEV Server\n",
205
+ "#server = 'https://sparc1.datalab.noirlab.edu' # internal TEST Server\n",
206
+ "#server = 'https://astrosparcl.datalab.noirlab.edu' # Public Server\n",
207
+ "priv_dr = 'SDSS-DR17'\n",
208
+ "\n",
209
+ "# Authenticated Users that are never authorized for anything important.\n",
210
+ "# These are authenticated on both Public and Test SSO servers.\n",
211
+ "auth_user = 'test_user_1@noirlab.edu'\n",
212
+ "unauth_user = 'test_user_2@noirlab.edu'\n",
213
+ "non_user = 'test_user_3@noirlab.edu'\n",
214
+ "usrpw = getpass()"
215
+ ]
216
+ },
217
+ {
218
+ "cell_type": "code",
219
+ "execution_count": 6,
220
+ "metadata": {
221
+ "scrolled": true
222
+ },
223
+ "outputs": [
224
+ {
225
+ "name": "stdout",
226
+ "output_type": "stream",
227
+ "text": [
228
+ "client=(sparclclient:1.2.1, api:11.0, http://localhost:8050/sparc, client_hash=4d57bf46ad2f857d62cf9c968d6611d7090e4c16, verbose=False, connect_timeout=1.1, read_timeout=5400.0)\n"
229
+ ]
230
+ }
231
+ ],
232
+ "source": [
233
+ "if show_help:\n",
234
+ " help(sparcl.client.SparclClient)\n",
235
+ "client = sparcl.client.SparclClient(url=server, show_curl=show_curl)\n",
236
+ "print(f'{client=}')"
237
+ ]
238
+ },
239
+ {
240
+ "cell_type": "markdown",
241
+ "metadata": {},
242
+ "source": [
243
+ "<a class=\"anchor\" id=\"info\"></a>\n",
244
+ "# Info"
245
+ ]
246
+ },
247
+ {
248
+ "cell_type": "markdown",
249
+ "metadata": {},
250
+ "source": [
251
+ "<a class=\"anchor\" id=\"datasets\"></a>\n",
252
+ "## Data sets available in SPARCL\n",
253
+ "List all currently available data sets from the server/url associated with client"
254
+ ]
255
+ },
256
+ {
257
+ "cell_type": "code",
258
+ "execution_count": 7,
259
+ "metadata": {},
260
+ "outputs": [
261
+ {
262
+ "data": {
263
+ "text/plain": [
264
+ "{'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16', 'SDSS-DR17'}"
265
+ ]
266
+ },
267
+ "execution_count": 7,
268
+ "metadata": {},
269
+ "output_type": "execute_result"
270
+ }
271
+ ],
272
+ "source": [
273
+ "client.all_datasets"
274
+ ]
275
+ },
276
+ {
277
+ "cell_type": "markdown",
278
+ "metadata": {},
279
+ "source": [
280
+ "<a class=\"anchor\" id=\"defaultfieldnames\"></a>\n",
281
+ "## Get default field names\n",
282
+ "Gets fields tagged as 'default' that are common to all data sets in the `dataset_list` passed to the function. If `dataset_list` is None (the default), the function returns the intersection of 'default' fields across all datasets currently available in the SPARC database. The following example of this function produces the same output as it would with no `dataset_list` argument because we currently only have SDSS-DR16 and BOSS-DR16 records in the SPARC database."
283
+ ]
284
+ },
285
+ {
286
+ "cell_type": "code",
287
+ "execution_count": 8,
288
+ "metadata": {
289
+ "scrolled": true
290
+ },
291
+ "outputs": [],
292
+ "source": [
293
+ "if show_help:\n",
294
+ " client.get_default_fields?"
295
+ ]
296
+ },
297
+ {
298
+ "cell_type": "code",
299
+ "execution_count": 9,
300
+ "metadata": {},
301
+ "outputs": [
302
+ {
303
+ "data": {
304
+ "text/plain": [
305
+ "['dec', 'flux', 'ra', 'sparcl_id', 'specid', 'wavelength']"
306
+ ]
307
+ },
308
+ "execution_count": 9,
309
+ "metadata": {},
310
+ "output_type": "execute_result"
311
+ }
312
+ ],
313
+ "source": [
314
+ "client.get_default_fields(dataset_list=['SDSS-DR16', 'BOSS-DR16'])"
315
+ ]
316
+ },
317
+ {
318
+ "cell_type": "markdown",
319
+ "metadata": {},
320
+ "source": [
321
+ "<a class=\"anchor\" id=\"allfieldnames\"></a>\n",
322
+ "## Get all field names\n",
323
+ "Gets fields tagged as 'all' that are common to all data sets in the `dataset_list` passed to the function. If `dataset_list` is None (the default), the function returns the intersection of 'all' fields across all datasets currently available in the SPARC database. The following example of this function produces the same output as it would with no `dataset_list` argument because we currently only have SDSS-DR16 and BOSS-DR16 records in the SPARC database."
324
+ ]
325
+ },
326
+ {
327
+ "cell_type": "code",
328
+ "execution_count": 10,
329
+ "metadata": {},
330
+ "outputs": [
331
+ {
332
+ "data": {
333
+ "text/plain": [
334
+ "\u001b[0;31mSignature:\u001b[0m \u001b[0mclient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_all_fields\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdataset_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
335
+ "\u001b[0;31mDocstring:\u001b[0m\n",
336
+ "Get fields tagged as 'all' that are in DATASET_LIST.\n",
337
+ "These are the fields used for the ALL value of the include parameter\n",
338
+ "of client.retrieve().\n",
339
+ "\n",
340
+ "Args:\n",
341
+ " dataset_list (:obj:`list`, optional): List of data sets from\n",
342
+ " which to get all fields. Defaults to None, which\n",
343
+ " will return the intersection of all fields in all\n",
344
+ " data sets hosted on the SPARCL database.\n",
345
+ "\n",
346
+ "Returns:\n",
347
+ " List of fields tagged as 'all' from DATASET_LIST.\n",
348
+ "\n",
349
+ "Example:\n",
350
+ " >>> client = SparclClient()\n",
351
+ " >>> client.get_all_fields()\n",
352
+ " ['data_release', 'datasetgroup', 'dateobs', 'dateobs_center', 'dec', 'exptime', 'flux', 'instrument', 'ivar', 'mask', 'model', 'ra', 'redshift', 'redshift_err', 'redshift_warning', 'site', 'sparcl_id', 'specid', 'specprimary', 'spectype', 'survey', 'targetid', 'telescope', 'wave_sigma', 'wavelength', 'wavemax', 'wavemin']\n",
353
+ "\u001b[0;31mFile:\u001b[0m ~/sandbox/sparclclient/venv/lib/python3.10/site-packages/sparcl/client.py\n",
354
+ "\u001b[0;31mType:\u001b[0m method"
355
+ ]
356
+ },
357
+ "metadata": {},
358
+ "output_type": "display_data"
359
+ }
360
+ ],
361
+ "source": [
362
+ "client.get_all_fields?"
363
+ ]
364
+ },
365
+ {
366
+ "cell_type": "code",
367
+ "execution_count": 11,
368
+ "metadata": {},
369
+ "outputs": [
370
+ {
371
+ "name": "stdout",
372
+ "output_type": "stream",
373
+ "text": [
374
+ "['ancillary_target1', 'ancillary_target2', 'anyandmask', 'anyormask', 'bluefiber', 'boss_specobj_id', 'boss_target1', 'boss_target2', 'calibflux', 'calibflux_ivar', 'chi68p', 'chunk', 'class_noqso', 'class_person', 'comments_person', 'cx', 'cy', 'cz', 'data_release', 'datasetgroup', 'dateobs', 'dateobs_center', 'dec', 'deredsn2', 'designid', 'dof', 'eboss_target0', 'eboss_target1', 'eboss_target2', 'eboss_target_id', 'elodie_bv', 'elodie_dof', 'elodie_feh', 'elodie_filename', 'elodie_logg', 'elodie_object', 'elodie_rchi2', 'elodie_sptype', 'elodie_teff', 'elodie_z', 'elodie_z_err', 'elodie_z_modelerr', 'exptime', 'fiberid', 'firstrelease', 'flux', 'fluxobjid', 'fracnsighi', 'fracnsiglo', 'fracnsigma', 'instrument', 'ivar', 'lambda_eff', 'legacy_target1', 'legacy_target2', 'marvels_target1', 'marvels_target2', 'mask', 'mjd', 'model', 'npoly', 'nspecobs', 'nturnoff', 'objid', 'plate', 'plateid', 'platequality', 'platerun', 'platesn2', 'primtarget', 'programname', 'ra', 'rchi2', 'rchi2diff', 'rchi2diff_noqso', 'redshift', 'redshift_err', 'redshift_warning', 'run1d', 'run2d', 'sectarget', 'segue1_target1', 'segue1_target2', 'segue2_target1', 'segue2_target2', 'site', 'sky', 'sn_median', 'sn_median_all', 'snturnoff', 'sourcetype', 'sparcl_id', 'spec1_g', 'spec1_i', 'spec1_r', 'spec2_g', 'spec2_i', 'spec2_r', 'specboss', 'special_target1', 'special_target2', 'specid', 'speclegacy', 'specprimary', 'specsdss', 'specsegue', 'specsegue1', 'specsegue2', 'spectroflux', 'spectroflux_ivar', 'spectrographid', 'spectroskyflux', 'spectrosynflux', 'spectrosynflux_ivar', 'spectype', 'subclass', 'subclass_noqso', 'survey', 'targetid', 'targetobjid', 'targettype', 'tcolumn', 'telescope', 'tfile', 'theta', 'thing_id', 'thing_id_targeting', 'tile', 'vdisp', 'vdisp_err', 'vdispchi2', 'vdispdof', 'vdispnpix', 'vdispz', 'vdispz_err', 'wave_sigma', 'wavelength', 'wavemax', 'wavemin', 'wcoverage', 'xfocal', 'yfocal', 'z_conf_person', 'z_err_noqso', 'z_noqso', 'z_person', 'zoffset', 'zwarning_noqso']\n"
375
+ ]
376
+ }
377
+ ],
378
+ "source": [
379
+ "print(sorted(client.get_all_fields(dataset_list=['SDSS-DR16', 'BOSS-DR16'])))"
380
+ ]
381
+ },
382
+ {
383
+ "cell_type": "markdown",
384
+ "metadata": {},
385
+ "source": [
386
+ "## Version of Server API used by this client"
387
+ ]
388
+ },
389
+ {
390
+ "cell_type": "code",
391
+ "execution_count": 12,
392
+ "metadata": {},
393
+ "outputs": [
394
+ {
395
+ "data": {
396
+ "text/plain": [
397
+ "11.0"
398
+ ]
399
+ },
400
+ "execution_count": 12,
401
+ "metadata": {},
402
+ "output_type": "execute_result"
403
+ }
404
+ ],
405
+ "source": [
406
+ "client.version"
407
+ ]
408
+ },
409
+ {
410
+ "cell_type": "markdown",
411
+ "metadata": {},
412
+ "source": [
413
+ "<a class=\"anchor\" id=\"get\"></a>\n",
414
+ "# Get Metadata and Spectra"
415
+ ]
416
+ },
417
+ {
418
+ "cell_type": "markdown",
419
+ "metadata": {},
420
+ "source": [
421
+ "<a class=\"anchor\" id=\"find\"></a>\n",
422
+ "## Get Metadata: `client.find`"
423
+ ]
424
+ },
425
+ {
426
+ "cell_type": "markdown",
427
+ "metadata": {},
428
+ "source": [
429
+ "The first way you can discover your data is by using SPARCL's `client.find()` method, which allows you to find records in the SPARCL database based on certain parameters passed to the function. Only Core fields may be in the `outfields` and `constraints` parameters. The descriptions for all fields, including Core fields, is located [here](https://astrosparcl.datalab.noirlab.edu/sparc/sfc/). The SPARCL Core fields constraint types are:\n",
430
+ "\n",
431
+ "\n",
432
+ "| Field name | Constraint type | Example |\n",
433
+ "|:----------------|:---------------|:-------|\n",
434
+ "| id | List of values (but not<br>intended for data discovery) | ['00001658-460c-4da1-987d-e493d8c9b89b',<br>'000017b6-56a2-4f87-8828-3a3409ba1083']\n",
435
+ "| specid | List of values | [6988698046080241664, 6971782884823945216]\n",
436
+ "| targetid | List of values | [1237679502171374316, 1237678619584692841]\n",
437
+ "| data_release | List of allowed values<br>from [SPARCL Categoricals](https://astrosparcl.datalab.noirlab.edu/sparc/cats/) | ['BOSS-DR16', 'SDSS-DR16']\n",
438
+ "| datasetgroup | List of allowed values<br>from [SPARCL Categoricals](https://astrosparcl.datalab.noirlab.edu/sparc/cats/) | ['SDSS_BOSS']\n",
439
+ "| ra | Range of values (may not<br>\"wrap\" around RA=0) | [44.53, 47.96]\n",
440
+ "| dec | Range of values | [2.03, 7.76]\n",
441
+ "| redshift | Range of values | [0.5, 0.9]\n",
442
+ "| redshift_err | Range of values | [0.000225, 0.000516]\n",
443
+ "| redshift_warning | List of values | [0, 3, 5]\n",
444
+ "| spectype | List of allowed values<br>from [SPARCL Categoricals](https://astrosparcl.datalab.noirlab.edu/sparc/cats/) | ['GALAXY', 'STAR']\n",
445
+ "| instrument | List of allowed values<br>from [SPARCL Categoricals](https://astrosparcl.datalab.noirlab.edu/sparc/cats/) | ['SDSS', 'BOSS']\n",
446
+ "| telescope | List of allowed values<br>from [SPARCL Categoricals](https://astrosparcl.datalab.noirlab.edu/sparc/cats/) | ['sloan25m']\n",
447
+ "| site | List of allowed values<br>from [SPARCL Categoricals](https://astrosparcl.datalab.noirlab.edu/sparc/cats/) | ['apo']\n",
448
+ "| specprimary | List of values (but typically<br>would only include 1 if<br>being used for data<br>discovery constraints) | [1]\n",
449
+ "| wavemin | Range of values | [3607, 3608]\n",
450
+ "| wavemax | Range of values | [10363, 10364]\n",
451
+ "| dateobs_center | Range of values | ['2013-03-14T10:16:17Z',<br>'2014-05-24T12:10:00Z']\n",
452
+ "| exptime | Range of values | [3603.46, 3810.12]\n",
453
+ "| updated | Range of values | ['2022-08-20T21:37:50.636363Z',<br>'2022-09-20T20:00:00.000000Z']\n"
454
+ ]
455
+ },
456
+ {
457
+ "cell_type": "code",
458
+ "execution_count": 13,
459
+ "metadata": {
460
+ "editable": true,
461
+ "scrolled": true,
462
+ "slideshow": {
463
+ "slide_type": ""
464
+ },
465
+ "tags": []
466
+ },
467
+ "outputs": [],
468
+ "source": [
469
+ "if show_help:\n",
470
+ " client.find?"
471
+ ]
472
+ },
473
+ {
474
+ "cell_type": "markdown",
475
+ "metadata": {},
476
+ "source": [
477
+ "#### Define fields and constraints for metadata FIND\n",
478
+ "Define the fields we want returned (`outfields`) and the constraints (`constraints`)"
479
+ ]
480
+ },
481
+ {
482
+ "cell_type": "code",
483
+ "execution_count": 14,
484
+ "metadata": {},
485
+ "outputs": [],
486
+ "source": [
487
+ "out = ['sparcl_id','specid', 'ra', 'dec', 'redshift', 'spectype', 'data_release', 'redshift_err']\n",
488
+ "cons = {'spectype': ['GALAXY'],\n",
489
+ " 'redshift': [0.5, 0.9],\n",
490
+ " 'data_release': ['BOSS-DR16', 'SDSS-DR16']}"
491
+ ]
492
+ },
493
+ {
494
+ "cell_type": "markdown",
495
+ "metadata": {},
496
+ "source": [
497
+ "#### Execute FIND\n",
498
+ "Execute the `client.find()` method with our parameters.\n",
499
+ "The `limit` argument here is being used for demonstration purposes only, and simply returns only the first 20 results here."
500
+ ]
501
+ },
502
+ {
503
+ "cell_type": "code",
504
+ "execution_count": 15,
505
+ "metadata": {
506
+ "scrolled": true
507
+ },
508
+ "outputs": [],
509
+ "source": [
510
+ "found = client.find(outfields=out, constraints=cons, limit=20)"
511
+ ]
512
+ },
513
+ {
514
+ "cell_type": "code",
515
+ "execution_count": null,
516
+ "metadata": {
517
+ "scrolled": true
518
+ },
519
+ "outputs": [],
520
+ "source": []
521
+ },
522
+ {
523
+ "cell_type": "code",
524
+ "execution_count": 16,
525
+ "metadata": {},
526
+ "outputs": [
527
+ {
528
+ "data": {
529
+ "text/html": [
530
+ "<div>\n",
531
+ "<style scoped>\n",
532
+ " .dataframe tbody tr th:only-of-type {\n",
533
+ " vertical-align: middle;\n",
534
+ " }\n",
535
+ "\n",
536
+ " .dataframe tbody tr th {\n",
537
+ " vertical-align: top;\n",
538
+ " }\n",
539
+ "\n",
540
+ " .dataframe thead th {\n",
541
+ " text-align: right;\n",
542
+ " }\n",
543
+ "</style>\n",
544
+ "<table border=\"1\" class=\"dataframe\">\n",
545
+ " <thead>\n",
546
+ " <tr style=\"text-align: right;\">\n",
547
+ " <th></th>\n",
548
+ " <th>dec</th>\n",
549
+ " <th>sparcl_id</th>\n",
550
+ " <th>redshift_err</th>\n",
551
+ " <th>data_release</th>\n",
552
+ " <th>specid</th>\n",
553
+ " <th>redshift</th>\n",
554
+ " <th>spectype</th>\n",
555
+ " <th>ra</th>\n",
556
+ " <th>_dr</th>\n",
557
+ " </tr>\n",
558
+ " </thead>\n",
559
+ " <tbody>\n",
560
+ " <tr>\n",
561
+ " <th>0</th>\n",
562
+ " <td>28.063643</td>\n",
563
+ " <td>bb3d4287-8a2f-479f-9c7f-1053051e4925</td>\n",
564
+ " <td>0.000332</td>\n",
565
+ " <td>BOSS-DR16</td>\n",
566
+ " <td>-6444532452352045056</td>\n",
567
+ " <td>0.761637</td>\n",
568
+ " <td>GALAXY</td>\n",
569
+ " <td>132.14379</td>\n",
570
+ " <td>BOSS-DR16</td>\n",
571
+ " </tr>\n",
572
+ " </tbody>\n",
573
+ "</table>\n",
574
+ "</div>"
575
+ ],
576
+ "text/plain": [
577
+ " dec sparcl_id redshift_err data_release \\\n",
578
+ "0 28.063643 bb3d4287-8a2f-479f-9c7f-1053051e4925 0.000332 BOSS-DR16 \n",
579
+ "\n",
580
+ " specid redshift spectype ra _dr \n",
581
+ "0 -6444532452352045056 0.761637 GALAXY 132.14379 BOSS-DR16 "
582
+ ]
583
+ },
584
+ "execution_count": 16,
585
+ "metadata": {},
586
+ "output_type": "execute_result"
587
+ }
588
+ ],
589
+ "source": [
590
+ "pd.DataFrame.from_records(found.records)"
591
+ ]
592
+ },
593
+ {
594
+ "cell_type": "markdown",
595
+ "metadata": {},
596
+ "source": [
597
+ "<a class=\"anchor\" id=\"retrieve\"></a>\n",
598
+ "## Get Spectra: `client.retrieve`"
599
+ ]
600
+ },
601
+ {
602
+ "cell_type": "markdown",
603
+ "metadata": {},
604
+ "source": [
605
+ "In order to retrieve spectra records from SPARCL, pass the following to the `client.retrieve()` function:\n",
606
+ "```\n",
607
+ "uuid_list : List of IDs.\n",
608
+ "dataset_list : List of data sets to search for the IDs in (default: None).\n",
609
+ "include : List of field names to include in each record (default: 'DEFAULT').\n",
610
+ "```\n",
611
+ "\n",
612
+ "**NOTE: A reasonable amount of records to request retrieval of is about 10,000. Exceeding this value may cause the retrieval to timeout or fail.**"
613
+ ]
614
+ },
615
+ {
616
+ "cell_type": "code",
617
+ "execution_count": 17,
618
+ "metadata": {
619
+ "scrolled": true
620
+ },
621
+ "outputs": [],
622
+ "source": [
623
+ "if show_help:\n",
624
+ " client.retrieve?"
625
+ ]
626
+ },
627
+ {
628
+ "cell_type": "markdown",
629
+ "metadata": {},
630
+ "source": [
631
+ "#### Use IDs from FIND to RETRIEVE records\n",
632
+ "Use the IDs from the output of using `client.find()` to retrieve records from SPARCL. \n",
633
+ "\n",
634
+ "Note that `ids` in `found_I.ids` is a property name of the Found class. It is a list of records from all records, not a field name of a record."
635
+ ]
636
+ },
637
+ {
638
+ "cell_type": "code",
639
+ "execution_count": 18,
640
+ "metadata": {},
641
+ "outputs": [],
642
+ "source": [
643
+ "# Define the fields to include in the retrieve function\n",
644
+ "inc = ['specid', 'data_release', 'redshift', 'flux', 'wavelength', 'model', 'ivar', 'mask', 'spectype']"
645
+ ]
646
+ },
647
+ {
648
+ "cell_type": "code",
649
+ "execution_count": null,
650
+ "metadata": {},
651
+ "outputs": [],
652
+ "source": []
653
+ },
654
+ {
655
+ "cell_type": "code",
656
+ "execution_count": 19,
657
+ "metadata": {},
658
+ "outputs": [
659
+ {
660
+ "name": "stdout",
661
+ "output_type": "stream",
662
+ "text": [
663
+ "CPU times: user 3.05 ms, sys: 0 ns, total: 3.05 ms\n",
664
+ "Wall time: 50 ms\n"
665
+ ]
666
+ },
667
+ {
668
+ "data": {
669
+ "text/plain": [
670
+ "{'status': {'success': True,\n",
671
+ " 'info': [\"Successfully found 1 records in dr_list=['SDSS-DR16', 'BOSS-DR16']\"],\n",
672
+ " 'warnings': []}}"
673
+ ]
674
+ },
675
+ "execution_count": 19,
676
+ "metadata": {},
677
+ "output_type": "execute_result"
678
+ }
679
+ ],
680
+ "source": [
681
+ "%%time\n",
682
+ "results = client.retrieve(uuid_list=found.ids,\n",
683
+ " include=inc,\n",
684
+ " dataset_list=['SDSS-DR16','BOSS-DR16'])\n",
685
+ "results.info"
686
+ ]
687
+ },
688
+ {
689
+ "cell_type": "code",
690
+ "execution_count": 20,
691
+ "metadata": {},
692
+ "outputs": [
693
+ {
694
+ "data": {
695
+ "text/plain": [
696
+ "{'data_release': 'BOSS-DR16',\n",
697
+ " 'redshift': 0.761636912822723,\n",
698
+ " 'spectype': 'GALAXY',\n",
699
+ " 'specid': -6444532452352045056,\n",
700
+ " 'wavelength': array([ 3580.13991843, 3580.96437103, 3581.78901348, ...,\n",
701
+ " 10368.11964061, 10370.50726326, 10372.89543574]),\n",
702
+ " 'ivar': array([0., 0., 0., ..., 0., 0., 0.]),\n",
703
+ " 'mask': array([88080384, 88080384, 88080384, ..., 83886080, 83886080, 83886080]),\n",
704
+ " 'model': array([-0.01559776, -0.01588696, -0.01609746, ..., 0.94615489,\n",
705
+ " 0.92513317, 0.8983984 ]),\n",
706
+ " 'flux': array([0.19426258, 0.19424935, 0.19423614, ..., 0.27637786, 0.2763944 ,\n",
707
+ " 0.27641097]),\n",
708
+ " '_dr': 'BOSS-DR16'}"
709
+ ]
710
+ },
711
+ "execution_count": 20,
712
+ "metadata": {},
713
+ "output_type": "execute_result"
714
+ }
715
+ ],
716
+ "source": [
717
+ "results.records[0]"
718
+ ]
719
+ },
720
+ {
721
+ "cell_type": "markdown",
722
+ "metadata": {},
723
+ "source": [
724
+ "## Plot spectra"
725
+ ]
726
+ },
727
+ {
728
+ "cell_type": "code",
729
+ "execution_count": 21,
730
+ "metadata": {},
731
+ "outputs": [
732
+ {
733
+ "data": {
734
+ "text/plain": [
735
+ "<matplotlib.legend.Legend at 0x7f194d301750>"
736
+ ]
737
+ },
738
+ "execution_count": 21,
739
+ "metadata": {},
740
+ "output_type": "execute_result"
741
+ },
742
+ {
743
+ "data": {
744
+ "application/vnd.jupyter.widget-view+json": {
745
+ "model_id": "5dbbfe7d6fef4a888197446c69dc27fa",
746
+ "version_major": 2,
747
+ "version_minor": 0
748
+ },
749
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAGQCAYAAABWJQQ0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAByPUlEQVR4nO3dd3hTZcMG8PtkNN0ttIW20MEou5S9N8hQX1HBgYKAijh4RUEFXICIiOuT162oIAIuFBQRkC1lyt6UXVoKLaVNdzOe7480adKMrjTpuH/XhbYnJzlPetLT5z7PkoQQAkRERERERC4gc3cBiIiIiIio7mAAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil1G4uwBUTK/XIzk5GX5+fpAkyd3FISIiIqIShBDIyspCeHg4ZDLey68IBpBqJDk5GREREe4uBhERERGVIjExEY0bN3Z3MWokBpBqxM/PD4DhA+3v7+/m0hARERFRSWq1GhEREaZ6G5UfA0g1Yux25e/vzwBCREREVI2xu3zFseMaERERERG5DAMIERERERG5DAMIERERERG5DAMIERERERG5DAMIERERERG5DAMIERERERG5DKfhrQU0Gg10Op27i0EupFQqIZfL3V0MIiIionJjAKnB1Go10tLSUFBQ4O6ikItJkoSAgACEhoZyHnIiIiKqURhAaii1Wo2kpCT4+voiODgYSqWSFdE6QgiBnJwcpKamwsvLC4GBge4uEhEREVGZMYDUUGlpafD19UXjxo0ZPOogLy8vFBQU4MaNGwgICOBngIiI6gy9XkAm49+9moyD0GsgjUaDgoICVjzrOH9/f+h0Oo7/ISKiOiP+XBri3tiI348ku7soVAkMIDWQscKpVCrdXBJyJ4XC0ICp1WrdXBIiIiLXGPf1XmTla/HsykPuLgpVAgNIDcbWj7qN55+IiIhqIgYQIiIiIiJyGQYQqpE0Gg3mzJmDmJgYqFQqSJKEDz/8EJIkYcKECe4uHhERERHZwVmwqEZ6//33MXfuXPTr1w/3338/lEolhg8fjueff97dRSMiIqIqIkkSIIS7i0GVxABCNdLatWvh6+uLv//+Gx4eHgCAS5cuubdQRERERFQqdsGiGik5ORlBQUGm8EFERERENQMDCNUoc+bMgSRJuHjxIi5fvgxJkiBJEqKjo+0+Jzo62u7jAwYMsJhN6ubNm2jcuDH8/Pxw7tw5i30dPUZEREREZcMuWFSjDBgwAADw4YcfAgCee+45AEBgYKBTXj8oKAjfffcdbrvtNjz00EOIj483rbfy2GOPISkpCUuWLEHz5s2dcjwiIiKiuoYBhGqUAQMGYMCAAViyZAkAQ4uIkbPGgAwaNAgvvfQS3n77bbz66qtYuHAhPv30U6xZswZjxozB+PHjnXIcIiIiorqIAaSWEUIgT6NzdzEc8lLKq/0iem+88QY2b96M9957D40bN8aMGTMQHR2Nzz//3N1FIyIiqrOqd+2ByooBpJbJ0+jQ5vUN7i6GQyffGAZvj+r90VMqlVi5ciU6dOiAZ599FnK5HMuXL4e/v7+7i0ZERERUo3EQOpEdTZs2RVxcHACgc+fO6NWrl5tLRERERFTzVe/b0FRuXko5Tr4xzN3FcMhLKXfp8WQyGQoLC20+lpmZafd5H3zwAeLj4xEUFIR9+/bh008/xdNPP11VxSQiIqJSVPMe3FRGDCC1jCRJ1b57k6vVq1cPx44dg1arhUJR/LPJyclBQkKCzeccOnQIL7/8Mlq2bImtW7eid+/eeOGFF9C/f3+0bdvWVUUnIiIiqnXYBYtqva5du0Kj0WD58uWmbUIIzJo1Czk5OVb75+TkYMyYMQCAlStXIiwsDCtWrIBGo8GYMWOQn5/vsrITERER1TYMIFTrTZkyBR4eHnj88ccxduxYPP/88+jatSvWrVtnGuNhburUqThz5gzeeustdOzYEQDQo0cPzJ49G8eOHcOLL77o6rdAREREVGswgFCt165dO6xfvx6dO3fGL7/8gmXLlqFNmzbYtWuX1QKGq1atwtdff43bbrsN06ZNs3js5ZdfRr9+/fDxxx9j7dq1LnwHRERERLUHBwtQjWRr0cHo6GgIIWzuP3DgQOzZs8dq+7Zt2yy+HzVqlN3XkMlk2L59e7nLSkRERETF2AJCRERERDWCxKUIawUGECIiIiKqcfZdTHd3EaiCGECIiIiIqMa5/4vd7i4CVRADCBERERERuQwDCBERERERuQwDCBERERERuQwDCBERERHVDJwEq1ZgACEiIiIiIpdhACEiIiIiIpdhACEiIiKiGoE9sGoHBhAiIiIiInIZBhAiIiIiInIZBhAiIiIiInIZBhAiJ9m2bRskScKcOXMq9TrR0dGIjo52SpmIiIiIqhsGkBK+//57TJ48GV26dIFKpYIkSViyZInd/dVqNaZNm4aoqCioVCpER0fjxRdfRHZ2tusKTURERERUQyjcXYDq5tVXX8Xly5cRHByMsLAwXL582e6+OTk56N+/Pw4fPoyhQ4dizJgxOHToEN577z1s374dO3bsgKenpwtLT0RERFR7SZwGq1ZgC0gJixcvxqVLl5Camoonn3zS4b7vvPMODh8+jBkzZmDDhg14++23sWHDBsyYMQP79+/H//3f/7mo1ERERERENQMDSAlDhgxBVFRUqfsJIbB48WL4+vritddes3jstddeg6+vLxYvXlxVxazzzMdb7Nq1CwMHDoSfnx9CQkLw9NNPIy8vDwDw559/omfPnvDx8UHDhg3x0ksvQavVWryWVqvFBx98gLi4OHh5eSEgIAADBw7EH3/8YfPYeXl5mDlzJiIiIuDp6Yl27drhq6++cljeixcv4vHHH0dkZCRUKhXCwsIwYcIEhy1sRERERLURA0gFJSQkIDk5Gb1794aPj4/FYz4+PujduzcuXLiAxMREN5Wwbti7dy8GDx6MgIAATJ48GZGRkfjss88wadIk/Pjjjxg9ejSioqIwefJkBAYG4t1338Vbb71ler4QAqNHj8b06dORn5+PZ555Bg899BCOHDmCu+66y6oVS6/X46677sLChQtRr149TJ06FT169MDz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iIiIyAk4AqT24BgQJ8vJycGJEyfg4+OD4OBgdxeHiIiIiKhaYQCpgKysLJw9e9Zqe15eHiZNmoSsrCzcf//9UCjqdAMTERERkfOwCaTWYA25Am7evIlWrVqha9euaN26NUJDQ3H9+nVs2rQJV69eRWxsLN599113F5OIiIiIqNphAKmA+vXr4+mnn8a+ffuwbt063Lp1C15eXmjdujWeffZZTJkyBV5eXu4uJhEREVGtwQaQ2oMBpAL8/f3x8ccfu7sYREREREQ1DseAEBEREVG1x5XQaw8GECIiIiIichkGECIiIiKq9sIDOb62tmAAISIiIqJqa8Wk7hjapiEWjop1d1HISTgInYiIiIiqrV7NgtGrGRd3rk0YQKhM7u3YCC/f0drdxSAiIiKiGo4BhBx6/744bDubigWjYqFSyN1dHCIiIiKq4RhAyKFRnRtjVOfG7i4GEREREdUSHIROREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCVgK8lO4uAhERERHVUgwgZGXFpO7o3qQ+Vj3Vy91FISIiIqJaRuHuAlD10zY8AD9O7unuYhARERFRLcQWECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGkCKHDx/Gyy+/jGHDhiEkJASSJGHAgAGlPm/58uXo1q0bfHx8UK9ePdx55504ePBg1ReYiIiIiKgGYgApsnr1aixYsADbtm1DaGhomZ4zf/58jB07Fjdu3MCTTz6J++67Dzt27ECvXr0QHx9fxSUmIiIiIqp5FO4uQHVx33334a677kJsbCxu3ryJsLAwh/snJCRgzpw5aNGiBfbt24eAgAAAwNNPP40ePXpg0qRJOH78OGQyZjwiIiIiIiPWjou0bdsWnTp1glKpLNP+3377LbRaLV555RVT+ACADh06YMyYMTh1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",
750
+ "text/html": [
751
+ "\n",
752
+ " <div style=\"display: inline-block;\">\n",
753
+ " <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
754
+ " Figure\n",
755
+ " </div>\n",
756
+ " <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAGQCAYAAABWJQQ0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAByPUlEQVR4nO3dd3hTZcMG8PtkNN0ttIW20MEou5S9N8hQX1HBgYKAijh4RUEFXICIiOuT162oIAIuFBQRkC1lyt6UXVoKLaVNdzOe7480adKMrjTpuH/XhbYnJzlPetLT5z7PkoQQAkRERERERC4gc3cBiIiIiIio7mAAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil2EAISIiIiIil1G4uwBUTK/XIzk5GX5+fpAkyd3FISIiIqIShBDIyspCeHg4ZDLey68IBpBqJDk5GREREe4uBhERERGVIjExEY0bN3Z3MWokBpBqxM/PD4DhA+3v7+/m0hARERFRSWq1GhEREaZ6G5UfA0g1Yux25e/vzwBCREREVI2xu3zFseMaERERERG5DAMIERERERG5DAMIERERERG5DAMIERERERG5DAMIERERERG5DAMIERERERG5DKfhrQU0Gg10Op27i0EupFQqIZfL3V0MIiIionJjAKnB1Go10tLSUFBQ4O6ikItJkoSAgACEhoZyHnIiIiKqURhAaii1Wo2kpCT4+voiODgYSqWSFdE6QgiBnJwcpKamwsvLC4GBge4uEhEREVGZMYDUUGlpafD19UXjxo0ZPOogLy8vFBQU4MaNGwgICOBngIiI6gy9XkAm49+9moyD0GsgjUaDgoICVjzrOH9/f+h0Oo7/ISKiOiP+XBri3tiI348ku7soVAkMIDWQscKpVCrdXBJyJ4XC0ICp1WrdXBIiIiLXGPf1XmTla/HsykPuLgpVAgNIDcbWj7qN55+IiIhqIgYQIiIiIiJyGQYQqpE0Gg3mzJmDmJgYqFQqSJKEDz/8EJIkYcKECe4uHhERERHZwVmwqEZ6//33MXfuXPTr1w/3338/lEolhg8fjueff97dRSMiIqIqIkkSIIS7i0GVxABCNdLatWvh6+uLv//+Gx4eHgCAS5cuubdQRERERFQqdsGiGik5ORlBQUGm8EFERERENQMDCNUoc+bMgSRJuHjxIi5fvgxJkiBJEqKjo+0+Jzo62u7jAwYMsJhN6ubNm2jcuDH8/Pxw7tw5i30dPUZEREREZcMuWFSjDBgwAADw4YcfAgCee+45AEBgYKBTXj8oKAjfffcdbrvtNjz00EOIj483rbfy2GOPISkpCUuWLEHz5s2dcjwiIiKiuoYBhGqUAQMGYMCAAViyZAkAQ4uIkbPGgAwaNAgvvfQS3n77bbz66qtYuHAhPv30U6xZswZjxozB+PHjnXIcIiIiorqIAaSWEUIgT6NzdzEc8lLKq/0iem+88QY2b96M9957D40bN8aMGTMQHR2Nzz//3N1FIyIiqrOqd+2ByooBpJbJ0+jQ5vUN7i6GQyffGAZvj+r90VMqlVi5ciU6dOiAZ599FnK5HMuXL4e/v7+7i0ZERERUo3EQOpEdTZs2RVxcHACgc+fO6NWrl5tLRERERFTzVe/b0FRuXko5Tr4xzN3FcMhLKXfp8WQyGQoLC20+lpmZafd5H3zwAeLj4xEUFIR9+/bh008/xdNPP11VxSQiIqJSVPMe3FRGDCC1jCRJ1b57k6vVq1cPx44dg1arhUJR/LPJyclBQkKCzeccOnQIL7/8Mlq2bImtW7eid+/eeOGFF9C/f3+0bdvWVUUnIiIiqnXYBYtqva5du0Kj0WD58uWmbUIIzJo1Czk5OVb75+TkYMyYMQCAlStXIiwsDCtWrIBGo8GYMWOQn5/vsrITERER1TYMIFTrTZkyBR4eHnj88ccxduxYPP/88+jatSvWrVtnGuNhburUqThz5gzeeustdOzYEQDQo0cPzJ49G8eOHcOLL77o6rdAREREVGswgFCt165dO6xfvx6dO3fGL7/8gmXLlqFNmzbYtWuX1QKGq1atwtdff43bbrsN06ZNs3js5ZdfRr9+/fDxxx9j7dq1LnwHRERERLUHBwtQjWRr0cHo6GgIIWzuP3DgQOzZs8dq+7Zt2yy+HzVqlN3XkMlk2L59e7nLSkRERETF2AJCRERERDWCxKUIawUGECIiIiKqcfZdTHd3EaiCGECIiIiIqMa5/4vd7i4CVRADCBERERERuQwDCBERERERuQwDCBERERERuQwDCBERERHVDJwEq1ZgACEiIiIiIpdhACEiIiIiIpdhACEiIiKiGoE9sGoHBhAiIiIiInIZBhAiIiIiInIZBhAiIiIiInIZBhAiJ9m2bRskScKcOXMq9TrR0dGIjo52SpmIiIiIqhsGkBK+//57TJ48GV26dIFKpYIkSViyZInd/dVqNaZNm4aoqCioVCpER0fjxRdfRHZ2tusKTURERERUQyjcXYDq5tVXX8Xly5cRHByMsLAwXL582e6+OTk56N+/Pw4fPoyhQ4dizJgxOHToEN577z1s374dO3bsgKenpwtLT0RERFR7SZwGq1ZgC0gJixcvxqVLl5Camoonn3zS4b7vvPMODh8+jBkzZmDDhg14++23sWHDBsyYMQP79+/H//3f/7mo1ERERERENQMDSAlDhgxBVFRUqfsJIbB48WL4+vritddes3jstddeg6+vLxYvXlxVxazzzMdb7Nq1CwMHDoSfnx9CQkLw9NNPIy8vDwDw559/omfPnvDx8UHDhg3x0ksvQavVWryWVqvFBx98gLi4OHh5eSEgIAADBw7EH3/8YfPYeXl5mDlzJiIiIuDp6Yl27drhq6++cljeixcv4vHHH0dkZCRUKhXCwsIwYcIEhy1sRERERLURA0gFJSQkIDk5Gb1794aPj4/FYz4+PujduzcuXLiAxMREN5Wwbti7dy8GDx6MgIAATJ48GZGRkfjss88wadIk/Pjjjxg9ejSioqIwefJkBAYG4t1338Vbb71ler4QAqNHj8b06dORn5+PZ555Bg899BCOHDmCu+66y6oVS6/X46677sLChQtRr149TJ06FT169MDz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iIiIyAk4AqT24BgQJ8vJycGJEyfg4+OD4OBgdxeHiIiIiKhaYQCpgKysLJw9e9Zqe15eHiZNmoSsrCzcf//9UCjqdAMTERERkfOwCaTWYA25Am7evIlWrVqha9euaN26NUJDQ3H9+nVs2rQJV69eRWxsLN599113F5OIiIiIqNphAKmA+vXr4+mnn8a+ffuwbt063Lp1C15eXmjdujWeffZZTJkyBV5eXu4uJhEREVGtwQaQ2oMBpAL8/f3x8ccfu7sYREREREQ1DseAEBEREVG1x5XQaw8GECIiIiIichkGECIiIiKq9sIDOb62tmAAISIiIqJqa8Wk7hjapiEWjop1d1HISTgInYiIiIiqrV7NgtGrGRd3rk0YQKhM7u3YCC/f0drdxSAiIiKiGo4BhBx6/744bDubigWjYqFSyN1dHCIiIiKq4RhAyKFRnRtjVOfG7i4GEREREdUSHIROREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCREREREQuwwBCVgK8lO4uAhERERHVUgwgZGXFpO7o3qQ+Vj3Vy91FISIiIqJaRuHuAlD10zY8AD9O7unuYhARERFRLcQWECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGECIiIiIichkGkCKHDx/Gyy+/jGHDhiEkJASSJGHAgAGlPm/58uXo1q0bfHx8UK9ePdx55504ePBg1ReYiIiIiKgGYgApsnr1aixYsADbtm1DaGhomZ4zf/58jB07Fjdu3MCTTz6J++67Dzt27ECvXr0QHx9fxSUmIiIiIqp5FO4uQHVx33334a677kJsbCxu3ryJsLAwh/snJCRgzpw5aNGiBfbt24eAgAAAwNNPP40ePXpg0qRJOH78OGQyZjwiIiIiIiPWjou0bdsWnTp1glKpLNP+3377LbRaLV555RVT+ACADh06YMyYMTh1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' width=800.0/>\n",
757
+ " </div>\n",
758
+ " "
759
+ ],
760
+ "text/plain": [
761
+ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
762
+ ]
763
+ },
764
+ "metadata": {},
765
+ "output_type": "display_data"
766
+ }
767
+ ],
768
+ "source": [
769
+ "recs = results.records\n",
770
+ "idx = 0\n",
771
+ "fig=plt.figure(1, figsize=(8,4), dpi= 100, facecolor='w', edgecolor='k')\n",
772
+ "fline, = plt.plot(recs[idx].flux, label=f'flux')\n",
773
+ "mline, = plt.plot(recs[idx].model, label=f'model')\n",
774
+ "plt.legend(handles=[fline,mline])"
775
+ ]
776
+ },
777
+ {
778
+ "cell_type": "markdown",
779
+ "metadata": {
780
+ "toc-hr-collapsed": true
781
+ },
782
+ "source": [
783
+ "## Plot FLUX for all records"
784
+ ]
785
+ },
786
+ {
787
+ "cell_type": "code",
788
+ "execution_count": 22,
789
+ "metadata": {},
790
+ "outputs": [],
791
+ "source": [
792
+ "import sparcl.gather_2d\n",
793
+ "ar_dict, grid = sparcl.gather_2d.align_records(results.records)"
794
+ ]
795
+ },
796
+ {
797
+ "cell_type": "code",
798
+ "execution_count": 23,
799
+ "metadata": {},
800
+ "outputs": [
801
+ {
802
+ "data": {
803
+ "text/plain": [
804
+ "<Axes: xlabel='Wavelength', ylabel='Flux'>"
805
+ ]
806
+ },
807
+ "execution_count": 23,
808
+ "metadata": {},
809
+ "output_type": "execute_result"
810
+ },
811
+ {
812
+ "data": {
813
+ "application/vnd.jupyter.widget-view+json": {
814
+ "model_id": "f1a22870f6db48cb8553883f946f6008",
815
+ "version_major": 2,
816
+ "version_minor": 0
817
+ },
818
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABj3UlEQVR4nO3dd3iT5cIG8DvpSEsXo5QySqHsUUH2pmUVQQUFBwgCCspBRAUB8SDgQFDBg0c9ivoJKoqiIqggIBvKlL13oYwWKHTT0jbP90dJmr2a5E3y3r/r4qJ98yR58jbjzjMVQggBIiIiIpINpdQVICIiIiL3YgAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhl/qSvgzdRqNa5evYqwsDAoFAqpq0NEREQ2EEIgJycHNWrUgFIpz7YwBsByuHr1KmJiYqSuBhERETkgNTUVtWrVkroakmAALIewsDAApU+g8PBwiWtDREREtsjOzkZMTIz2c1yOGADLQdPtGx4ezgBIRETkZeQ8fEueHd9EREREMsYASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREQkqa+3X8Afh65KXQ1Z8Ze6AkRERCRfZ6/n4q0/jwMAHmpRQ+LayAdbAImIiEgyt/PvSl0FWWIAJCIiIskIIXUN5IkBkIiIiEhmGACJiIiIZIYBkIiIiCQj2AcsCQZAIiIikgzjnzQYAImIiIhkhgGQiIiISGYYAImIiEgyHAIoDQZAIiIikozgKEBJMAASERERyQwDIBEREUmHDYCSYAAkIiIiyejmP64J6D4MgEREROQRmP/chwGQiIiIPALzn/swABIREZFk2OonDQZAIiIikozuMjAcA+g+DIBERETkERj/3IcBkIiIiCTDRj9pMAASERGRR2AYdB8GQCIiIpKM3jqA7AR2GwZAIiIi8ghsAXQfBkAiIiKSDGf+SoMBkIiIiEhmGACJiIjII/ScvwU7z2VIXQ1ZYAAkIiIiyeh2AF/JvIMhX+6SrC5ywgBIRERE0uEQQEkwABIRERHJDAMgERERkcwwABIREZFkuPizNBgAiYiISDJcBlAaDIBEREREMsMASERERCQzDIBEREREMsMASERERJJRKKSugTwxABIRERHJDAMgERERkcwwABIREZFkFGAfsBQYAImIiIhkhgGQiIiIpMMGQEkwABIRERHJjNcHwCVLluD5559HmzZtoFKpoFAosHjxYrPls7OzMXHiRMTGxkKlUqFOnTqYPHkycnNz3VdpIiIiIgn5S12B8po+fTouXryIyMhIVK9eHRcvXjRbNi8vD927d8fBgwfRp08fDBkyBAcOHMC8efOwZcsWbN26FUFBQW6sPREREZH7eX0L4FdffYWUlBTcuHEDY8eOtVj2/fffx8GDBzF16lSsXbsWc+fOxdq1azF16lTs3bsX//nPf9xUayIiIiLpeH0A7NWrF2JjY62WE0Lgq6++QmhoKN544w29y9544w2Ehobiq6++clU1iYiIyBQhdQXkyesDoK3OnDmDq1evonPnzggJCdG7LCQkBJ07d8b58+eRmpoqUQ2JiIiI3ENWARAAGjRoYPJyzXFNOVMKCwuRnZ2t94+IiIjI28gmAGZlZQEAIiIiTF4eHh6uV86UOXPmICIiQvsvJibG+RUlIiKSEcE+YEnIJgA6w7Rp05CVlaX9x+5iIiIi8kZevwyMrTQtf+Za+DTdueZaCAFApVJBpVI5v3JEREREbiSbFkBrY/ysjREkIiIi5xPsAZaErAJgjRo1kJycjLy8PL3L8vLykJycjLp163Jc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8fvvv1u9jTlz5iAiIkL7LyYmxg01N8QuYCIiIiofhRDCaxLFpEmT9FrgrHnppZfQoEEDi2U2bNiA3r17o3nz5jh8+LDFsqZaAGNiYpCVlYXw8HCb62WLvMJiNJu51uh4ZGgg/pne26n3RURE5C7L9qZiyq+ln7cpc/tLUofs7GxERES45PPbW3hVF/DChQuRl5dnc/nBgwdbDYA9e/ZEvXr1cOTIEWRnZ1t8IqhUKqhUKpvv3zXYBUxERETl41UBMDc31yW3GxkZibNnzyI/P1+23wSIiIhIPmQzBtCcvLw8HDt2DCEhIYiM5BZrRERE5PtkEQBzcnJw+vRpo+N37tzBmDFjkJOTg8cffxz+/l7VIEpEROR1BCczegRZJJ6MjAw0btwYbdu2RZMmTRAdHY309HSsX78ely9fRnx8PD744AOpq6lHwaF+RERE5CKyCICVK1fGuHHjsGfPHqxevRq3b99GcHAwmjRpggkTJmD8+PEIDg6WuppEREREbiGLABgeHo5PPvlE6mo4BVsGiYiIqLxkMQbQl1QI9JO6CkREROTlGAC9TMUKgVJXgYiIiLwcAyARERGRzDAAEhEREckMAyARERG5jb+S0cMTyGIWMBEREXmG/vdVx3e7LqJ9XGWpqyJrDIBeJipMJXUViIiIHBYU4IcVL3SWuhqyx3ZYL/POwOZSV4GIiIi8HAOgFwkO8EO18CCpq0FERERejgHQQylgvOXHule6SVATIiIi8jUMgF6iWrgKMZUrSF0NIiIi8gEMgEREREQywwBIREREJDMMgF5CCKlrQERERL6CAZCIiIhIZhgAiYiIiGSGAZCIiIhIZhgAvYTCeFlAIiIiIocwABIRERHJDAMgERERkcwwABIRERHJDAOgh+KYPyIiInIVBkAiIiIimWEAJCIiIpIZBkAvMalPI6mrQERERD7CX+oKkHU/jGmPTvUipa4GERER+Qi2AHqB6hHBUleBiIiIfAgDIBEREZHMMAASERERyQwDIBEREZHMMAB6Aa4JTURERM7EAOgFhNQVICIiIp/CAEhEREQkMwyARERERDLDAEhEREQkMwyARERERDLDAEhEREQkMwyARERERDLDAOgFuA4gERERORMDIBEREZHMMAASERERyQwDIBEREZHMMAASERERyQwDoBfgXsBERETkTAyAHkrBqb9ERETkIgyA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9evX8corr6B+/fpQqVSIjIzEoEGDcPToUbse78qVK9GzZ09UqlQJQUFBaN68OebNm4eSkhK9cosXL4ZCocDixYuxbt06dOrUCRUqVECVKlUwYsQIZGRkmLz9hQsXolmzZggKCkJMTAymTJmCgoICKBQKJCQkaMspFAps2bJF+7Pmn6kxf2fPnsUjjzyCSpUqISQkBL169cKhQ4fsetxE5HsYAInIYZoAaBjwNm3ahODgYHTo0AFdu3Y1ebnm+rdu3cLLL7+MwsJC9OvXD6+88goSEhKwevVqdOrUSa918dFHH0VISAi+//57k/X57rvvAADDhw/XHjt37hxat26NBQsWoF69enjxxRfRr18/rFmzBh06dMDu3btteqzTpk3DwIEDcerUKTz66KMYN24cgoODMXnyZDz55JMmr/P777/joYceQo0aNTBu3DjUq1cP3377LQYMGGBUdsaMGRg7diwyMjIwZswYPPbYY1i2bBkef/xxo7IzZ85EbGys9mfNv4EDB+qVS0lJQYcOHXDr1i0888wz6N27NzZs2IDExESkp6fb9LiJyEcJIiIHFRcXi4iICBESEiLu3r2rPd68eXORmJgohBDiww8/FABEamqq9vKHHnpIABBbt24VBQUF4vLly0a3ffToUREaGip69eqld3zYsGECgNi9e7dRXapVqyaio6NFcXGx9ninTp2En5+fWLNmjV75U6dOibCwMBEfH693vHv37sLwrXHdunUCgEhKShK5ubna42q1WowdO1YAEL/88ov2+KJFiwQA4e/vL7Zv365Xx4SEBAFA7Ny5U68ufn5+ombNmiI9PV17PDs7WzRt2lQAEN27d7daT40LFy4IAAKAmDt3rt5l06dPFwDEnDlzTF6XiOSBLYBE5DA/Pz9069YNeXl52LNnDwDgxo0bOHbsmLbLsnv37gDKWv004/+Cg4PRvn17qFQq1KxZ0+i2mzVrhsTERGzduhVFRUXa45rWvSVLluiVX7duHdLT0/Hkk0/Cz88PAHDgwAHs2LEDI0aMQFJSkl75hg0bYsyYMThy5IjVruBPPvkEAPDFF18gJCREe1yhUGDu3LlQKBRYunSp0fWGDh2Kzp07652vESNGAIBey+bSpUtRUlKCSZMmISoqSns8LCwM06dPt1g3S+rWrYvJkyfrHXv22WeN7p+I5Mdf6goQkXdLSEjAH3/8gU2bNqFz587YvHkzhBDaANiyZUtERERg06ZNGD58OA4ePIjMzEz06tULgYGBAICDBw/i/fffx/bt25GWlqYX+ADg5s2bqF69OgCgZ8+eqF69On788Ud8+OGH8PcvfRvTBELd7t9du3YBANLT0zFr1iyjup88eVL7f/Pmzc0+xl27diEkJARff/21ycuDg4O1t6WrdevWRsdq1aoFAMjMzNQe04zJ69Kli1F53QBpr5YtW0Kp1P+eb+r+iUh+GACJqFx0J4JMnz4dmzdvRlBQENq3bw8AUCqV6NKli7YF0HD5lx07dmh/7tOnDxo0aIDQ0FAoFAqsWLEChw4dQmFhofb+/Pz8MHToUMyfPx9r165F//79kZubixUrVqBp06Zo1aqVtuytW7cAAKtWrcKqVavMPoa8vDyLj/HWrVsoLi7Gm2++addthIeHGx3TBFbdiSPZ2dkAoNf6p1GtWjWLdbPE1vsnIvlhACSicmnRogUqVaqEHTt24O7du9i0aRM6dOgAlUqlLZOQkIBVq1YhJSVFO2NYExxnz56NwsJCbNu2zagFbNeuXSZnrA4fPhzz58/HkiVL0L9/f/z666/Iz8/Xa/0DygLQxx9/jPHjxzv8GMPDw6FQKHDz5k2Hb8Pa7QOls5U1kzs0OFmDiFyBYwCJqFyUSiW6d++OO3fu4Pfff8eJEyf0liwBysYBrl+/Htu2bUNoaCjatGkDoHSWbuXKlY3CX35+Pvbv32/yPlu0aIH4+HisXLkSOTk5WLJkicnlXzStkDt37izXY2zfvj0yMjJw5syZct2OOS1atAAAJCcnG122Y8cOk9fRjHNkSx4ROYIBkIjKTdOap+kiNQyArVq1QlhYGD766CNkZWWha9eu2q7I2NhY3L59G8eOHdOWLykpwauvvoobN26Yvc/hw4fjzp07+O9//4uNGzeie/fuiImJ0SvTrl07tG/fHkuXLsVPP/1kdBtqtVq7np4lEyZMAAA888wzJtfwS0tLw4kTJ6zejjlPPvkklEol5s+fr9fKmJeXh9mzZ5u8TuXKlQEAqampDt8vEckXu4CJqNw0AfDo0aMICgpChw4d9C738/ND586dsWbNGr3yAPDiiy9i3bp16NKlCx5//HEEBQVh8+bNuHLlChISEowWmdYYOnQoXnvtNbz55ptQq9VG3b8aS5cuRWJiIp588kksWLAArVq1QnBwMC5duoSdO3fixo0bKCgosPj4+vbtizfeeANvv/026tevj759+yI2NhYZGRk4e/Ystm3bhnfeeQdNmjSx9ZTpadSoEV577TW8++67iI+Px+OPPw5/f38sX74c8fHxOHr0qNFkjh49euCXX37BoEGD8MADDyAoKAgtWrTAQw895FAdiEhe2AJIROXWvHlzREZGAoDR+D8NTTcwoB8AH3zwQfzyyy+Ii4vDkiVL8MMPP6Bx48bYs2eP0Xg4XTVr1kSPHj1QVFSEoKAgDB482GS5unXr4sCBA5g+fTpyc3OxaNEiLFy4EAcPHkS3bt1MLt9iyltvvYW///4bXbt2xYYNG/Dhhx/izz//RGFhIWbNmmXU/Wyv2bNn43//+x8qVaqEzz//HMuWLcPgwYPxv//9D4DxhI4xY8ZgypQpuHnzJt577z288cYb+PXXX8tVByKSD4UQQkhdCSIiMm39+vXo3bs3pkyZgvfee0/q6hCRj2ALIBGRB7hx44bRhI7MzExMmzYNAIy2eSMiKg+OASQi8gDff/895s2bhx49eqBGjRq4du0a1qxZg+vXr2PkyJHo2LGj1FUkIh/CAEhE5AE6deqE1q1bY/369bh16xb8/PzQpEkTvPHGGxg3bpzU1SMiH/P/h1Tk7TI4O0QAAAAASUVORK5CYII=",
819
+ "text/html": [
820
+ "\n",
821
+ " <div style=\"display: inline-block;\">\n",
822
+ " <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
823
+ " Figure\n",
824
+ " </div>\n",
825
+ " <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABj3UlEQVR4nO3dd3iT5cIG8DvpSEsXo5QySqHsUUH2pmUVQQUFBwgCCspBRAUB8SDgQFDBg0c9ivoJKoqiIqggIBvKlL13oYwWKHTT0jbP90dJmr2a5E3y3r/r4qJ98yR58jbjzjMVQggBIiIiIpINpdQVICIiIiL3YgAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhkGQCIiIiKZYQAkIiIikhl/qSvgzdRqNa5evYqwsDAoFAqpq0NEREQ2EEIgJycHNWrUgFIpz7YwBsByuHr1KmJiYqSuBhERETkgNTUVtWrVkroakmAALIewsDAApU+g8PBwiWtDREREtsjOzkZMTIz2c1yOGADLQdPtGx4ezgBIRETkZeQ8fEueHd9EREREMsYASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREREMsMASERERCQzDIBEREQkqa+3X8Afh65KXQ1Z8Ze6AkRERCRfZ6/n4q0/jwMAHmpRQ+LayAdbAImIiEgyt/PvSl0FWWIAJCIiIskIIXUN5IkBkIiIiEhmGACJiIiIZIYBkIiIiCQj2AcsCQZAIiIikgzjnzQYAImIiIhkhgGQiIiISGYYAImIiEgyHAIoDQZAIiIikozgKEBJMAASERERyQwDIBEREUmHDYCSYAAkIiIiyejmP64J6D4MgEREROQRmP/chwGQiIiIPALzn/swABIREZFk2OonDQZAIiIikozuMjAcA+g+DIBERETkERj/3IcBkIiIiCTDRj9pMAASERGRR2AYdB8GQCIiIpKM3jqA7AR2GwZAIiIi8ghsAXQfBkAiIiKSDGf+SoMBkIiIiEhmGACJiIjII/ScvwU7z2VIXQ1ZYAAkIiIiyeh2AF/JvIMhX+6SrC5ywgBIRERE0uEQQEkwABIRERHJDAMgERERkcwwABIREZFkuPizNBgAiYiISDJcBlAaDIBEREREMsMASERERCQzDIBEREREMsMASERERJJRKKSugTwxABIRERHJDAMgERERkcwwABIREZFkFGAfsBQYAImIiIhkhgGQiIiIpMMGQEkwABIRERHJjNcHwCVLluD5559HmzZtoFKpoFAosHjxYrPls7OzMXHiRMTGxkKlUqFOnTqYPHkycnNz3VdpIiIiIgn5S12B8po+fTouXryIyMhIVK9eHRcvXjRbNi8vD927d8fBgwfRp08fDBkyBAcOHMC8efOwZcsWbN26FUFBQW6sPREREZH7eX0L4FdffYWUlBTcuHEDY8eOtVj2/fffx8GDBzF16lSsXbsWc+fOxdq1azF16lTs3bsX//nPf9xUayIiIiLpeH0A7NWrF2JjY62WE0Lgq6++QmhoKN544w29y9544w2Ehobiq6++clU1iYiIyBQhdQXkyesDoK3OnDmDq1evonPnzggJCdG7LCQkBJ07d8b58+eRmpoqUQ2JiIiI3ENWARAAGjRoYPJyzXFNOVMKCwuRnZ2t94+IiIjI28gmAGZlZQEAIiIiTF4eHh6uV86UOXPmICIiQvsvJibG+RUlIiKSEcE+YEnIJgA6w7Rp05CVlaX9x+5iIiIi8kZevwyMrTQtf+Za+DTdueZaCAFApVJBpVI5v3JEREREbiSbFkBrY/ysjREkIiIi5xPsAZaErAJgjRo1kJycjLy8PL3L8vLykJycjLp163Jc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8fvvv1u9jTlz5iAiIkL7LyYmxg01N8QuYCIiIiofhRDCaxLFpEmT9FrgrHnppZfQoEEDi2U2bNiA3r17o3nz5jh8+LDFsqZaAGNiYpCVlYXw8HCb62WLvMJiNJu51uh4ZGgg/pne26n3RURE5C7L9qZiyq+ln7cpc/tLUofs7GxERES45PPbW3hVF/DChQuRl5dnc/nBgwdbDYA9e/ZEvXr1cOTIEWRnZ1t8IqhUKqhUKpvv3zXYBUxERETl41UBMDc31yW3GxkZibNnzyI/P1+23wSIiIhIPmQzBtCcvLw8HDt2DCEhIYiM5BZrRERE5PtkEQBzcnJw+vRpo+N37tzBmDFjkJOTg8cffxz+/l7VIEpEROR1BCczegRZJJ6MjAw0btwYbdu2RZMmTRAdHY309HSsX78ely9fRnx8PD744AOpq6lHwaF+RERE5CKyCICVK1fGuHHjsGfPHqxevRq3b99GcHAwmjRpggkTJmD8+PEIDg6WuppEREREbiGLABgeHo5PPvlE6mo4BVsGiYiIqLxkMQbQl1QI9JO6CkREROTlGAC9TMUKgVJXgYiIiLwcAyARERGRzDAAEhEREckMAyARERG5jb+S0cMTyGIWMBEREXmG/vdVx3e7LqJ9XGWpqyJrDIBeJipMJXUViIiIHBYU4IcVL3SWuhqyx3ZYL/POwOZSV4GIiIi8HAOgFwkO8EO18CCpq0FERERejgHQQylgvOXHule6SVATIiIi8jUMgF6iWrgKMZUrSF0NIiIi8gEMgEREREQywwBIREREJDMMgF5CCKlrQERERL6CAZCIiIhIZhgAiYiIiGSGAZCIiIhIZhgAvYTCeFlAIiIiIocwABIRERHJDAMgERERkcwwABIRERHJDAOgh+KYPyIiInIVBkAiIiIimWEAJCIiIpIZBkAvMalPI6mrQERERD7CX+oKkHU/jGmPTvUipa4GERER+Qi2AHqB6hHBUleBiIiIfAgDIBEREZHMMAASERERyQwDIBEREZHMMAB6Aa4JTURERM7EAOgFhNQVICIiIp/CAEhEREQkMwyARERERDLDAEhEREQkMwyARERERDLDAEhEREQkMwyARERERDLDAOgFuA4gERERORMDIBEREZHMMAASERERyQwDIBEREZHMMAASERERyQwDoBfgXsBERETkTAyAHkrBqb9ERETkIgyA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9evX8corr6B+/fpQqVSIjIzEoEGDcPToUbse78qVK9GzZ09UqlQJQUFBaN68OebNm4eSkhK9cosXL4ZCocDixYuxbt06dOrUCRUqVECVKlUwYsQIZGRkmLz9hQsXolmzZggKCkJMTAymTJmCgoICKBQKJCQkaMspFAps2bJF+7Pmn6kxf2fPnsUjjzyCSpUqISQkBL169cKhQ4fsetxE5HsYAInIYZoAaBjwNm3ahODgYHTo0AFdu3Y1ebnm+rdu3cLLL7+MwsJC9OvXD6+88goSEhKwevVqdOrUSa918dFHH0VISAi+//57k/X57rvvAADDhw/XHjt37hxat26NBQsWoF69enjxxRfRr18/rFmzBh06dMDu3btteqzTpk3DwIEDcerUKTz66KMYN24cgoODMXnyZDz55JMmr/P777/joYceQo0aNTBu3DjUq1cP3377LQYMGGBUdsaMGRg7diwyMjIwZswYPPbYY1i2bBkef/xxo7IzZ85EbGys9mfNv4EDB+qVS0lJQYcOHXDr1i0888wz6N27NzZs2IDExESkp6fb9LiJyEcJIiIHFRcXi4iICBESEiLu3r2rPd68eXORmJgohBDiww8/FABEamqq9vKHHnpIABBbt24VBQUF4vLly0a3ffToUREaGip69eqld3zYsGECgNi9e7dRXapVqyaio6NFcXGx9ninTp2En5+fWLNmjV75U6dOibCwMBEfH693vHv37sLwrXHdunUCgEhKShK5ubna42q1WowdO1YAEL/88ov2+KJFiwQA4e/vL7Zv365Xx4SEBAFA7Ny5U68ufn5+ombNmiI9PV17PDs7WzRt2lQAEN27d7daT40LFy4IAAKAmDt3rt5l06dPFwDEnDlzTF6XiOSBLYBE5DA/Pz9069YNeXl52LNnDwDgxo0bOHbsmLbLsnv37gDKWv004/+Cg4PRvn17qFQq1KxZ0+i2mzVrhsTERGzduhVFRUXa45rWvSVLluiVX7duHdLT0/Hkk0/Cz88PAHDgwAHs2LEDI0aMQFJSkl75hg0bYsyYMThy5IjVruBPPvkEAPDFF18gJCREe1yhUGDu3LlQKBRYunSp0fWGDh2Kzp07652vESNGAIBey+bSpUtRUlKCSZMmISoqSns8LCwM06dPt1g3S+rWrYvJkyfrHXv22WeN7p+I5Mdf6goQkXdLSEjAH3/8gU2bNqFz587YvHkzhBDaANiyZUtERERg06ZNGD58OA4ePIjMzEz06tULgYGBAICDBw/i/fffx/bt25GWlqYX+ADg5s2bqF69OgCgZ8+eqF69On788Ud8+OGH8PcvfRvTBELd7t9du3YBANLT0zFr1iyjup88eVL7f/Pmzc0+xl27diEkJARff/21ycuDg4O1t6WrdevWRsdq1aoFAMjMzNQe04zJ69Kli1F53QBpr5YtW0Kp1P+eb+r+iUh+GACJqFx0J4JMnz4dmzdvRlBQENq3bw8AUCqV6NKli7YF0HD5lx07dmh/7tOnDxo0aIDQ0FAoFAqsWLEChw4dQmFhofb+/Pz8MHToUMyfPx9r165F//79kZubixUrVqBp06Zo1aqVtuytW7cAAKtWrcKqVavMPoa8vDyLj/HWrVsoLi7Gm2++addthIeHGx3TBFbdiSPZ2dkAoNf6p1GtWjWLdbPE1vsnIvlhACSicmnRogUqVaqEHTt24O7du9i0aRM6dOgAlUqlLZOQkIBVq1YhJSVFO2NYExxnz56NwsJCbNu2zagFbNeuXSZnrA4fPhzz58/HkiVL0L9/f/z666/Iz8/Xa/0DygLQxx9/jPHjxzv8GMPDw6FQKHDz5k2Hb8Pa7QOls5U1kzs0OFmDiFyBYwCJqFyUSiW6d++OO3fu4Pfff8eJEyf0liwBysYBrl+/Htu2bUNoaCjatGkDoHSWbuXKlY3CX35+Pvbv32/yPlu0aIH4+HisXLkSOTk5WLJkicnlXzStkDt37izXY2zfvj0yMjJw5syZct2OOS1atAAAJCcnG122Y8cOk9fRjHNkSx4ROYIBkIjKTdOap+kiNQyArVq1QlhYGD766CNkZWWha9eu2q7I2NhY3L59G8eOHdOWLykpwauvvoobN26Yvc/hw4fjzp07+O9//4uNGzeie/fuiImJ0SvTrl07tG/fHkuXLsVPP/1kdBtqtVq7np4lEyZMAAA888wzJtfwS0tLw4kTJ6zejjlPPvkklEol5s+fr9fKmJeXh9mzZ5u8TuXKlQEAqampDt8vEckXu4CJqNw0AfDo0aMICgpChw4d9C738/ND586dsWbNGr3yAPDiiy9i3bp16NKlCx5//HEEBQVh8+bNuHLlChISEowWmdYYOnQoXnvtNbz55ptQq9VG3b8aS5cuRWJiIp588kksWLAArVq1QnBwMC5duoSdO3fixo0bKCgosPj4+vbtizfeeANvv/026tevj759+yI2NhYZGRk4e/Ystm3bhnfeeQdNmjSx9ZTpadSoEV577TW8++67iI+Px+OPPw5/f38sX74c8fHxOHr0qNFkjh49euCXX37BoEGD8MADDyAoKAgtWrTAQw895FAdiEhe2AJIROXWvHlzREZGAoDR+D8NTTcwoB8AH3zwQfzyyy+Ii4vDkiVL8MMPP6Bx48bYs2eP0Xg4XTVr1kSPHj1QVFSEoKAgDB482GS5unXr4sCBA5g+fTpyc3OxaNEiLFy4EAcPHkS3bt1MLt9iyltvvYW///4bXbt2xYYNG/Dhhx/izz//RGFhIWbNmmXU/Wyv2bNn43//+x8qVaqEzz//HMuWLcPgwYPxv//9D4DxhI4xY8ZgypQpuHnzJt577z288cYb+PXXX8tVByKSD4UQQkhdCSIiMm39+vXo3bs3pkyZgvfee0/q6hCRj2ALIBGRB7hx44bRhI7MzExMmzYNAIy2eSMiKg+OASQi8gDff/895s2bhx49eqBGjRq4du0a1qxZg+vXr2PkyJHo2LGj1FUkIh/CAEhE5AE6deqE1q1bY/369bh16xb8/PzQpEkTvPHGGxg3bpzU1SMiH/P/h1Tk7TI4O0QAAAAASUVORK5CYII=' width=640.0/>\n",
826
+ " </div>\n",
827
+ " "
828
+ ],
829
+ "text/plain": [
830
+ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
831
+ ]
832
+ },
833
+ "metadata": {},
834
+ "output_type": "display_data"
835
+ }
836
+ ],
837
+ "source": [
838
+ "modeldf = pd.DataFrame(data=ar_dict['flux'],columns=grid)\n",
839
+ "modeldf.transpose().plot(xlabel='Wavelength', ylabel='Flux', legend=False)"
840
+ ]
841
+ },
842
+ {
843
+ "cell_type": "markdown",
844
+ "metadata": {},
845
+ "source": [
846
+ "# Authorization\n",
847
+ "Your access to data is affected by how you login (or don't). Both `client.find` and `client.retrieve` allow you to request data (possibly implictly) from specific Datasets. Its possible for your combination of LOGIN and FIND (or RETIEVE) to work now, but fail later without you changing anything. For instance, if you don't login and ask for data from ALL Datasets at a time when all Datasets are public, your FIND will succeed. But if NOIRLab adds a new Dataset that is private, your same find will fail. To avoid the failure, you would have to explicitly request only the public Datasets, or to login as a user that is authorized to access the private Dataset.\n",
848
+ "\n",
849
+ "So summarize, there are three cases in which your FIND or RETRIEVE will be authorized:\n",
850
+ "1. All Datasets are Public (does not matter what you login status is)\n",
851
+ "2. You have explicitly requested only Public Datasets (does not matter what you login status is)\n",
852
+ "3. You are logged in and are authorized to access all the Private Datasets you have (explicitly or implicitly) requested.\n",
853
+ "\n",
854
+ "You might be authorized to access one Dataset, but not another. So, you must be careful in case #3 above to explictly request the correct Private Dataset(s)."
855
+ ]
856
+ },
857
+ {
858
+ "cell_type": "markdown",
859
+ "metadata": {},
860
+ "source": [
861
+ "## Logging in and logging out"
862
+ ]
863
+ },
864
+ {
865
+ "cell_type": "code",
866
+ "execution_count": 24,
867
+ "metadata": {},
868
+ "outputs": [],
869
+ "source": [
870
+ "if show_help:\n",
871
+ " client.login?\n",
872
+ " client.logout?"
873
+ ]
874
+ },
875
+ {
876
+ "cell_type": "code",
877
+ "execution_count": 25,
878
+ "metadata": {},
879
+ "outputs": [
880
+ {
881
+ "name": "stdout",
882
+ "output_type": "stream",
883
+ "text": [
884
+ "Logged in successfully with email='test_user_1@noirlab.edu'\n"
885
+ ]
886
+ }
887
+ ],
888
+ "source": [
889
+ "client.login(auth_user, usrpw)"
890
+ ]
891
+ },
892
+ {
893
+ "cell_type": "code",
894
+ "execution_count": 26,
895
+ "metadata": {
896
+ "scrolled": true
897
+ },
898
+ "outputs": [
899
+ {
900
+ "name": "stdout",
901
+ "output_type": "stream",
902
+ "text": [
903
+ "auth_status={'Authorized_DataReleases': ['SDSS-DR17'], 'All_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'SDSS-DR17', 'DESI-EDR'], 'All_Private_DataReleases': ['SDSS-DR17']}\n"
904
+ ]
905
+ },
906
+ {
907
+ "data": {
908
+ "text/plain": [
909
+ "{'Loggedin_As': 'test_user_1@noirlab.edu',\n",
910
+ " 'Authorized_Datasets': {'SDSS-DR17'},\n",
911
+ " 'Unauthorized_Datasets': set(),\n",
912
+ " 'All_Private_Datasets': {'SDSS-DR17'},\n",
913
+ " 'All_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16', 'SDSS-DR17'}}"
914
+ ]
915
+ },
916
+ "execution_count": 26,
917
+ "metadata": {},
918
+ "output_type": "execute_result"
919
+ }
920
+ ],
921
+ "source": [
922
+ "client.authorized"
923
+ ]
924
+ },
925
+ {
926
+ "cell_type": "code",
927
+ "execution_count": 27,
928
+ "metadata": {},
929
+ "outputs": [
930
+ {
931
+ "name": "stdout",
932
+ "output_type": "stream",
933
+ "text": [
934
+ "Logged-out successfully. Previously logged-in with email test_user_1@noirlab.edu.\n"
935
+ ]
936
+ }
937
+ ],
938
+ "source": [
939
+ "client.logout() # can also be done with client.login(None)"
940
+ ]
941
+ },
942
+ {
943
+ "cell_type": "code",
944
+ "execution_count": 28,
945
+ "metadata": {},
946
+ "outputs": [
947
+ {
948
+ "name": "stdout",
949
+ "output_type": "stream",
950
+ "text": [
951
+ "auth_status={'Authorized_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'DESI-EDR'], 'All_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'SDSS-DR17', 'DESI-EDR'], 'All_Private_DataReleases': ['SDSS-DR17']}\n"
952
+ ]
953
+ },
954
+ {
955
+ "data": {
956
+ "text/plain": [
957
+ "{'Loggedin_As': 'Anonymous',\n",
958
+ " 'Authorized_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16'},\n",
959
+ " 'Unauthorized_Datasets': {'SDSS-DR17'},\n",
960
+ " 'All_Private_Datasets': {'SDSS-DR17'},\n",
961
+ " 'All_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16', 'SDSS-DR17'}}"
962
+ ]
963
+ },
964
+ "execution_count": 28,
965
+ "metadata": {},
966
+ "output_type": "execute_result"
967
+ }
968
+ ],
969
+ "source": [
970
+ "client.authorized"
971
+ ]
972
+ },
973
+ {
974
+ "cell_type": "markdown",
975
+ "metadata": {},
976
+ "source": [
977
+ "## FIND"
978
+ ]
979
+ },
980
+ {
981
+ "cell_type": "markdown",
982
+ "metadata": {},
983
+ "source": [
984
+ "### Pass FIND with Public DRs as Anonymous"
985
+ ]
986
+ },
987
+ {
988
+ "cell_type": "code",
989
+ "execution_count": 29,
990
+ "metadata": {},
991
+ "outputs": [
992
+ {
993
+ "name": "stdout",
994
+ "output_type": "stream",
995
+ "text": [
996
+ "Logged-out successfully. Previously logged-in with email None.\n"
997
+ ]
998
+ }
999
+ ],
1000
+ "source": [
1001
+ "client.logout()"
1002
+ ]
1003
+ },
1004
+ {
1005
+ "cell_type": "code",
1006
+ "execution_count": 30,
1007
+ "metadata": {},
1008
+ "outputs": [
1009
+ {
1010
+ "name": "stdout",
1011
+ "output_type": "stream",
1012
+ "text": [
1013
+ "{'META': {'endpoint': 'sparc/find'},\n",
1014
+ " 'PARAMETERS': {'limit': 2,\n",
1015
+ " 'include': 'dec,ra,sparcl_id,specid',\n",
1016
+ " 'offset': 0,\n",
1017
+ " 'format': 'json',\n",
1018
+ " 'drs': ['BOSS-DR16', 'DESI-EDR', 'SDSS-DR16'],\n",
1019
+ " 'private_drs': ['SDSS-DR17'],\n",
1020
+ " 'json_payload': {'outfields': ['sparcl_id',\n",
1021
+ " 'specid',\n",
1022
+ " 'ra',\n",
1023
+ " 'dec',\n",
1024
+ " 'redshift',\n",
1025
+ " 'spectype',\n",
1026
+ " 'data_release',\n",
1027
+ " 'redshift_err'],\n",
1028
+ " 'search': [['spectype', 'GALAXY'],\n",
1029
+ " ['redshift', 0.5, 0.9],\n",
1030
+ " ['data_release',\n",
1031
+ " 'BOSS-DR16',\n",
1032
+ " 'SDSS-DR16']]}},\n",
1033
+ " 'HEADER': {'dec': 'np.float64',\n",
1034
+ " 'sparcl_id': 'str',\n",
1035
+ " 'redshift_err': 'np.float64',\n",
1036
+ " 'data_release': 'category',\n",
1037
+ " 'specid': 'np.int64',\n",
1038
+ " 'redshift': 'np.float64',\n",
1039
+ " 'spectype': 'category',\n",
1040
+ " 'ra': 'np.float64'},\n",
1041
+ " 'WARNINGS': ['OFFSET parameter needs SORT but it was not provided. Using '\n",
1042
+ " \"default 'sparcl_id' for sorting\"]}\n",
1043
+ "{'dec': 28.063643, 'sparcl_id': 'bb3d4287-8a2f-479f-9c7f-1053051e4925', 'redshift_err': 0.000331654009642079, 'data_release': 'BOSS-DR16', 'specid': -6444532452352045056, 'redshift': 0.761636912822723, 'spectype': 'GALAXY', 'ra': 132.14379, '_dr': 'BOSS-DR16'}\n",
1044
+ "\n",
1045
+ "SUCCESS: found.count=1 records from FIND\n"
1046
+ ]
1047
+ }
1048
+ ],
1049
+ "source": [
1050
+ "out = ['sparcl_id','specid', 'ra', 'dec', 'redshift', 'spectype', 'data_release', 'redshift_err']\n",
1051
+ "cons = {'spectype': ['GALAXY'],\n",
1052
+ " 'redshift': [0.5, 0.9],\n",
1053
+ " 'data_release': ['BOSS-DR16', 'SDSS-DR16']}\n",
1054
+ "found = client.find(outfields=out, constraints=cons, limit=2)\n",
1055
+ "pp(found.info)\n",
1056
+ "print(found.records[0])\n",
1057
+ "print(f'\\nSUCCESS: {found.count=} records from FIND')"
1058
+ ]
1059
+ },
1060
+ {
1061
+ "cell_type": "markdown",
1062
+ "metadata": {},
1063
+ "source": [
1064
+ "### Fail FIND with prviate DR as Anonymous"
1065
+ ]
1066
+ },
1067
+ {
1068
+ "cell_type": "code",
1069
+ "execution_count": 31,
1070
+ "metadata": {},
1071
+ "outputs": [
1072
+ {
1073
+ "name": "stdout",
1074
+ "output_type": "stream",
1075
+ "text": [
1076
+ "auth_status={'Authorized_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'DESI-EDR'], 'All_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'SDSS-DR17', 'DESI-EDR'], 'All_Private_DataReleases': ['SDSS-DR17']}\n"
1077
+ ]
1078
+ },
1079
+ {
1080
+ "data": {
1081
+ "text/plain": [
1082
+ "{'Loggedin_As': 'Anonymous',\n",
1083
+ " 'Authorized_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16'},\n",
1084
+ " 'Unauthorized_Datasets': {'SDSS-DR17'},\n",
1085
+ " 'All_Private_Datasets': {'SDSS-DR17'},\n",
1086
+ " 'All_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16', 'SDSS-DR17'}}"
1087
+ ]
1088
+ },
1089
+ "execution_count": 31,
1090
+ "metadata": {},
1091
+ "output_type": "execute_result"
1092
+ }
1093
+ ],
1094
+ "source": [
1095
+ "client.authorized"
1096
+ ]
1097
+ },
1098
+ {
1099
+ "cell_type": "code",
1100
+ "execution_count": 32,
1101
+ "metadata": {},
1102
+ "outputs": [
1103
+ {
1104
+ "name": "stdout",
1105
+ "output_type": "stream",
1106
+ "text": [
1107
+ "SUCCESS: Could not execute find: [UNKNOWN] uname='ANONYMOUS' is declined access to datasets: SDSS-DR17. requested_private_drs={'SDSS-DR17'} my_auth=set() [NODRACCESS] None\n"
1108
+ ]
1109
+ }
1110
+ ],
1111
+ "source": [
1112
+ "out = ['sparcl_id','specid', 'ra', 'dec', 'redshift', 'spectype', 'data_release', 'redshift_err']\n",
1113
+ "cons = {'spectype': ['GALAXY'],\n",
1114
+ " 'redshift': [0.5, 0.9],\n",
1115
+ " 'data_release': ['BOSS-DR16',priv_dr]}\n",
1116
+ "try:\n",
1117
+ " found = client.find(outfields=out, constraints=cons, limit=2)\n",
1118
+ " print('FOUND info:')\n",
1119
+ " pp(found.info)\n",
1120
+ " print(f'\\nFOUND records. {found.records[0]=}')\n",
1121
+ " gotrecord = True\n",
1122
+ "except Exception as err:\n",
1123
+ " gotrecord = False\n",
1124
+ " print(f'SUCCESS: Could not execute find: {err}')\n",
1125
+ "\n",
1126
+ "if gotrecord:\n",
1127
+ " raise Exception('Wrongly got record from PRIVATE DR {priv_dr}')"
1128
+ ]
1129
+ },
1130
+ {
1131
+ "cell_type": "markdown",
1132
+ "metadata": {},
1133
+ "source": [
1134
+ "### Fail FIND with prviate DR as Unauthorized"
1135
+ ]
1136
+ },
1137
+ {
1138
+ "cell_type": "code",
1139
+ "execution_count": 33,
1140
+ "metadata": {},
1141
+ "outputs": [
1142
+ {
1143
+ "name": "stdout",
1144
+ "output_type": "stream",
1145
+ "text": [
1146
+ "Logged in successfully with email='test_user_2@noirlab.edu'\n"
1147
+ ]
1148
+ }
1149
+ ],
1150
+ "source": [
1151
+ "client.login(unauth_user, usrpw)"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "cell_type": "code",
1156
+ "execution_count": 34,
1157
+ "metadata": {},
1158
+ "outputs": [
1159
+ {
1160
+ "name": "stdout",
1161
+ "output_type": "stream",
1162
+ "text": [
1163
+ "SUCCESS: Could not execute find: [UNKNOWN] uname='test_user_2@noirlab.edu' is declined access to datasets: SDSS-DR17. requested_private_drs={'SDSS-DR17'} my_auth=set() [NODRACCESS] None\n"
1164
+ ]
1165
+ }
1166
+ ],
1167
+ "source": [
1168
+ "try:\n",
1169
+ " found = client.find(outfields=out, constraints=cons, limit=2)\n",
1170
+ " print('FOUND info:')\n",
1171
+ " pp(found.info)\n",
1172
+ " print(f'\\nFOUND records. {found.records[0]=}')\n",
1173
+ " gotrecord = True\n",
1174
+ "except Exception as err:\n",
1175
+ " gotrecord = False\n",
1176
+ " print(f'SUCCESS: Could not execute find: {err}')\n",
1177
+ "\n",
1178
+ "if gotrecord:\n",
1179
+ " raise Exception('Wrongly got record from PRIVATE DR {priv_dr}')"
1180
+ ]
1181
+ },
1182
+ {
1183
+ "cell_type": "markdown",
1184
+ "metadata": {},
1185
+ "source": [
1186
+ "### Pass FIND with prviate DR as Authorized"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "cell_type": "code",
1191
+ "execution_count": 35,
1192
+ "metadata": {},
1193
+ "outputs": [
1194
+ {
1195
+ "name": "stdout",
1196
+ "output_type": "stream",
1197
+ "text": [
1198
+ "Logged in successfully with email='test_user_1@noirlab.edu'\n"
1199
+ ]
1200
+ }
1201
+ ],
1202
+ "source": [
1203
+ "client.login(auth_user, usrpw)"
1204
+ ]
1205
+ },
1206
+ {
1207
+ "cell_type": "code",
1208
+ "execution_count": 36,
1209
+ "metadata": {},
1210
+ "outputs": [
1211
+ {
1212
+ "name": "stdout",
1213
+ "output_type": "stream",
1214
+ "text": [
1215
+ "FOUND info:\n",
1216
+ "{'META': {'endpoint': 'sparc/find'},\n",
1217
+ " 'PARAMETERS': {'limit': 2,\n",
1218
+ " 'include': 'dec,ra,sparcl_id,specid',\n",
1219
+ " 'offset': 0,\n",
1220
+ " 'format': 'json',\n",
1221
+ " 'drs': ['BOSS-DR16', 'DESI-EDR', 'SDSS-DR16', 'SDSS-DR17'],\n",
1222
+ " 'private_drs': ['SDSS-DR17'],\n",
1223
+ " 'json_payload': {'outfields': ['sparcl_id',\n",
1224
+ " 'specid',\n",
1225
+ " 'ra',\n",
1226
+ " 'dec',\n",
1227
+ " 'redshift',\n",
1228
+ " 'spectype',\n",
1229
+ " 'data_release',\n",
1230
+ " 'redshift_err'],\n",
1231
+ " 'search': [['spectype', 'GALAXY'],\n",
1232
+ " ['redshift', 0.5, 0.9],\n",
1233
+ " ['data_release',\n",
1234
+ " 'BOSS-DR16',\n",
1235
+ " 'SDSS-DR17']]}},\n",
1236
+ " 'HEADER': {'dec': 'np.float64',\n",
1237
+ " 'sparcl_id': 'str',\n",
1238
+ " 'redshift_err': 'np.float64',\n",
1239
+ " 'data_release': 'category',\n",
1240
+ " 'specid': 'np.int64',\n",
1241
+ " 'redshift': 'np.float64',\n",
1242
+ " 'spectype': 'category',\n",
1243
+ " 'ra': 'np.float64'},\n",
1244
+ " 'WARNINGS': ['OFFSET parameter needs SORT but it was not provided. Using '\n",
1245
+ " \"default 'sparcl_id' for sorting\"]}\n"
1246
+ ]
1247
+ }
1248
+ ],
1249
+ "source": [
1250
+ "found = client.find(outfields=out, constraints=cons, limit=2)\n",
1251
+ "print('FOUND info:')\n",
1252
+ "pp(found.info)"
1253
+ ]
1254
+ },
1255
+ {
1256
+ "cell_type": "markdown",
1257
+ "metadata": {},
1258
+ "source": [
1259
+ "### Fail FIND with Unknown user\n",
1260
+ "User is authenticated with SSO, but is unknown to SPARCL"
1261
+ ]
1262
+ },
1263
+ {
1264
+ "cell_type": "code",
1265
+ "execution_count": 37,
1266
+ "metadata": {},
1267
+ "outputs": [
1268
+ {
1269
+ "name": "stdout",
1270
+ "output_type": "stream",
1271
+ "text": [
1272
+ "Logged in successfully with email='test_user_3@noirlab.edu'\n"
1273
+ ]
1274
+ }
1275
+ ],
1276
+ "source": [
1277
+ "client.login(non_user, usrpw)"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "cell_type": "code",
1282
+ "execution_count": 38,
1283
+ "metadata": {},
1284
+ "outputs": [
1285
+ {
1286
+ "name": "stdout",
1287
+ "output_type": "stream",
1288
+ "text": [
1289
+ "SUCCESS: Could not execute find: [UNKNOWN] uname='ANONYMOUS' is declined access to datasets: SDSS-DR17. requested_private_drs={'SDSS-DR17'} my_auth=set() [NODRACCESS] None\n"
1290
+ ]
1291
+ }
1292
+ ],
1293
+ "source": [
1294
+ "try:\n",
1295
+ " found = client.find(outfields=out, constraints=cons, limit=2)\n",
1296
+ " print('FOUND info:')\n",
1297
+ " pp(found.info)\n",
1298
+ " print(f'\\nFOUND records. {found.records[0]=}')\n",
1299
+ " gotrecord = True\n",
1300
+ "except Exception as err:\n",
1301
+ " gotrecord = False\n",
1302
+ " print(f'SUCCESS: Could not execute find: {err}')\n",
1303
+ "\n",
1304
+ "if gotrecord:\n",
1305
+ " raise Exception('Wrongly got record from PRIVATE DR {priv_dr}')"
1306
+ ]
1307
+ },
1308
+ {
1309
+ "cell_type": "markdown",
1310
+ "metadata": {},
1311
+ "source": [
1312
+ "## RETRIEVE"
1313
+ ]
1314
+ },
1315
+ {
1316
+ "cell_type": "markdown",
1317
+ "metadata": {},
1318
+ "source": [
1319
+ "### Pass RETRIEVE with public DRs as Anonymous"
1320
+ ]
1321
+ },
1322
+ {
1323
+ "cell_type": "code",
1324
+ "execution_count": 39,
1325
+ "metadata": {},
1326
+ "outputs": [
1327
+ {
1328
+ "name": "stdout",
1329
+ "output_type": "stream",
1330
+ "text": [
1331
+ "auth_status={'Authorized_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'DESI-EDR'], 'All_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'SDSS-DR17', 'DESI-EDR'], 'All_Private_DataReleases': ['SDSS-DR17']}\n"
1332
+ ]
1333
+ },
1334
+ {
1335
+ "data": {
1336
+ "text/plain": [
1337
+ "{'Loggedin_As': 'test_user_3@noirlab.edu',\n",
1338
+ " 'Authorized_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16'},\n",
1339
+ " 'Unauthorized_Datasets': {'SDSS-DR17'},\n",
1340
+ " 'All_Private_Datasets': {'SDSS-DR17'},\n",
1341
+ " 'All_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16', 'SDSS-DR17'}}"
1342
+ ]
1343
+ },
1344
+ "execution_count": 39,
1345
+ "metadata": {},
1346
+ "output_type": "execute_result"
1347
+ }
1348
+ ],
1349
+ "source": [
1350
+ "client.authorized"
1351
+ ]
1352
+ },
1353
+ {
1354
+ "cell_type": "code",
1355
+ "execution_count": 40,
1356
+ "metadata": {},
1357
+ "outputs": [
1358
+ {
1359
+ "name": "stdout",
1360
+ "output_type": "stream",
1361
+ "text": [
1362
+ "got.records[0].spectype='GALAXY' len(got.records[0].flux)=4621\n"
1363
+ ]
1364
+ }
1365
+ ],
1366
+ "source": [
1367
+ "inc = ['specid', 'data_release', 'redshift', 'flux', 'spectype']\n",
1368
+ "got = client.retrieve(uuid_list=found.ids,\n",
1369
+ " include=inc,\n",
1370
+ " dataset_list=['SDSS-DR16','BOSS-DR16'])\n",
1371
+ "print(f'{got.records[0].spectype=} {len(got.records[0].flux)=}')"
1372
+ ]
1373
+ },
1374
+ {
1375
+ "cell_type": "markdown",
1376
+ "metadata": {},
1377
+ "source": [
1378
+ "### Fail RETRIEVE with private DR as Anonymous"
1379
+ ]
1380
+ },
1381
+ {
1382
+ "cell_type": "code",
1383
+ "execution_count": 41,
1384
+ "metadata": {},
1385
+ "outputs": [
1386
+ {
1387
+ "name": "stdout",
1388
+ "output_type": "stream",
1389
+ "text": [
1390
+ "Correctly could not retrieve: [UNKNOWN] uname='ANONYMOUS' is declined access to datasets: SDSS-DR17. requested_private_drs={'SDSS-DR17'} my_auth=set() [NODRACCESS] None\n"
1391
+ ]
1392
+ }
1393
+ ],
1394
+ "source": [
1395
+ "try:\n",
1396
+ " got = client.retrieve(uuid_list=found.ids,\n",
1397
+ " include=inc,\n",
1398
+ " dataset_list=['SDSS-DR16',priv_dr,'BOSS-DR16'])\n",
1399
+ " gotrecord = True\n",
1400
+ "except Exception as err:\n",
1401
+ " gotrecord = False\n",
1402
+ " print(f'Correctly could not retrieve: {err}')\n",
1403
+ "\n",
1404
+ "if gotrecord:\n",
1405
+ " raise Exception('Wrongly got record from PRIVATE DR {priv_dr}')"
1406
+ ]
1407
+ },
1408
+ {
1409
+ "cell_type": "markdown",
1410
+ "metadata": {},
1411
+ "source": [
1412
+ "### Pass RETRIEVE with private DRs as Authorized"
1413
+ ]
1414
+ },
1415
+ {
1416
+ "cell_type": "code",
1417
+ "execution_count": 42,
1418
+ "metadata": {},
1419
+ "outputs": [
1420
+ {
1421
+ "name": "stdout",
1422
+ "output_type": "stream",
1423
+ "text": [
1424
+ "Logged in successfully with email='test_user_1@noirlab.edu'\n"
1425
+ ]
1426
+ }
1427
+ ],
1428
+ "source": [
1429
+ "client.login(auth_user, usrpw)"
1430
+ ]
1431
+ },
1432
+ {
1433
+ "cell_type": "code",
1434
+ "execution_count": 43,
1435
+ "metadata": {},
1436
+ "outputs": [
1437
+ {
1438
+ "name": "stdout",
1439
+ "output_type": "stream",
1440
+ "text": [
1441
+ "auth_status={'Authorized_DataReleases': ['SDSS-DR17'], 'All_DataReleases': ['BOSS-DR16', 'SDSS-DR16', 'SDSS-DR17', 'DESI-EDR'], 'All_Private_DataReleases': ['SDSS-DR17']}\n"
1442
+ ]
1443
+ },
1444
+ {
1445
+ "data": {
1446
+ "text/plain": [
1447
+ "{'Loggedin_As': 'test_user_1@noirlab.edu',\n",
1448
+ " 'Authorized_Datasets': {'SDSS-DR17'},\n",
1449
+ " 'Unauthorized_Datasets': set(),\n",
1450
+ " 'All_Private_Datasets': {'SDSS-DR17'},\n",
1451
+ " 'All_Datasets': {'BOSS-DR16', 'DESI-EDR', 'SDSS-DR16', 'SDSS-DR17'}}"
1452
+ ]
1453
+ },
1454
+ "execution_count": 43,
1455
+ "metadata": {},
1456
+ "output_type": "execute_result"
1457
+ }
1458
+ ],
1459
+ "source": [
1460
+ "client.authorized"
1461
+ ]
1462
+ },
1463
+ {
1464
+ "cell_type": "code",
1465
+ "execution_count": 44,
1466
+ "metadata": {},
1467
+ "outputs": [
1468
+ {
1469
+ "name": "stdout",
1470
+ "output_type": "stream",
1471
+ "text": [
1472
+ "got.count=1\n"
1473
+ ]
1474
+ }
1475
+ ],
1476
+ "source": [
1477
+ "got = client.retrieve(uuid_list=found.ids,\n",
1478
+ " include=inc,\n",
1479
+ " dataset_list=['SDSS-DR16',priv_dr,'BOSS-DR16'])\n",
1480
+ "print(f'{got.count=}')"
1481
+ ]
1482
+ },
1483
+ {
1484
+ "cell_type": "markdown",
1485
+ "metadata": {},
1486
+ "source": [
1487
+ "# All Done"
1488
+ ]
1489
+ },
1490
+ {
1491
+ "cell_type": "code",
1492
+ "execution_count": 45,
1493
+ "metadata": {},
1494
+ "outputs": [
1495
+ {
1496
+ "name": "stdout",
1497
+ "output_type": "stream",
1498
+ "text": [
1499
+ "Run finished: 2024-02-28 06:08:03.328587\n"
1500
+ ]
1501
+ }
1502
+ ],
1503
+ "source": [
1504
+ "print(f'Run finished: {str(datetime.now())}')"
1505
+ ]
1506
+ }
1507
+ ],
1508
+ "metadata": {
1509
+ "kernelspec": {
1510
+ "display_name": "Python 3 (ipykernel)",
1511
+ "language": "python",
1512
+ "name": "python3"
1513
+ },
1514
+ "language_info": {
1515
+ "codemirror_mode": {
1516
+ "name": "ipython",
1517
+ "version": 3
1518
+ },
1519
+ "file_extension": ".py",
1520
+ "mimetype": "text/x-python",
1521
+ "name": "python",
1522
+ "nbconvert_exporter": "python",
1523
+ "pygments_lexer": "ipython3",
1524
+ "version": "3.10.12"
1525
+ },
1526
+ "toc": {
1527
+ "base_numbering": 1
1528
+ },
1529
+ "toc-showmarkdowntxt": false
1530
+ },
1531
+ "nbformat": 4,
1532
+ "nbformat_minor": 4
1533
+ }