-
Notifications
You must be signed in to change notification settings - Fork 13
/
README.html
269 lines (217 loc) · 21.5 KB
/
README.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
<!--
Automatically generated HTML file from DocOnce source
(https://github.com/hplgit/doconce/)
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="DocOnce: https://github.com/hplgit/doconce/" />
<meta name="description" content="Understanding Optics with Python">
<title>Understanding Optics with Python</title>
<!-- Bootstrap style: bootstrap -->
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<!-- not necessary
<link href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
-->
<style type="text/css">
/* Add scrollbar to dropdown menus in bootstrap navigation bar */
.dropdown-menu {
height: auto;
max-height: 400px;
overflow-x: hidden;
}
/* Adds an invisible element before each target to offset for the navigation
bar */
.anchor::before {
content:"";
display:block;
height:50px; /* fixed header height for style bootstrap */
margin:-50px 0 0; /* negative fixed header height */
}
</style>
</head>
<!-- tocinfo
{'highest level': 1,
'sections': [('Table of contents',
1,
'table_of_contents',
'table_of_contents'),
('About the book', 1, None, '___sec0'),
('Feature', 2, None, '___sec1'),
('Summary', 2, None, '___sec2'),
('Python Programs', 1, None, '___sec3'),
('Installing Anaconda Distribution', 2, None, '___sec4'),
('Programs Folder', 2, None, '___sec5')]}
end of tocinfo -->
<body>
<!-- Bootstrap navigation bar -->
<div class="navbar navbar-default navbar-fixed-top">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="README.html">Understanding Optics with Python</a>
</div>
<div class="navbar-collapse collapse navbar-responsive-collapse">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Contents <b class="caret"></b></a>
<ul class="dropdown-menu">
<!-- navigation toc: --> <li><a href="#table_of_contents" style="font-size: 80%;"><b>Table of contents</b></a></li>
<!-- navigation toc: --> <li><a href="#___sec0" style="font-size: 80%;"><b>About the book</b></a></li>
<!-- navigation toc: --> <li><a href="#___sec1" style="font-size: 80%;"> Feature</a></li>
<!-- navigation toc: --> <li><a href="#___sec2" style="font-size: 80%;"> Summary</a></li>
<!-- navigation toc: --> <li><a href="#___sec3" style="font-size: 80%;"><b>Python Programs</b></a></li>
<!-- navigation toc: --> <li><a href="#___sec4" style="font-size: 80%;"> Installing Anaconda Distribution</a></li>
<!-- navigation toc: --> <li><a href="#___sec5" style="font-size: 80%;"> Programs Folder</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div> <!-- end of navigation bar -->
<div class="container">
<p> </p><p> </p><p> </p> <!-- add vertical space -->
<!-- ------------------- main content ---------------------- -->
<div class="jumbotron">
<center><h1>Understanding Optics with Python</h1></center> <!-- document title -->
<p>
<!-- author(s): Vasudevan Lakshminarayanan, Hassen Ghalila, Ahmed Ammar, and L. Srinivasa Varadharajan -->
<center>
<b>Vasudevan Lakshminarayanan</b>
</center>
<center>
<b>Hassen Ghalila</b>
</center>
<center>
<b>Ahmed Ammar</b>
</center>
<center>
<b>L. Srinivasa Varadharajan</b>
</center>
<p>
<!-- institution(s) -->
<br>
<p>
<center><h4>Jan 27, 2018</h4></center> <!-- date -->
<br>
<p>
</div> <!-- end jumbotron -->
<h1 id="table_of_contents">Table of contents</h2>
<p>
<a href="#___sec0"> About the book </a><br>
<a href="#___sec1"> Feature </a><br>
<a href="#___sec2"> Summary </a><br>
<a href="#___sec3"> Python Programs </a><br>
<a href="#___sec4"> Installing Anaconda Distribution </a><br>
<a href="#___sec5"> Programs Folder </a><br>
</p>
<p>
<!-- !split -->
<h1 id="___sec0" class="anchor">About the book </h1>
<h2 id="___sec1" class="anchor">Feature </h2>
<ul>
<li> Discusses most standard topics of traditional physical and geometrical optics through Python and PyQt5</li>
<li> Provides visualizations and in-depth descriptions of Python’s programming language and simulations.</li>
<li> Includes simulated laboratories where students are provided a "hands-on" exploration of Python software.</li>
<li> Coding and programming featured within the text are available for download on the book’s corresponding website.</li>
</ul>
<!-- !split -->
<h2 id="___sec2" class="anchor">Summary </h2>
<p>
This book introduces optics through the use of simulations, namely, Python. Students, researchers, and engineers will be able to use Python simulations to better understand the basic concepts of optics and professors will be able to provide immediate visualizations of the complex ideas. Readers will learn programming in Python. Throughout this book, a simulated laboratory will be provided where students can learn by "hands on" exploration. The text will cover most of the standard topics of traditional optics.
<p>
<br /><br /><center><p><img src="figures/cover.jpg" align="bottom" width=500></p></center><br /><br />
<p>
<!-- !split -->
<h1 id="___sec3" class="anchor">Python Programs </h1>
<h2 id="___sec4" class="anchor">Installing Anaconda Distribution </h2>
<a href="https://www.anaconda.com/distribution/" target="_self">Anaconda Distribution</a> is an open source, easy-to-install high performance Python and R distribution, with the <a href="https://conda.io/docs/user-guide/overview.html" target="_self">conda</a> package and environment manager and collection of 1,000+ open source packages with free community support.
<p>
For information on installing Anacond on Linux and using the graphical installers for Windows or macOS, see the instructions for <a href="https://docs.anaconda.com/anaconda/install/" target="_self">installing Anaconda</a>.
<p>
Once you have installed the distribution, you can launch Spyder IDE from the <a href="https://docs.anaconda.com/anaconda/navigator/getting-started" target="_self">Anaconda Navigator</a> and start using all Python programs within the book.
<br /><br /><center><p><img src="figures/navigator-home-1-6.png" align="bottom" width=800></p></center><br /><br />
<h2 id="___sec5" class="anchor">Programs Folder </h2>
The folder contains Python programs for the eleven chapters of the book and they are classified into three main parts: Python and PyQt5, Geometrical Optics and Physical Optics.
<p>
<br /><br /><center><p><img src="figures/Programs3.jpg" align="bottom" width=800></p></center><br /><br />
<p>
The table below shows all the listings introduced in the book and the path to the corresponding Python scripts in the folder:
<p>
<div class="row">
<div class="col-xs-12">
<table class="table table-striped table-hover table-condensed">
<thead>
<tr><td align="left"><b> Listing </b></td> <td align="left"><b> Path </b></td> </tr>
</thead>
<tbody>
<tr><td align="left"> Listing 1.1 </td> <td align="left"> <a href="Programs/chapter1/function.py" target="_self">Programs/chapter1/function.py</a> </td> </tr>
<tr><td align="left"> Listing 1.2 </td> <td align="left"> <a href="Programs/chapter1/function2.py" target="_self">Programs/chapter1/function2.py</a> </td> </tr>
<tr><td align="left"> Listing 1.3 </td> <td align="left"> <a href="Programs/chapter1/class.py" target="_self">Programs/chapter1/class.py</a> </td> </tr>
<tr><td align="left"> Listing 1.4 </td> <td align="left"> <a href="Programs/chapter1/BasicPlot1.py" target="_self">Programs/chapter1/BasicPlot1.py</a> </td> </tr>
<tr><td align="left"> Listing 1.5 </td> <td align="left"> <a href="Programs/chapter1/subplots.py" target="_self">Programs/chapter1/subplots.py</a> </td> </tr>
<tr><td align="left"> Listing 1.6 </td> <td align="left"> <a href="Programs/chapter1/LineandMarkerStyles.py" target="_self">Programs/chapter1/LineandMarkerStyles.py</a> </td> </tr>
<tr><td align="left"> Listing 1.7 </td> <td align="left"> <a href="Programs/chapter1/Bessel.py" target="_self">Programs/chapter1/Bessel.py</a> </td> </tr>
<tr><td align="left"> Listing 1.8 </td> <td align="left"> <a href="Programs/chapter1/Fresnel.py" target="_self">Programs/chapter1/Fresnel.py</a> </td> </tr>
<tr><td align="left"> Listing 1.9 </td> <td align="left"> <a href="Programs/chapter1/Interpolation.py" target="_self">Programs/chapter1/Interpolation.py</a> </td> </tr>
<tr><td align="left"> Listing 2.1 </td> <td align="left"> <a href="Programs/chapter2/PyQt5Window.py" target="_self">Programs/chapter2/PyQt5Window.py</a> </td> </tr>
<tr><td align="left"> Listing 2.2 </td> <td align="left"> <a href="Programs/chapter2/AppStructure.py" target="_self">Programs/chapter2/AppStructure.py</a> </td> </tr>
<tr><td align="left"> Listing 2.3 </td> <td align="left"> <a href="Programs/chapter2/Labels.py" target="_self">Programs/chapter2/Labels.py</a> </td> </tr>
<tr><td align="left"> Listing 2.4 </td> <td align="left"> <a href="Programs/chapter2/Buttons.py" target="_self">Programs/chapter2/Buttons.py</a> </td> </tr>
<tr><td align="left"> Listing 2.5 </td> <td align="left"> <a href="Programs/chapter2/SpinBox.py" target="_self">Programs/chapter2/SpinBox.py</a> </td> </tr>
<tr><td align="left"> Listing 2.6 </td> <td align="left"> <a href="Programs/chapter2/Slider.py" target="_self">Programs/chapter2/Slider.py</a> </td> </tr>
<tr><td align="left"> Listing 2.7 </td> <td align="left"> <a href="Programs/chapter2/MyApp/mplwidget.py" target="_self">Programs/chapter2/MyApp/mplwidget.py</a> </td> </tr>
<tr><td align="left"> Listing 2.8 </td> <td align="left"> <a href="Programs/chapter2/MyApp/UI2PYconverter.py" target="_self">Programs/chapter2/MyApp/UI2PYconverter.py</a> </td> </tr>
<tr><td align="left"> Listing 2.9 </td> <td align="left"> <a href="Programs/chapter2/MyApp/UiMainApp.py" target="_self">Programs/chapter2/MyApp/UiMainApp.py</a> </td> </tr>
<tr><td align="left"> Listing 2.10 </td> <td align="left"> <a href="Programs/chapter2/MyApp/MainApp.py" target="_self">Programs/chapter2/MyApp/MainApp.py</a> </td> </tr>
<tr><td align="left"> Listing 3.1 </td> <td align="left"> <a href="Programs/chapter3/Listing_3-1.py" target="_self">Programs/chapter3/Listing_3-1.py</a> </td> </tr>
<tr><td align="left"> Listing 3.2 </td> <td align="left"> <a href="Programs/chapter3/Listing_3-2.py" target="_self">Programs/chapter3/Listing_3-2.py</a> </td> </tr>
<tr><td align="left"> Listing 3.3 </td> <td align="left"> <a href="Programs/chapter3/Listing_3-3.py" target="_self">Programs/chapter3/Listing_3-3.py</a> </td> </tr>
<tr><td align="left"> Listing 4.1 </td> <td align="left"> <a href="Programs/chapter4/Listing_4-1.py" target="_self">Programs/chapter4/Listing_4-1.py</a> </td> </tr>
<tr><td align="left"> GUI </td> <td align="left"> <a href="Programs/chapter4/Code_Photometry_Conversion_GUI.py" target="_self">Programs/chapter4/Code_Photometry_Conversion_GUI.py</a> </td> </tr>
<tr><td align="left"> Listing 5.1 </td> <td align="left"> <a href="Programs/chapter5/Listing_5-1.py" target="_self">Programs/chapter5/Listing_5-1.py</a> </td> </tr>
<tr><td align="left"> Listing 6.1 </td> <td align="left"> <a href="Programs/chapter6/Listing_6-1.py" target="_self">Programs/chapter6/Listing_6-1.py</a> </td> </tr>
<tr><td align="left"> Listing 8.1 </td> <td align="left"> <a href="Programs/chapter8/Listing_8-1.py" target="_self">Programs/chapter8/Listing_8-1.py</a> </td> </tr>
<tr><td align="left"> Listing 8.2 </td> <td align="left"> <a href="Programs/chapter8/Listing_8-2.py" target="_self">Programs/chapter8/Listing_8-2.py</a> </td> </tr>
<tr><td align="left"> Listing 8.3 </td> <td align="left"> <a href="Programs/chapter8/Listing_8-3.py" target="_self">Programs/chapter8/Listing_8-3.py</a> </td> </tr>
<tr><td align="left"> Listings 9.1,9.2 and 9.3 </td> <td align="left"> <a href="Programs/chapter9/Superposition/superpose.py" target="_self">Programs/chapter9/Superposition/superpose.py</a> </td> </tr>
<tr><td align="left"> Listings 9.4 and 9.5 </td> <td align="left"> <a href="Programs/chapter9/Beat/Beat.py" target="_self">Programs/chapter9/Beat/Beat.py</a> </td> </tr>
<tr><td align="left"> Listing 9.6 </td> <td align="left"> <a href="Programs/chapter9/Fresnel_Mirror/FresnelMirror.py" target="_self">Programs/chapter9/Fresnel_Mirror/FresnelMirror.py</a> </td> </tr>
<tr><td align="left"> Listings 9.7 and 9.8 </td> <td align="left"> <a href="Programs/chapter9/Fresnel_Biprism/FresnelBiprism.py" target="_self">Programs/chapter9/Fresnel_Biprism/FresnelBiprism.py</a> </td> </tr>
<tr><td align="left"> Listings 9.9 and 9.10 </td> <td align="left"> <a href="Programs/chapter9/Billet_BiLens/BilletBiLens.py" target="_self">Programs/chapter9/Billet_BiLens/BilletBiLens.py</a> </td> </tr>
<tr><td align="left"> Listings 9.11, 9.12 and 9.13 </td> <td align="left"> <a href="Programs/chapter9/ParallelFaces/ParallelFaces.py" target="_self">Programs/chapter9/ParallelFaces/ParallelFaces.py</a> </td> </tr>
<tr><td align="left"> Listings 9.14 and 9.15 </td> <td align="left"> <a href="Programs/chapter9/NewtonRings/NewtonRings.py" target="_self">Programs/chapter9/NewtonRings/NewtonRings.py</a> </td> </tr>
<tr><td align="left"> Listings 9.16 and 9.17 </td> <td align="left"> <a href="Programs/chapter9/PrismaticSlab/PrismaticSlab.py" target="_self">Programs/chapter9/PrismaticSlab/PrismaticSlab.py</a> </td> </tr>
<tr><td align="left"> Listings 9.18 and 9.19 </td> <td align="left"> <a href="Programs/chapter9/MachZehnder/MachZehnder.py" target="_self">Programs/chapter9/MachZehnder/MachZehnder.py</a> </td> </tr>
<tr><td align="left"> Listings 9.20 and 9.21 </td> <td align="left"> <a href="Programs/chapter9/FabryPerot/FabryPerot.py" target="_self">Programs/chapter9/FabryPerot/FabryPerot.py</a> </td> </tr>
<tr><td align="left"> Listings 10.1 and 10.2 </td> <td align="left"> <a href="Programs/chapter10/SpatialCoherence/Double_Mirror/DoubleMirror.py" target="_self">Programs/chapter10/SpatialCoherence/Double_Mirror/DoubleMirror.py</a> </td> </tr>
<tr><td align="left"> Listings 10.3 and 10.4 </td> <td align="left"> <a href="Programs/chapter10/SpatialCoherence/Lloyd_Mirror/LloydMirror.py" target="_self">Programs/chapter10/SpatialCoherence/Lloyd_Mirror/LloydMirror.py</a> </td> </tr>
<tr><td align="left"> Listings 10.5, 10.6 and 10.7 </td> <td align="left"> <a href="Programs/chapter10/TemporalCoherence/Spectr_Cannele/FresnelMirror.py" target="_self">Programs/chapter10/TemporalCoherence/Spectr_Cannele/FresnelMirror.py</a> </td> </tr>
<tr><td align="left"> Listings 10.8 and 10.9 </td> <td align="left"> <a href="Programs/chapter10/TemporalCoherence/Gaussian/Gaussian.py" target="_self">Programs/chapter10/TemporalCoherence/Gaussian/Gaussian.py</a> </td> </tr>
<tr><td align="left"> Listing 11.1 </td> <td align="left"> <a href="Programs/chapter11/rect2D/rect2D.py" target="_self">Programs/chapter11/rect2D/rect2D.py</a> </td> </tr>
<tr><td align="left"> Listing 11.2 </td> <td align="left"> <a href="Programs/chapter11/Sinc.py" target="_self">Programs/chapter11/Sinc.py</a> </td> </tr>
<tr><td align="left"> Listing 11.3 </td> <td align="left"> <a href="Programs/chapter11/rect1D/rect1D.py" target="_self">Programs/chapter11/rect1D/rect1D.py</a> </td> </tr>
<tr><td align="left"> Listing 11.4 </td> <td align="left"> <a href="Programs/chapter11/DoubleSlit1D/DoubleSlit1D.py" target="_self">Programs/chapter11/DoubleSlit1D/DoubleSlit1D.py</a> </td> </tr>
<tr><td align="left"> Listing 11.5 </td> <td align="left"> <a href="Programs/chapter11/NSlit1D/NSlit1D.py" target="_self">Programs/chapter11/NSlit1D/NSlit1D.py</a> </td> </tr>
<tr><td align="left"> Listing 11.6 </td> <td align="left"> <a href="Programs/chapter11/Rayleigh2D/rayleigh2D.py" target="_self">Programs/chapter11/Rayleigh2D/rayleigh2D.py</a> </td> </tr>
<tr><td align="left"> Listings 11.7, 11.8, 11.9 and 11.10 </td> <td align="left"> <a href="Programs/chapter11/Fresnel_Spiral/Fresnel.py" target="_self">Programs/chapter11/Fresnel_Spiral/Fresnel.py</a> </td> </tr>
<tr><td align="left"> Listings 11.11 and 11.12 </td> <td align="left"> <a href="Programs/chapter11/FresnelEdge/FresnelEdge.py" target="_self">Programs/chapter11/FresnelEdge/FresnelEdge.py</a> </td> </tr>
</tbody>
</table>
</div> <!-- col-xs-12 -->
</div> <!-- cell row -->
<!-- ------------------- end of main content --------------- -->
</div> <!-- end container -->
<!-- include javascript, jQuery *first* -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<!-- Bootstrap footer
<footer>
<a href="http://..."><img width="250" align=right src="http://..."></a>
</footer>
-->
</body>
</html>