Created
December 4, 2024 23:07
-
-
Save bamford/33930c630abd720bc8940c7daa4739b7 to your computer and use it in GitHub Desktop.
Reading a set of FITS files to a dask xarray Dataset
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"metadata":{"kernelspec":{"name":"conda-env-icl-py","display_name":"Python [conda env:icl]","language":"python"},"language_info":{"name":"python","version":"3.12.3","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"69e99aab-2ca0-44e2-9e7f-c2829e5e334e","cell_type":"markdown","source":"# xarray\n\n> Utilities for handling Euclid FITS images as xarray Datasets, using dask for efficient computation and memory usage.","metadata":{}},{"id":"f5c20e40-c559-4d29-9dd3-58f5210a0fd0","cell_type":"code","source":"# | default_exp euclid.xarray","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"04164637-e84c-4e28-8d3c-bb436347e488","cell_type":"code","source":"# | export\n\nimport json\nfrom warnings import catch_warnings, filterwarnings\n\nimport numpy as np\nimport xarray as xr\nfrom astropy.io import fits\nfrom kerchunk.combine import MultiZarrToZarr\nfrom kerchunk.fits import process_file\nfrom nicl.euclid.utilities import (\n get_dither_id_from_filename,\n get_filter_from_filename,\n get_obs_id_from_filename,\n get_tile_index_from_filename,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"525e8351-adaa-4c06-a922-992496b4438b","cell_type":"code","source":"# | hide\n# # Additional imports used in the examples\n\nfrom nicl.euclid.utilities import default_data_path, get_nisp_images_for_observation","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"b0bded1e-03b5-4fea-8e61-26f331fb55ee","cell_type":"code","source":"# | exporti\n\ndef _fix_byte_order(refs):\n \"\"\"Correctly identify the byte order as bigendian.\n\n This is a workaround. A proper fix has been submitted via this PR:\n https://github.com/fsspec/kerchunk/pull/531\n When that PR is merged this function will be unnecessary, but not cause any harm.\n \"\"\"\n for k in refs.keys():\n if \"zarray\" in k:\n z = json.loads(refs[k])\n z[\"dtype\"] = np.dtype(z[\"dtype\"]).newbyteorder(\">\").str\n refs[k] = json.dumps(z).encode()\n return refs","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"027d944a-d705-447a-ac34-fb8b99050f40","cell_type":"code","source":"# | exporti\n\ndef _rename(refs, new_name):\n \"\"\"Rename the zarray in a kerchunk json reference.\"\"\"\n new_refs = {}\n for key in refs.keys():\n if \"/\" in key:\n parts = key[key.find(\"/\")+1:]\n new_key = f\"{new_name}/{parts}\"\n new_refs[new_key] = refs[key]\n return new_refs","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"5ee9111b-4eef-4b57-9c71-63815cd4ef63","cell_type":"code","source":"# | exporti\n\ndef _get_ext_type(x):\n return x.split(\".\")[1] if \".\" in x else None\n\ndef _get_ext_det(x):\n return x.split(\".\")[0] if \".\" in x else x","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"639e1a23-ae8b-4e0a-a1c8-95ad190145a5","cell_type":"code","source":"# | export\n\ndef create_zarr_ref_from_fits(fns):\n \"\"\"Create a zarr reference from a set of Euclid fits files.\n\n This uses kerchunk to build a zarr reference file for accessing data directly from fits files.\n The resulting reference can then be opened as a xarray Dataset with `open_zarr_ref_as_dataset`.\n \"\"\"\n if isinstance(fns, str):\n fns = [fns]\n fn = fns[0]\n if \"MER\" in str(fn):\n product_id_name = \"tile_index\"\n get_product_id = get_tile_index_from_filename\n else:\n product_id_name = \"observation_id\"\n get_product_id = get_obs_id_from_filename\n with fits.open(fn) as hdul:\n exts = list(h.name for h in hdul if h.size > 0)\n ref_files = []\n product_ids = []\n dither_ids = []\n filters = []\n for fn in fns:\n ref_exts = []\n coords = []\n coord_name = \"extension\"\n for ext in exts:\n ext_type = _get_ext_type(ext)\n out = process_file(fn, extension=ext)\n if ext_type is not None:\n out = _rename(out, ext_type)\n coord_name = \"detector\"\n out = _fix_byte_order(out)\n ref_exts.append(out)\n coords.append(_get_ext_det(ext))\n mzz = MultiZarrToZarr(\n ref_exts,\n coo_map = {coord_name: coords},\n concat_dims=[coord_name],\n identical_dims = ['x', 'y']\n )\n ref_exts = mzz.translate()\n ref_files.append(ref_exts)\n product_id = get_product_id(fn)\n product_ids.append(product_id)\n dither_id = get_dither_id_from_filename(fn)\n if dither_id is not None:\n dither_ids.append(dither_id)\n filter = get_filter_from_filename(fn)\n if dither_id is not None:\n filters.append(filter)\n print(fn, product_id, dither_id, filter)\n coo_map = {}\n concat_dims = []\n if len(np.unique(product_ids)) > 0:\n coo_map[product_id_name] = product_ids\n concat_dims.append(product_id_name)\n if len(np.unique(dither_ids)) > 0:\n coo_map[\"dither\"] = dither_ids\n concat_dims.append(\"dither\")\n if len(np.unique(filters)) > 0:\n coo_map[\"filter\"] = filters\n concat_dims.append(\"filter\")\n mzz = MultiZarrToZarr(\n ref_files,\n coo_map = coo_map,\n concat_dims=concat_dims,\n identical_dims = ['x', 'y']\n )\n with catch_warnings():\n filterwarnings(\"ignore\", \"Concatenated coordinate .* contains less than expected\")\n out = mzz.translate()\n return out","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"dd022f71-741c-4e44-8b63-1404c8ce3fa4","cell_type":"code","source":"# | export\n\ndef open_zarr_ref_as_dataset(ref):\n \"\"\"Open a zarr reference as a dask xarray Dataset.\"\"\"\n ds = xr.open_dataset(\n \"reference://\", engine=\"zarr\",\n chunks='auto',\n backend_kwargs={\n \"storage_options\": {\n \"fo\": ref,\n },\n \"consolidated\": False,\n }\n )\n return ds","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"093eca4b-a1c3-484b-be4d-fcd97a1f0692","cell_type":"code","source":"# | export\n\ndef open_fits_as_dataset(fns):\n \"\"\"Create a zarr reference from a set of fits files and open as a dask xarray Dataset.\n \n If you plan to reopen the Dataset repeatedly, then is would be better to create the\n JSON reference once with `create_zarr_ref_from_fits`, save it, and then just open\n the reference as needed with `open_zarr_ref_as_dataset`.\n \"\"\"\n ref = create_zarr_ref_from_fits(fns)\n ds = open_zarr_ref_as_dataset(ref)\n return ds","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"479147ce-6862-42b7-8f0f-e71231731515","cell_type":"markdown","source":"## Example","metadata":{}},{"id":"627c5bcd-4539-47ad-88e5-76388a35441a","cell_type":"code","source":"path = default_data_path(\"Q1_R1\")\nimage_info = get_nisp_images_for_observation(2683, path=path)\nfns = image_info.filename","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"2c3c66ab-0800-42c3-8d9c-dd334ef6f88c","cell_type":"code","source":"%%time\nref = create_zarr_ref_from_fits(fns)","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_J-2683-0_20240930T172941.852898Z.fits 2683 0 J\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_H-2683-0_20240930T184607.344746Z.fits 2683 0 H\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_Y-2683-0_20240930T174927.996060Z.fits 2683 0 Y\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_J-2683-1_20240930T172941.702020Z.fits 2683 1 J\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_H-2683-1_20240930T184607.455806Z.fits 2683 1 H\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_Y-2683-1_20240930T174928.133198Z.fits 2683 1 Y\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_J-2683-2_20240930T172941.856270Z.fits 2683 2 J\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_H-2683-2_20240930T184607.453358Z.fits 2683 2 H\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_Y-2683-2_20240930T174928.131907Z.fits 2683 2 Y\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_J-2683-3_20240930T172941.846371Z.fits 2683 3 J\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_H-2683-3_20240930T184607.529026Z.fits 2683 3 H\n/Users/spb/euclid_data/Q1_R1/NIR/2683/EUC_NIR_W-CAL-IMAGE_Y-2683-3_20240930T174928.130205Z.fits 2683 3 Y\nCPU times: user 15.4 s, sys: 346 ms, total: 15.7 s\nWall time: 16.1 s\n"}],"execution_count":null},{"id":"271e4fe6-4a86-457e-9d61-3b0f96bdffad","cell_type":"code","source":"%%time\nds = open_zarr_ref_as_dataset(ref)","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"CPU times: user 16 ms, sys: 2.48 ms, total: 18.5 ms\nWall time: 18.3 ms\n"}],"execution_count":null},{"id":"44cfe20b-6d49-44d4-b70b-b08712eb3feb","cell_type":"code","source":"ds","metadata":{"trusted":false},"outputs":[{"data":{"text/html":"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n<defs>\n<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n</symbol>\n<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n</symbol>\n</defs>\n</svg>\n<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n *\n */\n\n:root {\n --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n --xr-border-color: var(--jp-border-color2, #e0e0e0);\n --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n --xr-background-color: var(--jp-layout-color0, white);\n --xr-background-color-row-even: var(--jp-layout-color1, white);\n --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n}\n\nhtml[theme=dark],\nhtml[data-theme=dark],\nbody[data-theme=dark],\nbody.vscode-dark {\n --xr-font-color0: rgba(255, 255, 255, 1);\n --xr-font-color2: rgba(255, 255, 255, 0.54);\n --xr-font-color3: rgba(255, 255, 255, 0.38);\n --xr-border-color: #1F1F1F;\n --xr-disabled-color: #515151;\n --xr-background-color: #111111;\n --xr-background-color-row-even: #111111;\n --xr-background-color-row-odd: #313131;\n}\n\n.xr-wrap {\n display: block !important;\n min-width: 300px;\n max-width: 700px;\n}\n\n.xr-text-repr-fallback {\n /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n display: none;\n}\n\n.xr-header {\n padding-top: 6px;\n padding-bottom: 6px;\n margin-bottom: 4px;\n border-bottom: solid 1px var(--xr-border-color);\n}\n\n.xr-header > div,\n.xr-header > ul {\n display: inline;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.xr-obj-type,\n.xr-array-name {\n margin-left: 2px;\n margin-right: 10px;\n}\n\n.xr-obj-type {\n color: var(--xr-font-color2);\n}\n\n.xr-sections {\n padding-left: 0 !important;\n display: grid;\n grid-template-columns: 150px auto auto 1fr 0 20px 0 20px;\n}\n\n.xr-section-item {\n display: contents;\n}\n\n.xr-section-item input {\n display: inline-block;\n opacity: 0;\n}\n\n.xr-section-item input + label {\n color: var(--xr-disabled-color);\n}\n\n.xr-section-item input:enabled + label {\n cursor: pointer;\n color: var(--xr-font-color2);\n}\n\n.xr-section-item input:focus + label {\n border: 2px solid var(--xr-font-color0);\n}\n\n.xr-section-item input:enabled + label:hover {\n color: var(--xr-font-color0);\n}\n\n.xr-section-summary {\n grid-column: 1;\n color: var(--xr-font-color2);\n font-weight: 500;\n}\n\n.xr-section-summary > span {\n display: inline-block;\n padding-left: 0.5em;\n}\n\n.xr-section-summary-in:disabled + label {\n color: var(--xr-font-color2);\n}\n\n.xr-section-summary-in + label:before {\n display: inline-block;\n content: '►';\n font-size: 11px;\n width: 15px;\n text-align: center;\n}\n\n.xr-section-summary-in:disabled + label:before {\n color: var(--xr-disabled-color);\n}\n\n.xr-section-summary-in:checked + label:before {\n content: '▼';\n}\n\n.xr-section-summary-in:checked + label > span {\n display: none;\n}\n\n.xr-section-summary,\n.xr-section-inline-details {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n\n.xr-section-inline-details {\n grid-column: 2 / -1;\n}\n\n.xr-section-details {\n display: none;\n grid-column: 1 / -1;\n margin-bottom: 5px;\n}\n\n.xr-section-summary-in:checked ~ .xr-section-details {\n display: contents;\n}\n\n.xr-array-wrap {\n grid-column: 1 / -1;\n display: grid;\n grid-template-columns: 20px auto;\n}\n\n.xr-array-wrap > label {\n grid-column: 1;\n vertical-align: top;\n}\n\n.xr-preview {\n color: var(--xr-font-color3);\n}\n\n.xr-array-preview,\n.xr-array-data {\n padding: 0 5px !important;\n grid-column: 2;\n}\n\n.xr-array-data,\n.xr-array-in:checked ~ .xr-array-preview {\n display: none;\n}\n\n.xr-array-in:checked ~ .xr-array-data,\n.xr-array-preview {\n display: inline-block;\n}\n\n.xr-dim-list {\n display: inline-block !important;\n list-style: none;\n padding: 0 !important;\n margin: 0;\n}\n\n.xr-dim-list li {\n display: inline-block;\n padding: 0;\n margin: 0;\n}\n\n.xr-dim-list:before {\n content: '(';\n}\n\n.xr-dim-list:after {\n content: ')';\n}\n\n.xr-dim-list li:not(:last-child):after {\n content: ',';\n padding-right: 5px;\n}\n\n.xr-has-index {\n font-weight: bold;\n}\n\n.xr-var-list,\n.xr-var-item {\n display: contents;\n}\n\n.xr-var-item > div,\n.xr-var-item label,\n.xr-var-item > .xr-var-name span {\n background-color: var(--xr-background-color-row-even);\n margin-bottom: 0;\n}\n\n.xr-var-item > .xr-var-name:hover span {\n padding-right: 5px;\n}\n\n.xr-var-list > li:nth-child(odd) > div,\n.xr-var-list > li:nth-child(odd) > label,\n.xr-var-list > li:nth-child(odd) > .xr-var-name span {\n background-color: var(--xr-background-color-row-odd);\n}\n\n.xr-var-name {\n grid-column: 1;\n}\n\n.xr-var-dims {\n grid-column: 2;\n}\n\n.xr-var-dtype {\n grid-column: 3;\n text-align: right;\n color: var(--xr-font-color2);\n}\n\n.xr-var-preview {\n grid-column: 4;\n}\n\n.xr-index-preview {\n grid-column: 2 / 5;\n color: var(--xr-font-color2);\n}\n\n.xr-var-name,\n.xr-var-dims,\n.xr-var-dtype,\n.xr-preview,\n.xr-attrs dt {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-right: 10px;\n}\n\n.xr-var-name:hover,\n.xr-var-dims:hover,\n.xr-var-dtype:hover,\n.xr-attrs dt:hover {\n overflow: visible;\n width: auto;\n z-index: 1;\n}\n\n.xr-var-attrs,\n.xr-var-data,\n.xr-index-data {\n display: none;\n background-color: var(--xr-background-color) !important;\n padding-bottom: 5px !important;\n}\n\n.xr-var-attrs-in:checked ~ .xr-var-attrs,\n.xr-var-data-in:checked ~ .xr-var-data,\n.xr-index-data-in:checked ~ .xr-index-data {\n display: block;\n}\n\n.xr-var-data > table {\n float: right;\n}\n\n.xr-var-name span,\n.xr-var-data,\n.xr-index-name div,\n.xr-index-data,\n.xr-attrs {\n padding-left: 25px !important;\n}\n\n.xr-attrs,\n.xr-var-attrs,\n.xr-var-data,\n.xr-index-data {\n grid-column: 1 / -1;\n}\n\ndl.xr-attrs {\n padding: 0;\n margin: 0;\n display: grid;\n grid-template-columns: 125px auto;\n}\n\n.xr-attrs dt,\n.xr-attrs dd {\n padding: 0;\n margin: 0;\n float: left;\n padding-right: 10px;\n width: auto;\n}\n\n.xr-attrs dt {\n font-weight: normal;\n grid-column: 1;\n}\n\n.xr-attrs dt:hover span {\n display: inline-block;\n background: var(--xr-background-color);\n padding-right: 10px;\n}\n\n.xr-attrs dd {\n grid-column: 2;\n white-space: pre-wrap;\n word-break: break-all;\n}\n\n.xr-icon-database,\n.xr-icon-file-text2,\n.xr-no-icon {\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1.5em !important;\n stroke-width: 0;\n stroke: currentColor;\n fill: currentColor;\n}\n</style><pre class='xr-text-repr-fallback'><xarray.Dataset> Size: 10GB\nDimensions: (observation_id: 1, dither: 4, filter: 3, detector: 16,\n y: 2040, x: 2040)\nCoordinates:\n * detector (detector) object 128B 'DET11' 'DET12' ... 'DET43' 'DET44'\n * dither (dither) int64 32B 0 1 2 3\n * filter (filter) object 24B 'H' 'J' 'Y'\n * observation_id (observation_id) int64 8B 2683\nDimensions without coordinates: y, x\nData variables:\n DQ (observation_id, dither, filter, detector, y, x) int32 3GB dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray>\n RMS (observation_id, dither, filter, detector, y, x) float32 3GB dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray>\n SCI (observation_id, dither, filter, detector, y, x) float32 3GB dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray></pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-604a7afb-a90d-4608-895c-37aab2d635de' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-604a7afb-a90d-4608-895c-37aab2d635de' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>observation_id</span>: 1</li><li><span class='xr-has-index'>dither</span>: 4</li><li><span class='xr-has-index'>filter</span>: 3</li><li><span class='xr-has-index'>detector</span>: 16</li><li><span>y</span>: 2040</li><li><span>x</span>: 2040</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-72854d20-9fd1-4183-83e3-8e6166c6b5d7' class='xr-section-summary-in' type='checkbox' checked><label for='section-72854d20-9fd1-4183-83e3-8e6166c6b5d7' class='xr-section-summary' >Coordinates: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>detector</span></div><div class='xr-var-dims'>(detector)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>'DET11' 'DET12' ... 'DET43' 'DET44'</div><input id='attrs-c6cd57f0-55b1-43e8-ad75-cb046a268176' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-c6cd57f0-55b1-43e8-ad75-cb046a268176' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a5d34ac0-823b-422b-8c4f-cfd7fe6e8604' class='xr-var-data-in' type='checkbox'><label for='data-a5d34ac0-823b-422b-8c4f-cfd7fe6e8604' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array(['DET11', 'DET12', 'DET13', 'DET14', 'DET21', 'DET22', 'DET23', 'DET24',\n 'DET31', 'DET32', 'DET33', 'DET34', 'DET41', 'DET42', 'DET43', 'DET44'],\n dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>dither</span></div><div class='xr-var-dims'>(dither)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>0 1 2 3</div><input id='attrs-4f41d868-a2d3-4942-9e28-c26392177011' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4f41d868-a2d3-4942-9e28-c26392177011' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b2ce8ac8-6654-4a05-a911-7441c1c36f52' class='xr-var-data-in' type='checkbox'><label for='data-b2ce8ac8-6654-4a05-a911-7441c1c36f52' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0, 1, 2, 3])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>filter</span></div><div class='xr-var-dims'>(filter)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>'H' 'J' 'Y'</div><input id='attrs-2ea796fb-adae-4eba-93e9-2afa6816ee6f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-2ea796fb-adae-4eba-93e9-2afa6816ee6f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-113a072a-22f4-4c04-802f-a9ac5af80205' class='xr-var-data-in' type='checkbox'><label for='data-113a072a-22f4-4c04-802f-a9ac5af80205' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array(['H', 'J', 'Y'], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>observation_id</span></div><div class='xr-var-dims'>(observation_id)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>2683</div><input id='attrs-61d8d5ae-2cd1-4e77-a73c-ca52e999558e' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-61d8d5ae-2cd1-4e77-a73c-ca52e999558e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-97d788d5-dfff-46f3-a40d-8146e30bfa86' class='xr-var-data-in' type='checkbox'><label for='data-97d788d5-dfff-46f3-a40d-8146e30bfa86' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([2683])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-bf9f6358-2cd2-4a7e-bd70-f3ce7fb479c1' class='xr-section-summary-in' type='checkbox' checked><label for='section-bf9f6358-2cd2-4a7e-bd70-f3ce7fb479c1' class='xr-section-summary' >Data variables: <span>(3)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>DQ</span></div><div class='xr-var-dims'>(observation_id, dither, filter, detector, y, x)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray></div><input id='attrs-9b6f01bb-9332-4d03-8b28-2990a0437341' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-9b6f01bb-9332-4d03-8b28-2990a0437341' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6705524d-ced9-491a-a0b0-4fab08cef043' class='xr-var-data-in' type='checkbox'><label for='data-6705524d-ced9-491a-a0b0-4fab08cef043' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>BITPIX :</span></dt><dd>32</dd><dt><span>BSCALE :</span></dt><dd>1</dd><dt><span>BZERO :</span></dt><dd>2147483648</dd><dt><span>CD1_1 :</span></dt><dd>-4.317137911772e-05</dd><dt><span>CD1_2 :</span></dt><dd>-7.021206376427e-05</dd><dt><span>CD2_1 :</span></dt><dd>7.020989364988e-05</dd><dt><span>CD2_2 :</span></dt><dd>-4.317055703463e-05</dd><dt><span>CRPIX1 :</span></dt><dd>4170.390230645</dd><dt><span>CRPIX2 :</span></dt><dd>4621.116938306</dd><dt><span>CRVAL1 :</span></dt><dd>268.4903179024</dd><dt><span>CRVAL2 :</span></dt><dd>68.22826031136</dd><dt><span>CTYPE1 :</span></dt><dd>RA---TPV</dd><dt><span>CTYPE2 :</span></dt><dd>DEC--TPV</dd><dt><span>CUNIT1 :</span></dt><dd>deg</dd><dt><span>CUNIT2 :</span></dt><dd>deg</dd><dt><span>DET_ID :</span></dt><dd>11</dd><dt><span>EXTNAME :</span></dt><dd>DET11.DQ</dd><dt><span>GCOUNT :</span></dt><dd>1</dd><dt><span>MSK_FLAG_BADBASE :</span></dt><dd>4</dd><dt><span>MSK_FLAG_COSMIC :</span></dt><dd>16</dd><dt><span>MSK_FLAG_CROSSTALK :</span></dt><dd>22</dd><dt><span>MSK_FLAG_DARKNODET :</span></dt><dd>15</dd><dt><span>MSK_FLAG_DISCONNECTED :</span></dt><dd>2</dd><dt><span>MSK_FLAG_FLATLH :</span></dt><dd>17</dd><dt><span>MSK_FLAG_FLOWER :</span></dt><dd>23</dd><dt><span>MSK_FLAG_GHOST :</span></dt><dd>18</dd><dt><span>MSK_FLAG_HOT :</span></dt><dd>7</dd><dt><span>MSK_FLAG_INVALID :</span></dt><dd>0</dd><dt><span>MSK_FLAG_LOWQE :</span></dt><dd>5</dd><dt><span>MSK_FLAG_MOVING :</span></dt><dd>20</dd><dt><span>MSK_FLAG_NLINEAR :</span></dt><dd>11</dd><dt><span>MSK_FLAG_NLMODFAIL :</span></dt><dd>12</dd><dt><span>MSK_FLAG_OBMASK :</span></dt><dd>1</dd><dt><span>MSK_FLAG_PERMODFAIL :</span></dt><dd>14</dd><dt><span>MSK_FLAG_PERSIST :</span></dt><dd>13</dd><dt><span>MSK_FLAG_RTN :</span></dt><dd>8</dd><dt><span>MSK_FLAG_SATUR :</span></dt><dd>10</dd><dt><span>MSK_FLAG_SCATTER :</span></dt><dd>19</dd><dt><span>MSK_FLAG_SNOWBALL :</span></dt><dd>9</dd><dt><span>MSK_FLAG_SUPERQE :</span></dt><dd>6</dd><dt><span>MSK_FLAG_TRANS :</span></dt><dd>21</dd><dt><span>MSK_FLAG_VIGNET :</span></dt><dd>24</dd><dt><span>MSK_FLAG_ZEROQE :</span></dt><dd>3</dd><dt><span>NAXIS :</span></dt><dd>2</dd><dt><span>NAXIS1 :</span></dt><dd>2040</dd><dt><span>NAXIS2 :</span></dt><dd>2040</dd><dt><span>PCOUNT :</span></dt><dd>0</dd><dt><span>PV1_0 :</span></dt><dd>-0.002173393464378</dd><dt><span>PV1_1 :</span></dt><dd>1.005824927214</dd><dt><span>PV1_10 :</span></dt><dd>0.0001206529364239</dd><dt><span>PV1_2 :</span></dt><dd>-0.002431304780575</dd><dt><span>PV1_4 :</span></dt><dd>-0.0009170811131314</dd><dt><span>PV1_5 :</span></dt><dd>0.0144219923779</dd><dt><span>PV1_6 :</span></dt><dd>0.003649338188522</dd><dt><span>PV1_7 :</span></dt><dd>-0.01604086520008</dd><dt><span>PV1_8 :</span></dt><dd>-0.01043384353857</dd><dt><span>PV1_9 :</span></dt><dd>-0.01675436172723</dd><dt><span>PV2_0 :</span></dt><dd>-0.0002494082323815</dd><dt><span>PV2_1 :</span></dt><dd>1.007402158036</dd><dt><span>PV2_10 :</span></dt><dd>-0.0003660470533285</dd><dt><span>PV2_2 :</span></dt><dd>-0.001862692907038</dd><dt><span>PV2_4 :</span></dt><dd>0.003308933505195</dd><dt><span>PV2_5 :</span></dt><dd>-0.005251600014565</dd><dt><span>PV2_6 :</span></dt><dd>-0.003643638381087</dd><dt><span>PV2_7 :</span></dt><dd>-0.01568911656822</dd><dt><span>PV2_8 :</span></dt><dd>-0.001787993309014</dd><dt><span>PV2_9 :</span></dt><dd>-0.01428673641109</dd><dt><span>XTENSION :</span></dt><dd>IMAGE</dd></dl></div><div class='xr-var-data'><table>\n <tr>\n <td>\n <table style=\"border-collapse: collapse;\">\n <thead>\n <tr>\n <td> </td>\n <th> Array </th>\n <th> Chunk </th>\n </tr>\n </thead>\n <tbody>\n \n <tr>\n <th> Bytes </th>\n <td> 2.98 GiB </td>\n <td> 127.00 MiB </td>\n </tr>\n \n <tr>\n <th> Shape </th>\n <td> (1, 4, 3, 16, 2040, 2040) </td>\n <td> (1, 2, 2, 2, 2040, 2040) </td>\n </tr>\n <tr>\n <th> Dask graph </th>\n <td colspan=\"2\"> 32 chunks in 2 graph layers </td>\n </tr>\n <tr>\n <th> Data type </th>\n <td colspan=\"2\"> int32 numpy.ndarray </td>\n </tr>\n </tbody>\n </table>\n </td>\n <td>\n <svg width=\"424\" height=\"184\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n\n <!-- Horizontal lines -->\n <line x1=\"10\" y1=\"0\" x2=\"24\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"10\" y1=\"12\" x2=\"24\" y2=\"27\" />\n <line x1=\"10\" y1=\"25\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"25\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"10.0,0.0 24.9485979497544,14.948597949754403 24.9485979497544,40.36121446433689 10.0,25.412616514582485\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"14\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"10\" y1=\"0\" x2=\"24\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"26\" y1=\"0\" x2=\"41\" y2=\"14\" />\n <line x1=\"35\" y1=\"0\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"10.0,0.0 35.41261651458248,0.0 50.36121446433688,14.948597949754403 24.9485979497544,14.948597949754403\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"24\" y1=\"14\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"27\" x2=\"50\" y2=\"27\" />\n <line x1=\"24\" y1=\"40\" x2=\"50\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n <line x1=\"41\" y1=\"14\" x2=\"41\" y2=\"40\" />\n <line x1=\"50\" y1=\"14\" x2=\"50\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"24.9485979497544,14.948597949754403 50.36121446433688,14.948597949754403 50.36121446433688,40.36121446433689 24.9485979497544,40.36121446433689\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Text -->\n <text x=\"37.654906\" y=\"60.361214\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >3</text>\n <text x=\"70.361214\" y=\"27.654906\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,70.361214,27.654906)\">4</text>\n <text x=\"7.474299\" y=\"52.886915\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,7.474299,52.886915)\">1</text>\n\n\n <!-- Horizontal lines -->\n <line x1=\"120\" y1=\"0\" x2=\"134\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"120\" y1=\"120\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"120\" y1=\"0\" x2=\"120\" y2=\"120\" style=\"stroke-width:2\" />\n <line x1=\"121\" y1=\"1\" x2=\"121\" y2=\"121\" />\n <line x1=\"123\" y1=\"3\" x2=\"123\" y2=\"123\" />\n <line x1=\"125\" y1=\"5\" x2=\"125\" y2=\"125\" />\n <line x1=\"127\" y1=\"7\" x2=\"127\" y2=\"127\" />\n <line x1=\"129\" y1=\"9\" x2=\"129\" y2=\"129\" />\n <line x1=\"131\" y1=\"11\" x2=\"131\" y2=\"131\" />\n <line x1=\"133\" y1=\"13\" x2=\"133\" y2=\"133\" />\n <line x1=\"134\" y1=\"14\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"120.0,0.0 134.9485979497544,14.948597949754403 134.9485979497544,134.9485979497544 120.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"120\" y1=\"0\" x2=\"240\" y2=\"0\" style=\"stroke-width:2\" />\n <line x1=\"121\" y1=\"1\" x2=\"241\" y2=\"1\" />\n <line x1=\"123\" y1=\"3\" x2=\"243\" y2=\"3\" />\n <line x1=\"125\" y1=\"5\" x2=\"245\" y2=\"5\" />\n <line x1=\"127\" y1=\"7\" x2=\"247\" y2=\"7\" />\n <line x1=\"129\" y1=\"9\" x2=\"249\" y2=\"9\" />\n <line x1=\"131\" y1=\"11\" x2=\"251\" y2=\"11\" />\n <line x1=\"133\" y1=\"13\" x2=\"253\" y2=\"13\" />\n <line x1=\"134\" y1=\"14\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"120\" y1=\"0\" x2=\"134\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"240\" y1=\"0\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"120.0,0.0 240.0,0.0 254.9485979497544,14.948597949754403 134.9485979497544,14.948597949754403\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"134\" y1=\"14\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"134\" y1=\"134\" x2=\"254\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"134\" y1=\"14\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n <line x1=\"254\" y1=\"14\" x2=\"254\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"134.9485979497544,14.948597949754403 254.9485979497544,14.948597949754403 254.9485979497544,134.9485979497544 134.9485979497544,134.9485979497544\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Text -->\n <text x=\"194.948598\" y=\"154.948598\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2040</text>\n <text x=\"274.948598\" y=\"74.948598\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(-90,274.948598,74.948598)\">2040</text>\n <text x=\"117.474299\" y=\"147.474299\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,117.474299,147.474299)\">16</text>\n</svg>\n </td>\n </tr>\n</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>RMS</span></div><div class='xr-var-dims'>(observation_id, dither, filter, detector, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray></div><input id='attrs-ecb5a68d-1857-4ee3-b6d2-71b941fcb69d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-ecb5a68d-1857-4ee3-b6d2-71b941fcb69d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e5cdf70e-7225-4700-be8e-429dc32bf94e' class='xr-var-data-in' type='checkbox'><label for='data-e5cdf70e-7225-4700-be8e-429dc32bf94e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>BITPIX :</span></dt><dd>-32</dd><dt><span>CD1_1 :</span></dt><dd>-4.317137911772e-05</dd><dt><span>CD1_2 :</span></dt><dd>-7.021206376427e-05</dd><dt><span>CD2_1 :</span></dt><dd>7.020989364988e-05</dd><dt><span>CD2_2 :</span></dt><dd>-4.317055703463e-05</dd><dt><span>CRPIX1 :</span></dt><dd>4170.390230645</dd><dt><span>CRPIX2 :</span></dt><dd>4621.116938306</dd><dt><span>CRVAL1 :</span></dt><dd>268.4903179024</dd><dt><span>CRVAL2 :</span></dt><dd>68.22826031136</dd><dt><span>CTYPE1 :</span></dt><dd>RA---TPV</dd><dt><span>CTYPE2 :</span></dt><dd>DEC--TPV</dd><dt><span>CUNIT1 :</span></dt><dd>deg</dd><dt><span>CUNIT2 :</span></dt><dd>deg</dd><dt><span>DET_ID :</span></dt><dd>11</dd><dt><span>EXTNAME :</span></dt><dd>DET11.RMS</dd><dt><span>GCOUNT :</span></dt><dd>1</dd><dt><span>NAXIS :</span></dt><dd>2</dd><dt><span>NAXIS1 :</span></dt><dd>2040</dd><dt><span>NAXIS2 :</span></dt><dd>2040</dd><dt><span>PCOUNT :</span></dt><dd>0</dd><dt><span>PV1_0 :</span></dt><dd>-0.002173393464378</dd><dt><span>PV1_1 :</span></dt><dd>1.005824927214</dd><dt><span>PV1_10 :</span></dt><dd>0.0001206529364239</dd><dt><span>PV1_2 :</span></dt><dd>-0.002431304780575</dd><dt><span>PV1_4 :</span></dt><dd>-0.0009170811131314</dd><dt><span>PV1_5 :</span></dt><dd>0.0144219923779</dd><dt><span>PV1_6 :</span></dt><dd>0.003649338188522</dd><dt><span>PV1_7 :</span></dt><dd>-0.01604086520008</dd><dt><span>PV1_8 :</span></dt><dd>-0.01043384353857</dd><dt><span>PV1_9 :</span></dt><dd>-0.01675436172723</dd><dt><span>PV2_0 :</span></dt><dd>-0.0002494082323815</dd><dt><span>PV2_1 :</span></dt><dd>1.007402158036</dd><dt><span>PV2_10 :</span></dt><dd>-0.0003660470533285</dd><dt><span>PV2_2 :</span></dt><dd>-0.001862692907038</dd><dt><span>PV2_4 :</span></dt><dd>0.003308933505195</dd><dt><span>PV2_5 :</span></dt><dd>-0.005251600014565</dd><dt><span>PV2_6 :</span></dt><dd>-0.003643638381087</dd><dt><span>PV2_7 :</span></dt><dd>-0.01568911656822</dd><dt><span>PV2_8 :</span></dt><dd>-0.001787993309014</dd><dt><span>PV2_9 :</span></dt><dd>-0.01428673641109</dd><dt><span>XTENSION :</span></dt><dd>IMAGE</dd></dl></div><div class='xr-var-data'><table>\n <tr>\n <td>\n <table style=\"border-collapse: collapse;\">\n <thead>\n <tr>\n <td> </td>\n <th> Array </th>\n <th> Chunk </th>\n </tr>\n </thead>\n <tbody>\n \n <tr>\n <th> Bytes </th>\n <td> 2.98 GiB </td>\n <td> 127.00 MiB </td>\n </tr>\n \n <tr>\n <th> Shape </th>\n <td> (1, 4, 3, 16, 2040, 2040) </td>\n <td> (1, 2, 2, 2, 2040, 2040) </td>\n </tr>\n <tr>\n <th> Dask graph </th>\n <td colspan=\"2\"> 32 chunks in 2 graph layers </td>\n </tr>\n <tr>\n <th> Data type </th>\n <td colspan=\"2\"> float32 numpy.ndarray </td>\n </tr>\n </tbody>\n </table>\n </td>\n <td>\n <svg width=\"424\" height=\"184\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n\n <!-- Horizontal lines -->\n <line x1=\"10\" y1=\"0\" x2=\"24\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"10\" y1=\"12\" x2=\"24\" y2=\"27\" />\n <line x1=\"10\" y1=\"25\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"25\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"10.0,0.0 24.9485979497544,14.948597949754403 24.9485979497544,40.36121446433689 10.0,25.412616514582485\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"14\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"10\" y1=\"0\" x2=\"24\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"26\" y1=\"0\" x2=\"41\" y2=\"14\" />\n <line x1=\"35\" y1=\"0\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"10.0,0.0 35.41261651458248,0.0 50.36121446433688,14.948597949754403 24.9485979497544,14.948597949754403\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"24\" y1=\"14\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"27\" x2=\"50\" y2=\"27\" />\n <line x1=\"24\" y1=\"40\" x2=\"50\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n <line x1=\"41\" y1=\"14\" x2=\"41\" y2=\"40\" />\n <line x1=\"50\" y1=\"14\" x2=\"50\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"24.9485979497544,14.948597949754403 50.36121446433688,14.948597949754403 50.36121446433688,40.36121446433689 24.9485979497544,40.36121446433689\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Text -->\n <text x=\"37.654906\" y=\"60.361214\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >3</text>\n <text x=\"70.361214\" y=\"27.654906\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,70.361214,27.654906)\">4</text>\n <text x=\"7.474299\" y=\"52.886915\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,7.474299,52.886915)\">1</text>\n\n\n <!-- Horizontal lines -->\n <line x1=\"120\" y1=\"0\" x2=\"134\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"120\" y1=\"120\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"120\" y1=\"0\" x2=\"120\" y2=\"120\" style=\"stroke-width:2\" />\n <line x1=\"121\" y1=\"1\" x2=\"121\" y2=\"121\" />\n <line x1=\"123\" y1=\"3\" x2=\"123\" y2=\"123\" />\n <line x1=\"125\" y1=\"5\" x2=\"125\" y2=\"125\" />\n <line x1=\"127\" y1=\"7\" x2=\"127\" y2=\"127\" />\n <line x1=\"129\" y1=\"9\" x2=\"129\" y2=\"129\" />\n <line x1=\"131\" y1=\"11\" x2=\"131\" y2=\"131\" />\n <line x1=\"133\" y1=\"13\" x2=\"133\" y2=\"133\" />\n <line x1=\"134\" y1=\"14\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"120.0,0.0 134.9485979497544,14.948597949754403 134.9485979497544,134.9485979497544 120.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"120\" y1=\"0\" x2=\"240\" y2=\"0\" style=\"stroke-width:2\" />\n <line x1=\"121\" y1=\"1\" x2=\"241\" y2=\"1\" />\n <line x1=\"123\" y1=\"3\" x2=\"243\" y2=\"3\" />\n <line x1=\"125\" y1=\"5\" x2=\"245\" y2=\"5\" />\n <line x1=\"127\" y1=\"7\" x2=\"247\" y2=\"7\" />\n <line x1=\"129\" y1=\"9\" x2=\"249\" y2=\"9\" />\n <line x1=\"131\" y1=\"11\" x2=\"251\" y2=\"11\" />\n <line x1=\"133\" y1=\"13\" x2=\"253\" y2=\"13\" />\n <line x1=\"134\" y1=\"14\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"120\" y1=\"0\" x2=\"134\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"240\" y1=\"0\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"120.0,0.0 240.0,0.0 254.9485979497544,14.948597949754403 134.9485979497544,14.948597949754403\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"134\" y1=\"14\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"134\" y1=\"134\" x2=\"254\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"134\" y1=\"14\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n <line x1=\"254\" y1=\"14\" x2=\"254\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"134.9485979497544,14.948597949754403 254.9485979497544,14.948597949754403 254.9485979497544,134.9485979497544 134.9485979497544,134.9485979497544\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Text -->\n <text x=\"194.948598\" y=\"154.948598\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2040</text>\n <text x=\"274.948598\" y=\"74.948598\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(-90,274.948598,74.948598)\">2040</text>\n <text x=\"117.474299\" y=\"147.474299\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,117.474299,147.474299)\">16</text>\n</svg>\n </td>\n </tr>\n</table></div></li><li class='xr-var-item'><div class='xr-var-name'><span>SCI</span></div><div class='xr-var-dims'>(observation_id, dither, filter, detector, y, x)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray></div><input id='attrs-d4a5f4ac-2132-4f5b-9262-e480d51fa88d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d4a5f4ac-2132-4f5b-9262-e480d51fa88d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-436f4768-6e82-44a7-a052-9d50b4076713' class='xr-var-data-in' type='checkbox'><label for='data-436f4768-6e82-44a7-a052-9d50b4076713' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>ASTINST :</span></dt><dd>1</dd><dt><span>ASTIRMS1 :</span></dt><dd>3.05569063784834e-06</dd><dt><span>ASTIRMS2 :</span></dt><dd>3.43985898128206e-06</dd><dt><span>ASTRRMS1 :</span></dt><dd>1.95031557920332e-06</dd><dt><span>ASTRRMS2 :</span></dt><dd>1.5372777913172e-06</dd><dt><span>BITPIX :</span></dt><dd>-32</dd><dt><span>BUNIT :</span></dt><dd>ELECTRON</dd><dt><span>CD1_1 :</span></dt><dd>-4.317137911772e-05</dd><dt><span>CD1_2 :</span></dt><dd>-7.021206376427e-05</dd><dt><span>CD2_1 :</span></dt><dd>7.020989364988e-05</dd><dt><span>CD2_2 :</span></dt><dd>-4.317055703463e-05</dd><dt><span>CMPRTSCI :</span></dt><dd>2.82266420267871</dd><dt><span>CRPIX1 :</span></dt><dd>4170.390230645</dd><dt><span>CRPIX2 :</span></dt><dd>4621.116938306</dd><dt><span>CRVAL1 :</span></dt><dd>268.4903179024</dd><dt><span>CRVAL2 :</span></dt><dd>68.22826031136</dd><dt><span>CTYPE1 :</span></dt><dd>RA---TPV</dd><dt><span>CTYPE2 :</span></dt><dd>DEC--TPV</dd><dt><span>CUNIT1 :</span></dt><dd>deg</dd><dt><span>CUNIT2 :</span></dt><dd>deg</dd><dt><span>DARKFILL :</span></dt><dd>0.0</dd><dt><span>DET_ID :</span></dt><dd>11</dd><dt><span>DPU_ID :</span></dt><dd>1</dd><dt><span>DTEXPNUM :</span></dt><dd>16</dd><dt><span>EQUINOX :</span></dt><dd>2000.0</dd><dt><span>EXTNAME :</span></dt><dd>DET11.SCI</dd><dt><span>FGROUPNO :</span></dt><dd>1</dd><dt><span>FLTCAL :</span></dt><dd>EUC_NIR_C-LARGEFLAT_J_20240614T124741.872920Z.fits.gz</dd><dt><span>FLTCORR :</span></dt><dd>True</dd><dt><span>FLXSCALE :</span></dt><dd>0.0</dd><dt><span>GAIN :</span></dt><dd>0.520833333333333</dd><dt><span>GAIN_DET :</span></dt><dd>192</dd><dt><span>GCOUNT :</span></dt><dd>1</dd><dt><span>MAGZEROP :</span></dt><dd>0.0</dd><dt><span>MASTER :</span></dt><dd>0</dd><dt><span>NARPIXS :</span></dt><dd>0</dd><dt><span>NAXIS :</span></dt><dd>2</dd><dt><span>NAXIS1 :</span></dt><dd>2040</dd><dt><span>NAXIS2 :</span></dt><dd>2040</dd><dt><span>NBADPIXT :</span></dt><dd>3129</dd><dt><span>NCRPIXM :</span></dt><dd>356</dd><dt><span>NCRPIXS :</span></dt><dd>38509</dd><dt><span>NDFILL :</span></dt><dd>1654683</dd><dt><span>NDGPIXS :</span></dt><dd>1444</dd><dt><span>NFGPIXS :</span></dt><dd>0</dd><dt><span>NGHPIXS :</span></dt><dd>1444</dd><dt><span>NPERSPIX :</span></dt><dd>55857</dd><dt><span>NREJNL :</span></dt><dd>4160130</dd><dt><span>NREJPERS :</span></dt><dd>8398</dd><dt><span>NSATPIX :</span></dt><dd>772</dd><dt><span>NSCPIXS :</span></dt><dd>0</dd><dt><span>NSRC :</span></dt><dd>80</dd><dt><span>NSRCASTR :</span></dt><dd>80</dd><dt><span>PCOUNT :</span></dt><dd>0</dd><dt><span>PHOTINST :</span></dt><dd>1</dd><dt><span>PHOTIRMS :</span></dt><dd>0.02802758</dd><dt><span>PHOTLINK :</span></dt><dd>False</dd><dt><span>PHRELDT :</span></dt><dd>1.00826890200315</dd><dt><span>PHRELDTE :</span></dt><dd>0.0</dd><dt><span>PIXSCALE :</span></dt><dd>0.298925548730467</dd><dt><span>PV1_0 :</span></dt><dd>-0.002173393464378</dd><dt><span>PV1_1 :</span></dt><dd>1.005824927214</dd><dt><span>PV1_10 :</span></dt><dd>0.0001206529364239</dd><dt><span>PV1_2 :</span></dt><dd>-0.002431304780575</dd><dt><span>PV1_4 :</span></dt><dd>-0.0009170811131314</dd><dt><span>PV1_5 :</span></dt><dd>0.0144219923779</dd><dt><span>PV1_6 :</span></dt><dd>0.003649338188522</dd><dt><span>PV1_7 :</span></dt><dd>-0.01604086520008</dd><dt><span>PV1_8 :</span></dt><dd>-0.01043384353857</dd><dt><span>PV1_9 :</span></dt><dd>-0.01675436172723</dd><dt><span>PV2_0 :</span></dt><dd>-0.0002494082323815</dd><dt><span>PV2_1 :</span></dt><dd>1.007402158036</dd><dt><span>PV2_10 :</span></dt><dd>-0.0003660470533285</dd><dt><span>PV2_2 :</span></dt><dd>-0.001862692907038</dd><dt><span>PV2_4 :</span></dt><dd>0.003308933505195</dd><dt><span>PV2_5 :</span></dt><dd>-0.005251600014565</dd><dt><span>PV2_6 :</span></dt><dd>-0.003643638381087</dd><dt><span>PV2_7 :</span></dt><dd>-0.01568911656822</dd><dt><span>PV2_8 :</span></dt><dd>-0.001787993309014</dd><dt><span>PV2_9 :</span></dt><dd>-0.01428673641109</dd><dt><span>RADESYS :</span></dt><dd>ICRS</dd><dt><span>RDNOISE :</span></dt><dd>4.87078555344531</dd><dt><span>RON_DET :</span></dt><dd>61</dd><dt><span>SATURATE :</span></dt><dd>64511</dd><dt><span>SCA_ID :</span></dt><dd>18453</dd><dt><span>SCEINDEX :</span></dt><dd>3</dd><dt><span>XTENSION :</span></dt><dd>IMAGE</dd><dt><span>ZPAB :</span></dt><dd>30.0180117487827</dd><dt><span>ZPABE :</span></dt><dd>0.108757678355967</dd><dt><span>ZPVEGA :</span></dt><dd>28.9550117487827</dd><dt><span>ZPVEGAE :</span></dt><dd>0.102557678355967</dd></dl></div><div class='xr-var-data'><table>\n <tr>\n <td>\n <table style=\"border-collapse: collapse;\">\n <thead>\n <tr>\n <td> </td>\n <th> Array </th>\n <th> Chunk </th>\n </tr>\n </thead>\n <tbody>\n \n <tr>\n <th> Bytes </th>\n <td> 2.98 GiB </td>\n <td> 127.00 MiB </td>\n </tr>\n \n <tr>\n <th> Shape </th>\n <td> (1, 4, 3, 16, 2040, 2040) </td>\n <td> (1, 2, 2, 2, 2040, 2040) </td>\n </tr>\n <tr>\n <th> Dask graph </th>\n <td colspan=\"2\"> 32 chunks in 2 graph layers </td>\n </tr>\n <tr>\n <th> Data type </th>\n <td colspan=\"2\"> float32 numpy.ndarray </td>\n </tr>\n </tbody>\n </table>\n </td>\n <td>\n <svg width=\"424\" height=\"184\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n\n <!-- Horizontal lines -->\n <line x1=\"10\" y1=\"0\" x2=\"24\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"10\" y1=\"12\" x2=\"24\" y2=\"27\" />\n <line x1=\"10\" y1=\"25\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"10\" y1=\"0\" x2=\"10\" y2=\"25\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"10.0,0.0 24.9485979497544,14.948597949754403 24.9485979497544,40.36121446433689 10.0,25.412616514582485\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"10\" y1=\"0\" x2=\"35\" y2=\"0\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"14\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"10\" y1=\"0\" x2=\"24\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"26\" y1=\"0\" x2=\"41\" y2=\"14\" />\n <line x1=\"35\" y1=\"0\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"10.0,0.0 35.41261651458248,0.0 50.36121446433688,14.948597949754403 24.9485979497544,14.948597949754403\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"24\" y1=\"14\" x2=\"50\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"24\" y1=\"27\" x2=\"50\" y2=\"27\" />\n <line x1=\"24\" y1=\"40\" x2=\"50\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"24\" y1=\"14\" x2=\"24\" y2=\"40\" style=\"stroke-width:2\" />\n <line x1=\"41\" y1=\"14\" x2=\"41\" y2=\"40\" />\n <line x1=\"50\" y1=\"14\" x2=\"50\" y2=\"40\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"24.9485979497544,14.948597949754403 50.36121446433688,14.948597949754403 50.36121446433688,40.36121446433689 24.9485979497544,40.36121446433689\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Text -->\n <text x=\"37.654906\" y=\"60.361214\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >3</text>\n <text x=\"70.361214\" y=\"27.654906\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(0,70.361214,27.654906)\">4</text>\n <text x=\"7.474299\" y=\"52.886915\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,7.474299,52.886915)\">1</text>\n\n\n <!-- Horizontal lines -->\n <line x1=\"120\" y1=\"0\" x2=\"134\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"120\" y1=\"120\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"120\" y1=\"0\" x2=\"120\" y2=\"120\" style=\"stroke-width:2\" />\n <line x1=\"121\" y1=\"1\" x2=\"121\" y2=\"121\" />\n <line x1=\"123\" y1=\"3\" x2=\"123\" y2=\"123\" />\n <line x1=\"125\" y1=\"5\" x2=\"125\" y2=\"125\" />\n <line x1=\"127\" y1=\"7\" x2=\"127\" y2=\"127\" />\n <line x1=\"129\" y1=\"9\" x2=\"129\" y2=\"129\" />\n <line x1=\"131\" y1=\"11\" x2=\"131\" y2=\"131\" />\n <line x1=\"133\" y1=\"13\" x2=\"133\" y2=\"133\" />\n <line x1=\"134\" y1=\"14\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"120.0,0.0 134.9485979497544,14.948597949754403 134.9485979497544,134.9485979497544 120.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"120\" y1=\"0\" x2=\"240\" y2=\"0\" style=\"stroke-width:2\" />\n <line x1=\"121\" y1=\"1\" x2=\"241\" y2=\"1\" />\n <line x1=\"123\" y1=\"3\" x2=\"243\" y2=\"3\" />\n <line x1=\"125\" y1=\"5\" x2=\"245\" y2=\"5\" />\n <line x1=\"127\" y1=\"7\" x2=\"247\" y2=\"7\" />\n <line x1=\"129\" y1=\"9\" x2=\"249\" y2=\"9\" />\n <line x1=\"131\" y1=\"11\" x2=\"251\" y2=\"11\" />\n <line x1=\"133\" y1=\"13\" x2=\"253\" y2=\"13\" />\n <line x1=\"134\" y1=\"14\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"120\" y1=\"0\" x2=\"134\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"240\" y1=\"0\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"120.0,0.0 240.0,0.0 254.9485979497544,14.948597949754403 134.9485979497544,14.948597949754403\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Horizontal lines -->\n <line x1=\"134\" y1=\"14\" x2=\"254\" y2=\"14\" style=\"stroke-width:2\" />\n <line x1=\"134\" y1=\"134\" x2=\"254\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Vertical lines -->\n <line x1=\"134\" y1=\"14\" x2=\"134\" y2=\"134\" style=\"stroke-width:2\" />\n <line x1=\"254\" y1=\"14\" x2=\"254\" y2=\"134\" style=\"stroke-width:2\" />\n\n <!-- Colored Rectangle -->\n <polygon points=\"134.9485979497544,14.948597949754403 254.9485979497544,14.948597949754403 254.9485979497544,134.9485979497544 134.9485979497544,134.9485979497544\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n\n <!-- Text -->\n <text x=\"194.948598\" y=\"154.948598\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2040</text>\n <text x=\"274.948598\" y=\"74.948598\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(-90,274.948598,74.948598)\">2040</text>\n <text x=\"117.474299\" y=\"147.474299\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(45,117.474299,147.474299)\">16</text>\n</svg>\n </td>\n </tr>\n</table></div></li></ul></div></li><li class='xr-section-item'><input id='section-0a2be3bf-3a4b-41e3-a5e7-e6440d6f7c65' class='xr-section-summary-in' type='checkbox' ><label for='section-0a2be3bf-3a4b-41e3-a5e7-e6440d6f7c65' class='xr-section-summary' >Indexes: <span>(4)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>detector</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-2d02be6f-f0d9-461b-ac55-6ccc78b07788' class='xr-index-data-in' type='checkbox'/><label for='index-2d02be6f-f0d9-461b-ac55-6ccc78b07788' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index(['DET11', 'DET12', 'DET13', 'DET14', 'DET21', 'DET22', 'DET23', 'DET24',\n 'DET31', 'DET32', 'DET33', 'DET34', 'DET41', 'DET42', 'DET43', 'DET44'],\n dtype='object', name='detector'))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>dither</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-77b049f3-7138-4a99-b209-32afaf366573' class='xr-index-data-in' type='checkbox'/><label for='index-77b049f3-7138-4a99-b209-32afaf366573' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([0, 1, 2, 3], dtype='int64', name='dither'))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>filter</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-8299fd43-d6d5-471e-9870-78e5b2e85dc1' class='xr-index-data-in' type='checkbox'/><label for='index-8299fd43-d6d5-471e-9870-78e5b2e85dc1' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index(['H', 'J', 'Y'], dtype='object', name='filter'))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>observation_id</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-49248eb0-8eb3-4f1a-ac5c-a1073e02b37f' class='xr-index-data-in' type='checkbox'/><label for='index-49248eb0-8eb3-4f1a-ac5c-a1073e02b37f' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([2683], dtype='int64', name='observation_id'))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-13e73ab9-28d7-4f4b-b67c-c2a7dfc1d78c' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-13e73ab9-28d7-4f4b-b67c-c2a7dfc1d78c' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>","text/plain":"<xarray.Dataset> Size: 10GB\nDimensions: (observation_id: 1, dither: 4, filter: 3, detector: 16,\n y: 2040, x: 2040)\nCoordinates:\n * detector (detector) object 128B 'DET11' 'DET12' ... 'DET43' 'DET44'\n * dither (dither) int64 32B 0 1 2 3\n * filter (filter) object 24B 'H' 'J' 'Y'\n * observation_id (observation_id) int64 8B 2683\nDimensions without coordinates: y, x\nData variables:\n DQ (observation_id, dither, filter, detector, y, x) int32 3GB dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray>\n RMS (observation_id, dither, filter, detector, y, x) float32 3GB dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray>\n SCI (observation_id, dither, filter, detector, y, x) float32 3GB dask.array<chunksize=(1, 2, 2, 2, 2040, 2040), meta=np.ndarray>"},"execution_count":null,"metadata":{},"output_type":"execute_result"}],"execution_count":null},{"id":"72b66a2e-6585-4c93-b38e-84ae814be00d","cell_type":"code","source":"median = ds['SCI'].median(dim=[\"observation_id\", \"dither\", \"filter\"])","metadata":{"trusted":false},"outputs":[],"execution_count":null},{"id":"60343a86-a9cc-4c88-acc4-adde0ba8eda3","cell_type":"code","source":"%%time\nmedian.compute()","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"CPU times: user 1min 36s, sys: 1min 26s, total: 3min 3s\nWall time: 29.3 s\n"},{"data":{"text/html":"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n<defs>\n<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n</symbol>\n<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n</symbol>\n</defs>\n</svg>\n<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n *\n */\n\n:root {\n --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n --xr-border-color: var(--jp-border-color2, #e0e0e0);\n --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n --xr-background-color: var(--jp-layout-color0, white);\n --xr-background-color-row-even: var(--jp-layout-color1, white);\n --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n}\n\nhtml[theme=dark],\nhtml[data-theme=dark],\nbody[data-theme=dark],\nbody.vscode-dark {\n --xr-font-color0: rgba(255, 255, 255, 1);\n --xr-font-color2: rgba(255, 255, 255, 0.54);\n --xr-font-color3: rgba(255, 255, 255, 0.38);\n --xr-border-color: #1F1F1F;\n --xr-disabled-color: #515151;\n --xr-background-color: #111111;\n --xr-background-color-row-even: #111111;\n --xr-background-color-row-odd: #313131;\n}\n\n.xr-wrap {\n display: block !important;\n min-width: 300px;\n max-width: 700px;\n}\n\n.xr-text-repr-fallback {\n /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n display: none;\n}\n\n.xr-header {\n padding-top: 6px;\n padding-bottom: 6px;\n margin-bottom: 4px;\n border-bottom: solid 1px var(--xr-border-color);\n}\n\n.xr-header > div,\n.xr-header > ul {\n display: inline;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.xr-obj-type,\n.xr-array-name {\n margin-left: 2px;\n margin-right: 10px;\n}\n\n.xr-obj-type {\n color: var(--xr-font-color2);\n}\n\n.xr-sections {\n padding-left: 0 !important;\n display: grid;\n grid-template-columns: 150px auto auto 1fr 0 20px 0 20px;\n}\n\n.xr-section-item {\n display: contents;\n}\n\n.xr-section-item input {\n display: inline-block;\n opacity: 0;\n}\n\n.xr-section-item input + label {\n color: var(--xr-disabled-color);\n}\n\n.xr-section-item input:enabled + label {\n cursor: pointer;\n color: var(--xr-font-color2);\n}\n\n.xr-section-item input:focus + label {\n border: 2px solid var(--xr-font-color0);\n}\n\n.xr-section-item input:enabled + label:hover {\n color: var(--xr-font-color0);\n}\n\n.xr-section-summary {\n grid-column: 1;\n color: var(--xr-font-color2);\n font-weight: 500;\n}\n\n.xr-section-summary > span {\n display: inline-block;\n padding-left: 0.5em;\n}\n\n.xr-section-summary-in:disabled + label {\n color: var(--xr-font-color2);\n}\n\n.xr-section-summary-in + label:before {\n display: inline-block;\n content: '►';\n font-size: 11px;\n width: 15px;\n text-align: center;\n}\n\n.xr-section-summary-in:disabled + label:before {\n color: var(--xr-disabled-color);\n}\n\n.xr-section-summary-in:checked + label:before {\n content: '▼';\n}\n\n.xr-section-summary-in:checked + label > span {\n display: none;\n}\n\n.xr-section-summary,\n.xr-section-inline-details {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n\n.xr-section-inline-details {\n grid-column: 2 / -1;\n}\n\n.xr-section-details {\n display: none;\n grid-column: 1 / -1;\n margin-bottom: 5px;\n}\n\n.xr-section-summary-in:checked ~ .xr-section-details {\n display: contents;\n}\n\n.xr-array-wrap {\n grid-column: 1 / -1;\n display: grid;\n grid-template-columns: 20px auto;\n}\n\n.xr-array-wrap > label {\n grid-column: 1;\n vertical-align: top;\n}\n\n.xr-preview {\n color: var(--xr-font-color3);\n}\n\n.xr-array-preview,\n.xr-array-data {\n padding: 0 5px !important;\n grid-column: 2;\n}\n\n.xr-array-data,\n.xr-array-in:checked ~ .xr-array-preview {\n display: none;\n}\n\n.xr-array-in:checked ~ .xr-array-data,\n.xr-array-preview {\n display: inline-block;\n}\n\n.xr-dim-list {\n display: inline-block !important;\n list-style: none;\n padding: 0 !important;\n margin: 0;\n}\n\n.xr-dim-list li {\n display: inline-block;\n padding: 0;\n margin: 0;\n}\n\n.xr-dim-list:before {\n content: '(';\n}\n\n.xr-dim-list:after {\n content: ')';\n}\n\n.xr-dim-list li:not(:last-child):after {\n content: ',';\n padding-right: 5px;\n}\n\n.xr-has-index {\n font-weight: bold;\n}\n\n.xr-var-list,\n.xr-var-item {\n display: contents;\n}\n\n.xr-var-item > div,\n.xr-var-item label,\n.xr-var-item > .xr-var-name span {\n background-color: var(--xr-background-color-row-even);\n margin-bottom: 0;\n}\n\n.xr-var-item > .xr-var-name:hover span {\n padding-right: 5px;\n}\n\n.xr-var-list > li:nth-child(odd) > div,\n.xr-var-list > li:nth-child(odd) > label,\n.xr-var-list > li:nth-child(odd) > .xr-var-name span {\n background-color: var(--xr-background-color-row-odd);\n}\n\n.xr-var-name {\n grid-column: 1;\n}\n\n.xr-var-dims {\n grid-column: 2;\n}\n\n.xr-var-dtype {\n grid-column: 3;\n text-align: right;\n color: var(--xr-font-color2);\n}\n\n.xr-var-preview {\n grid-column: 4;\n}\n\n.xr-index-preview {\n grid-column: 2 / 5;\n color: var(--xr-font-color2);\n}\n\n.xr-var-name,\n.xr-var-dims,\n.xr-var-dtype,\n.xr-preview,\n.xr-attrs dt {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-right: 10px;\n}\n\n.xr-var-name:hover,\n.xr-var-dims:hover,\n.xr-var-dtype:hover,\n.xr-attrs dt:hover {\n overflow: visible;\n width: auto;\n z-index: 1;\n}\n\n.xr-var-attrs,\n.xr-var-data,\n.xr-index-data {\n display: none;\n background-color: var(--xr-background-color) !important;\n padding-bottom: 5px !important;\n}\n\n.xr-var-attrs-in:checked ~ .xr-var-attrs,\n.xr-var-data-in:checked ~ .xr-var-data,\n.xr-index-data-in:checked ~ .xr-index-data {\n display: block;\n}\n\n.xr-var-data > table {\n float: right;\n}\n\n.xr-var-name span,\n.xr-var-data,\n.xr-index-name div,\n.xr-index-data,\n.xr-attrs {\n padding-left: 25px !important;\n}\n\n.xr-attrs,\n.xr-var-attrs,\n.xr-var-data,\n.xr-index-data {\n grid-column: 1 / -1;\n}\n\ndl.xr-attrs {\n padding: 0;\n margin: 0;\n display: grid;\n grid-template-columns: 125px auto;\n}\n\n.xr-attrs dt,\n.xr-attrs dd {\n padding: 0;\n margin: 0;\n float: left;\n padding-right: 10px;\n width: auto;\n}\n\n.xr-attrs dt {\n font-weight: normal;\n grid-column: 1;\n}\n\n.xr-attrs dt:hover span {\n display: inline-block;\n background: var(--xr-background-color);\n padding-right: 10px;\n}\n\n.xr-attrs dd {\n grid-column: 2;\n white-space: pre-wrap;\n word-break: break-all;\n}\n\n.xr-icon-database,\n.xr-icon-file-text2,\n.xr-no-icon {\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1.5em !important;\n stroke-width: 0;\n stroke: currentColor;\n fill: currentColor;\n}\n</style><pre class='xr-text-repr-fallback'><xarray.DataArray 'SCI' (detector: 16, y: 2040, x: 2040)> Size: 266MB\narray([[[ 64.19491 , 67.078766 , 66.44539 , ..., 64.04256 ,\n 62.787518 , 59.350792 ],\n [ 64.54579 , 63.714226 , 60.695328 , ..., 62.01454 ,\n 63.63827 , 60.694565 ],\n [ 60.816174 , 61.2768 , 63.714226 , ..., 66.12628 ,\n 55.953312 , 55.2466 ],\n ...,\n [ 63.453663 , 67.74246 , 62.702446 , ..., 59.646862 ,\n 62.916855 , 63.85218 ],\n [ 64.9606 , 59.288826 , 63.397884 , ..., 63.160946 ,\n 63.157394 , 65.6652 ],\n [ 59.76058 , 60.67249 , 68.97561 , ..., 62.60383 ,\n 58.301983 , 62.16313 ]],\n\n [[ 70.7383 , 69.91258 , 72.29007 , ..., -8.780915 ,\n -5.9143744, -6.920571 ],\n [ 69.49198 , 67.1319 , 75.94953 , ..., -4.9328685,\n -12.070469 , -10.73223 ],\n [ 71.27069 , 71.91942 , 63.27051 , ..., -4.968932 ,\n -4.938717 , -5.9631076],\n...\n [ 72.38832 , 67.58812 , 69.579926 , ..., -19.608631 ,\n -10.109669 , -8.403699 ],\n [ 66.27293 , 69.674515 , 61.857292 , ..., -9.210991 ,\n -16.680946 , -10.271188 ],\n [ 69.171005 , 69.53067 , 62.534737 , ..., -17.500885 ,\n -15.873654 , -7.4193735]],\n\n [[ 76.75749 , 83.60602 , 83.27513 , ..., 67.20813 ,\n 62.931004 , 68.58031 ],\n [ 74.80112 , 72.93109 , 80.6994 , ..., 64.274536 ,\n 61.619118 , 65.80408 ],\n [ 76.75749 , 74.95543 , 78.44336 , ..., 71.57124 ,\n 72.47168 , 70.66237 ],\n ...,\n [ 68.75368 , 69.03995 , 65.620316 , ..., 68.860085 ,\n 64.969086 , 63.070034 ],\n [ 66.44855 , 64.932816 , 72.47544 , ..., 64.05542 ,\n 59.470894 , 71.957886 ],\n [ 68.491776 , 64.79114 , 68.05373 , ..., 68.38541 ,\n 65.33897 , 66.87998 ]]], dtype=float32)\nCoordinates:\n * detector (detector) object 128B 'DET11' 'DET12' 'DET13' ... 'DET43' 'DET44'\nDimensions without coordinates: y, x</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'SCI'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>detector</span>: 16</li><li><span>y</span>: 2040</li><li><span>x</span>: 2040</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-07d53140-8c34-4b89-937a-1c316e0f4787' class='xr-array-in' type='checkbox' checked><label for='section-07d53140-8c34-4b89-937a-1c316e0f4787' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>64.19 67.08 66.45 64.07 60.24 65.98 ... 59.06 56.04 68.39 65.34 66.88</span></div><div class='xr-array-data'><pre>array([[[ 64.19491 , 67.078766 , 66.44539 , ..., 64.04256 ,\n 62.787518 , 59.350792 ],\n [ 64.54579 , 63.714226 , 60.695328 , ..., 62.01454 ,\n 63.63827 , 60.694565 ],\n [ 60.816174 , 61.2768 , 63.714226 , ..., 66.12628 ,\n 55.953312 , 55.2466 ],\n ...,\n [ 63.453663 , 67.74246 , 62.702446 , ..., 59.646862 ,\n 62.916855 , 63.85218 ],\n [ 64.9606 , 59.288826 , 63.397884 , ..., 63.160946 ,\n 63.157394 , 65.6652 ],\n [ 59.76058 , 60.67249 , 68.97561 , ..., 62.60383 ,\n 58.301983 , 62.16313 ]],\n\n [[ 70.7383 , 69.91258 , 72.29007 , ..., -8.780915 ,\n -5.9143744, -6.920571 ],\n [ 69.49198 , 67.1319 , 75.94953 , ..., -4.9328685,\n -12.070469 , -10.73223 ],\n [ 71.27069 , 71.91942 , 63.27051 , ..., -4.968932 ,\n -4.938717 , -5.9631076],\n...\n [ 72.38832 , 67.58812 , 69.579926 , ..., -19.608631 ,\n -10.109669 , -8.403699 ],\n [ 66.27293 , 69.674515 , 61.857292 , ..., -9.210991 ,\n -16.680946 , -10.271188 ],\n [ 69.171005 , 69.53067 , 62.534737 , ..., -17.500885 ,\n -15.873654 , -7.4193735]],\n\n [[ 76.75749 , 83.60602 , 83.27513 , ..., 67.20813 ,\n 62.931004 , 68.58031 ],\n [ 74.80112 , 72.93109 , 80.6994 , ..., 64.274536 ,\n 61.619118 , 65.80408 ],\n [ 76.75749 , 74.95543 , 78.44336 , ..., 71.57124 ,\n 72.47168 , 70.66237 ],\n ...,\n [ 68.75368 , 69.03995 , 65.620316 , ..., 68.860085 ,\n 64.969086 , 63.070034 ],\n [ 66.44855 , 64.932816 , 72.47544 , ..., 64.05542 ,\n 59.470894 , 71.957886 ],\n [ 68.491776 , 64.79114 , 68.05373 , ..., 68.38541 ,\n 65.33897 , 66.87998 ]]], dtype=float32)</pre></div></div></li><li class='xr-section-item'><input id='section-f48541c2-806c-42b7-b017-c542bfa0bcba' class='xr-section-summary-in' type='checkbox' checked><label for='section-f48541c2-806c-42b7-b017-c542bfa0bcba' class='xr-section-summary' >Coordinates: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>detector</span></div><div class='xr-var-dims'>(detector)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>'DET11' 'DET12' ... 'DET43' 'DET44'</div><input id='attrs-ae112dbf-dde0-4f7b-bb02-198843ec018f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-ae112dbf-dde0-4f7b-bb02-198843ec018f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-acd43158-1646-487c-9b53-9e65ac8ec1e4' class='xr-var-data-in' type='checkbox'><label for='data-acd43158-1646-487c-9b53-9e65ac8ec1e4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array(['DET11', 'DET12', 'DET13', 'DET14', 'DET21', 'DET22', 'DET23', 'DET24',\n 'DET31', 'DET32', 'DET33', 'DET34', 'DET41', 'DET42', 'DET43', 'DET44'],\n dtype=object)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-4208a7dd-5128-4ed3-b018-d3a941879500' class='xr-section-summary-in' type='checkbox' ><label for='section-4208a7dd-5128-4ed3-b018-d3a941879500' class='xr-section-summary' >Indexes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>detector</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-daeefab2-4fbd-4554-929c-207d84ad5b5c' class='xr-index-data-in' type='checkbox'/><label for='index-daeefab2-4fbd-4554-929c-207d84ad5b5c' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index(['DET11', 'DET12', 'DET13', 'DET14', 'DET21', 'DET22', 'DET23', 'DET24',\n 'DET31', 'DET32', 'DET33', 'DET34', 'DET41', 'DET42', 'DET43', 'DET44'],\n dtype='object', name='detector'))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-7a202dac-11f2-482b-8612-1e5680285b4d' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-7a202dac-11f2-482b-8612-1e5680285b4d' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>","text/plain":"<xarray.DataArray 'SCI' (detector: 16, y: 2040, x: 2040)> Size: 266MB\narray([[[ 64.19491 , 67.078766 , 66.44539 , ..., 64.04256 ,\n 62.787518 , 59.350792 ],\n [ 64.54579 , 63.714226 , 60.695328 , ..., 62.01454 ,\n 63.63827 , 60.694565 ],\n [ 60.816174 , 61.2768 , 63.714226 , ..., 66.12628 ,\n 55.953312 , 55.2466 ],\n ...,\n [ 63.453663 , 67.74246 , 62.702446 , ..., 59.646862 ,\n 62.916855 , 63.85218 ],\n [ 64.9606 , 59.288826 , 63.397884 , ..., 63.160946 ,\n 63.157394 , 65.6652 ],\n [ 59.76058 , 60.67249 , 68.97561 , ..., 62.60383 ,\n 58.301983 , 62.16313 ]],\n\n [[ 70.7383 , 69.91258 , 72.29007 , ..., -8.780915 ,\n -5.9143744, -6.920571 ],\n [ 69.49198 , 67.1319 , 75.94953 , ..., -4.9328685,\n -12.070469 , -10.73223 ],\n [ 71.27069 , 71.91942 , 63.27051 , ..., -4.968932 ,\n -4.938717 , -5.9631076],\n...\n [ 72.38832 , 67.58812 , 69.579926 , ..., -19.608631 ,\n -10.109669 , -8.403699 ],\n [ 66.27293 , 69.674515 , 61.857292 , ..., -9.210991 ,\n -16.680946 , -10.271188 ],\n [ 69.171005 , 69.53067 , 62.534737 , ..., -17.500885 ,\n -15.873654 , -7.4193735]],\n\n [[ 76.75749 , 83.60602 , 83.27513 , ..., 67.20813 ,\n 62.931004 , 68.58031 ],\n [ 74.80112 , 72.93109 , 80.6994 , ..., 64.274536 ,\n 61.619118 , 65.80408 ],\n [ 76.75749 , 74.95543 , 78.44336 , ..., 71.57124 ,\n 72.47168 , 70.66237 ],\n ...,\n [ 68.75368 , 69.03995 , 65.620316 , ..., 68.860085 ,\n 64.969086 , 63.070034 ],\n [ 66.44855 , 64.932816 , 72.47544 , ..., 64.05542 ,\n 59.470894 , 71.957886 ],\n [ 68.491776 , 64.79114 , 68.05373 , ..., 68.38541 ,\n 65.33897 , 66.87998 ]]], dtype=float32)\nCoordinates:\n * detector (detector) object 128B 'DET11' 'DET12' 'DET13' ... 'DET43' 'DET44'\nDimensions without coordinates: y, x"},"execution_count":null,"metadata":{},"output_type":"execute_result"}],"execution_count":null},{"id":"74bb8e71-16d6-4f83-bdc1-06055891d3ab","cell_type":"code","source":"# | hide\nimport nbdev\n\nnbdev.nbdev_export()","metadata":{"trusted":false},"outputs":[],"execution_count":null}]} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment