From 48608c4158f9ae9b2645286a4acb82634c682abf Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Thu, 24 Nov 2022 15:03:22 +0100 Subject: [PATCH] 09: Start some processing: WIP --- Exercise sheet 9/exercise_sheet_09.ipynb | 76 ++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 6 deletions(-) diff --git a/Exercise sheet 9/exercise_sheet_09.ipynb b/Exercise sheet 9/exercise_sheet_09.ipynb index b01e48f..33a5194 100644 --- a/Exercise sheet 9/exercise_sheet_09.ipynb +++ b/Exercise sheet 9/exercise_sheet_09.ipynb @@ -59,11 +59,7 @@ ] }, { - "attachments": { - "image.png": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEaCAYAAAAVJPDdAAAgAElEQVR4Ae2dCZgU1bm/32HfQWBANgWUfRUQ9ao3ajTiBu5bEveQzeQmLlGvmuuWq9GYaBL/iZq4xeuCxhB3jEtM4sog+yogAgM4I8gOs/+frzkVa5rume7p7urq7t95nuqqOnWW73tPdX11ljoH5ERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABEQgMwTOA8ozk7RSzQcCzfJBCekgAiKQMIHmwFnAmoRjKGDBEZBhyG6RrwKOTbMImUgznohDgDnANuCHwELgqHiBo/wbkvMR4Lao8DpNDwGrLTwD1DaQXENl00C0Bi8lc280mJAuZp6ADEPmGVsOfwe+AFoHk13CuaT6APgJ8BbQEfg1MMLpmrAACph2Ao8D64GtwDLgMl8OVls4G3ja55fqYax7KJZfEPfGYmCtuw9T1cuLfzlQAlQA9sLSmLP/+m5gu9uWNhYhjNdlGDJfKv2BI4E6YHLmsws0h/1dLSHQTAPIrEUAeWQqi9sBu+c6ufvNal7jXWbfAKY1UlvIlFxBpDvSGcMz05jZOld7fSiJNM2YdHCb1apzzskwZL7ILgDed28bF8bI7mBgkatRPAy0cWGuAUpdM429dXzVF3eYezPf7B7M8QyOGaMDffH8TTR/AvYDXnBvNvb2b6438GfXOfmJayJyl+rt3gSOBn7r4g8G/G+KiaZjiR4EfOR0tbdZj0G9DN3JtcAKF9a4neYLZMye9Z3b4b2uNmPHDclkslv8ecAOwIxDQ3lZeuOA2U4Wa54x2b0msIbyihKRxsrTZLvKybbF5ROPkTXZ2NutOSt/2w5w58MBux9fBQb5uLjLcXfxOMS6h2L5WcL+e6Mf8Jy7xza6e8jCJMMslrA1wL+A0bEuNtHP5JwOmJxyIpA2AsuB77m3tiqgpy9l+7MsAOyP0hV4xz1Y7C3DOgftj2LO3gC9P3dLwNL8b6AVcIx7MHlvJv4/YEOGwdL1h7Vze1GYBfzUpT0QWAkcH5Fi7x+rNvubKrz0EknHC2s6fAr8GDDd7G3POHkP2OhcrePUuFge57iHeC8XyGowO13TlnlZ04k1qxyagG4mj/WXWFm0dek1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rRz2o2MHRTplYz3cIw/9yAPeGQD3sDf/5o208XvZf/jJpphGSaODPELai4AIhIFAwTUl2UM4Vo2hT5e2/OjYwRktE1uHwP8FsmWm0UEZRa7ERUAEmkDgyzGNTYici1Hs4WwPY78L6uFso4NuP30UZoSs+cj2du6NGvLLpGMREAERyBaBgqsxeA/h6AnlPP9MF4TlE1RemdZF6YuACOQngYIzDFaMejjn580srURABNJDIOimJFuycymwHLg2hgr/CXwE2GpvZ8a4Li8REAEREIEMEwjSMFjD/n3ACcBw4Dy396toS3leBDzh99SxCIiACIhAcASCbEqa6GoKK516TwFTgEU+dVe541qfnw5FQAREQAQCJBBkjaEPsMan21obmOM7T+ZwKmDzYJSUl5cnE09hRUAEREAEGiEQZI2hEVGSuvwAYBvFxcV7phlNKroCi4AIiIAIxCMQZI3B5oPo5xOkLxB7jghfIB2KgAiIgAgESyDIGsNMYBAwwBmEc4HzU1V31qxZnxcVFX3axHS6A583MW6uRpPOuVpyycmtck6OV66GTqWc9w+L0icCy4AVwPVOqFuAye74YMD6HnYAG4GFGRY8ufm6MyxMQMlL54BAZzkblXOWCyCg7AuxnDOOthChSueM31ahyEDlHIpiyLgQGSnnIPsYMk5IGYiACIiACKROoP5scqmnl4sp2CpGheakc2GUuMpZ5VwYBKSlCIiACIiACIiACIiACIiACIiACIiACIiACKSfQGMzubYGnnbzN30A9HcitAQeBeYDi4Hr0i9axlJsTOeGZq+9EPjYbXacK66pOo8F3nNDoucB5+SIwk3V11OvkxsS/lvPIwf2qei8H/Ca+y/bvGze/zzsaqei853uvrbn168hsi5Y2PUNRD7rVLdvJQYCrYC5MWZy/R7weyeNfWxnRsKcfXRnE/yZawfYxH65cDMlorPpMRp4LGpa866ATW5o+33cse3D7lLR2dZxtQ8uzfUG1gNd3HlYd6no6+l0r5u9OFcMQ6o6/x04zinfwf2nPRZh3aei838A7wCWhm328nNUsorm63BV/0yule5BbzO5+p2dW83A3LPAV51ltbmX2gP2VXhbwOJvdeHCvEtEZzNy9nYcPXvt8cDfgE3AF+7Y3ljC7lLR2T60tBqSuXVAmU295c7DuktFX9NpPNDTvUGHVcdouVLR2ab3t/+x3dvmtgM73XGYd6nobM+vNu6F2FpFrAXks2SVzVfDkMhMrv4wtjDQFqCbMxL25bW9Qdr6EL9wD8xk2QYd3q+P5Z3M7LWpxA1aT39+6ZLb/ohWs7RaZphdKvraf/1u4KowKxhDtlR0tlrhZuA5YDZwl3uLjpFNqLxS0dlqCG+555c9w2a4ZrSkFMxXw5AUhKjA9pCocc0LNq/Tla5JKiqYTvOEQC/gT8DFMWpSeaJiRA1rOn3ZvTDkk14N6WK1hSOdMbTpdqxp2RYCy2d3IDAMsElKzcAc4xgkpXO+GoZEZnL1h7EbqLObn8n6GF4FqlzzgrXXTUiKanYC+/UxCZKZvTaVuNnRdk+uqcptHbEvuXm73s+mIgnmnYq+hwGXuz4zqwVfANyRYL7ZDJaKzlZrnuP6zKxVYDowLpvKJJh3KjqfBti9bM1mtr0CWNnLuXZF60y1N36v83lEFJnvR3U+T3PXrwEedsfW12AjGazDNuzOjFtjOns6PBKj8/kT1/Fsnc52bB3RYXep6Gz3xRvAj8KupE++VPT1JRN5a86VzudUdLbOVxt44vUd2f/a/vdhd6nobKPrXnfPQOtfsHv8lLArHKR8jc3kah00z7jhqh/6mots5IL528yuZhSuDlLoFPNqTOeGZq+9xLFY7ppVUhQlsOhN1fkbrlZob5TeZkNYw+6aqq9fL2tOyRXDYHKnorONSLIBFzb83F6I7IUgF1xTdTZjeL9veO4vc0FZySgCIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIlC4BOxjCDkREIH0E7CvbG0WW5u11SZxs1k9l6Q/G6UoAiIgAiKQKwRKgCOAtwGbI19OBERABESggAnY5JQ2dbtN225zb8mJgAiIgAgUOIEhbhEgm/LYJiS0yczkRCBnCKiPIWeKSoLmEIGjAVtJyyaqOxawlbRsoRg5ERABERCBAiVwM2AL45izufBtxlqbSllOBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABETAR+D/A8PrTazgU3zDAAAAAElFTkSuQmCC" - } - }, + "attachments": {}, "cell_type": "markdown", "id": "2e578009", "metadata": { @@ -360,7 +356,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "744c914c", + "id": "9b27fee7", "metadata": {}, "outputs": [], "source": [ @@ -389,6 +385,74 @@ "source": [ "**(c)** Load the stored data into this notebook and reproduce the plot above (with $\\lambda = 1$ and $\\lambda=2$ added). **(30 pts)**" ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "e4aaf772", + "metadata": {}, + "outputs": [ + { + "ename": "UFuncTypeError", + "evalue": "ufunc 'subtract' did not contain a loop with signature matching types (dtype('float64'), dtype(' None", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mUFuncTypeError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [28]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 28\u001b[0m kap \u001b[38;5;241m=\u001b[39m parameters[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mk\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 29\u001b[0m \u001b[38;5;66;03m#print(filename, lam, kap)\u001b[39;00m\n\u001b[1;32m 30\u001b[0m \u001b[38;5;66;03m#print(lambdas, lam)\u001b[39;00m\n\u001b[0;32m---> 31\u001b[0m idx_lam \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mwhere(np\u001b[38;5;241m.\u001b[39mabs(\u001b[43mlambdas\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mlam\u001b[49m) \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m.01\u001b[39m)\n\u001b[1;32m 32\u001b[0m \u001b[38;5;66;03m#idx_kap = np.argwhere(np.isclose(kappas, kap))\u001b[39;00m\n\u001b[1;32m 33\u001b[0m idx_kap \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mwhere(kappas \u001b[38;5;241m==\u001b[39m kap)\n", + "\u001b[0;31mUFuncTypeError\u001b[0m: ufunc 'subtract' did not contain a loop with signature matching types (dtype('float64'), dtype(' None" + ] + } + ], + "source": [ + "result_files = glob.glob('results/batch_data_*.hdf5')\n", + "prefix = \"results/batch_data_\"\n", + "\n", + "# Know how the file names are formed, but I really want to\n", + "# do something funky.\n", + "# Yes, we trust the metadata in the filename.\n", + "files = {}\n", + "for result_file in result_files:\n", + " params = {}\n", + " raw_params = result_file[len(prefix):].split('_')\n", + " for i in raw_params:\n", + " key = i[0]\n", + " value = i[1:]\n", + " # The key will be 2 for the date part. Ignore this.\n", + " if key == '2':\n", + " continue\n", + " params[key] = value\n", + " files[result_file] = params\n", + "\n", + "# For each measurement, we are interested in the mean and standard deviation,\n", + "# so two values per set of kappa and lambda.\n", + "lambdas = np.arange(3)*.5 + 1.0\n", + "kappas = np.arange(11)*.01 + .08\n", + "results = np.zeros((len(lambdas), len(kappas), 2))\n", + "\n", + "for filename, parameters in files.items():\n", + " lam = parameters[\"l\"]\n", + " kap = parameters[\"k\"]\n", + " #print(filename, lam, kap)\n", + " #print(lambdas, lam)\n", + " idx_lam = np.where(lambdas - lam)\n", + " #idx_kap = np.argwhere(np.isclose(kappas, kap))\n", + " idx_kap = np.where(kappas == kap)\n", + " print(idx_lam, idx_kap)\n", + " with h5py.File(filename,'r') as f:\n", + " handler = f[\"magnetizations\"]\n", + " magnetizations = np.array(handler)\n", + " results[idx_lam][idx_kap] = np.mean(magnetizations), np.std(magnetizations)\n", + "\n", + "print(results)\n", + "# for idx_lam, lam in enumerate(lambdas):\n", + "# for idx_kap, kap in enumerate(kappas):\n", + "# with h5py.File(file,'r') as f:\n", + "# handler = f[\"magnetizations\"]\n", + "# magnetizations = np.array(handler)\n", + " \n", + "# results[idx_lam][idx_kap] = np.mean(magnetizations), np.std(magnetizations)" + ] } ], "metadata": {