-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
443 lines (428 loc) · 19.8 KB
/
index.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
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
<!DOCTYPE html>
<html>
<head>
<title>GSoC 2020 with TARDIS - Jaladh Singhal</title>
<meta charset="utf-8" />
<meta name="viewport"
content="width=device-width, initial-scale=1, user-scalable=no" />
<!-- Website Preview -->
<meta name="twitter:card" content="summary">
<meta property="og:title" content="GSoC'20 with TARDIS">
<meta property="og:description"
content="Final report of my work during Google Summer of Code 2020 at TARDIS ">
<meta property="og:image"
content="https://raw.githubusercontent.com/jaladh-singhal/gsoc20/master/images/supernova-header.jpg">
<meta property="og:url" content="https://jaladh-singhal.github.io/gsoc20">
<link rel="stylesheet" href="assets/css/main.css" />
<noscript>
<link rel="stylesheet" href="assets/css/noscript.css" />
</noscript>
</head>
<body class="homepage is-preload">
<div id="page-wrapper">
<!-- Header -->
<div id="header">
<!-- Inner -->
<div class="inner">
<header>
<h1><a href="index.html" id="logo">GSoC'20 with TARDIS</a></h1>
<hr />
<p>
Final report of my work during Google Summer of Code 2020 at
<a href="https://github.com/tardis-sn">TARDIS</a>
</p>
</header>
</div>
<section class="scroll-down">
<a href="#banner" class="icon solid fa-angle-double-down scrolly"></a>
</section>
<!-- Nav -->
<nav id="nav">
<ul>
<li><a href="#overview">Overview</a></li>
<li>
<a href="#work-product">Work Product</a>
<ul>
<li><a href="#shell-info-widget">Shell Info Widget</a></li>
<li><a href="#line-info-widget">Line Info Widget</a></li>
<li><a href="#demo-of-widgets-in-docs">Demonstration of Widgets in
Docs</a></li>
<li><a href="#other-contributions">Other Contributions</a></li>
</ul>
</li>
<li><a href="#whats-next">What's Next</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</nav>
</div>
<!-- Banner -->
<section id="banner">
<article id="main" class="container special">
<header>
<p>
And GSoC’20 has finally ended! Last three months of my project
gave me an incredible learning experience. Not only did I improve
my software development skills but I also got to know about how
Astrophysics Research happens. Following is the report of the work
I did in these Summers at TARDIS.
</p>
</header>
<div class="image fit">
<img src="images/gsoc_logo.png" alt="GSoC Logo" />
</div>
</article>
</section>
<!-- Overview -->
<div id="overview" class="wrapper style2">
<article class="container special">
<header>
<h2>Overview</h2>
</header>
<p>
<a href="https://github.com/tardis-sn">TARDIS</a> is an Open Source
Astrophysics Org which provides Python packages for rapid spectral
modeling of <a
href="https://en.wikipedia.org/wiki/Supernova">Supernovae</a>. In
simpler terms, it allows
researchers to quickly simulate the exploding Stars. In GSoC’20,
<a
href="https://summerofcode.withgoogle.com/archive/2020/projects/5967738750631936/">my
project</a> was to build a GUI that makes it easier
for researchers to explore the data of a simulated Supernova model,
without knowing its internal data structure. This GUI needed to be
implemented as several Jupyter widgets that can run within Notebook
by simply passing the model to a tardis constructor. Hence most of
my work revolved around developing a
<a
href="https://github.com/tardis-sn/tardis/tree/master/tardis/widgets">widgets
subpackage</a> within <a
href="https://github.com/tardis-sn/tardis">tardis</a> that
allows users to construct a widget of their interest for the model
they’re working with.
</p>
<p>
In this report, you can find the code of all the widgets I developed
in the last three months of GSoC. But if you’re interested to know
about the cool Astrophysics concepts behind my work, I encourage you
to check out my blog series:
</p>
<ul>
<li>
<a
href="https://medium.com/@jaladh_singhal/gsoc20-episode-1-interactions-with-supernovae-f2e033beb5fc?source=friends_link&sk=5889f15e8a4789ae8afc2d1a9a9b299f">GSoC’20
Episode-1: Interactions with Supernovae!</a> -
Importance of studying Supernovae; chemical elements present in
shells of Supernova ejecta and how they leave their fingerprint in
the observed light spectrum.
</li>
<li>
<a
href="https://medium.com/@jaladh_singhal/gsoc20-episode-2-unpacking-the-data-hidden-in-light-91cd7159b443?source=friends_link&sk=018d2a97564390b9e85f6f45fbcee5c4">GSoC’20
Episode-2: Unpacking the Data hidden in Light</a>
- Different interactions experienced by the light packets escaping
a Supernova, and how TARDIS constructs spectrum from the
information packets have.
</li>
<li>
<a
href="https://medium.com/@jaladh_singhal/gsoc20-episode-3-discerning-elements-from-spectral-lines-58ef616952bc?source=friends_link&sk=62501861ff8285631d23416f39c736c0">GSoC’20
Episode-3: Reading between the [Spectral] Lines</a>
- Discerning chemical species from the features in Supernova
spectrum, Doppler shift of spectral lines due to moving ejecta,
and matching of the modelled and observed spectra.
</li>
</ul>
</article>
</div>
<!-- Work Product -->
<div id="work-product" class="wrapper style1">
<article class="container special">
<header>
<h2>Work Product</h2>
</header>
<p>
The project deliverables I produced during GSoC’20 can be summarized
as follows:
</p>
<section id="shell-info-widget">
<h3>Shell Info Widget</h3>
<p>
This widget allows users to explore the chemical abundances in
different shells (computational partitions) of the modeled Supernova
ejecta. It consists of four interlinked tables - clicking on any row
in a table, updates the abundance data in the table(s) right of it.
</p>
<div class="image centered">
<img src="images/shell_info_widget_demo.gif"
alt="Demo of Shell Info Widget" />
</div>
<ul>
<li>
Developed a demo of Shell Info Widget as a notebook where I
developed its prototype and then progressively refined to make it
ready for putting it in the module - <a
href="https://github.com/tardis-sn/tardis/pull/1146"> #1146 </a>
</li>
<li>
Created a subpackage for widgets and wrote an object-oriented
interface (as a module) for constructing and displaying Shell Info
Widget, along with the unit tests and documentation - <a
href="https://github.com/tardis-sn/tardis/pull/1166"> #1166 </a>
</li>
</ul>
</section>
<section id="line-info-widget">
<h3>Line Info Widget</h3>
<p>
This widget allows users to explore the <a
href="https://en.wikipedia.org/wiki/Spectral_line">atomic
lines</a>
responsible for producing features in the simulated spectrum. You
can select any wavelength range in the spectrum interactively to
display a table giving the fraction of light packets that
experienced their last interaction with each species. Using toggle
buttons, you can specify whether to filter the selected range by the
emitted or absorbed wavelengths of packets. Clicking on a row in the
species table shows packet counts for each last line interaction of
the selected species, which can be grouped in several ways.
</p>
<div class="image centered">
<img src="images/line_info_widget_demo.gif"
alt="Demo of Line Info Widget" />
</div>
<ul>
<li>
Developed a demo of Line Info Widget in a notebook where I did
several experimentations to make it a fully functional widget (as
above) by iteratively adding features to a basic prototype - <a
href="https://github.com/tardis-sn/tardis/pull/1187"> #1187 </a>
</li>
<li>
Modified legacy implementation of TARDIS <a
href="https://github.com/tardis-sn/tardisanalysis/blob/ff79f155d2a8a9073fba237f3b75dfe31ca9aa31/docu/instructions.md#tardis_kromer_plotpy">Kromer
Plot</a> (spectrum as a stacked area chart showing different
packets’ interactions it is composed of) so that it can be used in
Line Info Widget instead of a simple spectrum. I made sure it can
be constructed directly from a simulation object or a saved
simulation model (HDF) and has data of both real and virtual
packets. But before I could convert its plotting method
(implemented in matplotlib) to interactive <a
href="https://plotly.com/python/">plotly</a>,
we realized it’s overly complicated & outdated and needs to be
fixed first. So we decided to put it on hold until we release Line
Info Widget with the simple spectrum, to manage the GSoC deadline
- <a href="https://github.com/tardis-sn/tardis/pull/1241"> #1241
</a>
</li>
<li>
Created an object-oriented interface for generating Line Info
Widget as a module within widgets subpackage, along with unit
tests and code documentation. Also made several restructuring
changes in widgets subpackage to improve it - <a
href="https://github.com/tardis-sn/tardis/pull/1264"> #1264 </a>
</li>
</ul>
</section>
<section id="demo-of-widgets-in-docs">
<h3>Demonstration of Widgets in Docs</h3>
<p>
The essential part of any GUI is to let users know not only how to
use it but also how to make the best use of it. For this, I created
a <strong>TARDIS Widgets</strong> section in TARDIS docs wherein I
included a tutorial notebook to generate widgets so that anyone can
quickly try it out themselves. Besides I included a page to explain
in detail what each widget does and the helpful features they offer.
Thanks to the excellent review by my mentors, I made sure that the
explanation of physics involved in using the widgets is accurate.
You can access this at <a
href="https://tardis-sn.github.io/tardis/using/gui">
TARDIS Widgets </a> section in our docs, as soon as <a
href="https://github.com/tardis-sn/tardis/pull/1280"> #1280 </a>
is merged.
</p>
</section>
<section id="other-contributions">
<h3>Other Contributions</h3>
<p>
Besides working on the widgets (my main project), I came across
several other things that needed to be done for making TARDIS
better:
</p>
<ul>
<li>
Applied code style <a
href="https://black.readthedocs.io/en/stable/">Black</a>
throughout the TARDIS to make code more readable - <a
href="https://github.com/tardis-sn/tardis/pull/1201"> #1201
</a>, <a href="https://github.com/tardis-sn/tardis/pull/1213">
#1213 </a>
</li>
<li>
Added contributor guidelines to help new contributors - <a
href="https://github.com/tardis-sn/tardis/pull/1237"> #1237 </a>
</li>
<li>
Fixed how virtual packet properties are saved in HDF by
determining the virtual packet logging status at run-time instead
of saving it in configuration file - <a
href="https://github.com/tardis-sn/tardis/pull/1254"> #1254 </a>
</li>
<li>
Git-ignored several files that gets generated while developing
TARDIS - <a href="https://github.com/tardis-sn/tardis/pull/1139">
#1139 </a>, <a
href="https://github.com/tardis-sn/tardis/pull/1151"> #1159 </a>
</li>
<li>
Fixed kromer plotter producing double plots when used in notebook
- <a href="https://github.com/tardis-sn/tardisanalysis/pull/34">
tardisanalysis#34 </a>
</li>
<li>
Made plot size in quickstart notebook of TARDIS docs larger - <a
href="https://github.com/tardis-sn/tardis/pull/1149"> #1149 </a>
</li>
<li>
Opened multiple issues for the overall improvement of TARDIS which
can be accessed from <a
href="https://github.com/issues?q=author%3Ajaladh-singhal+created%3A2020-04-01..2020-08-31+org%3Atardis-sn+is%3Aissue">
this list </a>
</li>
</ul>
</section>
</article>
</div>
<div id="whats-next" class="wrapper style1">
<article class="container special">
<header>
<h2>What's Next</h2>
</header>
<p>
The end of GSoC does not mean my contributions to TARDIS will end. It
has always been my pleasure to hear it from the community that my work
is making their research easier. And learning about the involved
Astrophysics concepts while developing software, has always inspired
me to continue contributing.
</p>
<p>
There are lots of ideas we have on our <a
href="https://github.com/tardis-sn/tardis/projects/5">project
board</a> about the next steps. The priority tasks that I will
likely work on next are:
</p>
<ul>
<li>
Adding Kromer Plot to Line Info Widget i.e. finishing PR#1241
</li>
<li>
Creating a widget that shows iterations of a TARDIS run as a
progress bar, along with relevant info like model convergence, etc.
</li>
</ul>
</article>
</div>
<div id="conclusion" class="wrapper style1">
<article class="container special">
<header>
<h2>Conclusion</h2>
</header>
<p>
TARDIS now has a new widgets subpackage which makes it easier for
Astrophysics researchers to interactively explore the data of a
modeled Supernova, within their Jupyter notebooks. Currently, I have
developed widgets for <a href="#shell-info-widget">Shell Info</a> and
<a href="#line-info-widget">Line Info</a> but there are several other
areas where interactive visualization and widgets can help. Besides
the simplicity of exploration, another advantage of having widgets and
visualization is that they showcase the capabilities of TARDIS and
help new users to understand them better because now they can interact
with it!
</p>
<p>
Like <a href="https://jaladh-singhal.github.io/gsoc19/">last year</a>,
this year also GSoC has helped me evolve by
giving me knowledge about multiple fields as well as by allowing me to
connect with a group of awesome people. I’m privileged to get a chance
to work under such great mentors - <a
href="https://github.com/wkerzendorf">Wolfgang Kerzendorf</a>, <a
href="https://github.com/ycamacho">Yssa Camacho</a>, <a
href="https://github.com/MarkMageeAstro">Mark Magee</a>, <a
href="https://github.com/jamesgillanders">James Gillanders</a>, <a
href="https://github.com/marxwillia">Marc Williamson</a>, <a
href="https://github.com/harpolea">Alice Harpole</a>, and several
other TARDIS members - who played a significant role in helping me
complete this project. It is always fun to work with Open Source
communities of your interest and thanks to Google Summer of Code that
I got opportunity to work with TARDIS!
</p>
</article>
</div>
<!-- Footer -->
<div id="footer">
<div class="container">
<div class="row">
<div class="col-12">
<!-- Contact -->
<section class="contact">
<header>
<h3>Have anything to say?</h3>
</header>
<p>
Want to ask something or know more about me, find me here:
</p>
<ul class="icons">
<li>
<a href="mailto:[email protected]"
class="icon solid fa-envelope"><span
class="label">E-Mail</span></a>
</li>
<li>
<a href="https://github.com/jaladh-singhal"
class="icon brands fa-github"><span
class="label">GitHub</span></a>
</li>
<li>
<a href="https://linkedin.com/in/jaladh-singhal"
class="icon brands fa-linkedin-in"><span
class="label">Linkedin</span></a>
</li>
<li>
<a href="https://twitter.com/curiousPolygon"
class="icon brands fa-twitter">
<span class="label">Twitter</span>
</a>
</li>
</ul>
</section>
<!-- Copyright -->
<div class="copyright">
<ul class="menu">
<li>
Image used in page header is a composite image of SN 1054 made
using data from three of NASA's observatories. (X-Ray:
NASA/CXC/J.Hester (ASU); Optical: NASA/ESA/J.Hester &
A.Loll (ASU); Infrared: NASA/JPL-Caltech/R.Gehrz (Univ. Minn.)
via AP)
</li>
</ul>
<br>
Made with ❤️ using
<a href="https://html5up.net/helios">Helios</a> theme from
<a href="http://html5up.net">HTML5 UP</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.dropotron.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>