1
0
Fork 0
mirror of https://github.com/cosmo-sims/MUSIC.git synced 2024-09-19 17:03:46 +02:00
MUSIC/tools/check_output.ipynb

168 lines
535 KiB
Text
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import h5py\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib widget"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [],
"source": [
"class music_grid(object):\n",
"\n",
" def __init__( self, fname, fieldname='rho' ):\n",
" with h5py.File(fname) as hf:\n",
" self.levelmin = hf['/header'].attrs['levelmin']\n",
" self.levelmax = hf['/header'].attrs['levelmax']\n",
" self.len = np.zeros((1+self.levelmax-self.levelmin,3), dtype=int)\n",
" self.len[:,0] = np.array( hf['/header/grid_len_x'])\n",
" self.len[:,1] = np.array( hf['/header/grid_len_y'])\n",
" self.len[:,2] = np.array( hf['/header/grid_len_z'])\n",
" self.off = np.zeros((1+self.levelmax-self.levelmin,3), dtype=int)\n",
" self.off[:,0] = np.array( hf['/header/grid_off_x'] )\n",
" self.off[:,1] = np.array( hf['/header/grid_off_y'] )\n",
" self.off[:,2] = np.array( hf['/header/grid_off_z'] )\n",
"\n",
" self.absoff = np.zeros_like(self.off)\n",
" for i in range(self.off.shape[0] ):\n",
" self.absoff[i,:] = self.off[i,:] * 2**(1+self.levelmax-self.levelmin-i)\n",
" self.absoff = np.cumsum(self.absoff,axis=0)\n",
"\n",
" self.density = {}\n",
" for i in range(self.levelmin, self.levelmax+1):\n",
" self.density[i] = np.array( hf[f'level_{i:03d}_DM_'+fieldname])[4:-4,4:-4,4:-4]\n",
" \n",
" \n",
" def get_slice( self, islz ):\n",
" scale = 2**(self.levelmax-self.levelmin)\n",
" iislz = islz//scale\n",
" img = self.density[self.levelmin][...,iislz].repeat( scale, axis=0 ).repeat( scale, axis=1 )# *0\n",
"\n",
" for i,ilvl in enumerate(range(self.levelmin+1, self.levelmax+1)):\n",
" scale = 2**(self.levelmax-ilvl)\n",
" if (islz >= self.absoff[i+1,2]) & (islz < self.absoff[i+1,2]+scale*self.len[i+1,2]):\n",
" iislz = (islz - self.absoff[i+1,2])//scale\n",
" imgt = self.density[ilvl][...,iislz].repeat( scale, axis=0 ).repeat( scale, axis=1 )# *0+i+1\n",
" il = self.absoff[i+1,0]\n",
" ir = self.absoff[i+1,0]+scale*self.len[i+1,0]\n",
" jl = self.absoff[i+1,1]\n",
" jr = self.absoff[i+1,1]+scale*self.len[i+1,1]\n",
" \n",
" img[il:ir,jl:jr] = imgt\n",
"\n",
" return img"
]
},
{
"cell_type": "code",
"execution_count": 184,
"metadata": {},
"outputs": [],
"source": [
"field = 'vz'\n",
"\n",
"mg1 = music_grid('debug.hdf5',field)\n",
"img1 = mg1.get_slice( 256 )\n",
"\n",
"mg2 = music_grid('debug_master.hdf5',field)\n",
"img2 = mg2.get_slice( 256 )"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'difference')"
]
},
"execution_count": 185,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5f66de5edb1948b1ac13d36ba7906851",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAJYCAYAAABy5h8aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9ebRt6VXWjz9vs9be59xbDYGqQEIkEJDOECGBDJMUNoQUoGJoEmnEhB4ZiMNINKikUSEgrTRf4IcKogyHoCaDYUOGNEqFERE1IEISg0bRaEgDgVTdc/Zeb/P7Y77zbdbe51ZVqm5ycuv5ZJycuvvsvfZq51rv8z5zTpNzziCEEEIIIYQQQggh5JJi39srQAghhBBCCCGEEELI9aCARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEvJv8w3/4D/FRH/VRmKYJt99++3t7dQgh5Ibw0pe+FMaY+u/HP/7xeP7znz+8541vfCOe9axn4bbbboMxBq985SsBAL/0S7+Epz3tabhy5QqMMfjlX/7l99yKE0JuKvx7ewUIIYQQQt4Xef3rX4/nP//5+LRP+zS86EUvwunp6Xt7lQgh5L3G8573PLzpTW/CN37jN+L222/HU57yFCzLguc85znYbrf4zu/8TpyenuJDPuRD3turSgh5H4UCFiGEEELIu8G//bf/Fikl/J2/83fw4R/+4e/t1SGEkPcYb3jDG2BtS+Y5OzvDa17zGvy1v/bX8DVf8zX19de//vX4X//rf+GHfuiH8GVf9mXvjVUlhNxEMIWQEEIIIaRw3333PeD3vvWtbwWAhzV18MF8PyGEvLfYbDaYpqn++21vexuAw3jIOEkIeTihgEUIebfQWgi/8Ru/gec///m4/fbbcdttt+GLv/iLce3ateG9/+gf/SM8+clPxsnJCR71qEfh8z7v8/C///f/rn//7u/+bjjn8M53vrO+9u3f/u0wxuAFL3hBfS3GiFtuuQV/5a/8lRu+fYSQmx+NY7/+67+OL/iCL8D7vd/74RnPeAaA+49bj3/84/GSl7wEAHDHHXfAGIOXvvSl9e//+l//a9x11124cuUKbrnlFvzxP/7H8Wu/9mvD9z//+c/H1atX8d//+3/HZ3zGZ+CWW27BF37hFwIAUkr4ru/6Lnzsx34sttstHv3oR+Mrv/Ir8Tu/8zvDMh7/+MfjT/yJP4FXv/rV+KRP+iRst1t82Id9GH70R3/0YHvf+c534i/+xb+Ixz/+8dhsNvjgD/5g/Nk/+2fx9re/vb5nt9vhJS95CT78wz8cm80Gj3vc4/CX//Jfxm63e2g7mxDyPsOrX/1
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAAJYCAYAAABy5h8aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9ebRt6VXWjz9vs9be59xbDYGqQEIkEJDOECGBDJMUNoQUoGJoEmnEhB4ZiMNINKikUSEgrTRf4IcKogyHoCaDYUOGNEqFERE1IEISg0bRaEgDgVTdc/Zeb/P7Y77zbdbe51ZVqm5ycuv5ZJycuvvsvfZq51rv8z5zTpNzziCEEEIIIYQQQggh5JJi39srQAghhBBCCCGEEELI9aCARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEEEIIIYSQSw0FLEIIIYQQQgghhBByqaGARQghhBBCCCGEEEIuNRSwCCGEEEIIIYQQQsilhgIWIYQQQgghhBBCCLnUUMAihBBCCCGEEEIIIZcaCliEEEIIIYQQQggh5FJDAYsQQgghhBBCCCGEXGooYBFCCCGEvJv8w3/4D/FRH/VRmKYJt99++3t7dQgh5Ibw0pe+FMaY+u/HP/7xeP7znz+8541vfCOe9axn4bbbboMxBq985SsBAL/0S7+Epz3tabhy5QqMMfjlX/7l99yKE0JuKvx7ewUIIYQQQt4Xef3rX4/nP//5+LRP+zS86EUvwunp6Xt7lQgh5L3G8573PLzpTW/CN37jN+L222/HU57yFCzLguc85znYbrf4zu/8TpyenuJDPuRD3turSgh5H4UCFiGEEELIu8G//bf/Fikl/J2/83fw4R/+4e/t1SGEkPcYb3jDG2BtS+Y5OzvDa17zGvy1v/bX8DVf8zX19de//vX4X//rf+GHfuiH8GVf9mXvjVUlhNxEMIWQEEIIIaRw3333PeD3vvWtbwWAhzV18MF8PyGEvLfYbDaYpqn++21vexuAw3jIOEkIeTihgEUIebfQWgi/8Ru/gec///m4/fbbcdttt+GLv/iLce3ateG9/+gf/SM8+clPxsnJCR71qEfh8z7v8/C///f/rn//7u/+bjjn8M53vrO+9u3f/u0wxuAFL3hBfS3GiFtuuQV/5a/8lRu+fYSQmx+NY7/+67+OL/iCL8D7vd/74RnPeAaA+49bj3/84/GSl7wEAHDHHXfAGIOXvvSl9e//+l//a9x11124cuUKbrnlFvzxP/7H8Wu/9mvD9z//+c/H1atX8d//+3/HZ3zGZ+CWW27BF37hFwIAUkr4ru/6Lnzsx34sttstHv3oR+Mrv/Ir8Tu/8zvDMh7/+MfjT/yJP4FXv/rV+KRP+iRst1t82Id9GH70R3/0YHvf+c534i/+xb+Ixz/+8dhsNvjgD/5g/Nk/+2fx9re/vb5nt9vhJS95CT78wz8
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig,ax = plt.subplots(1,3,figsize=(12,6))\n",
"ax[0].imshow( img1, cmap='bone')\n",
"ax[0].set_title('new')\n",
"ax[1].imshow( img2, cmap='bone')\n",
"ax[1].set_title('reference')\n",
"ax[2].imshow( img2-img1, cmap='bone')\n",
"ax[2].set_title('difference')\n"
]
},
{
"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.9.15"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "397704579725e15f5c7cb49fe5f0341eb7531c82d19f2c29d197e8b64ab5776b"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}