Witches day 2
This commit is contained in:
@ -30,14 +30,14 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 20,
|
||||
"execution_count": 2,
|
||||
"id": "7937f054-fcd0-4e67-a20f-7696f5903a94",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"application/vnd.jupyter.widget-view+json": {
|
||||
"model_id": "13c78bb2a5be48d79c3d210afa1c877e",
|
||||
"model_id": "f8683e70ab02477197f30353e4947f23",
|
||||
"version_major": 2,
|
||||
"version_minor": 0
|
||||
},
|
||||
@ -81,7 +81,15 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"execution_count": null,
|
||||
"id": "de350192-85ae-4d38-8ed3-14ad43843e01",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "3ca2e3fd-4e61-4d4c-9d58-4b72f16999dc",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -511,25 +519,28 @@
|
||||
" \n",
|
||||
"\n",
|
||||
" ### SAMPLE PLANE ##########################################\n",
|
||||
" fov_show = 0.5 # nm\n",
|
||||
" beam_pos = 5\n",
|
||||
" wid = np.linspace(-beam_pos/2,beam_pos/2,beam_pos+1) * step_size_corr\n",
|
||||
" yyy = np.append(np.linspace(0,overlap,100), 200)\n",
|
||||
" wid = np.array([-2, -1, 0, 1, 2]) * step_size_corr\n",
|
||||
" \n",
|
||||
" fig5 = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
|
||||
" fig5.update_xaxes(title_text=\"Sample plane (nm)\", range=[-4*step_size_corr, 4*step_size_corr], showgrid=False, zeroline=False)\n",
|
||||
" fig5.update_yaxes(range=[-4*step_size_corr, 4*step_size_corr],showgrid=False, showticklabels=False)\n",
|
||||
" fig5.update_xaxes(title_text=\"Sample plane (nm)\", range=[-fov_show/2, fov_show/2], showgrid=False, zeroline=False)\n",
|
||||
" fig5.update_yaxes(range=[-fov_show/2, fov_show/2],showgrid=False, showticklabels=False)\n",
|
||||
" \n",
|
||||
" for x in range(len(wid)):\n",
|
||||
" fig5.add_trace(go.Scatter(showlegend=False, x=wid, y=np.ones(len(wid))*wid[x], marker_color='blue'),secondary_y=False)\n",
|
||||
" fig5.add_trace(go.Scatter(showlegend=False, x=wid, y=np.ones(len(wid))*wid[x], marker_color='black'),secondary_y=False)\n",
|
||||
" \n",
|
||||
" for x in range(len(wid)): \n",
|
||||
" for y in range(len(wid)): \n",
|
||||
" fig5.add_shape(type=\"circle\",xref=\"x\", yref=\"y\", opacity=0.1, fillcolor=\"#FF7F7F\",name=False, x0=wid[x]-beam_diameter/2, y0=wid[y]-beam_diameter/2, x1=wid[x]+beam_diameter/2, y1=wid[y]+beam_diameter/2, line_color=\"red\",secondary_y=False)\n",
|
||||
" \n",
|
||||
" fig5.add_annotation(x=-1*step_size_corr, y=-2*step_size_corr, ax=-2*step_size_corr, ay=-2*step_size_corr, xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" fig5.add_annotation(x=-2*step_size_corr, y=-1*step_size_corr, ax=-2*step_size_corr, ay=-2*step_size_corr, xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" fig5.add_annotation(x=-1.25*step_size_corr, y=-1.5*step_size_corr, text=str(np.round(10*step_size_corr,3))+' Å', showarrow=False, yshift=0)\n",
|
||||
" fig5.add_annotation(x=2*step_size_corr-0.75*beam_diameter/2, y=-2*step_size_corr-0.75*beam_diameter/2, ax=2*step_size_corr, ay=-2*step_size_corr,xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" fig5.add_annotation(x=2*step_size_corr+0.75*beam_diameter/2, y=-2*step_size_corr+0.75*beam_diameter/2, ax=2*step_size_corr, ay=-2*step_size_corr,xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" fig5.add_annotation(x=2.25*step_size_corr, y=-2*step_size_corr, text=str(np.round(10*beam_diameter,2))+' Å', showarrow=False, yshift=-15)\n",
|
||||
" # fig5.add_annotation(x=-1*step_size_corr, y=-2*step_size_corr, ax=-2*step_size_corr, ay=-2*step_size_corr, xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=-2*step_size_corr, y=-1*step_size_corr, ax=-2*step_size_corr, ay=-2*step_size_corr, xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=-1.25*step_size_corr, y=-1.5*step_size_corr, text=str(np.round(10*step_size_corr,3))+' Å', showarrow=False, yshift=0)\n",
|
||||
" # fig5.add_annotation(x=2*step_size_corr-0.75*beam_diameter/2, y=-2*step_size_corr-0.75*beam_diameter/2, ax=2*step_size_corr, ay=-2*step_size_corr,xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=2*step_size_corr+0.75*beam_diameter/2, y=-2*step_size_corr+0.75*beam_diameter/2, ax=2*step_size_corr, ay=-2*step_size_corr,xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=2.25*step_size_corr, y=-2*step_size_corr, text=str(np.round(10*beam_diameter,2))+' Å', showarrow=False, yshift=-15)\n",
|
||||
" \n",
|
||||
" if method == 'direct':\n",
|
||||
" xx = wavelength/(np.sin(semi_angle_corr*omega/1000))/100\n",
|
||||
@ -539,12 +550,67 @@
|
||||
" fig5.add_trace(go.Scatter(showlegend=True, x=[-1], y=[-1],marker_size=12, marker_color='#FF7F7F', name='Beam ⌀ '+str(np.round(10*beam_diameter,2))+' Å', opacity = 0)) \n",
|
||||
"\n",
|
||||
" fig5.update_layout(legend=dict(orientation=\"v\",yanchor=\"bottom\",y=1.0,xanchor=\"right\",x=0.9))\n",
|
||||
" fig5.add_trace(go.Scatter(showlegend=False, x = -4*step_size_corr*np.ones(len(yyy)), y=yyy, opacity=1,mode='markers',marker_symbol = \"triangle-down\",marker=dict(size=20, color=yyy, colorscale='rainbow_r', showscale=False)),secondary_y=True) \n",
|
||||
" fig5.add_trace(go.Scatter(showlegend=False, x = -fov_show/2*np.ones(len(yyy)), y=yyy, opacity=1,mode='markers',marker_symbol = \"triangle-down\",marker=dict(size=20, color=yyy, colorscale='rainbow_r', showscale=False)),secondary_y=True) \n",
|
||||
" fig5.update_yaxes(range=[0, 100], showgrid=False, showticklabels=False, secondary_y=True)\n",
|
||||
" fig5.update_yaxes(title_text=\"Overlap %\", showgrid=False, showticklabels=True, tickvals = [-4*step_size_corr, -2*step_size_corr, 0, 2*step_size_corr, 4*step_size_corr],ticktext = ['0', '25', '50', '75', '100'], secondary_y=False)\n",
|
||||
" fig5.update_yaxes(title_text=\"Overlap %\", showgrid=False, showticklabels=True, tickvals = [-fov_show/2, -fov_show/4, 0, fov_show/4, fov_show/2],ticktext = ['0', '25', '50', '75', '100'], secondary_y=False)\n",
|
||||
" fig5.update_layout(title={'text': \"Sample\",'y': 0.975, 'x': 0.30,'xanchor': 'left','yanchor': 'top'})\n",
|
||||
" fig5.update_layout(width=5.25*graph_size, height=3.9*graph_size, margin =dict(l=1.3*graph_size, r=0.3*graph_size, t=0.1*graph_size, b=0))\n",
|
||||
"\n",
|
||||
" fig5.update_layout(legend=dict(orientation=\"v\",yanchor=\"bottom\",y=1.01,xanchor=\"right\",x=0.9))\n",
|
||||
" fig5.update_layout(plot_bgcolor='white')\n",
|
||||
" fig5.update_xaxes(mirror=True,ticks='outside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig5.update_yaxes(mirror=True,ticks='inside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig5.update_yaxes(title_font_color=\"#000000\")\n",
|
||||
" fig5.update_xaxes(title_font_color=\"#000000\")\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" # yyy = np.append(np.linspace(0,overlap,100), 200)\n",
|
||||
" # wid = np.array([-2, -1, 0, 1, 2]) * step_size_corr\n",
|
||||
" # fig5 = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
|
||||
" # fig5.update_xaxes(title_text=\"Sample plane (nm)\", range=[-4*step_size_corr, 4*step_size_corr], showgrid=False, zeroline=False)\n",
|
||||
" # fig5.update_yaxes(range=[-4*step_size_corr, 4*step_size_corr],showgrid=False, showticklabels=False)\n",
|
||||
" \n",
|
||||
" # for x in range(len(wid)):\n",
|
||||
" # fig5.add_trace(go.Scatter(showlegend=False, x=wid, y=np.ones(len(wid))*wid[x], marker_color='blue'),secondary_y=False)\n",
|
||||
" \n",
|
||||
" # for x in range(len(wid)): \n",
|
||||
" # for y in range(len(wid)): \n",
|
||||
" # fig5.add_shape(type=\"circle\",xref=\"x\", yref=\"y\", opacity=0.1, fillcolor=\"#FF7F7F\",name=False, x0=wid[x]-beam_diameter/2, y0=wid[y]-beam_diameter/2, x1=wid[x]+beam_diameter/2, y1=wid[y]+beam_diameter/2, line_color=\"red\",secondary_y=False)\n",
|
||||
" \n",
|
||||
" # fig5.add_annotation(x=-1*step_size_corr, y=-2*step_size_corr, ax=-2*step_size_corr, ay=-2*step_size_corr, xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=-2*step_size_corr, y=-1*step_size_corr, ax=-2*step_size_corr, ay=-2*step_size_corr, xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=-1.25*step_size_corr, y=-1.5*step_size_corr, text=str(np.round(10*step_size_corr,3))+' Å', showarrow=False, yshift=0)\n",
|
||||
" # fig5.add_annotation(x=2*step_size_corr-0.75*beam_diameter/2, y=-2*step_size_corr-0.75*beam_diameter/2, ax=2*step_size_corr, ay=-2*step_size_corr,xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=2*step_size_corr+0.75*beam_diameter/2, y=-2*step_size_corr+0.75*beam_diameter/2, ax=2*step_size_corr, ay=-2*step_size_corr,xref='x',yref='y',axref='x',ayref='y',text='', showarrow=True,arrowhead=2,arrowsize=2,arrowwidth=1,arrowcolor='black')\n",
|
||||
" # fig5.add_annotation(x=2.25*step_size_corr, y=-2*step_size_corr, text=str(np.round(10*beam_diameter,2))+' Å', showarrow=False, yshift=-15)\n",
|
||||
" \n",
|
||||
" # if method == 'direct':\n",
|
||||
" # xx = wavelength/(np.sin(semi_angle_corr*omega/1000))/100\n",
|
||||
" # fig5.add_trace(go.Scatter(showlegend=True, x=[-1], y=[-1],marker_size=12, marker_color='green', name='Rec step '+str(np.round(xx[-1]/3,2))+' Å')) \n",
|
||||
"\n",
|
||||
" # if method == 'iterative':\n",
|
||||
" # fig5.add_trace(go.Scatter(showlegend=True, x=[-1], y=[-1],marker_size=12, marker_color='#FF7F7F', name='Beam ⌀ '+str(np.round(10*beam_diameter,2))+' Å', opacity = 0)) \n",
|
||||
"\n",
|
||||
" # fig5.update_layout(legend=dict(orientation=\"v\",yanchor=\"bottom\",y=1.0,xanchor=\"right\",x=0.9))\n",
|
||||
" # fig5.add_trace(go.Scatter(showlegend=False, x = -4*step_size_corr*np.ones(len(yyy)), y=yyy, opacity=1,mode='markers',marker_symbol = \"triangle-down\",marker=dict(size=20, color=yyy, colorscale='rainbow_r', showscale=False)),secondary_y=True) \n",
|
||||
" # fig5.update_yaxes(range=[0, 100], showgrid=False, showticklabels=False, secondary_y=True)\n",
|
||||
" # fig5.update_yaxes(title_text=\"Overlap %\", showgrid=False, showticklabels=True, tickvals = [-4*step_size_corr, -2*step_size_corr, 0, 2*step_size_corr, 4*step_size_corr],ticktext = ['0', '25', '50', '75', '100'], secondary_y=False)\n",
|
||||
" # fig5.update_layout(title={'text': \"Sample\",'y': 0.975, 'x': 0.30,'xanchor': 'left','yanchor': 'top'})\n",
|
||||
" # fig5.update_layout(width=5.25*graph_size, height=3.9*graph_size, margin =dict(l=1.3*graph_size, r=0.3*graph_size, t=0.1*graph_size, b=0))\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" # fig5.update_layout(legend=dict(orientation=\"v\",yanchor=\"bottom\",y=1.01,xanchor=\"right\",x=0.9))\n",
|
||||
" # fig5.update_layout(plot_bgcolor='white')\n",
|
||||
" # fig5.update_xaxes(mirror=True,ticks='outside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" # fig5.update_yaxes(mirror=True,ticks='inside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" # fig5.update_yaxes(title_font_color=\"#000000\")\n",
|
||||
" # fig5.update_xaxes(title_font_color=\"#000000\")\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" ### DETECTOR PLANE ##########################################\n",
|
||||
" fig6 = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
|
||||
@ -559,6 +625,13 @@
|
||||
" fig6.add_trace(go.Scatter(showlegend=False,x=[-1], y=[-1]),secondary_y=True)\n",
|
||||
" fig6.update_yaxes(title_text=\"\", range=[-1, 1], showticklabels=True, showgrid=False, tickvals = [-1, 0, 0.85], ticktext = [\"\", \"Max cover angle (mrad)\", str(np.round(detector_cover,1))], secondary_y=True) \n",
|
||||
" fig6.update_yaxes(tickangle=-90)\n",
|
||||
"\n",
|
||||
" fig6.update_layout(plot_bgcolor='white')\n",
|
||||
" fig6.update_xaxes(mirror=True,ticks='outside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig6.update_yaxes(mirror=True,ticks='inside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig6.update_yaxes(title_font_color=\"#000000\")\n",
|
||||
" fig6.update_xaxes(title_font_color=\"#000000\")\n",
|
||||
" \n",
|
||||
" fig6.update_layout(width=3.8*graph_size, height=3.1*graph_size, margin = dict(l=0.6*graph_size, r=0.48*graph_size, t=0.1*graph_size, b=0.1*graph_size))\n",
|
||||
"\n",
|
||||
" \n",
|
||||
@ -662,7 +735,7 @@
|
||||
" \n",
|
||||
" ### PROBE ##########################################\n",
|
||||
" fig = go.Figure() \n",
|
||||
" fig.update_yaxes(title_text=\"Contrast transfer func.\")\n",
|
||||
" fig.update_yaxes(title_text=\"Contrast transfer [-]\")\n",
|
||||
"\n",
|
||||
" xx = wavelength/(np.sin(semi_angle_corr*omega/1000))/100 # Full pitch size\n",
|
||||
" \n",
|
||||
@ -672,33 +745,50 @@
|
||||
" \n",
|
||||
" if ctf_xaxis == 'mrad': \n",
|
||||
" for x in apertury:\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False, x=pty.get_angle_corr(x) *omega, y=pctf, marker_color='gray', name='SSB-CTF',))\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False, x=pty.get_angle_corr(x) *omega, y=pctf, marker_color='black', name='SSB-CTF',))\n",
|
||||
"\n",
|
||||
" fig.add_trace(go.Scatter(x=semi_angle_corr*omega, y=pctf, marker_color='red', name=str(np.round(semi_angle_corr,2))+ ' mrad',))\n",
|
||||
" # fig.add_trace(go.Scatter(x=semi_angle_corr*omega, y=pctf, marker_color='black', name=str(np.round(semi_angle_corr,2))+ ' mrad',))\n",
|
||||
" fig.update_layout(legend=dict(orientation=\"h\",yanchor=\"bottom\",y=0.85,xanchor=\"right\",x=1))\n",
|
||||
" fig.update_xaxes(title_text=\"Spacial frequency (mrad)\", range=[0, 60], zeroline=False)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" elif ctf_xaxis == 'A':\n",
|
||||
" for x in apertury:\n",
|
||||
" d = wavelength/(np.sin(pty.get_angle_corr(x)*omega/1000))/100 # Full pitch size\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False, x=d, y=pctf, marker_color='gray', name='SSB-CTF',))\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False, x=d, y=pctf, marker_color='black', name='SSB-CTF',))\n",
|
||||
"\n",
|
||||
" # fig.add_trace(go.Scatter(x=xx, y=pctf, marker_color='red', name=str(np.round(semi_angle_corr,2))+ ' mrad',))\n",
|
||||
"\n",
|
||||
" # SmB6\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False,x=[4.13, 4.13], y=[0, 0.41], marker_color='green', ))\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False,x=[2.92, 2.92], y=[0, 0.41], marker_color='green', ))\n",
|
||||
" # fig.add_trace(go.Scatter(showlegend=False,x=[4.13, 4.13], y=[0, 0.41], marker_color='green', ))\n",
|
||||
" # fig.add_trace(go.Scatter(showlegend=False,x=[2.92, 2.92], y=[0, 0.41], marker_color='green', ))\n",
|
||||
"\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False,x=[1.71, 1.71], y=[0, 0.41], marker_color='blue', ))\n",
|
||||
" fig.add_trace(go.Scatter(showlegend=False,x=[1.21, 1.21], y=[0, 0.41], marker_color='blue', ))\n",
|
||||
" # fig.add_trace(go.Scatter(showlegend=False,x=[1.71, 1.71], y=[0, 0.41], marker_color='blue', ))\n",
|
||||
" # fig.add_trace(go.Scatter(showlegend=False,x=[1.21, 1.21], y=[0, 0.41], marker_color='blue', ))\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" fig.update_xaxes(title_text=\"Real space periode (Å)\", range=[-0.25, 2.5], type=\"log\", zeroline=False)\n",
|
||||
" fig.update_xaxes(title_text=\"Real space distance (Å)\", range=[-0.5, 2], type=\"log\", zeroline=False)\n",
|
||||
"\n",
|
||||
" # fig.update_layout(legend=dict(orientation=\"h\",yanchor=\"bottom\",y=0.75,xanchor=\"right\",x=1))\n",
|
||||
" # fig3.update_layout(title={'text': \"CTF\",'y':0.93, 'x':0.12,'xanchor': 'left','yanchor': 'top'})\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" fig.update_layout(plot_bgcolor='white')\n",
|
||||
" fig.update_xaxes(mirror=True,ticks='outside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig.update_yaxes(mirror=True,ticks='outside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig.update_yaxes(title_font_color=\"#000000\")\n",
|
||||
" fig.update_xaxes(title_font_color=\"#000000\")\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" fig.update_layout(width=5*graph_size, height=2.5*graph_size, margin = dict(l=1.3*graph_size, r=0.3*graph_size, t=0.0*graph_size, b=0.3*graph_size))\n",
|
||||
" fig.update_layout(width=5*graph_size, height=2.5*graph_size, margin = dict(l=1.3*graph_size, r=0.3*graph_size, t=0.0*graph_size, b=0.3*graph_size))\n",
|
||||
" \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
@ -792,7 +882,12 @@
|
||||
" # define constants\n",
|
||||
" mu = 0\n",
|
||||
" # sigma = beam_diameter/(2*np.sqrt(8*np.log(2))) # WHAT ABOUT THE FORMULA?????? SHOULD BE beam_diameter/np.sqrt(8*np.log(2)) IS BEAM DEFINED BY DIAMETER +-2 SIGMA?\n",
|
||||
" sigma = beam_diameter/4 # WHAT ABOUT THE FORMULA?????? SHOULD BE beam_diameter/np.sqrt(8*np.log(2)) IS BEAM DEFINED BY DIAMETER +-2 SIGMA?\n",
|
||||
" \n",
|
||||
" \n",
|
||||
" # sigma = beam_diameter/4 # WHAT ABOUT THE FORMULA?????? SHOULD BE beam_diameter/np.sqrt(8*np.log(2)) IS BEAM DEFINED BY DIAMETER +-2 SIGMA?\n",
|
||||
" sigma = beam_diameter/1.66 # WHAT ABOUT THE FORMULA?????? SHOULD BE beam_diameter/np.sqrt(8*np.log(2)) IS BEAM DEFINED BY DIAMETER +-2 SIGMA?\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" # sigma = beam_diameter/np.sqrt(8*np.log(2)) # WHAT ABOUT THE FORMULA?????? SHOULD BE beam_diameter/np.sqrt(8*np.log(2)) IS BEAM DEFINED BY DIAMETER +-2 SIGMA?\n",
|
||||
" # sigma = beam_diameter/np.sqrt(8*np.log(2)) # WHAT ABOUT THE FORMULA?????? SHOULD BE beam_diameter/np.sqrt(8*np.log(2)) IS BEAM DEFINED BY DIAMETER +-2 SIGMA?\n",
|
||||
" x = np.linspace(-4*step_size_corr, 4*step_size_corr, 300)\n",
|
||||
@ -841,10 +936,10 @@
|
||||
" name = 'Beam ⌀ is too big'\n",
|
||||
"\n",
|
||||
" fig7 = go.Figure() \n",
|
||||
" fig7.add_shape(type=\"rect\",xref=\"x\", yref=\"y\",opacity=0.3, fillcolor=\"LightSkyBlue\", x0=probe_window/4, y0=probe_window/4, x1=3*probe_window/4, y1=3*probe_window/4,line_color=\"LightSkyBlue\")\n",
|
||||
" fig7.add_shape(type=\"rect\",xref=\"x\", yref=\"y\",opacity=0.3, fillcolor=\"#6F6F6F\", x0=probe_window/4, y0=probe_window/4, x1=3*probe_window/4, y1=3*probe_window/4,line_color=\"#6F6F6F\")\n",
|
||||
" # fig7.add_trace(go.Scatter(x=np.array(probe_window/2), y=np.array(probe_window/2), showlegend=False, marker_color=\"LightSkyBlue\"))\n",
|
||||
" fig7.add_trace(go.Scatter(x=np.array(probe_window/2), y=np.array(probe_window/2), name=name, showlegend=True, marker_color=color, opacity = 0))\n",
|
||||
" fig7.add_annotation(x=probe_window/2, y=3*probe_window/4, text=\"<b>Usable area </b>\", showarrow=False, yshift=-15)\n",
|
||||
" # fig7.add_annotation(x=probe_window/2, y=3*probe_window/4, text=\"<b>Usable area </b>\", font_color=\"#FFFFFF\", showarrow=False, yshift=-15)\n",
|
||||
"\n",
|
||||
" fig7.add_shape(type=\"circle\",xref=\"x\", yref=\"y\", opacity=0.2, fillcolor=color, x0=probe_window/2-beam_diameter/8, y0=probe_window/2-beam_diameter/8, x1=probe_window/2+beam_diameter/8, y1=probe_window/2+beam_diameter/8, line_color=color,)\n",
|
||||
" fig7.add_shape(type=\"circle\",xref=\"x\", yref=\"y\", opacity=0.2, fillcolor=color, x0=probe_window/2-beam_diameter/6, y0=probe_window/2-beam_diameter/6, x1=probe_window/2+beam_diameter/6, y1=probe_window/2+beam_diameter/6, line_color=color,)\n",
|
||||
@ -860,9 +955,22 @@
|
||||
" fig7.update_yaxes(range=[0, probe_window], tickvals = [0, probe_window/4, probe_window/2, 3*probe_window/4, probe_window], showticklabels=False,)\n",
|
||||
" fig7.update_yaxes(range=[0, probe_window], showticklabels=False,)\n",
|
||||
" fig7.update_yaxes(range=[0, probe_window], showticklabels=False,)\n",
|
||||
" fig7.update_layout(legend=dict(orientation=\"v\",yanchor=\"bottom\",y=1.0,xanchor=\"right\",x=1))\n",
|
||||
" fig7.update_layout(legend=dict(orientation=\"v\",yanchor=\"bottom\",y=1.01,xanchor=\"right\",x=1))\n",
|
||||
" fig7.update_layout(title={'text': \"Probe\",'y':0.975, 'x':0.10,'xanchor': 'left','yanchor': 'top'})\n",
|
||||
" fig7.update_layout(width=4*graph_size, height=4*graph_size, margin =dict(l=0.3*graph_size, r=0.3*graph_size, t=0.1*graph_size, b=0)) \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" fig7.update_layout(plot_bgcolor='white')\n",
|
||||
" fig7.update_xaxes(mirror=True,ticks='outside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig7.update_yaxes(mirror=True,ticks='inside',showline=True,linecolor='black',gridcolor='lightgrey')\n",
|
||||
" fig7.update_yaxes(title_font_color=\"#000000\")\n",
|
||||
" fig7.update_xaxes(title_font_color=\"#000000\")\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" ### CAMERA LENGTH TABLE ########################################## \n",
|
||||
" dictionary = {}\n",
|
||||
@ -942,27 +1050,6 @@
|
||||
"gui = interactive_output(ptycho_interact, {\"beam\": beam, \"aperture\": aperture,\"aperture_res\": aperture_res,\"aperture_res2\": aperture_res2, \"probe\": probe, \"cl\": cl, \"matrix\": matrix, \"defocus\": defocus, \"mag\": mag, \"camera\": camera,\n",
|
||||
" \"binning\": binning, \"dwell_time\": dwell_time, \"restriction\": restriction, \"method\": method, \"ctf_xaxis\": ctf_xaxis, \"graph_size\": graph_size,\"chart\": chart,\"cl_checks\": cl_checks}) \n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"id": "5a35407f-11fd-4214-940e-ecdf089cf2c2",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"2.3548200450309493"
|
||||
]
|
||||
},
|
||||
"execution_count": 17,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"np.sqrt(8*np.log(2)) "
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
@ -30,14 +30,14 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 63,
|
||||
"execution_count": 2,
|
||||
"id": "7937f054-fcd0-4e67-a20f-7696f5903a94",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"application/vnd.jupyter.widget-view+json": {
|
||||
"model_id": "37e8ce59eb9944afa169fd1047ace692",
|
||||
"model_id": "f8683e70ab02477197f30353e4947f23",
|
||||
"version_major": 2,
|
||||
"version_minor": 0
|
||||
},
|
||||
@ -89,7 +89,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 62,
|
||||
"execution_count": 1,
|
||||
"id": "3ca2e3fd-4e61-4d4c-9d58-4b72f16999dc",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -519,18 +519,12 @@
|
||||
" \n",
|
||||
"\n",
|
||||
" ### SAMPLE PLANE ##########################################\n",
|
||||
" yyy = np.append(np.linspace(0,overlap,100), 200)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" fov_show = 0.5 # nm\n",
|
||||
" beam_pos = 5\n",
|
||||
" wid = np.linspace(-beam_pos/2,beam_pos/2,beam_pos+1) * step_size_corr\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" fov_show = 0.5 # nm\n",
|
||||
" yyy = np.append(np.linspace(0,overlap,100), 200)\n",
|
||||
" \n",
|
||||
" fig5 = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
|
||||
"\n",
|
||||
" print(step_size_corr)\n",
|
||||
" fig5.update_xaxes(title_text=\"Sample plane (nm)\", range=[-fov_show/2, fov_show/2], showgrid=False, zeroline=False)\n",
|
||||
" fig5.update_yaxes(range=[-fov_show/2, fov_show/2],showgrid=False, showticklabels=False)\n",
|
||||
" \n",
|
||||
|
Reference in New Issue
Block a user