diff --git a/data_ana.ipynb b/data_ana.ipynb new file mode 100644 index 0000000..370ed9a --- /dev/null +++ b/data_ana.ipynb @@ -0,0 +1,92 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import read_chn as rc\n", + "import matplotlib.pyplot as plt\n", + "%config InlineBackend.figure_format='retina'" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0., 0., 0., ..., 0., 0., 0.])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spec_obj = rc.gamma_data('gamma_spectrum.Chn')\n", + "spec_obj.hist_array" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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qlU9XofSK5TDpFKpvIqYpta28lwQAAAAFSuVTpd2z95XX301PvGJT3Qbcpx55pnxb//2b5FKpfKOtbe3x5e//OW4/vrrO33/aaedFj/+8Y+jqqrzbGnlypVxzDHHxBNPPFHweF1dXVx99dVx2mmndXmt8+fPj+OPPz4aGxsLHp8wYULceeedceCBB3a5Tl8sW7YsJk+eHBERS5cujUmTJhX9M5JmyZvr4qgr5ma99sr3PxE/+O8lceXvns+8dsze4+NHn9+v3JcHAADANqhUv3+XtCKmpaUlK4TZZ5994sYbb4zHH3887r///pg9e3YMHTo0IiKuuuqquOSSSwquc/7552dCmH333TduvvnmWLBgQdx8882x7777RkTEnDlz4oILLuj0Wtra2mLmzJmZEOZTn/pU3HvvvTF//vy48sorY9y4cdHU1BRnnHFGlxU2S5cujWOPPTYaGxujpqYmZs2aFXPnzo25c+fGrFmzoqamJpYvXx7HHntsLFu2rPffNIqu89YkM2IAAAAor5JWxNx+++3xmc98JiIiDjnkkHj44Yejujp7LseTTz4ZhxxySLS0tMTIkSNjxYoVUVNTkzm+ZMmSeO973xutra2x//77x9y5c2Pw4MGZ4xs3bowjjjgiFi5cGDU1NbFo0aKYMmVK3rXccMMNceqpp0ZExFe/+tW45pprso6/8MILsd9++8XatWtjypQpsWjRoqzr2Oqkk06Km266KSIibr311szXt9Wtt94an/3sZyMi4uSTT44bb7yxp9+uHlER03uLG9fG3/zw4czzVCri5Ys/Ef8x96W46LeLMq8fttuYuOnUgwbiEgEAANjGbJcVMR1nv5x33nl5IUxExH777Ref/OQnIyLinXfeiUWLFmUd/+EPfxitra0RsaVqpmMIExExZMiQuOqqqyJiy/yXK664ouC1XHbZZRERMWrUqLj00kvzjk+ZMiXOO++8iNgSytxxxx155zQ2NsbPf/7ziIg4+uij80KYiIgTTjghjj766IiIuOmmmzptX2LgbG1+s2sSAAAA5VbSIKa5uTnzeJdddun0vF133bXge9LpdNx1110RETFt2rQ4+OCDC77/4IMPjt133z0iIu66667ILfJZsmRJJuA54YQTYsiQIQXX+eIXv5h5XCiIufvuu6O9fcsv66ecckqnX8/Wddrb2+Puu+/u9DzKo8etSW2CGAAAAEqrpEHM1nAkIuKll17q9LwXX3wxIrbsZLPbbrtlXn/55ZfjjTfeiIiII444osvP2nr89ddfj1deeSXr2COPPJJ3XiHjx4+PqVOnRkTEo48+mne8p+t0PFZoHcorN4jZOhA6b9ekFkEMAAAApVXSIObEE0+M4cOHR0TEJZdcEm1t+dsDP/XUU3HPPfdERMTnPve5zPkREc8991zm8bRp07r8rI7Hc9ub+rLO0qVLY8OGDQXXGTFiRIwfP77TNSZMmJD5OnKvhW1HXmuSihgAAABKLH8abRGNGTMmbrrppjjxxBPj0UcfjQMOOCDOPvvsmDp1aqxfvz4effTRuPzyy6O5uTk+8IEPxOWXX571/o67DnU3FGfrAJ2ILSFKf9dJp9OxbNmyrKqerev0ZEDP5MmT49lnn827lu50t9PS8uXLe7UeEenILonJzIipNiMGAACA8ippEBMRcdxxx8WTTz4Zl19+eVx//fVx8sknZx1/17veFRdeeGGcfvrpebNb1q1bl3nc0NDQ5eds3QY7ImL9+vUlXae7NTquk7tGdzoGShRHfmvSlv81rBcAAIByK2lrUsSW4bs//elPCw7RjYh4880342c/+1k88MADecc2b96ceVxbW9vl59TV1WUeb9q0qaTrdLdGx3Vy12DbUVeTvYuX1iQAAABKraRBzIYNG+KjH/1oXHzxxbF69eqYNWtWLFq0KJqammLNmjVx//33x6GHHhoLFy6M448/Pn7wgx9kvb++vj7zuONuSoU0NTVlHuducV3sdbpbo+M6uWt0Z+nSpV3+WbBgQa/WI18qOhvWmz/DCAAAAIqppK1J3/nOd+Lhhx+OiMhrS6qtrY2PfexjceSRR8ZRRx0VDz74YJxzzjnxkY98JN73vvdFRMSwYcMy53fX4tNxsG5u61DuOh2Dmd6us3Hjxh61G21dpydtTB31ZP4M/fSX1iTbVwMAAFBuJauISafTccMNN0RExNSpU/Nmw2xVU1MTF154YUREtLe3x4033pg51jGU6G6IbcehuLlzVvqyTiqVygtFtj7vbo2O65j5MvAKdMRFRH5FTEtbOtrbOzkZAAAAiqBkQcybb74Zq1evjoiIfffdt8tz99tvv8zjxYsXZx7vueeeBV8vpOPxPfbYI+tYX9aZPHly1uDejuusWbMmGhsbO11j+fLlsXbt2oLXQvn1dNekCFUxAAAAlFbJgpiamr92PbW2tnZ5bktLS8H37bzzzjFx4sSIiHjooYe6XGPu3LkREbHjjjvGTjvtlHXs0EMPzTzuap3GxsZYsmRJRERMnz4973hP1+l4rNA6DKzOdk2KEMQAAABQWiULYkaNGhXDhw+PiIjHH3+8yzCmY3Cx8847Zx6nUqmYMWNGRGypVJk3b17B98+bNy9TyTJjxoxIbf1N+y+mTp2aqUy59dZbY+PGjQXX6dgWNXPmzLzjxx13XFRVbfmW/eQnP+n069m6TlVVVRx33HGdnkd5dNaalDsjJiKiqUUQAwAAQOmULIipqqqKT3ziExER8cYbb8RFF11U8Ly33347vvWtb2Wef/KTn8w6fvbZZ0d19ZZths8888y87aA3bdoUZ555ZkRsqaY5++yzC37ON7/5zYiIzO5NuV588cW4+OKLIyJiypQpBYOY8ePHx+c///mIiLjvvvvi9ttvzzvntttui/vuuy8iIr7whS/E+PHjC14P5ZObw3S2a1KEihgAAABKq6TbV8+ePTuGDBkSEVt2UDruuOPiV7/6VTz11FPx+OOPxxVXXBHvf//747nnnouIiI985CNx1FFHZa0xderUOOeccyIiYuHChTF9+vS45ZZbYuHChXHLLbfE9OnTY+HChRERcc4558Ruu+1W8FpOPvnkTJvQNddcE5/+9KfjvvvuiwULFsTVV18dH/zgB2Pt2rVRVVUVV155ZVaLVEcXXXRRjB07NiIiTjzxxDj33HPjkUceiUceeSTOPffc+NznPhcREWPHjo3vfe97/fn2UWIFg5hWQQwAAAClk0qnO2vcKI4HHnggTjzxxFi5cmWX5334wx+O22+/PXbYYYe8Y+3t7XH66adndmEq5NRTT43rrrsu0zpUyMqVK+OYY46JJ554ouDxurq6uPrqq+O0007r8lrnz58fxx9/fKcDe8ePHx933nlnHHTQQV2u0xfLli3L7MS0dOlS2133wFOvvR0zf/RY5vmQ2up47rt/E+l0OnY+77dZ59539uGx+/hhuUsAAABQYUr1+3dJK2IiIj760Y/G4sWL45JLLokPfehDMXbs2Bg0aFAMHjw4dt555zjhhBPizjvvjAceeKBgCBOxpc3p+uuvj3vuuSdmzJgREydOjNra2pg4cWLMmDEjfvvb38acOXO6DGEiIsaMGROPPfZY/OhHP4pDDz00Ro8eHfX19bHLLrvE6aefHk8++WS3IUxExEEHHRRPP/10XHDBBbHXXntFQ0NDNDQ0xN577x0XXHBBPPPMMyUJYeib/Nakv/xvKpW3c5KKGAAAAEqp5BUxFJeKmN7742tvx6c6VMQMra2OZ7/7NxERsde374v1TX8dJP2rrxwS+71nVNmvEQAAgG3LdlsRAwMtN2rsuKtW7s5Jdk0CAACglAQxVIDsJKbj5uZ5QYzWJAAAAEpIEENFG1qXvTvWug5tSgAAAFBsghgSL28KUoeSmIb67CBm/WZBDAAAAKUjiKHidGxNasipiFnf1FLeiwEAAKCiCGJIvK62BRumIgYAAIAyEsSQeF3tmjSsblDWMTNiAAAAKCVBDBUtd0bMOhUxAAAAlJAghsRL55TEpDoO682dESOIAQAAoIQEMSReF5sm5c+I0ZoEAABACQliqGi5FTFmxAAAAFBKghgSr6thvbkzYtZvtn01AAAApSOIIfHSOc1J2a1JObsmmREDAABACQliqGh5w3q1JgEAAFBCghiSL6816a+Pc4f1bmxui7b23PG+AAAAUByCGBIvP1bpMCMmpyImQlUMAAAApSOIoaLlDuuNEMQAAABQOoIYEi9/16S/Pm6orYmqVPbxleuaSn9RAAAAVCRBDBWnY+5SVZWKSTsMyTr+yqoN5b0gAAAAKoYghsTL3b46105jhmY9f3mlIAYAAIDSEMSQeF21JkVE7Dw6uyLm1VUbS3xFAAAAVCpBDBXvPaNVxAAAAFAeghgSL7cxKRXZJTE757QmmREDAABAqQhiSLx0Tm9SbmvSe3Jak97Z2BIbm21hDQAAQPEJYqh4w+oH5b22qbltAK4EAACApBPEkHj5rUnZBtdW571nU4sgBgAAgOITxJB8ebsmZUcx9TX5PwabW9pLeUUAAABUKEEMFa+muipqqrLDmc0qYgAAACgBQQyJl85rTso3eFB2e5IgBgAAgFIQxJB46bzWpPxz6vKCGK1JAAAAFJ8gBiJicG32j4JhvQAAAJSCIIbE60lFTH2N1iQAAABKTxADkb+FtYoYAAAASkEQQ+LljupNRX5JTG5FTJMgBgAAgBIQxJB46ZzepMLDerN/FAzrBQAAoBQEMRD521drTQIAAKAUBDEkXn5rUr76vO2rBTEAAAAUnyCGxMvfNSk/ilERAwAAQDkIYiAi6s2IAQAAoAwEMVSAnGG9Bc6or7VrEgAAAKUniCHxcluTCiUxudtXa00CAACgFAQxEIb1AgAAUB6CGBKvJ7smDc6ZEaMiBgAAgFIQxJB4Pdk1Kb8ixrBeAAAAik8QAxExuFZrEgAAAKUniCHx0j3YNamuRhADAABA6QliIApVxGhNAgAAoPgEMSRe/oyY/HPqawzrBQAAoPQEMSRe/q5J+UnMoJwgprVNRQwAAADFJ4iBiKitzv5RaGnLjW8AAACg/wQxJF46pzepUGvSoJwgprmtPe99AAAA0F+CGIiIQdX56UxruyAGAACA4hLEQORXxEREtJgTAwAAQJEJYki8/F2T8qtfamsKBDGtKmIAAAAoLkEMiZfO2TepwIiYghUxzSpiAAAAKDJBDEThGTFakwAAACg2QQyJl9+alH+OGTEAAACUgyCGxOvJLtSCGAAAAMpBEEPFKVQRU12Viuqq7APNhvUCAABQZIIYEi83TkkVHNebPydGRQwAAADFJoiBvxhUlf3jIIgBAACg2AQxJF46Z0hModakiIhBNdk/DravBgAAoNgEMSRefmtSYfmtSWbEAAAAUFyCGPiL3J2TWlXEAAAAUGSCGJIvrySmcE1MbbUZMQAAAJSWIIbES+ckMZ23JuXOiNGaBAAAQHEJYuAvBtXkzIhpVREDAABAcQliSLycTZM63zVJaxIAAAAlJogh8Xq+a5IgBgAAgNISxMBf5A7rNSMGAACAYhPEkHj5rUmFa2IGVefMiFERAwAAQJEJYki83F2TOpPXmmRYLwAAAEUmiKHidDojpsaMGAAAAEpLEEPi9XTXJDNiAAAAKDVBDPyFGTEAAACUmiCGxMvfvrqzYb1akwAAACgtQQzJl9ebVPg0QQwAAAClJoiBv8htTWpuNSMGAACA4hLEkHj5rUmFqYgBAACg1AQxJF5Pd00SxAAAAFBqghj4i9oaQQwAAAClJYgh8dI5JTGd75qUMyOmzYwYAAAAiksQQ+L1NE7Ja01qVREDAABAcQliqDhmxAAAADBQBDEkXk+H9dYKYgAAACgxQQyJ1+PWpJrshKZJaxIAAABFJoih4nQ2rLeupjrrebOKGAAAAIpMEEPi5e2a1ElrUl3O9tVNLYIYAAAAiksQA3+RWxGjNQkAAIBiE8TAX9QNyqmIaW0boCsBAAAgqQQxJF7+rkmdzYjJDWJUxAAAAFBcghj4i7xhva3tefNlAAAAoD8EMSReOmcD605m9eZVxESoigEAAKC4BDEkXn5rUuHzcmfERAhiAAAAKC5BDPxFbmtShIG9AAAAFJcghsTLnfLSq9akFhUxAAAAFI8ghsTr6bxdM2IAAAAoNUEMFaez7atrqquiuir7mNYkAAAAikkQQ+L1dNekiPyqGBUxAAAAFJMghsTraWtSRIEgxowYAAAAikgQQ8XpbPvqiPydk7QmAQAAUEyCGCpQ50lM3SCtSQAAAJSOIAY6MCMGAACAUhLEkHjpnCExvWpNatGaBAAAQPEIYki83GG9dk0CAABgoAhioAMzYgAAACglQQyJl7t7tV2TAAAAGCiCGBIvtzWpK3mtSS0qYgAAACgeQQwVJ9XV9tVmxAAAAFBCghgSLx392DVJaxIAAABFJIgh8XrVmmRYLwAAACUkiKHidF0RY0YMAAAApSOIIfHydk3qckaM1iQAAABKRxBD8vWiNym3ImazihgAAACKSBBD5emiNamhvibr+fqmlhJfDAAAAJVEEEPi5bcmda6hLjuIWbe5tejXAwAAQOUSxEAHw+oHZT1f3ySIAQAAoHgEMSRe7oiYVBfbJg2vVxEDAABA6QhiSLx0TnNSl61JeUFMS6R7MewXAAAAuiKIgQ5yW5Na2tLR1GrnJAAAAIpDEEPi5bcmdX7usJyKmAjtSQAAABSPIIbE601jUeEgxhbWAAAAFIcghorT1YyYuprqqK3O/rFQEQMAAECxCGJIvN7smhSRXxVjC2sAAACKRRBD4uXumtSd3CBGaxIAAADFIoih4nRdD5O/hfVarUkAAAAUiSCG5MstiOkmiRlWl72FtRkxAAAAFIsgBnLkzYgRxAAAAFAkghgSL78gprthvbkVMWbEAAAAUByCGBIvnbNtUjebJsWQ2uqs55ta2op9SQAAAFQoQQzkqB+U/WOxuaV9gK4EAACApClrEPPaa6/Ft7/97dh///1j7NixUV9fH5MnT47DDjssZs+eHc8880yX77/33ntj5syZMWnSpKirq4tJkybFzJkz49577+3xNbS2tsa1114bhx12WIwdOzYGDx4cu+66a5xxxhnx7LPP9nidlStXxuzZs2OfffaJ4cOHx/Dhw2OfffaJ2bNnx6pVq3q8DqWXUxDT7a5JdTXZFTFNrSpiAAAAKI6a7k8pjquuuirOO++82LBhQ9bry5Yti2XLlsUjjzwSa9eujR/+8Id5721vb48vf/nLcf3112e9/vrrr8frr78ed955Z5x22mnx4x//OKqqOs+WVq5cGcccc0w88cQTWa+/9NJLcd1118V//ud/xtVXXx2nnXZal1/L/Pnz4/jjj4/Gxsas159++ul4+umnY86cOXHnnXfGgQce2OU6lEfujJjuqIgBAACgVMpSEfO9730vvv71r8eGDRti6tSpcemll8Yf/vCHeOqpp+KBBx6ISy+9ND74wQ92GqKcf/75mRBm3333jZtvvjkWLFgQN998c+y7774RETFnzpy44IILOr2Gtra2mDlzZiaE+dSnPhX33ntvzJ8/P6688soYN25cNDU1xRlnnNFlhc3SpUvj2GOPjcbGxqipqYlZs2bF3LlzY+7cuTFr1qyoqamJ5cuXx7HHHhvLli3r67eMEupuRoyKGAAAAEql5BUxv/vd7+Kf/umfIiLipJNOijlz5sSgQdm70nzkIx+Jb37zm9Hc3Jz3/iVLlsRll10WERH7779/zJ07NwYPHhwREQcccEAcd9xxccQRR8TChQvj0ksvjS996UsxZcqUvHX+8z//Mx555JGIiPjqV78a11xzTebYgQceGB//+Mdjv/32i7Vr18bXv/71WLRoUdTU5H97zj///FixYkVERPziF7+Iz3zmM5ljhx12WOy3337x2c9+Nt5666244IIL4sYbb+zNt4sSyG9N6jqJqcupiGlqVREDAABAcZS0Iqa9vT2+8pWvRETE+973vrj++uvzQpiOamtr81774Q9/GK2trRGxpb1pawiz1ZAhQ+Kqq66KiC3zX6644oqCa28Nc0aNGhWXXnpp3vEpU6bEeeedFxERL7zwQtxxxx155zQ2NsbPf/7ziIg4+uijs0KYrU444YQ4+uijIyLipptuymtfovzSvWxOqs+tiLFrEgAAAEVS0iDm/vvvj+effz4iIr71rW8VrDDpSjqdjrvuuisiIqZNmxYHH3xwwfMOPvjg2H333SMi4q677srbrnjJkiWxaNGiiNgSlAwZMqTgOl/84hczjwsFMXfffXe0t2+pjjjllFM6ve6t67S3t8fdd9/d6XkMjG5bk1TEAAAAUCIlDWJuu+22iIhIpVLxyU9+MvP66tWr4/nnn4/Vq1d3+f6XX3453njj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z//8z7j66qvjtNNO6/J65s+fH8cff3w0NjZmvf7000/H008/HXPmzIk777wzDjzwwB5/jZRWMeKSwTlBTETE5ta2GFJb9h8hAAAAtmNlrYjZGqq0trbGuHHjevSe888/PxPC7LvvvnHzzTfHggUL4uabb4599903IiLmzJkTF1xwQadrtLW1xcyZMzMhzKc+9am49957Y/78+XHllVfGuHHjoqmpKc4444wuK2yWLl0axx57bDQ2NkZNTU3MmjUr5s6dG3Pnzo1Zs2ZFTU1NLF++PI499thYtmxZT78tlFpOEtOXYb11g/J/VMyJAQAAoLfK+p/zr7zyynjiiSdi2rRpMXPmzLj44ou7PH/JkiVx2WWXRUTE/vvvH3Pnzo3BgwdHRMQBBxwQxx13XBxxxBGxcOHCuPTSS+NLX/pSTJkyJW+d//zP/4xHHnkkIiK++tWvxjXXXJM5duCBB8bHP/7x2G+//WLt2rXx9a9/PRYtWhQ1NfnfmvPPPz9WrFgRERG/+MUv4jOf+Uzm2GGHHRb77bdffPazn4233norLrjggrjxxht79w2iLPrSmlSwIsacGAAAAHqpbBUxr732WvzTP/1TRERce+21UVtb2+17fvjDH0Zra2tERFx11VWZEGarIUOGxFVXXRURW+a/XHHFFQXX2RrmjBo1Ki699NK841OmTInzzjsvIiJeeOGFuOOOO/LOaWxsjJ///OcREXH00UdnhTBbnXDCCXH00UdHRMRNN92U177EwChGa1LujJgIA3sBAADovbIFMV/72tdi/fr1cfLJJ8cRRxzR7fnpdDruuuuuiIiYNm1aHHzwwQXPO/jgg2P33XePiIi77rorb4ecJUuWxKJFiyJiS1AyZMiQgut88YtfzDwuFMTcfffd0d6+pRXllFNO6fS6t67T3t4ed999d6fnUT6590RfmpMGVVdFTVX2+1TEAAAA0FtlCWJuvfXW+M1vfhOjRo3KVKd05+WXX4433ngjIqLb4Gbr8ddffz1eeeWVrGNbW5K6W2f8+PExderUiIh49NFH8473dJ2OxwqtQ/nlxTB9GRIT+VUxghgAAAB6q+QzYt55550466yzIiLikksuiTFjxvTofc8991zm8bRp07o8t+PxRYsWxc4779zndZYsWRJLly6NDRs2xNChQ/PWGTFiRIwfP77TNSZMmBDDhw+PtWvX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9Kc/jS9+8YtdrnX++ednQph99903br755liwYEHcfPPNse+++0ZExJw5c+KCCy7odI22traYOXNmJoT51Kc+Fffee2/Mnz8/rrzyyhg3blw0NTXFGWec0WWFzdKlS+PYY4+NxsbGqKmpiVmzZsXcuXNj7ty5MWvWrKipqYnly5fHscceG8uWLevx94vSyE0ZUyWaEjMypzVpU0tbNLW2leSzAAAA2H6VrCLmk5/8ZJx00knxt3/7t1FdXZ13fOXKlTF9+vRYsmRJREQ89NBDcfjhh+edt2TJknjve98bra2tsf/++8fcuXNj8ODBmeMbN26MI444IhYuXBg1NTWxaNGimDJlSt46N9xwQ5x66qkREfHVr341rrnmmqzjL7zwQuy3336xdu3amDJlSixatChqamry1jnppJPipptuioiIW2+9NT7zmc9kHb/11lvjs5/9bEREnHzyyXHjjTd29W3qNRUxvXPbwqVxzu1/zjzfe8cR8eszDy3656xa3xT7fe+BrNcWnP+RGDesvuifBQAAQOltdxUxv/nNb+KEE04oGMJERIwZMyYuv/zyzPPbb7+94Hk//OEPo7W1NSIirrrqqqwQJiJiyJAhcdVVV0XElvkvV1xxRcF1LrvssoiIGDVqVFx66aV5x6dMmRLnnXdeRGwJZe644468cxobG+PnP/95REQcffTReSFMRMQJJ5wQRx99dERE3HTTTZ22L1EeeRUxJRrWOzxn16SIiLXmxAAAAJBjQHdNOvLIIzOPX3zxxbzj6XQ67rrrroiImDZtWhx88MEF1zn44INj9913j4iIu+66K3KLfJYsWRKLFi2KiC1ByZAhQwqu07FFqlAQc/fdd0d7e3tERJxyyimdfVmZddrb2+Puu+/u9DzKr1TbVw+qroqGuuwKqnc2CmIAAADINqBBTFNTU+ZxocqZl19+OTNr5ogjjuhyra3HX3/99XjllVeyjnXcnamrdcaPHx9Tp06NiIhHH30073hP1+l4rNA6lFG5SmIiYkROVYwgBgAAgFz5Q1DK6KGHHso83mOPPfKOP/fcc5nH06ZN63KtjscXLVoUO++8c5/XWbJkSSxdujQ2bNgQQ4cOzVtnxIgRMX78+E7XmDBhQgwfPjzWrl2bqcTpqe4G/C5fvrxX61W6dF4SUzojBg+K19/ZlHluC2sAAAByDVgQ097eHt//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MQAAAABlIogBAAAAKBNBDAAAAECZCGIoqVdffTX+4R/+IaZNmxZDhw6NUaNGxQEHHBCXXnppbNy4caAvj4RZuHBhfPe7342jjjoqJk2aFHV1ddHQ0BBTp06NU045JR555JFerXfvvffGzJkzM2tNmjQpZs6cGffee2+P12htbY1rr702DjvssBg7dmwMHjw4dt111zjjjDPi2Wef7e2XSIX61re+FalUKvPnD3/4Q7fvcf8y0F577bX49re/Hfvvv3+MHTs26uvrY/LkyXHYYYfF7Nmz45lnnuny/e5hBkJzc3PMmTMnjj766JgwYULm3yV23333OOWUU+Kxxx7r0TruX4rprbfeit/85jcxe/bs+PjHPx5jxozJ/DvBF7/4xV6vty3dnytXrozZs2fHPvvsE8OHD4/hw4fHPvvsE7Nnz45Vq1b1+mvbbqShRO6+++708OHD0xFR8M/UqVPTzz///EBfJglx2GGHdXqvdfxz0kknpZuamrpcq62tLX3qqad2uc5pp52Wbmtr63KdFStWpA844IBO16irq0v/x3/8RzG/DSTQU089la6pqcm6dx588MFOz3f/si248sor00OHDu3yPjzrrLMKvtc9zEB55ZVX0u9973u7/XeJM888M93e3l5wDfcvpdDV/XTyySf3eJ1t7f6cN29eevz48Z2uM2HChPT8+fN7/PVtTwQxlMQf//jH9ODBg9MRkW5oaEhfdNFF6cceeyz9u9/9Ln366adnhTFr164d6MslAXbdddd0RKQnTpyYPuuss9K33357esGCBenHH388/YMf/CC94447Zu67E088scu1zj333My5++67b/rmm29OL1iwIH3zzTen991338yx8847r9M1Wltb04ceemjm3E996lPpe++9Nz1//vz0lVdemR43blw6ItJVVVXp3/72t8X+dpAQbW1tmX/R2XrPdBfEuH8ZaBdeeGHWP+cvvfTS9B/+8If0U089lX7ggQfSl156afqDH/xg+hvf+EbB97uHGQjNzc1ZIcw+++yTvvHGG9OPP/54+v7770/Pnj07K1y8+OKLC67j/qUUOoYT7373u9NHHXVUn4KYben+fO2119Jjx45NR0S6pqYmPWvWrPTcuXPTc+fOTc+aNSvzH6HGjRuXXrp0aW++XdsFQQwlsbU6oaamJv3YY4/lHf/Xf/3XzA/vt7/97fJfIInziU98In3LLbekW1tbCx5fsWJFeurUqZn77qGHHip43v/+7/9m/uLff//90xs3bsw6vmHDhvT++++fub87q+q6/vrrM5/11a9+Ne/4888/n6kYmzJlSrqlpaWXXzGV4IorrkhHRHratGnp8847r9sgxv3LQHvggQcy985JJ52Ubm5u7vTcQtWJ7mEGym233Za5Zw455JCC/z6xcOHC9KBBg9IRkR45cmTefeP+pVRmz56d/vWvf51ubGxMp9Pp9Msvv9zrIGZbuz+/8IUvZNa59dZb847fcsstfQqbtheCGIpu/vz5mR+aM844o+A5bW1t6T322CPzD7Ku/kUNiuXXv/515t4888wzC57zla98JXPO448/XvCcxx9/vMt/AKXT6cz9PWrUqPSGDRsKnnPxxRd3+Q8gKturr76abmhoSEdE+g9/+EP629/+drdBjPuXgdTW1pbebbfd0hGRft/73tenXw7dwwyUb3zjG5n74e677+70vJkzZ2bO+/Of/5x1zP1LufQliNmW7s/ly5enq6qq0hGRPvroozu95qOPPjpTXbN8+fIefJXbD8N6Kbo777wz8/iUU04peE5VVVWcdNJJERHxzjvvxIMPPliOS6PCHXnkkZnHL774Yt7xdDodd911V0RETJs2LQ4++OCC6xx88MGx++67R0TEXXfdFel0Ouv4kiVLYtGiRRERccIJJ8SQIUMKrtNxuNodd9zR8y+EivC1r30t1q9fHyeffHIcccQR3Z7v/mWg3X///fH8889HxJYB0zU1Nb16v3uYgdTc3Jx5vMsuu3R63q677lrwPe5ftmXb2v159913R3t7e0R0/vtix3Xa29vj7rvv7vS87ZEghqLbujPN0KFDY7/99uv0vI6/WDz66KMlvy5oamrKPK6urs47/vLLL8cbb7wREdHtL75bj7/++uvxyiuvZB3ruDtTV+uMHz8+pk6dGhF+Bsh26623xm9+85sYNWpUXHbZZT16j/uXgXbbbbdFREQqlYpPfvKTmddXr14dzz//fKxevbrL97uHGUhbf/mMiHjppZc6PW/rf8hJpVKx2267ZV53/7It29buz56uk+TfFwUxFN3WlHTKlCld/tewadOm5b0HSumhhx7KPN5jjz3yjj/33HOZxx3vz0K6un/7ss7SpUtjw4YNXZ5LZXjnnXfirLPOioiISy65JMaMGdOj97l/GWjz5s2LiIiddtophg0bFr/4xS9i7733jtGjR8fUqVNj9OjRsfvuu8dll12WFYxv5R5mIJ144okxfPjwiNjyd29bW1veOU899VTcc889ERHxuc99LnN+hPuXbdu2dn9uXWfEiBExfvz4TteYMGFC5ucsab8vCmIoqs2bN8fKlSsjImLSpEldnrvDDjvE0KFDI2LLDyiUUnt7e3z/+9/PPD/hhBPyzlm2bFnmcXf37+TJkzOPc+/fvqyTTqez3kflmjVrVjQ2Nsb06dPj1FNP7fH73L8MpPb29li8eHFERIwZMybOOuus+PznPx/PPPNM1nlLliyJc845Jz784Q/HO++8k3XMPcxAGjNmTNx0000xZMiQePTRR+OAAw6In/70pzFv3rx44IEH4p//+Z/jiCOOiObm5vjABz4Ql19+edb73b9sy7a1+3Pr8+7W6LhO0n5fFMRQVOvWrcs8bmho6Pb8rUHM+vXrS3ZNEBFxxRVXxIIFCyIi4lOf+lTBtrne3L9b792I/Pu3WOtQeR5++OGYM2dO1NTUxLXXXhupVKrH73X/MpDWrFmT6fd/+umn48orr4wJEybEz372s1i9enVs3LgxHnroocxcgsceeyy+9KUvZa3hHmagHXfccfHkk0/GaaedFv/zP/8TJ598chxyyCHxsY99LL7zne/EkCFD4oc//GE8/PDD8a53vSvrve5ftmXb2v25dZ1K/n1REENRbd68OfO4tra22/Pr6uoiImLTpk0luyZ46KGH4txzz42IiHHjxsW///u/FzyvN/fv1ns3Iv/+LdY6VJbm5ub48pe/HOl0Or7xjW/EXnvt1av3u38ZSB3Lzjdv3hxDhgyJBx98MD7/+c/HDjvsEIMHD47DDz88fv/738f73ve+iNgywHH+/PlZ79vKPcxAaG5ujp/+9KcFh5RGRLz55pvxs5/9LB544IG8Y+5ftmXb2v25dZ1K/n1REENR1dfXZx53nCTfma094oMHDy7ZNVHZnn322Zg5c2a0trZGfX193HbbbTFu3LiC5/bm/u043yD3/i3WOlSWf/mXf4nFixfHu9/97vj2t7/d6/e7fxlIHe+biIjTTjsta/jpVoMHD46LLroo8/yWW24puIZ7mHLbsGFDfPSjH42LL744Vq9eHbNmzYpFixZFU1NTrFmzJu6///449NBDY+HChXH88cfHD37wg6z3u3/Zlm1r9+fWdSr590VBDEU1bNiwzOOelI9t/S9oPSlLg956+eWX46ijjoq33347qqur45e//GUcfvjhnZ7fm/u343/9zb1/i7UOlWPx4sVx8cUXR0TEVVddlVXO21PuXwZSx/smIuKoo47q9NyPfOQjmWH+TzzxRME13MOU23e+8514+OGHIyLi+uuvj0suuSSmTZsWtbW1MXz48PjYxz4WDz74YBx55JGRTqfjnHPOiT/96U+Z97t/2ZZta/fn1nUq+ffFzre0gT6or6+P0aNHx6pVq7odGvb2229nfrA6DoWCYnjjjTfiox/9aLzxxhuRSqXihhtuiBkzZnT5no4Dw7q7fzsODMu9f3PX6WrXm63rpFKpHg0sI5muuOKKaG5ujl122SU2btwYv/zlL/PO6Tj09Pe//300NjZGRMSxxx4bQ4cOdf8yoOrq6mLs2LGxYsWKiOj6n+v19fUxZsyYaGxszJwf4e9gBk46nY4bbrghIiKmTp0aJ598csHzampq4sILL4xDDz002tvb48Ybb4wrrrgiIty/bNu2tftz0qRJ8eabb/ZoyPTWdZL2+6IghqLbc8894+GHH44XXnghWltbO93CeuvuChGFtxKGvlq5cmV87GMfi5deeikitlQYnHTSSd2+b88998w87nh/FtLV/Zu7zvvf//5u15k8eXKfqiBIhq1lty+99FKceOKJ3Z5/4YUXZh6//PLLMXToUPcvA+69731v/OEPf4iIKLj1b0dbj3f8dwT3MAPlzTffjNWrV0dExL777tvluR2H/Xe8D92/bMu2tftzzz33jCeffDLWrFkTjY2NnW5hvXz58li7dm3Ba9neaU2i6A499NCI2FJG9uSTT3Z63kMPPZR5PH369JJfF5VhzZo1cfTRR8dzzz0XERHf//7342tf+1qP3rvzzjvHxIkTIyL7/ixk7ty5ERGx4447xk477ZR1bOvPQHfrNDY2xpIlSyLCzwD95/5loHVs/dwahBeydu3aWLlyZURsuQe3cg8zUDoGgq2trV2e29LSUvB97l+2Zdva/dnTdZL8+6IghqI7/vjjM49/8pOfFDynvb09fvrTn0ZExMiRI+PII48sx6WRcBs3boxPfOIT8cc//jEiIs4///z41re+1eP3p1KpTPvS4sWLY968eQXPmzdvXiblnzFjRt4Ww1OnTs2k9rfeemts3Lix4Do33nhj5vHMmTN7fJ0kz4033hjpdLrLPx0H+D744IOZ17f+S5L7l4H2t3/7t5nHd9xxR6fn3XHHHZkdaQ477LDM6+5hBsqoUaNi+PDhERHx+OOPdxnGdPzFcOedd848dv+yLdvW7s/jjjsuqqq2RBGd/b7YcZ2qqqo47rjjOj1vu5SGEjjssMPSEZGuqalJP/bYY3nH//Vf/zUdEemI/7+9+wdtag3jAHz8V9sSSkGjpYhSkQ6iSKFOdZAKgoMUFAQHKSq6OIhTKwTiJATBRXQR6VrUQQRFURQMaKWQQQWpCooKDg0dBAtS63uX6wGx8dZ77UntfR4403fOy5fDL3DyCyRJFIvF7DfIgvP58+fYuXNnmqvjx4//qzljY2OxZMmSSJIkuru7Y3Jy8rv1ycnJ6O7uTvP94sWLGedcunQp3cuxY8d+WH/16lW0tLREkiSxYcOGmJqa+lf75f+jWCymmbp///6M58gv9bZr165IkiQWL14cd+/e/WH9w4cPsWbNmkiSJBoaGuL9+/ffrcsw9bJ///40M6dOnZrxnImJidi4cWN63u3bt79bl1+y8vr16zQj/f39s7pmvuXzwIED6ZwrV678sH758uVffo1/EkUMc6JSqURTU1MkSRK5XC5Onz4djx49inv37sXRo0fTN1VnZ2d8/Pix3ttlAdizZ0+aq97e3njy5Ek8ffq05jE2NlZz1uDgYDqrq6srhoeHY3R0NIaHh6OrqytdO3nyZM0ZX758iZ6envTcvXv3xq1bt+Lx48dx7ty5WLVqVfph5ebNm3NxS1hgZlPERMgv9TU2Nhatra2RJEk0NjbG4OBgPHjwIEZHR+P8+fNpCZMkSZRKpRlnyDD18Pz582hubk4zs3v37rh69WpUKpV4+PBhnD17NtauXZuu79ixY8Y58stcKJfLMTQ0lB5nzpxJ89HT0/Pd2tDQUM058ymfb9++jXw+nxY/AwMDUS6Xo1wux8DAQCxdujSSJIl8Ph/v3r37L7dvXlLEMGeuX7+etqEzHZ2dnfHy5ct6b5MFolbOah3r1q2rOWt6ejoOHTr00+sPHz4c09PTP93T+Ph4bN26teaM5cuXx8WLF3/znWChmm0RI7/UW7lcjtWrV9fMzqJFi6JQKNS8Xoaplzt37sTKlSv/8Rmit7c3JiYmZpwhv8yF/v7+X3rOrWW+5XNkZCTa2tpqzmlra4uRkZFfvl9/AkUMc+rNmzdx4sSJ6OzsjObm5mhtbY3u7u4olUrx6dOnem+PBeR3FjHf3LhxI/r6+qK9vT0aGhqivb09+vr6funbp6mpqbhw4UJs27YtVqxYEY2NjbF+/fo4cuRIPHv27D+8Yv5vZlvEfCO/1FO1Wo1isRhbtmyJlpaWaGxsjI6Ojjh48GBUKpVZzZBh6qFarUapVIrt27dHPp+PZcuWRVNTU3R0dMS+ffvi2rVr8fXr13+cI7/8Tr+riPlmPuVzfHw8CoVCbNq0KXK5XORyudi8eXMUCoWoVquznvOnWRTx96+lAQAAADCn/GsSAAAAQEYUMQAAAAAZUcQAAAAAZEQRAwAAAJARRQwAAABARhQxAAAAABlRxAAAAABkRBEDAAAAkBFFDAAAAEBGFDEAAAAAGVHEAAAAAGREEQMAAACQEUUMAAAAQEYUMQAAAAAZUcQAAAAAZEQRAwAAAJARRQwAAABARhQxAAAAABlRxAAAAABkRBEDAAAAkBFFDAAAAEBGFDEAAAAAGVHEAAAAAGREEQMAAACQkb8A1gHdneUuFWYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 413, + "width": 561 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(spec_obj.hist_array)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mybase", + "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.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/gamma_spectrum.Chn b/gamma_spectrum.Chn new file mode 100644 index 0000000..8ab772d Binary files /dev/null and b/gamma_spectrum.Chn differ diff --git a/gamma_spectrum.txt b/gamma_spectrum.txt new file mode 100644 index 0000000..0419d31 --- /dev/null +++ b/gamma_spectrum.txt @@ -0,0 +1,1035 @@ +# Filename : gamma_spectrum.Chn +# Version: -1 +# MCA detector ID: 1 +# Start time : 11:00:05 +# Start date : 26Oct111 +# No channels : 1024 +# Live time : 4919 +# Real time : 5020 +# En cal factors A + B*x + C*x*x +# A : 0.0 +# B : 1.0 +# C : 0.00 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +4085 +8689 +8794 +8694 +8571 +8427 +8209 +8231 +7819 +7611 +7531 +7217 +6721 +6352 +6151 +5807 +5489 +5099 +4714 +4549 +4166 +3853 +3636 +3424 +3061 +2980 +2659 +2518 +2298 +2124 +1962 +1827 +1786 +1658 +1589 +1489 +1446 +1400 +1311 +1344 +1238 +1193 +1264 +1084 +1167 +1097 +1089 +1030 +1095 +1056 +1025 +1025 +1059 +1022 +997 +970 +1038 +998 +1024 +1010 +1032 +1026 +1007 +1051 +1015 +967 +982 +993 +1057 +963 +977 +1051 +1031 +1010 +994 +978 +1033 +1031 +1020 +1060 +1053 +1018 +1045 +1131 +1026 +1067 +1164 +1019 +1075 +1063 +1116 +1146 +1075 +1107 +1115 +1075 +1132 +1140 +1091 +1077 +1119 +1097 +1079 +1047 +1077 +1061 +1000 +1032 +1029 +1040 +994 +987 +975 +933 +1005 +968 +944 +961 +900 +894 +847 +808 +845 +803 +779 +758 +737 +703 +777 +693 +685 +698 +682 +632 +600 +529 +572 +512 +497 +530 +505 +503 +467 +448 +466 +382 +370 +355 +335 +309 +328 +292 +284 +279 +247 +254 +232 +221 +208 +203 +178 +174 +169 +140 +149 +139 +124 +124 +114 +99 +105 +93 +94 +85 +90 +69 +80 +59 +56 +66 +60 +46 +46 +51 +41 +47 +35 +39 +33 +31 +42 +29 +32 +22 +30 +33 +27 +20 +20 +25 +17 +22 +19 +21 +15 +20 +16 +11 +17 +18 +9 +15 +4 +13 +12 +7 +9 +11 +10 +8 +10 +9 +8 +13 +9 +7 +10 +9 +11 +3 +5 +5 +9 +1 +7 +5 +5 +5 +10 +3 +6 +3 +8 +4 +2 +4 +1 +7 +7 +5 +5 +9 +3 +4 +5 +3 +3 +4 +3 +2 +4 +2 +2 +2 +2 +1 +2 +0 +1 +2 +2 +4 +2 +1 +3 +2 +3 +2 +3 +2 +0 +0 +0 +0 +3 +1 +0 +1 +3 +2 +1 +2 +1 +1 +0 +0 +1 +0 +1 +1 +0 +2 +0 +3 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +1 +0 +2 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/read_chn.py b/read_chn.py index 0f89f77..bfb3757 100644 --- a/read_chn.py +++ b/read_chn.py @@ -37,60 +37,61 @@ import numpy as np class gamma_data: - def __init__(self,filename): + def __init__(self, filename): try: - self.infile = open(filename, "rb") + self.infile = open(filename, "rb") self.read_chn_binary() except ValueError: print('Unable to load file ' + filename) - - def read_chn_binary(self): # We start by reading the 32 byte header - self.version = struct.unpack('h', self.infile.read(2))[0] - self.mca_detector_id = struct.unpack('h', self.infile.read(2))[0] - self.segment_number = struct.unpack('h', self.infile.read(2))[0] - self.start_time_ss = self.infile.read(2) - self.real_time = struct.unpack('I', self.infile.read(4))[0] - self.live_time = struct.unpack('I', self.infile.read(4))[0] - self.start_date = self.infile.read(8) #Ascii type date in - #DDMMMYY* where * == 1 means 21th century - self.start_time_hhmm = self.infile.read(4) - self.chan_offset = struct.unpack('h', self.infile.read(2))[0] - self.no_channels = struct.unpack('h', self.infile.read(2))[0] - self.hist_array = np.zeros(self.no_channels) #Init hist_array - #Read the binary data + def read_chn_binary(self): + self.version = struct.unpack('h', self.infile.read(2))[0] + self.mca_detector_id = struct.unpack('h', self.infile.read(2))[0] + self.segment_number = struct.unpack('h', self.infile.read(2))[0] + self.start_time_ss = self.infile.read(2).decode('utf-8') # 解码为字符串 + self.real_time = struct.unpack('I', self.infile.read(4))[0] + self.live_time = struct.unpack('I', self.infile.read(4))[0] + self.start_date = self.infile.read(8).decode('utf-8').strip() # 解码并去除空白 + self.start_time_hhmm = self.infile.read(4).decode('utf-8').strip() # 解码 + self.chan_offset = struct.unpack('h', self.infile.read(2))[0] + self.no_channels = struct.unpack('h', self.infile.read(2))[0] + self.hist_array = np.zeros(self.no_channels) + for index in range(len(self.hist_array)): - self.hist_array[index]= struct.unpack('I', self.infile.read(4))[0] + self.hist_array[index] = struct.unpack('I', self.infile.read(4))[0] + assert struct.unpack('h', self.infile.read(2))[0] == -102 self.infile.read(2) self.en_zero_inter = struct.unpack('f', self.infile.read(4))[0] self.en_slope = struct.unpack('f', self.infile.read(4))[0] self.en_quad = struct.unpack('f', self.infile.read(4))[0] self.infile.close() + def write_txt(self, fname): - tf = open(filename[:-4]+'.txt','w') - tf.writelines(['# Filename : ' + fname, - '\n# Version: ' + str(self.version), - '\n# MCA detector ID: ' + str(self.mca_detector_id), - '\n# Start time : ' + self.start_time_hhmm[:2]+':'+ self.start_time_hhmm[:2] + ':'+ str(self.start_time_ss), - '\n# Start date : ' + self.start_date, - '\n# No channels : ' + str(self.no_channels), - '\n# Live time : ' + str(self.live_time), - '\n# Real time : ' + str(self.real_time), - '\n# En cal factors A + B*x + C*x*x', - '\n# A : ' + str(self.en_zero_inter), - '\n# B : ' + str(self.en_slope), - '\n# C : ' + str(self.en_quad)]) + tf = open(fname[:-4] + '.txt', 'w') + tf.writelines([ + '# Filename : ' + fname, + '\n# Version: ' + str(self.version), + '\n# MCA detector ID: ' + str(self.mca_detector_id), + '\n# Start time : ' + self.start_time_hhmm[:2] + ':' + self.start_time_hhmm[2:] + ':' + self.start_time_ss, + '\n# Start date : ' + self.start_date, + '\n# No channels : ' + str(self.no_channels), + '\n# Live time : ' + str(self.live_time), + '\n# Real time : ' + str(self.real_time), + '\n# En cal factors A + B*x + C*x*x', + '\n# A : ' + str(self.en_zero_inter), + '\n# B : ' + str(self.en_slope), + '\n# C : ' + str(self.en_quad) + ]) + for i in self.hist_array: tf.write(str(int(i)) + '\n') tf.close() - if __name__ == '__main__': - if len(sys.argv) >1: + if len(sys.argv) > 1: filename = sys.argv[1] else: - filename = raw_input('Filename of binary, (including .Chn): ') + filename = input('Filename of binary, (including .Chn): ') gamma_object = gamma_data(filename) gamma_object.write_txt(filename) -