Skip to content

Instantly share code, notes, and snippets.

@hardingnj
Created February 18, 2020 17:13
Show Gist options
  • Save hardingnj/2c6699433e6425fadb70371dac22bcd2 to your computer and use it in GitHub Desktop.
Save hardingnj/2c6699433e6425fadb70371dac22bcd2 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import zarr\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"class ZarrKeyError(Exception):\n",
" \"special case to override default zarr behaviour\"\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"def q(self, key):\n",
" key = self._normalize_key(key)\n",
" filepath = os.path.join(self.path, key)\n",
" if os.path.isfile(filepath):\n",
" return self._fromfile(filepath)\n",
" else:\n",
" raise ZarrKeyError(key)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"zarr.DirectoryStore.__getitem__ = q"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"#zarr.Array._chunk_getitem = chunk_getitem_mod"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"g = zarr.group(\"/tmp/test.zarr\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"a = np.random.randint(0, 100, (100_000, 10))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<zarr.core.Array '/rand' (100000, 10) int64>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g.create_dataset(\"rand\", data=a, chunks=(10_000, 10), overwrite=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"a_read = g[\"rand\"][:]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fab6117bb90>]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(np.sum(a_read[::100], axis=1))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"!rm /tmp/test.zarr/rand/4.0"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"ename": "ZarrKeyError",
"evalue": "rand/4.0",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mZarrKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-12-591469c5fe6c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma_read\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"rand\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m~/git/vector-ops/binder/deps/conda/envs/vector-ops-7e5d193/lib/python3.7/site-packages/zarr/core.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, selection)\u001b[0m\n\u001b[1;32m 570\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 571\u001b[0m \u001b[0mfields\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpop_fields\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mselection\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 572\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_basic_selection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mselection\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfields\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfields\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 573\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 574\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_basic_selection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mEllipsis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfields\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[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/git/vector-ops/binder/deps/conda/envs/vector-ops-7e5d193/lib/python3.7/site-packages/zarr/core.py\u001b[0m in \u001b[0;36mget_basic_selection\u001b[0;34m(self, selection, out, fields)\u001b[0m\n\u001b[1;32m 696\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 697\u001b[0m return self._get_basic_selection_nd(selection=selection, out=out,\n\u001b[0;32m--> 698\u001b[0;31m fields=fields)\n\u001b[0m\u001b[1;32m 699\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_basic_selection_zd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfields\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[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/git/vector-ops/binder/deps/conda/envs/vector-ops-7e5d193/lib/python3.7/site-packages/zarr/core.py\u001b[0m in \u001b[0;36m_get_basic_selection_nd\u001b[0;34m(self, selection, out, fields)\u001b[0m\n\u001b[1;32m 738\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBasicIndexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mselection\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 739\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 740\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_selection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfields\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfields\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 741\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 742\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_orthogonal_selection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfields\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[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/git/vector-ops/binder/deps/conda/envs/vector-ops-7e5d193/lib/python3.7/site-packages/zarr/core.py\u001b[0m in \u001b[0;36m_get_selection\u001b[0;34m(self, indexer, out, fields)\u001b[0m\n\u001b[1;32m 1026\u001b[0m \u001b[0;31m# load chunk selection into output array\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1027\u001b[0m self._chunk_getitem(chunk_coords, chunk_selection, out, out_selection,\n\u001b[0;32m-> 1028\u001b[0;31m drop_axes=indexer.drop_axes, fields=fields)\n\u001b[0m\u001b[1;32m 1029\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1030\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/git/vector-ops/binder/deps/conda/envs/vector-ops-7e5d193/lib/python3.7/site-packages/zarr/core.py\u001b[0m in \u001b[0;36m_chunk_getitem\u001b[0;34m(self, chunk_coords, chunk_selection, out, out_selection, drop_axes, fields)\u001b[0m\n\u001b[1;32m 1584\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1585\u001b[0m \u001b[0;31m# obtain compressed data for chunk\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1586\u001b[0;31m \u001b[0mcdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchunk_store\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mckey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1587\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1588\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<ipython-input-3-995e1321abbd>\u001b[0m in \u001b[0;36mq\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_fromfile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mZarrKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mZarrKeyError\u001b[0m: rand/4.0"
]
}
],
"source": [
"a_read = g[\"rand\"][:]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fab763fa690>]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(np.sum(a_read[::100], axis=1))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment