{ "cells": [ { "cell_type": "markdown", "id": "b812aa2d-4744-4df3-ac19-3e7a88bcb0ca", "metadata": {}, "source": [ "# Working with time data\n", "\n", "Give your file, group or dataset a timestamp by calling `.write_iso_timestamp()`" ] }, { "cell_type": "code", "execution_count": 1, "id": "d658983d-a6c2-402c-a4c1-1aac30488c5c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "\n", " \n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import h5rdmtoolbox as h5tbx\n", "\n", "with h5tbx.File() as h5:\n", " h5.attrs.write_iso_timestamp()\n", " h5.dump()" ] }, { "cell_type": "markdown", "id": "d2f2e4e6-4a0d-4a2d-acd3-19d0ca72ffc4", "metadata": {}, "source": [ "HDF5 cannot store `datetime` objects. The solution is to store them as string-datasets. Therefore, `datetime` is written to the HDF5 datasets in ISO-format. When data is requested, it is converted back to `numpy.datetime64` format and fed into the `xarray` object. Note, that you may use the method `create_time_dataset` instead of constructing the string dataset yourself. In fact, this is recommended, because some attributes must be set in order to identify a dataset as a \"time-data-dataset\":" ] }, { "cell_type": "code", "execution_count": 2, "id": "4d146e52-9307-4908-bfbc-ba41e1524fb0", "metadata": {}, "outputs": [], "source": [ "import datetime" ] }, { "cell_type": "code", "execution_count": 3, "id": "7514afa2-9fb2-4c37-b08a-0a568e66b621", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "\n", " \n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "with h5tbx.File() as h5:\n", " h5.create_time_dataset('time',\n", " data=[datetime.datetime.now(),\n", " datetime.datetime.now()+datetime.timedelta(hours=1),\n", " datetime.datetime.now()+datetime.timedelta(hours=3)],\n", " time_format='iso', make_scale=True)\n", " h5.create_dataset('vel', data=[1,2,-3], attach_scale='time')\n", " v = h5.vel[()]\n", " t = h5.time[()]\n", " h5.dump()" ] }, { "cell_type": "code", "execution_count": 4, "id": "dbeff5ed-f1f3-4276-92a6-292c9ff3e450", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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draaAhgeHo6XXnoJr776KhwdHeHh4QFbW1vEx8ejW7duAIDExERERERg1apVVj2rNiX3oSJrptfrhRBCDBo0SDz//PMttlVVVYlu3bqJ6dOnCyGE+OWXX8TAgQNFz549xYcffijmz58vPD09xerVq+UJL4O6ujrR2Nho+PPKlSuFu7u7GDRokJg9e7b4/vvvhRBC7Nixw6pnxf2qdbhfGefymTgjR44UjzzySIttQggRExMjHnjgASGEEIcPHxZjxowRnp6e4rXXXhOvvvqq8PDwEP/+9787PriMrtyvVq1aJTw8PERERISYMGGCWLFihRDi91k9/PDDVj+rtsJSI4Pm5mbD/25oaBCzZs0S9913n8jOzhZC/O8XRXJysrC3txcVFRVCCCFOnDghZs6cKe69914RFRUlNm/e3PHhO9iVs7rSwoULRWBgoHjrrbfERx99JB5//HGhVCpFSUmJEEKI48ePW/WsuF9dH/cr412elV6vF83NzeIf//iH6Nu3rzh69KgQ4vd1NEIIsW3bNqFQKEROTo4QQojy8nLxxhtviMcff1wMGjRIbNq0SZb8HenKWV3ps88+E7fddptYuHChWL16tXjhhReEJEkiMzNTCGGds2ovLDXtrK6uzrAI7Mp/1dTV1YmioiIhxO8NPjo6WixevLjFc48ePSp69uwp1q9f32J7dXV1O6eWx/VmdflN5fK/fEpKSkRpaanhMZWVlaJr165i/vz5LX6mpc6qqqpK7NmzRwjR8hco96s/u96suF+1VF1dLb799luh0WhabK+trRV5eXlCCCF++OEHER8fL5599tkWj6msrBQ9evQQ//rXv1psv1aBNHfXm9Xl32OX96tLly6JS5cutXhcTEyMmDlzZottljqrjsQ1Ne3op59+gr+/PxYtWoSmpiYoFAoIIZCbm4t77rkHs2fPBgBMmDABPXr0wHfffYcdO3YYnt/Y2Ij8/Hz4+/sD+N/1DZydnTv8tbQ3Y2dla2sLAPD29oa3t7dhIV1BQQHq6uqgVqsBWPasFixYAA8PD3z++ecAAEmSAID71VUYOyvuV8DChQsRGBiI5ORkFBQUGF5raWkpHnzwQTz66KMAgLvvvhu33347du7ciXXr1hmeX1ZWhkuXLv1pVkqlsoNfSfu70azGjRsH4H/7lZubG9zd3Q2Py8vLQ21trWHNliXPqqOx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IpMybNgwREZG4oMPPgAANDY2oqKiAn5+fpAkSd5wRGTSrPKGlkRkPuzs7ODv7y93DCIyA/z4iYhMRmJiIn755Rd8+OGHkCQJkiQhNTW1xcdPqampcHd3xzfffIMePXrA0dER48aNQ11dHdLS0hASEgIPDw88++yz0Ol0hp+t1Wrx0ksvITAwEE5OTujfvz927NghzwslonbBIzVEZDI+/PBDnD59Gr169cKbb74JADh+/PifHldXV4ePPvoIX375JaqrqzFmzBg8/PDDcHd3x3fffYfs7GyMHTsWgwcPxvjx4wEATz/9NE6cOIEvv/wSAQEB2LBhA0aOHImjR4+iW7duHfo6iah9sNQQkclwc3ODnZ0dHB0dDR85nTx58k+Pa2pqwtKlS9GlSxcAwLhx47By5UoUFxfD2dkZ4eHhGD58OLZv347x48cjLy8Py5cvR15eHgICAgAAL730ErZs2YLly5fj7bff7rgXSUTthqWGiMyOo6OjodAAgJ+fH0JCQuDs7NxiW0lJCQDg6NGj0Ol06N69e4ufo9Vq4eXl1TGhiajdsdQQkdmxtbVt8WdJkq66Ta/XAwBqamqgVCpx4MABKJXKFo+7sggRkXljqSEik2JnZ9digW9biIqKgk6nQ0lJCeLj49v0ZxOR6eDZT0RkUkJCQrB//37k5uairKzMcLTlVnTv3h0TJkzA5MmTsX79euTk5CA9PR0LFy7Et99+2wapicgUsNQQkUl56aWXoFQqER4eDh8fH+Tl5bXJz12+fDkmT56MF198ET169MBDDz2EjIwMBAcHt8nPJyL58YrCREREZBF4pIaIiIgsAksNERERWQSWGiIiIrIILDVERERkEVhqiIiIyCKw1BAREZFFYKkhIiIii8BSQ0RERBaBpYaIiIgsAksNERERWQSWGiIiIrIILDVERERkEf4/MfN5uvSnhhAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "v.plot()" ] }, { "cell_type": "code", "execution_count": null, "id": "5cd7cbb6-dcd0-4bc0-8248-cbecc49929da", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.18" } }, "nbformat": 4, "nbformat_minor": 5 }