WIP
This commit is contained in:
25
.gitignore
vendored
Normal file
25
.gitignore
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
install/
|
||||||
|
.cproject
|
||||||
|
.project
|
||||||
|
bin/
|
||||||
|
.settings
|
||||||
|
*.aux
|
||||||
|
*.log
|
||||||
|
*.out
|
||||||
|
*.toc
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
.*
|
||||||
|
build/
|
||||||
|
RELEASE.txt
|
||||||
|
Testing/
|
||||||
|
|
||||||
|
ctbDict.cpp
|
||||||
|
ctbDict.h
|
||||||
|
|
||||||
|
wheelhouse/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
*.pyc
|
||||||
|
*/__pycache__/*
|
||||||
|
|
||||||
25
play.py
Normal file
25
play.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import matplotlib.pyplot as plt
|
||||||
|
plt.ion()
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
|
from simple_eta import gaussian_2d, plot_gaussian
|
||||||
|
from simple_eta import generate
|
||||||
|
|
||||||
|
sigma_um = 12
|
||||||
|
resolution = 200
|
||||||
|
grid_size = 3
|
||||||
|
pixel_size = 25
|
||||||
|
|
||||||
|
|
||||||
|
pos = (37.5,37.5) #x,y
|
||||||
|
t = gaussian_2d(mx=pos[0], my = pos[1], sigma = sigma_um, res = resolution, grid_size = grid_size, pixel_size = pixel_size)
|
||||||
|
|
||||||
|
fig, ax = plot_gaussian(t, pixel_size=pixel_size, grid_size = grid_size)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
res = generate.sum_pixels(t, grid_size)
|
||||||
|
|
||||||
|
|
||||||
|
fig,ax = plt.subplots()
|
||||||
|
im = ax.imshow(res, origin = 'lower')
|
||||||
2
simple_eta/__init__.py
Normal file
2
simple_eta/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
from .generate import gaussian_2d
|
||||||
|
from .plotting import plot_gaussian
|
||||||
40
simple_eta/generate.py
Normal file
40
simple_eta/generate.py
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import torch
|
||||||
|
import math
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
def gaussian_2d(mx, my, sigma = 1, res=100, pixel_size = 25, grid_size = 2):
|
||||||
|
"""
|
||||||
|
Generate a 2D gaussian as position mx, my, with sigma=sigma.
|
||||||
|
The gaussian is placed on a grid_size x grid_size pixel matrix with resolution
|
||||||
|
res in one dimesion.
|
||||||
|
"""
|
||||||
|
x = torch.linspace(0, pixel_size*grid_size, res)
|
||||||
|
x,y = torch.meshgrid(x,x, indexing="ij")
|
||||||
|
return 1 / (2*math.pi*sigma**2) * \
|
||||||
|
torch.exp(-((x - my)**2 / (2*sigma**2) + (y - mx)**2 / (2*sigma**2)))
|
||||||
|
|
||||||
|
|
||||||
|
def sum_pixels(t, grid):
|
||||||
|
resolution = t.shape[0]
|
||||||
|
pixels = np.zeros((grid,grid))
|
||||||
|
|
||||||
|
step = resolution//grid
|
||||||
|
for i in range(grid):
|
||||||
|
for j in range(grid):
|
||||||
|
print(f'[{i*step}:{(i+1)*step}, {j*step}:{(j+1)*step}]')
|
||||||
|
pixels[i,j] = t[i*step:(i+1)*step, j*step:(j+1)*step].sum()
|
||||||
|
|
||||||
|
# pixels[0,0] = t[0:resolution//2, 0:resolution//2].sum()
|
||||||
|
# pixels[0,1] = t[0:resolution//2, resolution//2:].sum()
|
||||||
|
# pixels[1,0] = t[resolution//2:, 0:resolution//2].sum()
|
||||||
|
# pixels[1,1] = t[resolution//2:, resolution//2:].sum()
|
||||||
|
return pixels
|
||||||
|
|
||||||
|
def sum_pixels2(t, grid):
|
||||||
|
resolution = t.shape[0]
|
||||||
|
pixels = np.zeros((grid,grid))
|
||||||
|
pixels[0,0] = t[0:resolution//2, 0:resolution//2].sum()
|
||||||
|
pixels[0,1] = t[0:resolution//2, resolution//2:].sum()
|
||||||
|
pixels[1,0] = t[resolution//2:, 0:resolution//2].sum()
|
||||||
|
pixels[1,1] = t[resolution//2:, resolution//2:].sum()
|
||||||
|
return pixels
|
||||||
22
simple_eta/plotting.py
Normal file
22
simple_eta/plotting.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
def plot_gaussian(t, pixel_size, grid_size):
|
||||||
|
print(f'{t.shape=}')
|
||||||
|
|
||||||
|
resolution = t.shape[0]
|
||||||
|
xa = np.linspace(0,grid_size*pixel_size,resolution)
|
||||||
|
ticks = [tick for tick in range(0,pixel_size*grid_size+1, pixel_size)]
|
||||||
|
|
||||||
|
fig, ax = plt.subplots(figsize = (7,7))
|
||||||
|
ax.pcolormesh(xa,xa, t)
|
||||||
|
ax.set_xticks(ticks)
|
||||||
|
ax.set_yticks(ticks)
|
||||||
|
ax.set_xlim(0,grid_size*pixel_size)
|
||||||
|
ax.set_ylim(0,grid_size*pixel_size)
|
||||||
|
|
||||||
|
ax.grid()
|
||||||
|
|
||||||
|
ax.set_xlabel(r'Position x [$\mu$m]')
|
||||||
|
ax.set_ylabel(r'Position y [$\mu$m]')
|
||||||
|
return fig, ax
|
||||||
Reference in New Issue
Block a user