diff --git a/docs/getting_started/IO.ipynb b/docs/getting_started/IO.ipynb index 6a1e6b5..f2583b2 100644 --- a/docs/getting_started/IO.ipynb +++ b/docs/getting_started/IO.ipynb @@ -5,14 +5,14 @@ "id": "79d4a524-9c0c-4ec1-92a8-6556bb1bb7bc", "metadata": {}, "source": [ - "# IO\n", + "# IO (Read/Write)\n", "\n", "`synpivimage` lets you store your metadata in JSON-LD files, which is just like a JSON file but with a context. This makes metadata human- and machine-readable and actionable." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "id": "97a5e1b2-8d66-46d2-8f14-7e2aba27abb7", "metadata": {}, "outputs": [], @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "id": "0b1a2624-9632-4016-9c7c-e32891b3b191", "metadata": {}, "outputs": [], @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "id": "35a0121a-ec83-4194-a35a-827af901402c", "metadata": {}, "outputs": [], @@ -86,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 4, "id": "c36d7868-6250-43ce-82e6-a5992961f641", "metadata": {}, "outputs": [], @@ -96,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 5, "id": "fec1ea3c-b0f6-4e84-9aa5-0f7998520415", "metadata": {}, "outputs": [], @@ -106,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 6, "id": "c4ba56ca-cf4b-48a4-9544-00b9992e1768", "metadata": {}, "outputs": [], @@ -116,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 7, "id": "6122cdd9-1b66-40c6-b719-0b735c4877bf", "metadata": {}, "outputs": [ @@ -126,7 +126,7 @@ "(2, 2)" ] }, - "execution_count": 14, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -150,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 8, "id": "07b22f88-939f-419f-bd47-ec01d58152a3", "metadata": {}, "outputs": [ @@ -160,7 +160,7 @@ "Laser(shape_factor=2, width=2.0)" ] }, - "execution_count": 15, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } diff --git a/docs/getting_started/SingleImage.ipynb b/docs/getting_started/SingleImage.ipynb index 88d20eb..e53edfc 100644 --- a/docs/getting_started/SingleImage.ipynb +++ b/docs/getting_started/SingleImage.ipynb @@ -153,7 +153,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 6, @@ -162,7 +162,7 @@ }, { "data": { - "image/png": "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wBtc1zICADgPwQgAYDmCEQDAcgQjAIDlXB+MTj75ZPl8vm6ve++91+pqFcwjjzyik08+WWVlZaqvr9e7775rdZUsc9ddd/U4FiZOnGh1tQpqw4YNmjdvnurq6uTz+bRmzZpu7xuGoTvvvFOjRo3SkCFDNHv2bG3bts2ayhZAf5/HkiVLehwzc+fOtaayBdDc3KxzzjlHFRUVGjlypObPn6+tW7d226e9vV2NjY066aSTNHToUC1YsEDBYHDQZbs+GEnS3Xffrf3796deN910k9VVKojnnntOTU1NWrlypT744ANNmTJFc+bM0WeffWZ11SwzadKkbsfCm2++aXWVCiocDmvKlCl65JFHMr5///3360c/+pEeffRRbdy4UeXl5ZozZ47a29sLXNPC6O/zkKS5c+d2O2aeffbZAtawsNavX6/Gxka98847ev311xWJRHTxxRcrHA6n9lm+fLleeuklPf/881q/fr327dunyy67bPCFGy43duxY44c//KHV1bDEueeeazQ2Nqa+j8ViRl1dndHc3GxhrayzcuVKY8qUKVZXwzYkGS+88ELq+3g8btTW1hoPPPBAKu3QoUNGaWmp8eyzz1pQw8I6/vMwDMNYvHixcckll1hSHzv47LPPDEnG+vXrDcNIHA/FxcXG888/n9rn448/NiQZLS0tgyrLEy2je++9VyeddJLOOussPfDAA4pGo1ZXKe86Ozu1adMmzZ49O5Xm9/s1e/ZstbS0WFgza23btk11dXUaP368rrzySu3evdvqKtnGrl27dODAgW7HTFVVlerr6z19zKxbt04jR47UhAkT9K1vfUsHDx60ukoF09raKkmqrq6WJG3atEmRSKTbMTJx4kSNGTNm0MeIrRdKzYXvfOc7mjZtmqqrq/X2229rxYoV2r9/vx588EGrq5ZXX3zxhWKxmGpqarql19TU6JNPPrGoVtaqr6/Xk08+qQkTJmj//v1atWqVLrjgAm3ZskUVFRVWV89yBw4ckKSMx0zyPa+ZO3euLrvsMo0bN047duzQ7bffroaGBrW0tCgQCFhdvbyKx+NatmyZzj//fJ155pmSEsdISUmJhg0b1m3fXBwjjgxGt912m+67774+9/n44481ceJENTU1pdImT56skpIS3XjjjWpubmaZD49paGhIbU+ePFn19fUaO3asfvnLX+q6666zsGawq0WLFqW2v/KVr2jy5Mk65ZRTtG7dOl100UUW1iz/GhsbtWXLloKNqzoyGN18881asmRJn/uMHz8+Y3p9fb2i0aj++te/asKECXmonT0MHz5cgUCgxyyXYDCo2tpai2plL8OGDdPpp5+u7du3W10VW0geF8FgUKNGjUqlB4NBTZ061aJa2cv48eM1fPhwbd++3dXBaOnSpXr55Ze1YcOGbo/xqa2tVWdnpw4dOtStdZSL84ojx4xGjBihiRMn9vkqKSnJmHfz5s3y+/0aOXJkgWtdWCUlJZo+fbrWrl2bSovH41q7dq1mzJhhYc3so62tTTt27Oh24vWycePGqba2ttsxEwqFtHHjRo6ZY/bu3auDBw+69pgxDENLly7VCy+8oDfeeEPjxo3r9v706dNVXFzc7RjZunWrdu/ePehjxJEto4FqaWnRxo0bNWvWLFVUVKilpUXLly/XVVddpRNPPNHq6uVdU1OTFi9erLPPPlvnnnuuHnroIYXDYV1zzTVWV80St9xyi+bNm6exY8dq3759WrlypQKBgK644gqrq1YwbW1t3VqCu3bt0ubNm1VdXa0xY8Zo2bJl+t73vqfTTjtN48aN0x133KG6ujrNnz/fukrnUV+fR3V1tVatWqUFCxaotrZWO3bs0K233qpTTz1Vc+bMsbDW+dPY2KhnnnlGL774oioqKlLjQFVVVRoyZIiqqqp03XXXqampSdXV1aqsrNRNN92kGTNm6Lzzzhtc4YOai2dzmzZtMurr642qqiqjrKzMOOOMM4zvf//7Rnt7u9VVK5j//M//NMaMGWOUlJQY5557rvHOO+9YXSXLLFy40Bg1apRRUlJifOlLXzIWLlxobN++3epqFdTvfvc7Q1KP1+LFiw3DSEzvvuOOO4yamhqjtLTUuOiii4ytW7daW+k86uvzOHLkiHHxxRcbI0aMMIqLi42xY8caN9xwg3HgwAGrq503mT4LScYTTzyR2ufo0aPGt7/9bePEE080TjjhBOPSSy819u/fP+iyeYQEAMByjhwzAgC4C8EIAGA5ghEAwHIEIwCA5QhGAADLEYwAAJYjGAEALEcwAgBYjmAEALAcwQgAYDmCEQDAcgQjAIDl/j+ns/MZxOouuwAAAABJRU5ErkJggg==", + "image/png": "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", "text/plain": [ "
" ] @@ -201,7 +201,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "Preparing the folder\n", "Done\n" ] } @@ -225,6 +224,28 @@ "Note: If the image needs to be indicated as an *A* or *B* image, use `writeA` or `writeB` instead of `write`." ] }, + { + "cell_type": "markdown", + "id": "82a1a1f2-8df2-420e-9120-64e88c834722", + "metadata": {}, + "source": [ + "### Write to HDF5" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f093a3d5-0f1e-45b7-b5f0-df9697312316", + "metadata": {}, + "outputs": [], + "source": [ + "with synpivimage.HDF5Writer(filename='single_img.hdf',\n", + " camera=cam,\n", + " laser=laser,\n", + " overwrite=True) as h5:\n", + " h5.writeA(img, particles=part)" + ] + }, { "cell_type": "markdown", "id": "9aaa023a-3902-447f-871e-a7c3c15ad1df", @@ -241,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "06817103-a0ce-4676-bfb5-ba31bf8d3eee", "metadata": {}, "outputs": [], @@ -251,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "0957e435-5fd3-48ac-98e6-a68cc15cc051", "metadata": {}, "outputs": [], @@ -261,31 +282,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "990e6263-53e5-4fd2-bb8b-f425eae27c13", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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uTtXrM4txe7szN25utLcjuPo5MmTCgQCiou7+F96utxbcHFxcZdszItJSUmx/qJfDubuXLE6txS7szN35+oqc/v9/ja34SIEAIAVFBAAwIqYLyCfz6cnnnhCPp/P9igdwtydK1bnlmJ3dubuXLE4d5e7CAEA8N0Q82dAAIDYRAEBAKyggAAAVlBAAAArYrqAli1bpn79+qlnz54aO3asdu7caXukNpWUlGj06NFKTk5Wnz59NHXqVB04cMD2WB329NNPy+PxaO7cubZHadPRo0f1wAMPKC0tTYmJiRoyZIh2795te6xLikQiKi4uVnZ2thITE3Xddddp0aJFxu9pdjm2bt2qvLw8BQIBeTwerV+/vsXzjuNo4cKF6tu3rxITE5WTk6NDhw7ZGfZrLjV3U1OT5s+fryFDhigpKUmBQEAPPvigjh07Zm/g/6et1/vrHnnkEXk8HpWVlXXafB0RswX0+uuvq7CwUE888YQqKys1dOhQTZ48WfX19bZHu6QtW7aooKBA27dv16ZNm9TU1KTbbrtNDQ0Ntkdrt127dunFF1/UTTfdZHuUNn355ZcaP368evToobffflv79+/XH/7wB/Xq1cv2aJdUWlqq5cuX64UXXtAnn3yi0tJSPfPMM3r++edtj3aBhoYGDR06VMuWLWv1+WeeeUZLly7VihUrtGPHDiUlJWny5MlqbGzs5ElbutTcp0+fVmVlpYqLi1VZWak333xTBw4c0B133GFh0pbaer3PW7dunbZv365AINBJk10GJ0aNGTPGKSgoaH4ciUScQCDglJSUWJyq4+rr6x1JzpYtW2yP0i4nT550+vfv72zatMn50Y9+5MyZM8f2SJc0f/58Z8KECbbH6LApU6Y4M2fObLHurrvucqZNm2ZpovaR5Kxbt675cTQadTIyMpzf/e53zeu++uorx+fzOa+99pqFCVv3zblbs3PnTkeSU11d3TlDtcPF5v7888+d73//+86+ffuca665xvnjH//Y6bO1R0yeAZ09e1YVFRXKyclpXhcXF6ecnBx9+OGHFifruGAwKElKTU21PEn7FBQUaMqUKS1e+65sw4YNGjVqlO655x716dNHw4cP10svvWR7rDbdfPPNKi8v18GDByVJH3/8sbZt26bc3FzLk3VMVVWVamtrW3y/+P1+jR07NiaPVY/Ho6uuusr2KJcUjUY1ffp0zZs3T4MGDbI9ziV1uZuRtsfx48cViUSUnp7eYn16err+85//WJqq46LRqObOnavx48dr8ODBtsdp09q1a1VZWaldu3bZHqXdPv30Uy1fvlyFhYX65S9/qV27dmn27NlKSEhQfn6+7fEuasGCBQqFQho4cKDi4+MViUS0ePFiTZs2zfZoHVJbWytJrR6r55+LBY2NjZo/f77uv//+LnGjz0spLS2V1+vV7NmzbY/SppgsoO6ioKBA+/bt07Zt22yP0qaamhrNmTNHmzZtUs+ePW2P027RaFSjRo3SkiVLJEnDhw/Xvn37tGLFii5dQG+88YZeffVVrVmzRoMGDdKePXs0d+5cBQKBLj13d9TU1KR7771XjuNo+fLltse5pIqKCj333HOqrKxs18fZ2BaTb8H17t1b8fHxqqura7G+rq5OGRkZlqbqmFmzZmnjxo3avHnzZX38RGerqKhQfX29RowYIa/XK6/Xqy1btmjp0qXyer1GP/X02+jbt69uvPHGFutuuOEGHTlyxNJE7TNv3jwtWLBA9913n4YMGaLp06frscceU0lJie3ROuT88Rirx+r58qmurtamTZu6/NnPBx98oPr6emVlZTUfp9XV1Xr88cfVr18/2+NdICYLKCEhQSNHjlR5eXnzumg0qvLyco0bN87iZG1zHEezZs3SunXr9N577yk7O9v2SO1y6623au/evdqzZ0/zMmrUKE2bNk179uxRfHy87RFbNX78+Asucz948KCuueYaSxO1z+nTpy/4IK/4+HhFo1FLE12e7OxsZWRktDhWQ6GQduzY0eWP1fPlc+jQIf39739XWlqa7ZHaNH36dP3rX/9qcZwGAgHNmzdP7777ru3xLhCzb8EVFhYqPz9fo0aN0pgxY1RWVqaGhgbNmDHD9miXVFBQoDVr1uitt95ScnJy8/vgfr9fiYmJlqe7uOTk5Av+TpWUlKS0tLQu/ferxx57TDfffLOWLFmie++9Vzt37tTKlSu1cuVK26NdUl5enhYvXqysrCwNGjRIH330kZ599lnNnDnT9mgXOHXqlA4fPtz8uKqqSnv27FFqaqqysrI0d+5cPfXUU+rfv7+ys7NVXFysQCCgqVOn2htal567b9++uvvuu1VZWamNGzcqEok0H6upqalKSEiwNXabr/c3i7JHjx7KyMjQgAEDOnvUttm+DO/beP75552srCwnISHBGTNmjLN9+3bbI7VJUqvLK6+8Ynu0DouFy7Adx3H+9re/OYMHD3Z8Pp8zcOBAZ+XKlbZHalMoFHLmzJnjZGVlOT179nSuvfZa51e/+pUTDodtj3aBzZs3t/o9nZ+f7zjO/70Uu7i42ElPT3d8Pp9z6623OgcOHLA7tHPpuauqqi56rG7evLnLzt2arnwZNh/HAACwIib/BgQAiH0UEADACgoIAGAFBQQAsIICAgBYQQEBAKyggAAAVlBAAAArKCAAgBUUEADACgoIAGAFBQQAsOL/AAkuhLIsZaAGAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.imshow(img_loaded, cmap='gray')" ] @@ -302,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "88997766-56c8-4c8a-8b93-a0b0df99b83b", "metadata": {}, "outputs": [], @@ -323,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "6f365b97-1d72-46b2-9d86-87629c6daffa", "metadata": {}, "outputs": [], @@ -333,19 +333,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "1c496a67-60a7-4f7b-a699-0b3431172d63", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "width : 0.25 (std name: https://matthiasprobst.github.io/pivmeta#model_laser_sheet_thickness)\n", - "shape_factor : 2 (std name: https://matthiasprobst.github.io/pivmeta#model_laser_sheet_shape_factor)\n" - ] - } - ], + "outputs": [], "source": [ "query_dict = ontolutils.dquery(\n", " 'pivmeta:LaserModel',\n", @@ -375,21 +366,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "0d0fd51e-eec8-492b-b750-994f3ec6877a", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'width': '0.25', 'shape_factor': '2'}" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "params = {p['label']: p.get('hasNumericalValue', p.get('hasStringValue', None)) for p in query_dict[0]['hasParameter']}\n", "params" @@ -405,21 +385,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "78e56ba8-3573-4271-b386-68055d5f3c03", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Laser(shape_factor=2, width=0.25)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "synpivimage.Laser(**params)" ] diff --git a/docs/getting_started/cam.json b/docs/getting_started/cam.json index 419583d..0d6e3ef 100644 --- a/docs/getting_started/cam.json +++ b/docs/getting_started/cam.json @@ -17,7 +17,7 @@ "m4i:hasUnit": "http://qudt.org/vocab/unit/UNITLESS", "m4i:hasKindOfQuantity": "http://qudt.org/vocab/quantitykind/Dimensionless", "pivmeta:hasStandardName": "https://matthiasprobst.github.io/pivmeta#sensor_pixel_width", - "@id": "local:b8b3747d-c616-425f-9982-9b9a500f140b" + "@id": "local:da1e91ff-1133-4ac3-a2d2-5a2ae5930f9a" }, { "@type": "m4i:NumericalVariable", @@ -26,7 +26,7 @@ "m4i:hasUnit": "http://qudt.org/vocab/unit/UNITLESS", "m4i:hasKindOfQuantity": "http://qudt.org/vocab/quantitykind/Dimensionless", "pivmeta:hasStandardName": "https://matthiasprobst.github.io/pivmeta#sensor_pixel_height", - "@id": "local:f72a97ce-d03f-4e4a-bb2b-054b08da54ef" + "@id": "local:51c581b1-f37d-48cc-a62a-ff77878bb3bc" }, { "@type": "m4i:NumericalVariable", @@ -34,61 +34,61 @@ "m4i:hasNumericalValue": "16", "m4i:hasUnit": "http://qudt.org/vocab/unit/BIT", "m4i:hasKindOfQuantity": "http://qudt.org/vocab/quantitykind/InformationEntropy", - "@id": "local:887aee9d-44ed-4e13-a1a6-6d3d8447160a" + "@id": "local:42575537-edef-41a6-8f3a-c7f3c8a2cb3e" }, { "@type": "m4i:NumericalVariable", "rdfs:label": "qe", "m4i:hasVariableDescription": "quantum efficiency", "m4i:hasNumericalValue": "1.0", - "@id": "local:d3291c14-4c83-4127-8bec-e892763e4c27" + "@id": "local:a9352d4b-3a24-4ed2-9fd9-ebc6c81296f6" }, { "@type": "m4i:NumericalVariable", "rdfs:label": "sensitivity", "m4i:hasNumericalValue": "1.0", - "@id": "local:e3f2744c-3d16-49ec-ba96-57afced39607" + "@id": "local:7f6ca733-ce47-4fd8-a8ec-2b555389ace1" }, { "@type": "m4i:NumericalVariable", "rdfs:label": "baseline_noise", "m4i:hasVariableDescription": "Dark noise is the mean value of a gaussian noise model", "m4i:hasNumericalValue": "0.0", - "@id": "local:b5bb37c5-8c65-475a-88ba-078da55b04c4" + "@id": "local:6ec0d5fa-ea8a-4fd3-a744-e1029ae1f308" }, { "@type": "m4i:NumericalVariable", "rdfs:label": "dark_noise", "m4i:hasVariableDescription": "Dark noise is the standard deviation of a gaussian noise model", "m4i:hasNumericalValue": "0.0", - "@id": "local:628003bb-4d9c-4939-8d47-999104504368" + "@id": "local:59d4d3e7-778f-468d-ad94-e921cb7386ce" }, { "@type": "m4i:NumericalVariable", "rdfs:label": "fill_ratio_x", "m4i:hasNumericalValue": "1.0", "pivmeta:hasStandardName": "https://matthiasprobst.github.io/pivmeta#sensor_pixel_width_fill_factor", - "@id": "local:7c631372-9a7e-4246-9c1c-468c0af1d1fa" + "@id": "local:0154bc43-e5e9-4b7c-a5cc-060f5a01b3c3" }, { "@type": "m4i:NumericalVariable", "rdfs:label": "fill_ratio_y", "m4i:hasNumericalValue": "1.0", "pivmeta:hasStandardName": "https://matthiasprobst.github.io/pivmeta#sensor_pixel_height_fill_factor", - "@id": "local:7888ce26-c739-4cf4-9950-0c546a65ff2c" + "@id": "local:2940ccba-6995-47da-9959-01bc81c49354" }, { "@type": "m4i:NumericalVariable", "rdfs:label": "particle_image_diameter", "m4i:hasNumericalValue": "1.0", "pivmeta:hasStandardName": "https://matthiasprobst.github.io/pivmeta#image_particle_diameter", - "@id": "local:a10ca42d-912a-4013-93f4-09a1ef735e00" + "@id": "local:14bfc730-336e-4c91-b0a7-a706ccb325f5" }, { "@type": "m4i:TextVariable", "rdfs:label": "shot_noise", "m4i:hasStringValue": "false", - "@id": "local:9c53ad1d-1ee6-49a2-bb47-2ffafdfe7137" + "@id": "local:741ab982-2e24-4e7d-bbe7-e87aed64e4d0" } ], "codemeta:hasSourceCode": { @@ -99,9 +99,9 @@ "schema:affiliation": { "@type": "Organization", "foaf:name": "Karlsruhe Institute of Technology, Institute of Thermal Turbomachinery", - "@id": "local:3bbfad53-c4cb-45ba-a329-d43378552eed" + "@id": "local:35b29afe-e6dd-4aad-a279-2ea02ca8660e" }, - "@id": "local:f0aeaf21-92ef-483a-8a93-16a46fa3a99a", + "@id": "local:d2bf0faa-1ba9-4594-998a-814d157be2df", "givenName": "Matthias", "familyName": "Probst", "email": "matthias.probst@kit.edu" @@ -127,7 +127,7 @@ "Windows", "macOS" ], - "@id": "local:e989404b-770f-4977-8585-bcf2feab1182" + "@id": "local:5809227c-b206-4fa2-a412-d56668bebc31" }, - "@id": "local:00521c62-a16b-45c8-a336-d3ba6dbcd18f" + "@id": "local:9bb6dda8-00b9-4761-89fa-262d5d93ed7a" } \ No newline at end of file diff --git a/docs/getting_started/laser.json b/docs/getting_started/laser.json index 9b7ffdc..d0a5f0f 100644 --- a/docs/getting_started/laser.json +++ b/docs/getting_started/laser.json @@ -17,7 +17,7 @@ "m4i:hasUnit": "mm", "m4i:hasKindOfQuantity": "http://qudt.org/vocab/unit/MilliM", "pivmeta:hasStandardName": "https://matthiasprobst.github.io/pivmeta#model_laser_sheet_thickness", - "@id": "local:1c03c67d-2508-499f-bf2a-19e8de385c31" + "@id": "local:b0edee9b-d8a6-4542-ab16-93bb99c1ca8b" }, { "@type": "m4i:NumericalVariable", @@ -27,7 +27,7 @@ "m4i:hasUnit": "", "m4i:hasKindOfQuantity": "https://qudt.org/schema/qudt/DimensionlessUnit", "pivmeta:hasStandardName": "https://matthiasprobst.github.io/pivmeta#model_laser_sheet_shape_factor", - "@id": "local:b46c0b4f-c140-4864-8aec-7c9761c57e1b" + "@id": "local:26414db3-e79f-4fa7-aca7-3f159a48f3f2" } ], "codemeta:hasSourceCode": { @@ -38,9 +38,9 @@ "schema:affiliation": { "@type": "Organization", "foaf:name": "Karlsruhe Institute of Technology, Institute of Thermal Turbomachinery", - "@id": "local:86b6f83a-f1f7-4840-b19c-ed50c4943a96" + "@id": "local:b93f863a-c503-4c7d-a7f3-7ae0a3329289" }, - "@id": "local:c7092e36-23cc-4837-a0fb-31d28d50c9cd", + "@id": "local:4105bc9a-beed-42f3-8922-0925a03f19f3", "givenName": "Matthias", "familyName": "Probst", "email": "matthias.probst@kit.edu" @@ -66,7 +66,7 @@ "Windows", "macOS" ], - "@id": "local:f16f4f68-c09c-4c7a-a21c-3c6b2ef3cd79" + "@id": "local:93c51e36-c5d1-4a45-938d-ee7dff3b2499" }, - "@id": "local:e035ba3a-3641-4832-acf1-5bdcf671a50f" + "@id": "local:ef47b12c-b7a8-4720-8f77-20e99edb752f" } \ No newline at end of file diff --git a/requirements-doc.txt b/requirements-doc.txt index c51d7dd..eee1baa 100644 --- a/requirements-doc.txt +++ b/requirements-doc.txt @@ -9,4 +9,5 @@ scikit-learn sphinx-design myst-nb nbsphinx -sphinxcontrib-bibtex \ No newline at end of file +sphinxcontrib-bibtex +h5rdmtoolbox @ git+https://github.com/matthiasprobst/h5RDMtoolbox@dev-jsonld \ No newline at end of file diff --git a/synpivimage/io.py b/synpivimage/io.py index 5d7a19c..0944f32 100644 --- a/synpivimage/io.py +++ b/synpivimage/io.py @@ -249,7 +249,7 @@ def __init__(self, The filename of the HDF5 file """ - self.filename = filename + self.filename = pathlib.Path(filename) self.image_dataset_name = image_dataset_name self.particle_dataset_name = particle_dataset_name self.overwrite = overwrite