kartikmandar commited on
Commit
f0e5acf
1 Parent(s): 79a213a

add loading functionality

Browse files
assets/icons/svg.py CHANGED
@@ -7,4 +7,3 @@ HOME_ICON_SVG = """
7
  LOAD_DATA_ICON_SVG = """
8
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-file-upload"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M14 3v4a1 1 0 0 0 1 1h4" /><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z" /><path d="M12 11v6" /><path d="M9.5 13.5l2.5 -2.5l2.5 2.5" /></svg>
9
  """
10
-
 
7
  LOAD_DATA_ICON_SVG = """
8
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-file-upload"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M14 3v4a1 1 0 0 0 1 1h4" /><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z" /><path d="M12 11v6" /><path d="M9.5 13.5l2.5 -2.5l2.5 2.5" /></svg>
9
  """
 
explorer.py CHANGED
@@ -1,5 +1,13 @@
1
  import panel as pn
2
- from modules.Home.HomeContent import create_home_bokeh_plots_container, create_home_footer, create_home_header, create_home_help_box, create_home_main_area, create_home_output_box, create_home_warning_box
 
 
 
 
 
 
 
 
3
  from utils.sidebar import create_sidebar
4
 
5
 
@@ -12,26 +20,24 @@ busy_indicator = pn.indicators.BooleanStatus(
12
  )
13
 
14
  # Create the header
15
- header = create_home_header()
16
 
17
  # Create the main area
18
- main_area = create_home_main_area()
19
 
20
  # Create the output box
21
- output_box = create_home_output_box()
22
 
23
  # Create the warning box
24
- warning_box = create_home_warning_box()
25
-
26
  # Create the plots container
27
- bokeh_plots = create_home_bokeh_plots_container()
28
 
29
  # Create the help box
30
- help_box = create_home_help_box()
31
 
32
  # Create the footer
33
- footer = create_home_footer()
34
-
35
  # Containers for changing the layouts dynamically
36
  header_container = pn.Column(header)
37
  main_area_container = pn.Column(main_area)
@@ -41,7 +47,14 @@ bokeh_plots_container = pn.Column(bokeh_plots)
41
  help_box_container = pn.Column(help_box)
42
  footer_container = pn.Column(footer)
43
 
44
- sidebar = create_sidebar(main_area=main_area_container, header=header_container, footer=footer_container, output_box=output_box_container, warning_box=warning_box_container, help_box=help_box_container)
 
 
 
 
 
 
 
45
 
46
 
47
  # Create a FastGridTemplate layout
@@ -69,8 +82,8 @@ layout = pn.template.FastGridTemplate(
69
  save_layout=True,
70
  # Styling parameter
71
  theme="default",
72
- theme_toggle=True,
73
- # background_color="#FFFFFF", # The toggle button choses it according to the theme
74
  neutral_color="#D3D3D3",
75
  accent_base_color="#5ead61",
76
  header_background="#000000",
 
1
  import panel as pn
2
+ from modules.Home.HomeContent import (
3
+ home_header,
4
+ home_main_area,
5
+ home_output_box,
6
+ home_warning_box,
7
+ home_plots_area,
8
+ home_help_area,
9
+ home_footer
10
+ )
11
  from utils.sidebar import create_sidebar
12
 
13
 
 
20
  )
21
 
22
  # Create the header
23
+ header = home_header
24
 
25
  # Create the main area
26
+ main_area = home_main_area
27
 
28
  # Create the output box
29
+ output_box = home_output_box
30
 
31
  # Create the warning box
32
+ warning_box = home_warning_box
 
33
  # Create the plots container
34
+ bokeh_plots = home_plots_area
35
 
36
  # Create the help box
37
+ help_box = home_help_area
38
 
39
  # Create the footer
40
+ footer = home_footer
 
41
  # Containers for changing the layouts dynamically
42
  header_container = pn.Column(header)
43
  main_area_container = pn.Column(main_area)
 
47
  help_box_container = pn.Column(help_box)
48
  footer_container = pn.Column(footer)
49
 
50
+ sidebar = create_sidebar(
51
+ main_area=main_area_container,
52
+ header=header_container,
53
+ footer=footer_container,
54
+ output_box=output_box_container,
55
+ warning_box=warning_box_container,
56
+ help_box=help_box_container,
57
+ )
58
 
59
 
60
  # Create a FastGridTemplate layout
 
82
  save_layout=True,
83
  # Styling parameter
84
  theme="default",
85
+ theme_toggle=False,
86
+ background_color="#FFFFFF",
87
  neutral_color="#D3D3D3",
88
  accent_base_color="#5ead61",
89
  header_background="#000000",
files/data/LightCurve_bexvar.fits ADDED
files/data/bexvar_results_band_0.npy ADDED
Binary file (44.5 kB). View file
 
files/data/lcurveA.fits ADDED
files/data/lcurve_new.fits ADDED
files/data/monol_testA.evt ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T OBSERVER= 'Edwige Bubble' TELESCOP= 'NuSTAR ' / Telescope (mission) name INSTRUME= 'FPMA ' / Instrument name END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 12 / length of dimension 1 NAXIS2 = 1000 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 2 / number of table fields TTYPE1 = 'TIME ' TFORM1 = '1D ' TTYPE2 = 'PI ' TFORM2 = '1J ' EXTNAME = 'EVENTS ' / extension name OBSERVER= 'Edwige Bubble' TELESCOP= 'NuSTAR ' / Telescope (mission) name INSTRUME= 'FPMA ' / Instrument name OBS_ID = '00000000001' / Observation ID TARG_ID = 0 / Target ID OBJECT = 'Fake X-1' / Name of observed object RA_OBJ = 0.0 / [deg] R.A. Object DEC_OBJ = 0.0 / [deg] Dec Object RA_NOM = 0.0 / Right Ascension used for barycenter correctionsDEC_NOM = 0.0 / Declination used for barycenter corrections RA_PNT = 0.0 / [deg] RA pointing DEC_PNT = 0.0 / [deg] Dec pointing PA_PNT = 0.0 / [deg] Position angle (roll) EQUINOX = 2000.0 / Equinox of celestial coord system RADECSYS= 'FK5 ' / Coordinate Reference System TASSIGN = 'SATELLITE' / Time assigned by onboard clock TIMESYS = 'TDB ' / All times in this file are TDB MJDREFI = 55197 / TDB time reference; Modified Julian Day (int) MJDREFF = 0.00076601852 / TDB time reference; Modified Julian Day (frac) TIMEREF = 'SOLARSYSTEM' / Times are pathlength-corrected to barycenter CLOCKAPP= F / TRUE if timestamps corrected by gnd sware TIMEUNIT= 's ' / unit for time keywords TSTART = 80000000.0 / Elapsed seconds since MJDREF at start of file TSTOP = 80001025.0 / Elapsed seconds since MJDREF at end of file LIVETIME= 1025.0 / On-source time TIMEZERO= 0.0 / Time Zero COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy aCOMMENT nd Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H MJDREFF = 7.6601852000000E-04 MJDREFI = 55197 COMMENT MJDREFI+MJDREFF = epoch of Jan 1, 2010, in TT time system. PLEPHEM = 'JPL-DE200' HISTORY File modified by user 'meo' with fv on 2021-01-22T10:29:45 HISTORY File modified by user 'meo' with fv on 2021-05-04T18:37:20 END A���:�A���02A��#k6�A�� (a��A��
2
+ �1�A��=Q�sA��HU��;A��K[A�5A��O� ��A��S
3
+ aO�A��T���A��X1�A��^�J�A��^x�w2A��c��n�A��g���A��h� �BA��l[GQA��rc;��A��|CO �A��|l�jA�Ђ�U�A�Ѓ;��7A�Є�}��A�Їg�7oA�Ћr/��A�И�F�A�Й�H�,A�Щ�@�QA�ЮĐF
4
+ A�ж�@BA���!���A��ӭ���A��� ��)A����v�>A������A���;3��A���#(Z�A���o��GA����9�A��(8PgA��
5
+ CA��\�I�A��\o�RLA��]���A��a�"��A��b�$��A��d�dA��h�v_�A��k��]A��k6S�=A��n��A��p�s��A��s����A��{8��FA��|2���A�тDx��A�у�NV�A�ъ���UA�ы�"@�A�ь�
6
+ A��P��FA��S��+7A��X���A��Y����A��Z
7
+
8
+ ^'G�A�� �rLA��
9
+ �A��;�pA�� C��A��&�?�A��+BsA��-��A��-�!��A��2� �1A��<�rC:A��A�ͬ�A��B.�c�A��Q��2A��U���A��X3;O'A��[ .Z�A��[�@iZA��]6�&A��^m4 A��b���A��b�4v�A��d���A��h�@��A��~Ä�vA�ӂס��A�Ӄ�M��A�Ӈ@���A�ӑ&�Q�A�ӕ�)�_A�ӗ��<A�Ә��_A�Ә�l�uA�Ӧ��A�ӧn��A�ӮYN&rA�Ӱ�`A�Ӽ�T��A��¨Z"�A���8�Y.A��˦)@+A���]�A����� A��ٕjC�A��⇝��A���
10
+ �7A���j���A�����VA����oR#A����TA���C�D:A���v*�A����*��A���XҴ�A���Cf:�A���m�^�A������A��
11
+ j���A�����A����XA������A��y��&A����v�A���k
12
+ /��A��
13
+ <���A���6`�A��B'A����T�A�����jA��r�MA��I��A��!���+A��(�}�4A��,!6&�A��-�<�CA��/���A��@@��A��AUf�A��I]�.,A��L��wA��O��|kA��S'��A��We?��A��W}" A��`�SA�A��a=M��A��d�|�A��f�+.ZA��p!���A��s�J�
14
+ ���A���W�
15
+ A�����.@A������A��TWH*A��
16
+ kc�QA��
17
+ A��D��AA��E
18
+ 5sA��EU���A��J�p�SA��P�2� A��R��X�A��WQ]k*A��W�X�zA��Y ��A��Z��OA��\���A��\�
19
+ iDA��a�h;A��b5��,A��d�q��A��hWT6�A��z�ƽ�A��|��8�A�څb6��A�ڋ���/A�ڐ�RAJA�ڒ�ƌ�A�ړ7��A�ڙ���A�ڡ����A�ڪ��
20
+ �A�ڱ�dahA�ڵ��A�ں����A�ڻF`��A���<�z�A���G|r�A�������A��СݻrA���#/�A���9���A���ٳ�pA����?�A���r)Q�A����e�A���C��A������A�������A���~�e�A����f�A��/}��A���|@/A��f<��A��yQkA��D� A��-��5A��b�u�A���X{A��#�h�A��$QxpA��'Z�A��308hA��52l��A��B9�t�A��BY@aA��H ���A��H%�L�A��I�Z��A��O��G�A��S/O bA��Yc0�A��]ᣇ�A��c�rwA��eg� �A��iRSyfA��kAԑAA��m���FA��rt��qA��w/.7A��w1��A��w�t0A��y�+%�A�ۉ�(� A�ۏ!`��A�ۏ����A�ۙ:��A�ۚV�(�A�۟cw��A�ۥ�kB�A�ۦ�+FA�۩�W TA�۱~� A�۴���A�۴�4(�A�۵p���A�ۼC)=XA�۾;��SA����>B�A����P�A��Ç&��A��Ģw��A��� F�JA����2��A���Ot��A��́*[VA��Ҩ��pA���}���A���I�m#A��ߑ�(�A���j=�hA���t��A���E��A������A�����|NA������A����vA���P[A�� Q�A�A���̩�A���=y+A���TA���2�A��%?��?A��'��A��'+�
21
+ A��t��E`A��uZ�A��z�Q<A��}�svA���#V�A�܎�u�A�܎줖�A�܏���A�ܕ0��A�ܕ9Z��A�ܜ�l��A�ܡ#��A�ܡя��A�ܢZ�A�ܦ�r$�A�ܨL��A�ܫx�r A�ܭ�Ӄ�A�ܰ��rA�ܼQ���A�ܿ�+��A�����o�A���Ѻ+A���8�"A���C�WA��� �'A����(��A���Q!8,A�����A��� X_dA���� /A���H�A���4[��A����IA�����;A�����AA���}���A���f�A�����f0A����ri�A���ZԦ]A�����$0A����R�A��=H?SA������A���:,A�� ��CA���V��A��׫M�A��#�U�A��'t��A��̔<A��$& �\A��-���A��3� ROA��6MP��A��I{,��A��I��<1A��M"&t�A��Nv8woA��N����A��N�U��A��Rd A��[{�Q�A��^��@�A��_Q�BIA��cV�z�A��j\�A��l��iA��l�B�A��m�L�cA��n �4�A��r`l-PA��u6wEHA��wݹk�A��|��A�݀���A�݆]#��A�݆�s��A�݈V�� A�݊M�A�݋gG A�ݎ��u�A�ݐF��A�ݕ��BA�ݚ�c5A�ݜ6��A�ݤ�o_A�ݩ0���A�ݪ�`]A�ݽ�$�A��Ľ٪*A�����^A�������A���/�b�A���͕�A����ۓ�A���fO�A������A���M}.
22
+ A����*�%A���>
files/data/monol_testA_calib.evt ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T OBSERVER= 'Edwige Bubble' TELESCOP= 'NuSTAR ' / Telescope (mission) name INSTRUME= 'FPMA ' / Instrument name END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 16 / length of dimension 1 NAXIS2 = 1000 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 3 / number of table fields EXTNAME = 'EVENTS ' / extension name OBSERVER= 'Edwige Bubble' TELESCOP= 'NuSTAR ' / Telescope (mission) name INSTRUME= 'FPMA ' / Instrument name OBS_ID = '00000000001' / Observation ID TARG_ID = 0 / Target ID OBJECT = 'Fake X-1' / Name of observed object RA_OBJ = 0.0 / [deg] R.A. Object DEC_OBJ = 0.0 / [deg] Dec Object RA_NOM = 0.0 / Right Ascension used for barycenter correctionsDEC_NOM = 0.0 / Declination used for barycenter corrections RA_PNT = 0.0 / [deg] RA pointing DEC_PNT = 0.0 / [deg] Dec pointing PA_PNT = 0.0 / [deg] Position angle (roll) EQUINOX = 2000.0 / Equinox of celestial coord system RADECSYS= 'FK5 ' / Coordinate Reference System TASSIGN = 'SATELLITE' / Time assigned by onboard clock TIMESYS = 'TDB ' / All times in this file are TDB MJDREFI = 55197 / TDB time reference; Modified Julian Day (int) MJDREFF = 0.00076601852 / TDB time reference; Modified Julian Day (frac) TIMEREF = 'SOLARSYSTEM' / Times are pathlength-corrected to barycenter CLOCKAPP= F / TRUE if timestamps corrected by gnd sware TIMEUNIT= 's ' / unit for time keywords TSTART = 80000000.0 / Elapsed seconds since MJDREF at start of file TSTOP = 80001025.0 / Elapsed seconds since MJDREF at end of file LIVETIME= 1025.0 / On-source time TIMEZERO= 0.0 / Time Zero COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy aCOMMENT nd Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H MJDREFF = 7.6601852000000E-04 MJDREFI = 55197 COMMENT MJDREFI+MJDREFF = epoch of Jan 1, 2010, in TT time system. PLEPHEM = 'JPL-DE200' TTYPE1 = 'TIME ' TFORM1 = '1D ' TTYPE2 = 'PI ' TFORM2 = '1J ' TTYPE3 = 'ENERGY ' TFORM3 = 'E ' HISTORY File modified by user 'meo' with fv on 2021-01-22T10:29:45 HISTORY File modified by user 'meo' with fv on 2021-05-04T18:37:20 END A���:�A��A���02B(�A��#k6�AA�� (a��A�RA��
2
+ �\A��)s�B�A�A��+" �A��\A��/~R�|@��A��7����A�=qA��8�d)�A3�
3
+ A��9
4
+ �1�A:�HA��=Q�sA�p�A��HU��;@��RA��K[A�5Ao\)A��O� ��A�\A��S
5
+ aO�BG�A��T���A�{A��X1�AZ=qA��^�J�A�{A��^x�w2Aȣ�A��c��n�A6ffA��g���B*{A��h� �B@��A��l[GQA\A��rc;��B)��A��|CO �A�A��|l�jB=qA�Ђ�U�B��A�Ѓ;��7A�=qA�Є�}��A��
6
+ A�Їg�7oB
7
+ =A�Ћr/��A9��A�И�F�A�A�Й�H�,@��A�Щ�@�QA���A�ЮĐF
8
+ A��
9
+ A�ж�@B@��A���!���A�
10
+ =A��ӭ���B"ffA��� ��)@��A����v�>Au�A������A
11
+ >A���;3��A\)A���#(Z�A��HA���o��GB��A����9�A��A��(8PgBA��
12
+ C@���A��\�I�B (�A��\o�RLA~{A��]���AC�
13
+ A��a�"��B,��A��b�$��A�G�A��d�d@^�RA��h�v_�B-�A��k��]@�=qA��k6S�=Atz�A��n��B%G�A��p�s��A��A��s����B��A��{8��F@���A��|2���B�A�тDx��B��A�у�NV�A�33A�ъ���UB�HA�ы�"@�A�\A�ь�
14
+ A�ѵ�»�B#
15
+ =A�Ѷ
16
+ A���'��8Aʏ\A���AH�AG�A��ڒ��A0A��ޑ&AeA�����H@�\)A���{�yf@�A����\A�{A���4(%@:�HA���]{�!@z�HA���.�#X@��
17
+ A���UB G�A���3z0Al(�A����5yB��A�������A�z�A���X��wBQ�A���Ё�y@�{A��v�!AO\)A�����8AqG�A�� 8�e?AuA���Ը0B ��A��]'�A�\)A���1M�A�ffA�����A=p�A��!DaA�A��!���A%�A��!�j��BA��"c&G8B=qA��#At�A��A��$r�,Ai��A��'��`OA�A��0a��A33A��6W���BA��7�n��A���A��94�A�A��A��A͗�A�A��Ip&{D@�=qA��I�A��A.�RA��K��YqA���A��Osm�
18
+ B�HA��P��F@���A��S��+7Ap��A��X���A<(�A��Y����A�A��Z
19
+
20
+ A��y���B*ffA��zCg�"@}p�A�Ҁ��~�A�{A�Ҋ�5AAw
21
+ =A�Ҏ���AK�A�Ґ'�e�BA�ґ���
22
+ =A���oX/|@��A��ظ(6HAϮA����C�8AqG�A�����~�A�\)A��޻<H�AQ�A���I��.A�\)A��쬈,)B �
23
+ A���oA`A���^�@c�
24
+ A������AQ�A����z��A���A����4 �A��A����Z��A-p�A���3(B��A��
25
+ ^'G�B�A�� �rL@\(�A��
26
+ �A�z�A��;�pA\��A�� C��A�G�A��&�?�@+�A��+BsAP��A��-��A��\A��-�!��B%p�A��2� �1B
27
+ A��[�@iZA��A��]6�&B \)A��^m4 @xQ�A��b���A�z�A��b�4v�A���A��d���A�A��h�@��A�A��~Ä�v@�=qA�ӂס��B&{A�Ӄ�M��A9��A�Ӈ@���BQ�A�ӑ&�Q�A�A�ӕ�)�_A��A�ӗ��<B�HA�Ә��_A�
28
+ =A�Ә�l�uA�(�A�Ӧ��@333A�ӧn��BA�ӮYN&rB�A�Ӱ�`@0��A�Ӽ�T��B,��A��¨Z"�Bz�A���8�Y.B ��A��˦)@+Ah��A���]�A�\)A����� A��A��ٕjC�B'33A��⇝��A�=qA���
29
+ �7A�=qA���j���A(��A�����V@�G�A����oR#@�A����TAӅA���C�D:A�33A���v*�A�z�A����*��Bz�A���XҴ�B33A���Cf:�A�{A���m�^�B*�HA������B*�\A��
30
+ j���A�ffA�����B-p�A����XA���A������AH��A��y��&B \)A����v�B�A���k
31
+ A��'a_�A$z�A��+��C�A=p�A��0��iG@�{A��=��A�{A��>�e/AǮA��?��YB�A��F�e[�AB�\A��M;b�aB��A��OGB B
32
+ =A��Q����A�\A��T�!L{A�A��W5υ�AEA��Y���%@��\A��Z ��A�p�A��[(zj@��HA��\�b�OA��A��]IbS�AFffA��]���@�
33
+ =A��d8X�9BffA��f��;As33A��f��V�A���A��nl�':Ar�\A��r���AW�A��sJ�A�A��vbQV�A33A���Ű�B{A�ԁ�3l�B=qA�ԃa�VRA��HA�ԅ"�"vB(�A�Ԇ��B�A�ԋ�$�A��HA�ԋ���@(��A�Ԍ�m��A��\A�Ԍ팒�A��RA�ԕl��@s33A�ԡ0<Y�B�A�Ԥn�"B{A�ԪJryB��A�ԫ�ɊAZ=qA�ԯ�Ĝ�A
34
+ >A�ԳF"��A���A�ԸIV
35
+ A���P�dBG�A��ǸχI@���A��˖�<)@��A���E��xA��A��ڰo~F@���A��ܵ���A��HA��݂��A�
36
+ A���Z�A���A����oB
37
+ =A���M��3@�z�A���vQ@c�
38
+ A����KoM@�A������A�\)A��� ��G@�{A����c[A�A�� ��V4A�G�A���(�B"�\A���*@k�A��<�s�A�ffA���.�.Aj�HA�� :f�B&�\A��`n�A ��A��" r3%A�z�A��)U�N�Bz�A��-~pk�A�G�A��0�C��B33A��2/mMs@�ffA��6+e}BG�A��=��:@k�A��B�S��A�ffA��L 0��B�A��L���h@�Q�A��P���A��\A��Q��#j@��HA��R"�
39
+ A��V�tQB G�A��`Ӏ9�AEA��c��FA�
40
+ =A��d�kB�
41
+ A��e@f@aG�A��f��"Ac33A��g�[3B
42
+ =A�Ո��-@O\)A�Ռ��i�A�
43
+ =A�Վjŏ�B#33A�ՏJ�=�B$z�A�Ւ��rA�33A�Ֆ�ӷ�A5A�՜��b?@��
44
+ A�՟k,h�A
45
+ �HA�ժ7�?@��
46
+ A�ի��V�A�ffA�կ��A���A�յ����B$A����_'dBG�A��Ɔ�[�A���A��ʝ��B*�RA���QP��B ��A�����w4B
47
+ A�֓t��B*�HA�֓��m@޸RA�֘r+WB33A�֛1J
48
+ =A�֡���A\(�A�֣C8R�A
49
+ �HA�֬��Z�B$z�A�֭qmCAxQ�A�ֲ-/��AA�ֳ��]A�z�A�ֵ����A���A����S��A���A��ʘA�%@��\A�����@Y��A�����K�B#
50
+ =A���Ow�'A��A���5k+�A'�A������+B (�A���5��@W
51
+ =A�����A��HA�����'BAw�A���d�AA\(�A���EaEAy��A������B�A��Xp��A>�RA��>��A ��A��
52
+ /��A!�A��
53
+ <���BQ�A���6`�A�\A��B'A�=qA����T�A1G�A�����jAڏ\A��r�MB��A��I��A'�A��!���+@�=pA��(�}�4B
54
+ =A��ٽ��ZB�A������]A�ffA���;���A���A���y�`B��A�����h�A�33A���=�AW�A��诈��A�\)A���PLeJ@��A���ټSN@�
55
+ =A����0�B=pA���Ҡ��A���A���x��A�=qA���pAP��A��CH��A���A�����B p�A��a3�Y@��A������AA�A��Mk��AE�A��R"tU@�A��"8�B��A��"/�Px@���A��$� ��A+�A��%����A��A��&�Gm�A��A��,;8�AY��A��43���AA��?F���A8��A��L�<��A��A��Pl8?A���A��T���B'33A��Y0���A�A��Y]z#A��
56
+ A��[VV��A�=qA��[��1 @E�A��[����B+�A��_���AQ�A��e�r�A��RA��iHw�A6ffA��pP�.A�\)A��pt%��B�HA�؊�ތ2Amp�A�؋\s�D@�=qA�؍:�&�A�z�A�ؖ!��%@��\A�ؚ@~��A�
57
+ =A�ؚh���A�A�آ��GB��A�ا�O��B{A�ح��b@У�A�ػKҋ�A�z�A�ػ����B!G�A�ؽ!gB��A���[�yBA����ķ�A�A���K3�A3�
58
+ A��ʷR��A�
59
+ =A����B��A�A����(gBAw�A���r��OA��A����A��A���$ ��B�A���2��GA�\)A���F���B�A���~�B-p�A���U���AJ�HA���
60
+ ���AH��A���W�
61
+ A��
62
+ A�����.@A��A������A���A��TWH*@���A��
63
+ kc�QB=qA��
64
+ =A��� -@���A���tSv@�=qA��)v@�=qA���rA���A��("i�A(Q�A��71�/@�\)A��=ܗ|�B�HA��?�� @xQ�A��D�\8�A<��A��H+�!dA��RA��K�?�]A�z�A��M�pqyB��A��O*��A�G�A��SRw=�@��HA��[�x�B=qA��^�Z�B��A��c,�c�A�
65
+ =A��hn/�B=pA��j5�|�A
66
+ A�ُm͍�A��A�ُ�`l:B�\A�ٗb��B+\)A�٤�K�A���A�٤����A�z�A�٥m��8B=qA�٦�+X�A�G�A�٫��K�A��A�٭6�b�A�RA�ٴ��B ��A�ٵ��R�A�G�A�ٶ�F�AA�ٿ+&+BQ�A�ٿnKL�B�\A���ܪs@fffA��̨pK�B(�A��ӎծBz�A��ڻ?'�B!G�A���(���AE�A���I��A��
67
+ A���%�AᙚA��� �]EAθRA�����A�=qA�����~"B
68
+ �RA����aB��A���|d��A��A�� ��lPB{A��'\��A�33A��gV�TAӅA����K�AJ�HA��a.=�A4z�A���v��A#33A���1�sA��A��&��@h��A���%�:B�\A��!�(�A��RA��$�[X@��
69
+ A��$u�c�B,Q�A��(l�GA�\)A��>��
70
+ A�
71
+ =A��D��AA�p�A��E
72
+ 5sA�p�A��EU���A�ffA��J�p�SB�\A��P�2� @E�A��R��X�A��A��WQ]k*B A��W�X�z@�\)A��Y ��A�G�A��Z��OB G�A��\���B*�\A��\�
73
+ iDAx��A��a�h;A˅A��b5��,@��A��d�q��A��A��hWT6�A�33A��z�ƽ�B Q�A��|��8�A �A�څb6��@�(�A�ڋ���/B ��A�ڐ�RAJB�A�ڒ�ƌ�AJ=qA�ړ7��B%p�A�ڙ���BA�ڡ����AL��A�ڪ��
74
+ �A�=qA�ڱ�dahA��A�ڵ��@s33A�ں����A�A�ڻF`��B��A���<�z�A��RA���G|r�B-G�A�������A�G�A��СݻrA�33A���#/�A�\)A���9���A5A���ٳ�pB33A����?�B%A���r)Q�B�A����e�A�z�A���C��B%�A������B-A�������A�{A���~�e�AL��A����f�A�
75
+ =A��/}��B ��A���|@/AǮA��f<��AG
76
+ =A��yQk@uA��D� AS33A��-��5@�
77
+ >A��b�u�AC33A���X{A�A��#�h�A�33A��$Qxp@:�HA��'Z�A��A��308hB�A��52l��A�Q�A��B9�t�A��\A��BY@aAZ�HA��H ���B(��A��H%�L�A�\A��I�Z��A\)A��O��G�A��A��S/O b@У�A��Yc0�BA��]ᣇ�B%�A��c�rwA޸RA��eg� �B+�A��iRSyfA�G�A��kAԑA@�ffA��m���F@���A��rt��qA��HA��w/.7Ap��A��w1��A���A��w�t0@���A��y�+%�B�A�ۉ�(� @=p�A�ۏ!`��AAG�A�ۏ����B!G�A�ۙ:��A��HA�ۚV�(�A�ffA�۟cw��A�A�ۥ�kB�AA�ۦ�+FB G�A�۩�W T@��RA�۱~� @xQ�A�۴���B'
78
+ =A�۴�4(�B"=qA�۵p���B'33A�ۼC)=XA��HA�۾;��SB�\A����>B�B!�A����P�A!�A��Ç&��A��A��Ģw��A�(�A��� F�JB�A����2��A�\)A���Ot��A���A��́*[VB
79
+ =A��Ҩ��pA�z�A���}���@�Q�A���I�m#A��
80
+ A��ߑ�(�A�G�A���j=�hB�A���t��A�G�A���E��A@A������B
81
+ >A�����|NBA������B)�A����vB(�A���P[A�A�� Q�A�A�=qA���̩�AffA���=y+@�=pA���TB��A���2�A>�RA��%?��?A���A��'��AW�A��'+�
82
+ ffA��N��7BG�A��XJ�qM@�A��a�@A��A��aŰ�A'
83
+ =A��a��w�A�(�A��c<J!BAw�A��o�'B �A��o���
84
+ B�HA��t��E`@�{A��uZ�A@��A��z�Q<B�HA��}�sv@L��A���#V�B�HA�܎�u�B(�A�܎줖�A�(�A�܏���B��A�ܕ0��B'�A�ܕ9Z��A�A�ܜ�l��A��\A�ܡ#��AN{A�ܡя��A��HA�ܢZ�@^�RA�ܦ�r$�B+
85
+ =A�ܨL��B#�A�ܫx�r Aa�A�ܭ�Ӄ�B)G�A�ܰ��r@��A�ܼQ���A陚A�ܿ�+��A�z�A�����o�A��A���Ѻ+@�=pA���8�"B
86
+ �RA���C�W@�A��� �'@��A����(��A��\A���Q!8,B Q�A�����A��A��� X_dBG�A���� /B ��A���H�A8Q�A���4[��ADz�A����IA�A�����;@��RA�����AA�p�A���}���B��A���f�B�A�����f0A�A����ri�A���A���ZԦ]@�=qA�����$0Al(�A����R�AN{A��=H?SA�G�A������A��RA���:,Ai��A�� ��CBA���V��B(��A��׫M�A�A��#�U�A�33A��'t��A�z�A��̔<A^{A��$& �\@���A��-���B
87
+ >A��3� ROB�A��6MP��B��A��I{,��A�{A��I��<1A�Q�A��M"&t�B+\)A��Nv8woB
88
+ =A��N����A�33A��N�U��B A��Rd AU�A��[{�Q�AC33A��^��@�A
89
+ >A��_Q�BIA|(�A��cV�z�Az�A��j\�A��HA��l��iA�=qA��l�B�BA��m�L�c@��A��n �4�A��A��r`l-PA�=qA��u6wEHAϮA��wݹk�A�33A��|��A>�RA�݀���A��A�݆]#��A��A�݆�s��B-G�A�݈V�� B
90
+ ffA�݊M�B33A�݋gG B33A�ݎ��u�B(��A�ݐF��A�A�ݕ��BAw�A�ݚ�c5B
91
+ B�HA����*�%Ae�A���>
92
+ =A��R��A陚A��R�[Y�B-��A��^�+X�BA��b����A���A��i��\�A�
93
+ =A��t�W��A�A��y"v� ATz�A��z�Od�A�\A�ހ:˖�A��A�ޖ�7��BQ�A�ޗ
94
+ A�ޡĒ�EAy��A�ޢ23�ZA�p�A�ު�+s�AG�A�ެ[?�s@�ffA�ޱ-�bB��A�޷�?�A�=qA�޸��C@���A�޹�wAA^�RA��…! �A��A��ŝ��A*=qA����d�>Au�A��Ǭ�R�A�A���*ޓ�B-�A���m<q�A�\A��׹��@Tz�A��آ��@h��A���R��A
95
+ =A�����D�B#33A���Z ��A���A���B�A��\A�����)B �
96
+ A��𹞜�A�p�A��񈩤BQ�A������*A�{A����%w�A�A��`N=Atz�A�� �l��A�\)A���)��AJ=qA����XA���A��q�k�A��HA��![�YA�33A��#�'�UA��
97
+ A��$�5VzA�A��-��IA|(�A��;���A���A��;9K��A�{A��>�ߣ�Bp�A��?� 3�B&ffA��Q��A@�ffA��RJ!�'@��A��Vqɣ�B*�RA��V���A��A��]��B$��A��dn�eBp�A��d�T��A���A��k�w�B�A��p�ZA�B%�A��s���A�A��xc�7�A��A��{*C��A�ffA��|@��A�A��7:�B-�A�߄2���A��A�߉�o��A��A�ߊKxcB�A�ߍ�:A�33A�ߍ/���A�{A�ߏ�͸�AHQ�A�ߑ�Ӱ�B)G�A�ߒ;�IB��A�ߔ鱰�A8Q�A�ߕ��)B �
98
+ A�ߗ��AO\)A�ߛ@��ZA��A�ߝ����A�\)A�ߞ_��;@��RA�ߠax��A��HA�ߥ���B(�A�ߪ-P��A��
99
+ A�߬x��B#33A�߮BR�A�A�߷�+��AQ�A�߾x�+�A*�HA���b��4@�A���F +Ah��A���²�B&{A���Ο0A�A����U�-B z�A����b_A�
100
+ =A���� ��A�A����JA]p�A���Y�|@��A���ś�A��
files/data/monol_testA_calib_unsrt.evt ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T OBSERVER= 'Edwige Bubble' TELESCOP= 'NuSTAR ' / Telescope (mission) name INSTRUME= 'FPMA ' / Instrument name END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 16 / length of dimension 1 NAXIS2 = 1000 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 3 / number of table fields EXTNAME = 'EVENTS ' / extension name OBSERVER= 'Edwige Bubble' TELESCOP= 'NuSTAR ' / Telescope (mission) name INSTRUME= 'FPMA ' / Instrument name OBS_ID = '00000000001' / Observation ID TARG_ID = 0 / Target ID OBJECT = 'Fake X-1' / Name of observed object RA_OBJ = 0.0 / [deg] R.A. Object DEC_OBJ = 0.0 / [deg] Dec Object RA_NOM = 0.0 / Right Ascension used for barycenter correctionsDEC_NOM = 0.0 / Declination used for barycenter corrections RA_PNT = 0.0 / [deg] RA pointing DEC_PNT = 0.0 / [deg] Dec pointing PA_PNT = 0.0 / [deg] Position angle (roll) EQUINOX = 2000.0 / Equinox of celestial coord system RADECSYS= 'FK5 ' / Coordinate Reference System TASSIGN = 'SATELLITE' / Time assigned by onboard clock TIMESYS = 'TDB ' / All times in this file are TDB MJDREFI = 55197 / TDB time reference; Modified Julian Day (int) MJDREFF = 0.00076601852 / TDB time reference; Modified Julian Day (frac) TIMEREF = 'SOLARSYSTEM' / Times are pathlength-corrected to barycenter CLOCKAPP= F / TRUE if timestamps corrected by gnd sware TIMEUNIT= 's ' / unit for time keywords TSTART = 80000000.0 / Elapsed seconds since MJDREF at start of file TSTOP = 80001025.0 / Elapsed seconds since MJDREF at end of file LIVETIME= 1025.0 / On-source time TIMEZERO= 0.0 / Time Zero COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy aCOMMENT nd Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H MJDREFF = 7.6601852000000E-04 MJDREFI = 55197 COMMENT MJDREFI+MJDREFF = epoch of Jan 1, 2010, in TT time system. PLEPHEM = 'JPL-DE200' TTYPE1 = 'TIME ' TFORM1 = '1D ' TTYPE2 = 'PI ' TFORM2 = '1J ' TTYPE3 = 'ENERGY ' TFORM3 = 'E ' HISTORY File modified by user 'meo' with fv on 2021-01-22T10:29:45 HISTORY File modified by user 'meo' with fv on 2021-05-04T18:37:20 END A�٤�K�A���A�Մ�H�oB
2
+ =A����v�>Au�A��
3
+ =A���C�W@�A��A�ͬ�A�33A��B'A�=qA��![�YA�33A��N�z�AZ=qA��`Ӏ9�AEA����%w�A�A�ի��V�A�ffA������A�\)A��{*C��A�ffA�Ո��-@O\)A���]�A�\)A��M"&t�B+\)A��|��8�A �A��RJ!�'@��A��>-�c�B�A�����$0Al(�A��[(zj@��HA�ؚh���A�A��b5��,@��A��,O��AZ=qA��&���"Ac33A�߬x��B#33A��9
4
+ �1�A:�HA�� �rL@\(�A��3�ݴ�A�=qA�ֲ-/��AA��&��M{A�{A�ެ[?�s@�ffA��P��F@���A�ۉ�(� @=p�A��g���B*{A�כ�f�A�G�A��"8�B��A��񈩤BQ�A��T���A�{A��Ľ٪*B A��P�(��A�A����Z��A-p�A�����^A���A�ߒ;�IB��A��rc;��B)��A�ֵ����A���A���{ ."@}p�A�Ґ'�e�BA���(���AE�A�Й�H�,@��A��`n�A ��A��'+�
5
+ aO�BG�A�ӂס��B&{A���EaEAy��A���~�e�AL��A��E
6
+ 5sA�p�A��Vt�e@�z�A��[{�Q�AC33A�֪�^�#B
7
+ �HA��d���A�A�՜��b?@��
8
+ A��=,�$@J=qA��0�,DA���A���02B(�A���)��AJ=qA�����wB ��A�ܡ#��AN{A�ٗb��B+\)A���>
9
+ =A�ٿnKL�B�\A���:�A��A�ܕ0��B'�A��L�<��A��A���Ow�'A��A��[VV��A�=qA����oB
10
+ =A��#�iU�B'�
11
+ A��T�!L{A�A��OGB B
12
+ =A�݈V�� B
13
+ ffA���m�^�B*�HA��nl�':Ar�\A�۟cw��A�A���F���B�A��p�ZA�B%�A�ݚ�c5B
14
+ =A����?�B%A��I�Z��A\)A��m���F@���A�Ҹ��|B�A���o%W�A�=qA��dn�eBp�A���UB G�A��a�@A��A�ׄ=�]KBG�A����C�8AqG�A�ں����A�A�Їg�7oB
15
+ =A��ʘA�%@��\A���Q!8,B Q�A�ߔ鱰�A8Q�A�؋\s�D@�=qA�ڋ���/B ��A��ڰo~F@���A��f��"Ac33A����oR#@�A��/~R�|@��A���^�@c�
16
+ A��9|�82B
17
+ C@���A��2� �1B
18
+ A�����B"�\A�� 8�e?AuA���tSv@�=qA��R��A陚A�ԁ�3l�B=qA���j=�hB�A��"}AezB��A��b�u�AC33A���f�B�A�ӧn��BA���}���@�Q�A�����f0A�A����R�AN{A��$Qxp@:�HA�׋�-��B'�A����� A��A�ޢ23�ZA�p�A�ׇ�59A��HA���|@/AǮA��z�<C�A�A��%��=�AHQ�A��s=��@:�HA�ѭ���A���A��آ��@h��A���oX/|@��A�ћ ] Aa�A��(8PgBA��TWH*@���A��w�t0@���A��� �'@��A�����B p�A��;9K��A�{A���Ҡ��A���A�՟k,h�A
19
+ �HA��Z��OB G�A��XJ�qM@�A��b�4v�A���A��We?��A;�A��g(dAأ�A��˖�<)@��A�֧x �B%G�A�ޖ�7��BQ�A��\���B*�\A��cV�z�Az�A��-���B
20
+ >A��/}��B ��A��,���@fffA��J�p�SB�\A��\�I�B (�A��˦)@+Ah��A��S'��B%G�A��Ǭ�R�A�A��ܵ���A��HA���(�B"�\A����JA]p�A�Ӧ��@333A��K��YqA���A��hWT6�A�33A��|�H�B�A�݆�s��B-G�A���ZԦ]@�=qA���Ё�y@�{A��Q��A@�ffA�֣C8R�A
21
+ j���A�ffA����TAӅA��S/O b@У�A��8���O@�Q�A�Ֆ�ӷ�A5A��-�!��B%p�A��-Vֆ
22
+ B�HA��d�kB�
23
+ A�������A�{A�������A�z�A������+B (�A�ԸIV
24
+ =A�ۼC)=XA��HA�߾x�+�A*�HA�ѽ��B��A�܎줖�A�(�A�ػKҋ�A�z�A��rt��qA��HA���#(Z�A��HA��0��iG@�{A�Ժ�!�@c�
25
+ A�����AA�p�A��AUf�A<(�A��S��+7Ap��A��L���h@�Q�A����IA�A�����A��\A�ן�^.:Ar�\A��Pl8?A���A�����NAљ�A���q�$A�(�A�ֳ��]A�z�A������B-A��ږ[e5B
26
+ =A���͕�AK�A�ߠax��A��HA�Ҋ�5AAw
27
+ =A��HoD��A�z�A��>��
28
+ A�
29
+ =A��e@f@aG�A��a�A'
30
+ =A���d�AA\(�A��]���@�
31
+ =A�Ҧ�WmTAӅA���W�
32
+ A��
33
+ A���2��GA�\)A��ø��A���A�׽א�EAy��A����4 �A��A��+BsAP��A��|2���B�A�ܕ9Z��A�A��|l�jB=qA��6MP��B��A��y��&B \)A���'��8Aʏ\A��,;8�AY��A��d�|�B\)A��p�%��B33A�ӗ��<B�HA�Ւ��rA�33A���K3�A3�
34
+ A����ķ�A�A���ś�A��A�ל�6XAMp�A��L 0��B�A�ڡ����AL��A��4�GB��A�֘r+WB33A�ы�"@�A�\A������B)�A��Q��#j@��HA��b����A���A�ـ] @J=qA��43���AA��Y0���A�A����ő,B Q�A��WQ]k*B A�կ��A���A��N6�7 B
35
+ ffA�����w4B
36
+ =A��c<J!BAw�A��c��FA�
37
+ =A��I]�.,B Q�A���~�B-p�A��[ .Z�A3�
38
+ A�٫��K�A��A��9Vz6�A��A��QV4An�RA�ӑ&�Q�A�A��|��A>�RA�؍:�&�A�z�A��7����A�=qA���k
39
+ �A�=qA���H�A8Q�A��
40
+ kc�QB=qA��ߑ�(�A�G�A��h�@��A�A���R��A
41
+ =A�۵p���B'33A���3z0Al(�A���Q�0�B z�A�������A�z�A��o���
42
+ B�HA�ׅ}�F@���A��a�"��B,��A��H%�L�A�\A�ѭUp@�A{A��ǸχI@���A����T�A1G�A�ұ����B((�A��cҭ�xA��A���Ը0B ��A��pt%��B�HA����\A�{A�ݪ�`]B(�A���v*�A�z�A�ж�@B@��A��]�y�B��A�һ5���A�{A��y�+%�B�A��5 Y�@A��A��_Vt�B\)A��=��A�{A��@|���B-��A���r)Q�B�A����v�B�A����r\BA�ؚ@~��A�
43
+ =A�ٴ��B ��A��[����B+�A����b_A�
44
+ =A��ڒ��A0A�׭���A�\)A�ߑ�Ӱ�B)G�A���5k+�A'�A��s�J�
45
+ �RA���XҴ�B33A�Ҹn�"@J=qA���:,Ai��A�ۥ�kB�AA�тDx��B��A�ԳF"��A���A�݆]#��A��A��`N=Atz�A��s���A�A��쬈,)B �
46
+ A�ܿ�+��A�z�A��c�rwA޸RA��[�@iZA��A�����.@A��A����9�A��A�׮����BA��2/mMs@�ffA��kAԑA@�ffA����A��A��I��<1A�Q�A�ߞ_��;@��RA�յ����B$A��r`l-PA�=qA��� sBp�A��m�}|�A��A��]��B$��A���PLeJ@��A��G�)E9BffA�܏���B��A��94�A�A��A��M�pqyB��A�ڒ�ƌ�AJ=qA���4[��ADz�A�����D�B#33A�ѮD���A�
47
+ A�۱~� @xQ�A�ߍ�:A�33A��N�U��B A��#�h�A�33A������A��A��ŝ��A*=qA��Y]z#A��
48
+ A��5y>VA�(�A��(l�GA�\)A�֓t��B*�HA���ܪs@fffA��+���A�33A���c��B\)A��)U�N�Bz�A��́*[VB
49
+ =A��&���!B
50
+ �\A��s����B��A���V��B(��A�Ћr/��A9��A��|CO �A�A��W�X�z@�\)A�ұ��@J=qA��j5�|�A
51
+ ^'G�B�A���;3��A\)A��yQk@uA�׃���B!�A��ʝ��B*�RA�ٵ��R�A�G�A��k�w�B�A���X{A�A�ւ���A�\)A������A���A��3� ROB�A�����B-p�A��#�U�A�33A���v��A#33A��^��@�A
52
+ >A��D�\8�A<��A�ޗ
53
+ A��
54
+ =A��݂��A�
55
+ A����5yB��A��y"v� ATz�A��iRSyfA�G�A�ٶ�F�AA����U�-B z�A��ٽ��ZB�A�Ռ��i�A�
56
+ =A�ӮYN&rB�A��^x�w2Aȣ�A��[�x�B=qA���
57
+ �7A�=qA�� ���B(��A�Ҕ�'}�A��A��f�+.ZA��A���Z ��A���A���m��A=p�A��X3;O'A��A�֬��Z�B$z�A�� ��V4A�G�A��SRw=�@��HA�Ԍ�m��A��\A��
58
+ /��A!�A��]���AC�
59
+ A��6W���BA���C��B%�A��c,�c�A�
60
+ =A��~Ä�v@�=qA���̩�AffA�Ӽ�T��B,��A�� (a��A�RA��R"�
61
+ A��$�5VzA�A��0�C��B33A���=�AW�A����(gBAw�A��$u�c�B,Q�A��z�Q<B�HA�ќ:�P�A���A�ޘ�h`�A��A�Ӄ�M��A9��A���� ��A�A��0a��A33A��N,���A{A��l��iA�=qA�ُm͍�A��A��Ҩ��pA�z�A��hn/�B=pA������A��RA�����.=Atz�A���M��3@�z�A�ҫ8T��A���A�߷�+��AQ�A�������A��A���Ű�B{A��wݹk�A�33A���@LA���A�Ձ|Z�A��A��=H?SA�G�A��ޑ&AeA��Q�]��A���A��#�}��AFffA�߮BR�A�A��R"tU@�A��q�k�A��HA�ԋ���@(��A���4(%@:�HA��诈��A�\)A��Yc0�BA�� �l��A�\)A��X1�AZ=qA��uZ�A@��A����(��A��\A�ߏ�͸�AHQ�A���Z�A���A�����)B �
62
+ A��u6wEHAϮA�ք��|>A�z�A����5��B(�A������A
63
+ >A�ڵ��@s33A��S�@k�A�ߗ��AO\)A�����8AqG�A��?� 3�B&ffA�Ҏ���AK�A������B-p�A����e�A�z�A���]{�!@z�HA������B*�\A�ԪJryB��A���%�AᙚA��c��n�A6ffA���{�yf@�A�Ѷ
64
+ =A�ڙ���BA��gV�TAӅA��
65
+ �RA�ժ7�?@��
66
+ A��pd���AQ�A��h� �B@��A�۩�W T@��RA��_���AQ�A���=y+@�=pA�֒"��A{A��r�MB��A��\o�RLA~{A��l�B�BA��ظ(6HAϮA���3(B��A�֛1J
67
+ =A���ٳ�pB33A��k��]@�=qA���TB��A��}�sv@L��A��a3�Y@��A��,!6&�AH��A������*A�{A�֡���A\(�A��L����A��A��)v@�=qA�����K�B#
68
+ =A��uCf�hA�A��`�SA�B#�A��sJ�A�A��'Z�A��A���
69
+ ���AH��A��<�rC:B�\A���kjM@�A��$r�,Ai��A��" r3%A�z�A���x��A�=qA��6+e}BG�A���9���A5A��'a_�A$z�A�۴���B'
70
+ =A�у�NV�A�33A�٦�+X�A�G�A��D� AS33A�ߛ@��ZA��A�����~�A�\)A�Ђ�U�B��A��$�[X@��
71
+ A��W�6 A��HA����S��A���A�ܼQ���A陚A�ܫx�r Aa�A�����V@�G�A�آ��GB��A��%?��?A���A�ܭ�Ӄ�B)G�A��;�pA\��A��O��G�A��A�۴�4(�B"=qA��<�%��B(�A��a��w�A�(�A��71�/@�\)A��%����A��A����XA���A���o��GB��A�ܜ�l��A��\A��b���A�z�A�޹�wAA^�RA���#/�A�\)A��Ɔ�[�A���A��"/�Px@���A��/��^A���A��r���AW�A��a�h;A˅A��k��zA�A���6`�A�\A�һZl��A��A�Ԥn�"B{A��<����A�=qA��
72
+ A���E��A@A�ٿ+&+BQ�A�ݐF��A�A�ݤ�o_A�=qA��p!���A��A�ѓ�i% @=p�A��52l��A�Q�A��d�T��A���A�Щ�@�QA���A�ۦ�+FB G�A��̔<A^{A��¨Z"�Bz�A��3{)��A"�\A��/���Bp�A��f��;As33A�׵og�y@�{A��R�[Y�B-��A����K�AJ�HA���OP
73
+ A��̨pK�B(�A���Ot��A���A��-��5@�
74
+ >A��g�[3B
75
+ iDAx��A���<�z�A��RA��?�� @xQ�A��&�Gm�A��A��{8��F@���A�Ѡ��,0B ��A�����H@�\)A��7??�J@��A�ѐ��@�B�A������]A�ffA��k6S�=Atz�A��V���A��A���AH�AG�A��𹞜�A�p�A��K[A�5Ao\)A��'\��A�33A��:pc��A���A�ڱ�dahA��A��CH��A���A��+" �A��\A�ܦ�r$�B+
76
+ =A��kw���A{A��Z
77
+
78
+ A��_Q�BIA|(�A�ܰ��r@��A���}���B��A�޸��C@���A��A�J8AqG�A��3A�uBA��&�?�@+�A�ޠ�a�<A��
79
+ A��F�e[�AB�\A��Vqɣ�B*�RA�ҡ�\�\A�{A��L��wA޸RA��w/.7Ap��A�߄2���A��A��Ӫ���A'
80
+ =A��B�Oj}A��RA��FÈj7B{A���2�A>�RA��D��AA�p�A���r��OA��A�ҙ�y�.@�{A��'��`OA�A���� /B ��A�ڐ�RAJB�A��СݻrA�33A�Є�}��A��
81
+ A��m�L�c@��A�ԯ�Ĝ�A
82
+ >A�ۏ!`��AAG�A�� ��CBA��#�'�UA��
83
+ A�֓8�&nA��
84
+ A��z�Od�A�\A���vQ@c�
85
+ A��ٕjC�B'33A�ؽ!gB��A�ѵ�»�B#
86
+ =A���Cf:�A�{A��8�d)�A3�
87
+ A���Ο0A�A��B.�c�A�{A��pP�.A�\)A���M}.
88
+ B�HA��F�A�A��=Q�sA�p�A��Nv8woB
89
+ =A��Mk��AE�A��7:�B-�A���%�:B�\A�ܢZ�@^�RA�����A=p�A��iHw�A6ffA���P[A�A������B
90
+ >A�����A��HA�֭qmCAxQ�A��=ܗ|�B�HA��]IbS�AFffA���
91
+ �A�z�A�ݽ�$�A�=qA�٤����A�z�A�؊�ތ2Amp�A��Y���%@��\A��I��A'�A���QP��B ��A��Y����A�A��O� ��A�\A�ه���B�A��P���A��\A�ԅ"�"vB(�A��Q����A�\A��d8X�9BffA��
92
+ <���BQ�A��Y ��A�G�A��^m4 @xQ�A���C�D:A�33A��+��C�A=p�A��?F���A8��A�ߝ����A�\)A���t=�lB�\A��H+�!dA��RA��o�'B �A�֥ ���A�A�و��^P@���A��Q��2@�33A�����AQ�A��B�S��A�ffA�Ҁ��~�A�{A�ԫ�ɊAZ=qA��h(���A�\A�ߕ��)B �
93
+ A���fO�A�=qA��� X_dBG�A��-��A��\A�ԋ�$�A��HA�����h�A�33A��]6�&B \)A��v�!AO\)A������B�A����C��B*=qA��$� ��A+�A���I�m#A��
94
+ A��
95
+ A��
96
+ A������AH��A�ӕ�)�_A��A�٭6�b�A�RA��!DaA�A��!���A%�A����d�>Au�A�ґ���
97
+ =A��-~pk�A�G�A��ӭ���B"ffA���E��xA��A��}���;A˅A�ߪ-P��A��
98
+ A��f��V�A���A��J�)xA�
99
+ =A���j���A(��A��!���+@�=pA�Ҧ�x-%A�z�A���I��.A�\)A����{��B (�A�ԃa�VRA��HA���7k��A���A�ړ7��B%p�A���Ӗ�A�
100
+ =
files/data/nomission.evt ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T OBSERVER= 'Edwige Bubble' INSTRUME= 'INSTRUMO' / Instrument name HISTORY File modified by user 'meo' with fv on 2020-11-13T17:08:07 HISTORY File modified by user 'meo' with fv on 2021-05-17T12:34:22 END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 12 / length of dimension 1 NAXIS2 = 1000 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 2 / number of table fields TTYPE1 = 'TIME ' TFORM1 = '1D ' TTYPE2 = 'PI ' TFORM2 = '1J ' EXTNAME = 'EVENTS ' / extension name OBSERVER= 'Edwige Bubble' TELESCOP= 'babasone ' / Telescope (mission) name INSTRUME= 'INSTRUMO ' / Instrument name OBS_ID = '00000000001' / Observation ID TARG_ID = 0 / Target ID OBJECT = 'Fake X-1' / Name of observed object RA_OBJ = 0.0 / [deg] R.A. Object DEC_OBJ = 0.0 / [deg] Dec Object RA_NOM = 0.0 / Right Ascension used for barycenter correctionsDEC_NOM = 0.0 / Declination used for barycenter corrections RA_PNT = 0.0 / [deg] RA pointing DEC_PNT = 0.0 / [deg] Dec pointing PA_PNT = 0.0 / [deg] Position angle (roll) EQUINOX = 2000.0 / Equinox of celestial coord system RADECSYS= 'FK5 ' / Coordinate Reference System TASSIGN = 'SATELLITE' / Time assigned by onboard clock TIMESYS = 'TDB ' / All times in this file are TDB MJDREFI = 55197 / TDB time reference; Modified Julian Day (int) MJDREFF = 0.00076601852 / TDB time reference; Modified Julian Day (frac) TIMEREF = 'SOLARSYSTEM' / Times are pathlength-corrected to barycenter CLOCKAPP= F / TRUE if timestamps corrected by gnd sware TIMEUNIT= 's ' / unit for time keywords TSTART = 80000000.0 / Elapsed seconds since MJDREF at start of file TSTOP = 80001025.0 / Elapsed seconds since MJDREF at end of file LIVETIME= 1025.0 / On-source time TIMEZERO= 0.0 / Time Zero COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy aCOMMENT nd Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H COMMENT MJDREFI+MJDREFF = epoch of Jan 1, 2010, in TT time system. HISTORY File modified by user 'meo' with fv on 2015-08-17T14:10:02 HISTORY File modified by user 'meo' with fv on 2015-08-17T14:48:52 HISTORY File modified by user 'meo' with fv on 2020-11-13T17:07:43 END A�٤�K�A�Մ�H�oA����v�>A��
2
+ �1�A�� �rLA��3�ݴ�A�ֲ-/��A��&��M{A�ެ[?�sA��P��FA�ۉ�(� A��g���A�כ�f�A��"8�A��񈩤A��T���A��Ľ٪*A��P�(��A����Z��A�����^A�ߒ;�IA��rc;��A�ֵ����A���{ ."A�Ґ'�e�A���(���A�Й�H�,A��`n�A��'+�
3
+ aO�A�ӂס��A���EaEA���~�e�A��E
4
+ 5sA��Vt�eA��[{�Q�A�֪�^�#A��d���A�՜��b?A��=,�$A��0�,DA���02A���)��A�����wA�ܡ#��A�ٗb��A���>
5
+ CA��2� �1A���1�sA�݋gG A��t�W��A�ь�
6
+ j���A����TA��S/O bA��8���OA�Ֆ�ӷ�A��-�!��A��-Vֆ
7
+ A��d�kA�������A�������A������+A�ԸIV
8
+ A��e@fA��aŰ�A���d�AA��]���A�Ҧ�WmTA���W�
9
+ A���2��GA��ø��A�׽א�EA����4 �A��+BsA��|2���A�ܕ9Z��A��|l�jA��6MP��A��y��&A���'��8A��,;8�A��d�|�A��p�%��A�ӗ��<A�Ւ��rA���K3�A����ķ�A���ś�A�ל�6XA��L 0��A�ڡ����A��4�GA�֘r+WA�ы�"@�A������A��Q��#jA��b����A�ـ] A��43���A��Y0���A����ő,A��WQ]k*A�կ��A��N6�7 A�����w4A��!l�)A��t��E`A���B�A�����A��^�Z�A�������A�܎�u�A�֓��mA����z��A�Ӈ@���A�ߥ���A��#���A�։��vA�݊M�A��EU���A����XA���$ ��A��a=M��A��n �4�A�ߊKxcA��j\�A�Ԇ��A��M;b�aA��׫M�A��� ��)A��'t��A�֑��+ A��…! �A��h�v_�A��|@��A�Ә��_A��c<J!BA��c��FA��I]�.,A���~�A��[ .Z�A�٫��K�A��9Vz6�A��QV4A�ӑ&�Q�A��|��A�؍:�&�A��7����A���k
10
+ �A���H�A��
11
+ kc�QA��ߑ�(�A��h�@��A���R��A�۵p���A���3z0A���Q�0�A�������A��o���
12
+ A�ׅ}�FA��a�"��A��H%�L�A�ѭUp@�A��ǸχIA����T�A�ұ����A��cҭ�xA���Ը0A��pt%��A����\A�ݪ�`]A���v*�A�ж�@BA��]�y�A�һ5���A��y�+%�A��5 Y�@A��_Vt�A��=��A��@|���A���r)Q�A����v�A����r\A�ؚ@~��A�ٴ��A��[����A����b_A��ڒ��A�׭���A�ߑ�Ӱ�A���5k+�A��s�J�
13
+ ^'G�A���;3��A��yQkA�׃���A��ʝ��A�ٵ��R�A��k�w�A���X{A�ւ���A������A��3� ROA�����A��#�U�A���v��A��^��@�A��D�\8�A�ޗ
14
+ �7A�� ���A�Ҕ�'}�A��f�+.ZA���Z ��A���m��A��X3;O'A�֬��Z�A�� ��V4A��SRw=�A�Ԍ�m��A��
15
+ /��A��]���A��6W���A���C��A��c,�c�A��~Ä�vA���̩�A�Ӽ�T��A�� (a��A��R"�
16
+ ���A��<�rC:A���kjMA��$r�,A��" r3%A���x��A��6+e}A���9���A��'a_�A�۴���A�у�NV�A�٦�+X�A��D� A�ߛ@��ZA�����~�A�Ђ�U�A��$�[XA��W�6 A����S��A�ܼQ���A�ܫx�r A�����VA�آ��GA��%?��?A�ܭ�Ӄ�A��;�pA��O��G�A�۴�4(�A��<�%��A��a��w�A��71�/A��%����A����XA���o��GA�ܜ�l��A��b���A�޹�wAA���#/�A��Ɔ�[�A��"/�PxA��/��^A��r���A��a�h;A��k��zA���6`�A�һZl��A�Ԥn�"A��<����A��
17
+ iDA���<�z�A��?�� A��&�Gm�A��{8��FA�Ѡ��,0A�����HA��7??�JA�ѐ��@�A������]A��k6S�=A��V���A���AH�A��𹞜�A��K[A�5A��'\��A��:pc��A�ڱ�dahA��CH��A��+" �A�ܦ�r$�A��kw���A��Z
18
+
19
+ A�И�F�A��=Q�sA��Nv8woA��Mk��A��7:�A���%�:A�ܢZ�A�����A��iHw�A���P[A������A�����A�֭qmCA��=ܗ|�A��]IbS�A���
20
+ �A�ݽ�$�A�٤����A�؊�ތ2A��Y���%A��I��A���QP��A��Y����A��O� ��A�ه���A��P���A�ԅ"�"vA��Q����A��d8X�9A��
21
+ <���A��Y ��A��^m4 A���C�D:A��+��C�A��?F���A�ߝ����A���t=�lA��H+�!dA��o�'A�֥ ���A�و��^PA��Q��2A�����A��B�S��A�Ҁ��~�A�ԫ�ɊA��h(���A�ߕ��)A���fO�A��� X_dA��-��A�ԋ�$�A�����h�A��]6�&A��v�!A������A����C��A��$� ��A���I�m#A��
22
+ A������A�ӕ�)�_A�٭6�b�A��!DaA��!���A����d�>A�ґ���
files/data/xte_gx_test.evt.gz ADDED
Binary file (34.6 kB). View file
 
files/data/xte_test.evt.gz ADDED
Binary file (11.2 kB). View file
 
modules/DataLoading/DataIngestion.py CHANGED
@@ -1,14 +1,33 @@
1
  import panel as pn
2
  from stingray.events import EventList
3
  from stingray import Lightcurve
4
- import asyncio
5
  import warnings
6
  import os
7
  import stat
8
  import numpy as np
9
  from bokeh.models import Tooltip
10
- from .globals import loaded_event_data
11
- from utils.dashboardClasses import MainHeader, MainArea, OutputBox, WarningBox, BokehPlotsContainer, HelpBox, Footer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  # Path to the topmost directory for loaded-data
14
  loaded_data_path = os.path.join(os.getcwd(), "files", "loaded-data")
@@ -16,6 +35,7 @@ loaded_data_path = os.path.join(os.getcwd(), "files", "loaded-data")
16
  # Create the loaded-data directory if it doesn't exist
17
  os.makedirs(loaded_data_path, exist_ok=True)
18
 
 
19
  # Custom warning handler
20
  class WarningHandler:
21
  def __init__(self):
@@ -34,18 +54,21 @@ warning_handler = WarningHandler()
34
  # Redirect warnings to the custom handler
35
  warnings.showwarning = warning_handler.warn
36
 
 
 
 
37
 
38
- async def load_event_data(
39
  event,
40
  file_selector,
41
  filename_input,
42
  format_input,
43
  format_checkbox,
44
- output,
45
- warning_output,
46
  ):
47
  if not file_selector.value:
48
- output.value = "No file selected. Please select a file to upload."
49
  return
50
 
51
  file_paths = file_selector.value
@@ -71,43 +94,41 @@ async def load_event_data(
71
  ]
72
  )
73
  if len(formats) < len(file_paths):
74
- output.value = (
75
  "Please specify formats for all files or check the default format option."
76
  )
77
  return
78
 
79
  try:
80
  loaded_files = []
81
- loop = asyncio.get_event_loop()
82
  for file_path, file_name, file_format in zip(file_paths, filenames, formats):
83
  if any(file_name == event[0] for event in loaded_event_data):
84
- output.value = f"A file with the name '{file_name}' already exists in memory. Please provide a different name."
85
  return
86
 
87
- event_list = await loop.run_in_executor(
88
- None, EventList.read, file_path, file_format
89
- )
90
  loaded_event_data.append((file_name, event_list))
91
  loaded_files.append(
92
  f"File '{file_path}' loaded successfully as '{file_name}' with format '{file_format}'."
93
  )
94
 
95
- output.value = "\n".join(loaded_files)
96
  if warning_handler.warnings:
97
- warning_output.value = "\n".join(warning_handler.warnings)
98
  else:
99
- warning_output.value = "No warnings."
100
  except Exception as e:
101
- output.value = f"An error occurred: {e}"
102
 
103
  # Clear the warnings after displaying them
104
  warning_handler.warnings.clear()
105
 
 
106
  def save_loaded_files(
107
- event, filename_input, format_input, format_checkbox, output, warning_output
108
  ):
109
  if not loaded_event_data:
110
- output.value = "No files loaded to save."
111
  return
112
 
113
  filenames = (
@@ -125,15 +146,15 @@ def save_loaded_files(
125
  formats = ["hdf5" for _ in range(len(loaded_event_data))]
126
 
127
  if len(filenames) < len(loaded_event_data):
128
- output.value = "Please specify names for all loaded files."
129
  return
130
  if len(filenames) != len(loaded_event_data):
131
- output.value = (
132
  "Please ensure that the number of names matches the number of loaded files."
133
  )
134
  return
135
  if len(formats) < len(loaded_event_data):
136
- output.value = "Please specify formats for all loaded files or check the default format option."
137
  return
138
 
139
  saved_files = []
@@ -144,12 +165,14 @@ def save_loaded_files(
144
  if os.path.exists(
145
  os.path.join(loaded_data_path, f"{file_name}.{file_format}")
146
  ):
147
- output.value = f"A file with the name '{file_name}' already exists. Please provide a different name."
148
  return
149
 
150
  save_path = os.path.join(loaded_data_path, f"{file_name}.{file_format}")
151
- if file_format == 'hdf5':
152
- event_list.to_astropy_table().write(save_path, format=file_format, path='data')
 
 
153
  else:
154
  event_list.write(save_path, file_format)
155
 
@@ -157,22 +180,21 @@ def save_loaded_files(
157
  f"File '{file_name}' saved successfully to '{save_path}'."
158
  )
159
 
160
- output.value = "\n".join(saved_files)
161
  if warning_handler.warnings:
162
- warning_output.value = "\n".join(warning_handler.warnings)
163
  else:
164
- warning_output.value = "No warnings."
165
  except Exception as e:
166
- output.value = f"An error occurred while saving files: {e}"
167
 
168
  # Clear the warnings after displaying them
169
  warning_handler.warnings.clear()
170
 
171
 
172
-
173
- def delete_selected_files(event, file_selector, output, warning_output):
174
  if not file_selector.value:
175
- output.value = "No file selected. Please select a file to delete."
176
  return
177
 
178
  file_paths = file_selector.value
@@ -192,18 +214,18 @@ def delete_selected_files(event, file_selector, output, warning_output):
192
  except Exception as e:
193
  deleted_files.append(f"An error occurred while deleting '{file_path}': {e}")
194
 
195
- output.value = "\n".join(deleted_files)
196
  if warning_handler.warnings:
197
- warning_output.value = "\n".join(warning_handler.warnings)
198
  else:
199
- warning_output.value = "No warnings."
200
 
201
  warning_handler.warnings.clear()
202
 
203
 
204
- def preview_loaded_files(event, output, warning_output, time_limit=10):
205
  if not loaded_event_data:
206
- output.value = "No files loaded to preview."
207
  return
208
 
209
  preview_data = []
@@ -217,13 +239,132 @@ def preview_loaded_files(event, output, warning_output, time_limit=10):
217
  warning_handler.warn(str(e), category=RuntimeWarning)
218
 
219
  if preview_data:
220
- output.value = "\n\n".join(preview_data)
221
  else:
222
- output.value = "No valid files loaded for preview."
223
 
224
  if warning_handler.warnings:
225
- warning_output.value = "\n".join(warning_handler.warnings)
226
  else:
227
- warning_output.value = "No warnings."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
 
229
- warning_handler.warnings.clear()
 
1
  import panel as pn
2
  from stingray.events import EventList
3
  from stingray import Lightcurve
 
4
  import warnings
5
  import os
6
  import stat
7
  import numpy as np
8
  from bokeh.models import Tooltip
9
+ from utils.globals import loaded_event_data
10
+ from utils.DashboardClasses import (
11
+ MainHeader,
12
+ MainArea,
13
+ OutputBox,
14
+ WarningBox,
15
+ PlotsContainer,
16
+ HelpBox,
17
+ Footer,
18
+ )
19
+ import param
20
+
21
+ """ Header Section """
22
+ home_heading_input = pn.widgets.TextInput(
23
+ name="Heading", value="Data Ingestion and creation"
24
+ )
25
+ # home_subheading_input = pn.widgets.TextInput(name="Subheading", value="Stingray GUI using HoloViz")
26
+
27
+ loadingdata_header = MainHeader(heading=home_heading_input)
28
+
29
+
30
+ """ Main Area Section """
31
 
32
  # Path to the topmost directory for loaded-data
33
  loaded_data_path = os.path.join(os.getcwd(), "files", "loaded-data")
 
35
  # Create the loaded-data directory if it doesn't exist
36
  os.makedirs(loaded_data_path, exist_ok=True)
37
 
38
+
39
  # Custom warning handler
40
  class WarningHandler:
41
  def __init__(self):
 
54
  # Redirect warnings to the custom handler
55
  warnings.showwarning = warning_handler.warn
56
 
57
+ # Create instances of OutputBox and WarningBox
58
+ loadingdata_output_box = OutputBox()
59
+ loadingdata_warning_box = WarningBox()
60
 
61
+ def load_event_data(
62
  event,
63
  file_selector,
64
  filename_input,
65
  format_input,
66
  format_checkbox,
67
+ loadingdata_output_box,
68
+ loadingdata_warning_box,
69
  ):
70
  if not file_selector.value:
71
+ loadingdata_output_box.output_content = "No file selected. Please select a file to upload."
72
  return
73
 
74
  file_paths = file_selector.value
 
94
  ]
95
  )
96
  if len(formats) < len(file_paths):
97
+ loadingdata_output_box.output_content = (
98
  "Please specify formats for all files or check the default format option."
99
  )
100
  return
101
 
102
  try:
103
  loaded_files = []
 
104
  for file_path, file_name, file_format in zip(file_paths, filenames, formats):
105
  if any(file_name == event[0] for event in loaded_event_data):
106
+ loadingdata_output_box.output_content = f"A file with the name '{file_name}' already exists in memory. Please provide a different name."
107
  return
108
 
109
+ event_list = EventList.read(file_path, file_format)
 
 
110
  loaded_event_data.append((file_name, event_list))
111
  loaded_files.append(
112
  f"File '{file_path}' loaded successfully as '{file_name}' with format '{file_format}'."
113
  )
114
 
115
+ loadingdata_output_box.output_content = "\n".join(loaded_files)
116
  if warning_handler.warnings:
117
+ loadingdata_warning_box.warning_content = "\n".join(warning_handler.warnings)
118
  else:
119
+ loadingdata_warning_box.warning_content = "No warnings."
120
  except Exception as e:
121
+ loadingdata_output_box.output_content = f"An error occurred: {e}"
122
 
123
  # Clear the warnings after displaying them
124
  warning_handler.warnings.clear()
125
 
126
+
127
  def save_loaded_files(
128
+ event, filename_input, format_input, format_checkbox, loadingdata_output_box, loadingdata_warning_box
129
  ):
130
  if not loaded_event_data:
131
+ loadingdata_output_box.output_content = "No files loaded to save."
132
  return
133
 
134
  filenames = (
 
146
  formats = ["hdf5" for _ in range(len(loaded_event_data))]
147
 
148
  if len(filenames) < len(loaded_event_data):
149
+ loadingdata_output_box.output_content = "Please specify names for all loaded files."
150
  return
151
  if len(filenames) != len(loaded_event_data):
152
+ loadingdata_output_box.output_content = (
153
  "Please ensure that the number of names matches the number of loaded files."
154
  )
155
  return
156
  if len(formats) < len(loaded_event_data):
157
+ loadingdata_output_box.output_content = "Please specify formats for all loaded files or check the default format option."
158
  return
159
 
160
  saved_files = []
 
165
  if os.path.exists(
166
  os.path.join(loaded_data_path, f"{file_name}.{file_format}")
167
  ):
168
+ loadingdata_output_box.output_content = f"A file with the name '{file_name}' already exists. Please provide a different name."
169
  return
170
 
171
  save_path = os.path.join(loaded_data_path, f"{file_name}.{file_format}")
172
+ if file_format == "hdf5":
173
+ event_list.to_astropy_table().write(
174
+ save_path, format=file_format, path="data"
175
+ )
176
  else:
177
  event_list.write(save_path, file_format)
178
 
 
180
  f"File '{file_name}' saved successfully to '{save_path}'."
181
  )
182
 
183
+ loadingdata_output_box.output_content = "\n".join(saved_files)
184
  if warning_handler.warnings:
185
+ loadingdata_warning_box.warning_content = "\n".join(warning_handler.warnings)
186
  else:
187
+ loadingdata_warning_box.warning_content = "No warnings."
188
  except Exception as e:
189
+ loadingdata_output_box.output_content = f"An error occurred while saving files: {e}"
190
 
191
  # Clear the warnings after displaying them
192
  warning_handler.warnings.clear()
193
 
194
 
195
+ def delete_selected_files(event, file_selector, loadingdata_output_box, loadingdata_warning_box):
 
196
  if not file_selector.value:
197
+ loadingdata_output_box.output_content = "No file selected. Please select a file to delete."
198
  return
199
 
200
  file_paths = file_selector.value
 
214
  except Exception as e:
215
  deleted_files.append(f"An error occurred while deleting '{file_path}': {e}")
216
 
217
+ loadingdata_output_box.output_content = "\n".join(deleted_files)
218
  if warning_handler.warnings:
219
+ loadingdata_warning_box.warning_content = "\n".join(warning_handler.warnings)
220
  else:
221
+ loadingdata_warning_box.warning_content = "No warnings."
222
 
223
  warning_handler.warnings.clear()
224
 
225
 
226
+ def preview_loaded_files(event, loadingdata_output_box, loadingdata_warning_box, time_limit=10):
227
  if not loaded_event_data:
228
+ loadingdata_output_box.output_content = "No files loaded to preview."
229
  return
230
 
231
  preview_data = []
 
239
  warning_handler.warn(str(e), category=RuntimeWarning)
240
 
241
  if preview_data:
242
+ loadingdata_output_box.output_content = "\n\n".join(preview_data)
243
  else:
244
+ loadingdata_output_box.output_content = "No valid files loaded for preview."
245
 
246
  if warning_handler.warnings:
247
+ loadingdata_warning_box.warning_content = "\n".join(warning_handler.warnings)
248
  else:
249
+ loadingdata_warning_box.warning_content = "No warnings."
250
+
251
+ warning_handler.warnings.clear()
252
+
253
+
254
+ def create_loading_tab():
255
+ file_selector = pn.widgets.FileSelector(
256
+ os.getcwd(), only_files=True, name="Select File", show_hidden=True
257
+ )
258
+ filename_input = pn.widgets.TextInput(
259
+ name="Enter File Names",
260
+ placeholder="Enter file names, comma-separated",
261
+ width=400,
262
+ )
263
+ format_input = pn.widgets.TextInput(
264
+ name="Enter Formats",
265
+ placeholder="Enter formats (e.g., ogip, pickle, hdf5), comma-separated",
266
+ width=400,
267
+ )
268
+ format_checkbox = pn.widgets.Checkbox(
269
+ name="Use default format (ogip for loading, hdf5 for saving)", value=False
270
+ )
271
+ load_button = pn.widgets.Button(name="Load Event Data", button_type="primary")
272
+ save_button = pn.widgets.Button(name="Save Loaded Data", button_type="success")
273
+ delete_button = pn.widgets.Button(
274
+ name="Delete Selected Files", button_type="danger"
275
+ )
276
+ preview_button = pn.widgets.Button(
277
+ name="Preview Loaded Files", button_type="default"
278
+ )
279
+
280
+ tooltip_format = pn.widgets.TooltipIcon(
281
+ value=Tooltip(
282
+ content="""For HEASoft-supported missions, use 'ogip'. Using 'fits' directly might cause issues with Astropy tables. default = ogip (for reading), hdf5 (for saving)""",
283
+ position="bottom",
284
+ )
285
+ )
286
+
287
+ tooltip_file = pn.widgets.TooltipIcon(
288
+ value=Tooltip(
289
+ content="""Ensure the file contains at least a 'time' column.""",
290
+ position="bottom",
291
+ )
292
+ )
293
+
294
+ def on_load_click(event):
295
+ # Clear previous outputs and warnings
296
+ loadingdata_output_box.output_content = ""
297
+ loadingdata_warning_box.warning_content = ""
298
+ warning_handler.warnings.clear()
299
+ warnings.resetwarnings()
300
+
301
+ load_event_data(
302
+ event,
303
+ file_selector,
304
+ filename_input,
305
+ format_input,
306
+ format_checkbox,
307
+ loadingdata_output_box,
308
+ loadingdata_warning_box,
309
+ )
310
+
311
+ def on_save_click(event):
312
+ # Clear previous outputs and warnings
313
+ loadingdata_output_box.output_content = ""
314
+ loadingdata_warning_box.warning_content = ""
315
+ warning_handler.warnings.clear()
316
+ warnings.resetwarnings()
317
+
318
+ save_loaded_files(
319
+ event, filename_input, format_input, format_checkbox, loadingdata_output_box, loadingdata_warning_box
320
+ )
321
+
322
+ def on_delete_click(event):
323
+ # Clear previous outputs and warnings
324
+ loadingdata_output_box.output_content = ""
325
+ loadingdata_warning_box.warning_content = ""
326
+ warning_handler.warnings.clear()
327
+ warnings.resetwarnings()
328
+
329
+ delete_selected_files(event, file_selector, loadingdata_output_box, loadingdata_warning_box)
330
+
331
+ def on_preview_click(event):
332
+ # Clear previous outputs and warnings
333
+ loadingdata_output_box.output_content = ""
334
+ loadingdata_warning_box.warning_content = ""
335
+ warning_handler.warnings.clear()
336
+ warnings.resetwarnings()
337
+
338
+ preview_loaded_files(event, loadingdata_output_box, loadingdata_warning_box)
339
+
340
+ load_button.on_click(on_load_click)
341
+ save_button.on_click(on_save_click)
342
+ delete_button.on_click(on_delete_click)
343
+ preview_button.on_click(on_preview_click)
344
+
345
+ first_column = pn.Column(
346
+ pn.pane.Markdown("# Load Files"),
347
+ file_selector,
348
+ pn.Row(filename_input, tooltip_file),
349
+ pn.Row(format_input, tooltip_format),
350
+ format_checkbox,
351
+ pn.Row(load_button, save_button, delete_button, preview_button),
352
+ width_policy="min",
353
+ )
354
+
355
+ tab_content = pn.Column(
356
+ first_column,
357
+ width_policy="min",
358
+ )
359
+
360
+ return tab_content
361
+
362
+
363
+ tabs_content = {
364
+ "Loading": create_loading_tab()
365
+ }
366
+
367
+ loadingdata_main_area = MainArea(tabs_content=tabs_content)
368
+
369
+ layout = pn.Column(loadingdata_header, loadingdata_main_area)
370
 
 
modules/Home/HomeContent.py CHANGED
@@ -1,52 +1,96 @@
1
- # homecontent.py
2
-
3
  import panel as pn
4
- from utils.DashboardClasses import MainHeader, MainArea, OutputBox, WarningBox, BokehPlotsContainer, HelpBox, Footer
 
 
 
 
 
 
 
 
5
  from bokeh.plotting import figure
6
- from utils.strings import HOME_HEADER_STRING, WELCOME_MESSAGE_STRING, FOOTER_STRING, STINGRAY_TAB_STRING, HOLOVIZ_TAB_STRING, DASHBOARD_TAB_STRING, OUTPUT_BOX_STRING, WARNING_BOX_STRING, HELP_BOX_STRING
7
-
8
- def create_home_header():
9
- home_heading_input = pn.widgets.TextInput(name="Heading", value="Welcome to Stingray Explorer")
10
- home_subheading_input = pn.widgets.TextInput(name="Subheading", value="Stingray GUI using HoloViz")
11
-
12
- button = pn.widgets.Button(name="Change Heading", button_type="primary")
13
- def change_heading(event):
14
- home_heading_input.value = "New Heading"
15
- home_subheading_input.value = "New Subheading"
16
- button.on_click(change_heading)
17
-
18
-
19
- return MainHeader(heading=home_heading_input, subheading=home_subheading_input, button_1_name="button", button_1_action=change_heading)
20
-
21
- def create_home_main_area():
22
- tab1_content = pn.pane.Markdown(STINGRAY_TAB_STRING)
23
- tab2_content = pn.pane.Markdown(HOLOVIZ_TAB_STRING)
24
- tab3_content = pn.pane.Markdown(DASHBOARD_TAB_STRING)
25
-
26
- tabs_content = {"What's Stingray?": tab1_content, "What's HoloViz?": tab2_content, "Dashboard": tab3_content}
27
-
28
- return MainArea(tabs_content=tabs_content)
29
-
30
- def create_home_output_box():
31
- return OutputBox(output_content=OUTPUT_BOX_STRING)
32
-
33
- def create_home_warning_box():
34
- return WarningBox(warning_content=WARNING_BOX_STRING)
35
-
36
- def create_home_bokeh_plots_container():
37
- p1 = pn.pane.Markdown(" Plot 1")
38
- p2 = pn.pane.Markdown(" Plot 2")
39
- p3 = pn.pane.Markdown(" Plot 3")
40
- p4 = pn.pane.Markdown("Plot 4")
41
- p5 = pn.pane.Markdown("Plot 5")
42
- return BokehPlotsContainer(flexbox_contents=[p1, p2, p3, p4, p5], titles=["Heading 1", "Heading 2", "Heading 3", "Heading 4", "Heading 5"], sizes=[(300, 300), (300, 300), (300, 300), (300, 300), (300, 300)])
43
-
44
- def create_home_help_box():
45
- help_content = HELP_BOX_STRING
46
- return HelpBox(help_content=help_content, title="Help Section")
47
-
48
- def create_home_footer():
49
- icon_buttons = [pn.widgets.Button(name="Icon 1", button_type="default"), pn.widgets.Button(name="Icon 2", button_type="default"), pn.widgets.Button(name="Icon 3", button_type="default"), pn.widgets.Button(name="Icon 4", button_type="default"), pn.widgets.Button(name="Icon 5", button_type="default")]
50
- footer_content = "© 2024 Stingray. All rights reserved."
51
- additional_links = ["[Privacy Policy](https://example.com)", "[Terms of Service](https://example.com)", "[Contact Us](https://example.com)", "[Support](https://example.com)", "[About Us](https://example.com)"]
52
- return Footer(main_content=footer_content, additional_links=additional_links, icons=icon_buttons)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import panel as pn
2
+ from utils.DashboardClasses import (
3
+ MainHeader,
4
+ MainArea,
5
+ OutputBox,
6
+ WarningBox,
7
+ PlotsContainer,
8
+ HelpBox,
9
+ Footer,
10
+ )
11
  from bokeh.plotting import figure
12
+ from utils.strings import (
13
+ HOME_HEADER_STRING,
14
+ WELCOME_MESSAGE_STRING,
15
+ FOOTER_STRING,
16
+ STINGRAY_TAB_STRING,
17
+ HOLOVIZ_TAB_STRING,
18
+ DASHBOARD_TAB_STRING,
19
+ OUTPUT_BOX_STRING,
20
+ WARNING_BOX_STRING,
21
+ HELP_BOX_STRING,
22
+ )
23
+
24
+ """ Header Section """
25
+
26
+ home_heading_input = pn.widgets.TextInput(
27
+ name="Heading", value="Welcome to Stingray Explorer"
28
+ )
29
+ home_subheading_input = pn.widgets.TextInput(
30
+ name="Subheading", value="Stingray GUI using HoloViz"
31
+ )
32
+
33
+ home_header = MainHeader(heading=home_heading_input, subheading=home_subheading_input)
34
+
35
+
36
+ """ Main Area Section """
37
+
38
+ tab1_content = pn.pane.Markdown(STINGRAY_TAB_STRING)
39
+ tab2_content = pn.pane.Markdown(HOLOVIZ_TAB_STRING)
40
+ tab3_content = pn.pane.Markdown(DASHBOARD_TAB_STRING)
41
+
42
+ tabs_content = {
43
+ "What's Stingray?": tab1_content,
44
+ "What's HoloViz?": tab2_content,
45
+ "Dashboard": tab3_content,
46
+ }
47
+
48
+ home_main_area = MainArea(tabs_content=tabs_content)
49
+
50
+
51
+ # Output Box Section
52
+ home_output_box = OutputBox(output_content=OUTPUT_BOX_STRING)
53
+
54
+
55
+ # Warning Box Section
56
+ home_warning_box = WarningBox(warning_content=WARNING_BOX_STRING)
57
+
58
+
59
+ # Plots Area
60
+ p1 = pn.pane.Markdown(" Plot 1")
61
+ p2 = pn.pane.Markdown(" Plot 2")
62
+ p3 = pn.pane.Markdown(" Plot 3")
63
+ p4 = pn.pane.Markdown("Plot 4")
64
+ p5 = pn.pane.Markdown("Plot 5")
65
+ home_plots_area = PlotsContainer(
66
+ flexbox_contents=[p1, p2, p3, p4, p5],
67
+ titles=["Heading 1", "Heading 2", "Heading 3", "Heading 4", "Heading 5"],
68
+ sizes=[(300, 300), (300, 300), (300, 300), (300, 300), (300, 300)],
69
+ )
70
+
71
+ # Help Section
72
+ help_content = HELP_BOX_STRING
73
+ home_help_area = HelpBox(help_content=help_content, title="Help Section")
74
+
75
+
76
+ # Footer Section
77
+ icon_buttons = [
78
+ pn.widgets.Button(name="Icon 1", button_type="default"),
79
+ pn.widgets.Button(name="Icon 2", button_type="default"),
80
+ pn.widgets.Button(name="Icon 3", button_type="default"),
81
+ pn.widgets.Button(name="Icon 4", button_type="default"),
82
+ pn.widgets.Button(name="Icon 5", button_type="default"),
83
+ ]
84
+ footer_content = "© 2024 Stingray. All rights reserved."
85
+ additional_links = [
86
+ "[Privacy Policy](https://example.com)",
87
+ "[Terms of Service](https://example.com)",
88
+ "[Contact Us](https://example.com)",
89
+ "[Support](https://example.com)",
90
+ "[About Us](https://example.com)",
91
+ ]
92
+ home_footer = Footer(
93
+ main_content=footer_content,
94
+ additional_links=additional_links,
95
+ icons=icon_buttons,
96
+ )
modules/QuickLook/LightCurve.py CHANGED
@@ -1,11 +1,30 @@
1
  import panel as pn
2
 
3
- from utils.DashboardClasses import MainHeader, MainArea, OutputBox, WarningBox, BokehPlotsContainer, HelpBox, Footer
 
 
 
 
 
 
 
 
4
 
5
 
6
- def create_quicklook_lightcurve_header():
7
- # Create a text input widget for the header
8
- heading_input = pn.widgets.TextInput(
9
- name="Heading", value="QuickLook Light Curve")
10
- return MainHeader(heading = heading_input)
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import panel as pn
2
 
3
+ from utils.DashboardClasses import (
4
+ MainHeader,
5
+ MainArea,
6
+ OutputBox,
7
+ WarningBox,
8
+ PlotsContainer,
9
+ HelpBox,
10
+ Footer,
11
+ )
12
 
13
 
14
+ # Header section
15
+ heading_input = pn.widgets.TextInput(name="Heading", value="QuickLook Light Curve")
16
+ lightcurve_header = MainHeader(heading=heading_input)
 
 
17
 
18
+
19
+ # Main Area section
20
+ tab1_content = pn.pane.Markdown("alkjd")
21
+ tab2_content = pn.pane.Markdown("aldl")
22
+ tab3_content = pn.pane.Markdown("ald")
23
+
24
+ tabs_content = {
25
+ "adfas?": tab1_content,
26
+ "adafs": tab2_content,
27
+ "adfas": tab3_content,
28
+ }
29
+
30
+ lightcurve_main_area = MainArea(tabs_content=tabs_content)
utils/dashboardClasses.py CHANGED
@@ -240,8 +240,6 @@ class MainHeader(pn.viewable.Viewer):
240
  )
241
 
242
  return layout
243
-
244
-
245
 
246
 
247
  class MainArea(pn.viewable.Viewer):
@@ -310,7 +308,6 @@ class OutputBox(pn.viewable.Viewer):
310
  return pn.Column(heading, output_box, sizing_mode="stretch_both")
311
 
312
 
313
-
314
  class WarningBox(pn.viewable.Viewer):
315
  """
316
  WarningBox class represents a box to display warning content.
@@ -342,9 +339,9 @@ class WarningBox(pn.viewable.Viewer):
342
  return pn.Column(heading, warning_box, sizing_mode="stretch_both")
343
 
344
 
345
- class BokehPlotsContainer(pn.viewable.Viewer):
346
  """
347
- BokehPlotsContainer class represents a container for displaying multiple Bokeh plots.
348
  """
349
 
350
  # Parameters for the contents, titles, and sizes of the FlexBox containers
@@ -362,13 +359,13 @@ class BokehPlotsContainer(pn.viewable.Viewer):
362
 
363
  def __init__(self, **params):
364
  """
365
- Initializes the BokehPlotsContainer class with the provided parameters.
366
  """
367
  super().__init__(**params)
368
 
369
  def __panel__(self):
370
  """
371
- Returns the Panel layout for the Bokeh plots container, including the plots with their respective titles and sizes.
372
  """
373
  flexbox_container = pn.FlexBox(
374
  align_items="center", justify_content="flex-start", flex_wrap="wrap"
@@ -533,5 +530,3 @@ class Footer(pn.viewable.Viewer):
533
  )
534
 
535
  return footer
536
-
537
-
 
240
  )
241
 
242
  return layout
 
 
243
 
244
 
245
  class MainArea(pn.viewable.Viewer):
 
308
  return pn.Column(heading, output_box, sizing_mode="stretch_both")
309
 
310
 
 
311
  class WarningBox(pn.viewable.Viewer):
312
  """
313
  WarningBox class represents a box to display warning content.
 
339
  return pn.Column(heading, warning_box, sizing_mode="stretch_both")
340
 
341
 
342
+ class PlotsContainer(pn.viewable.Viewer):
343
  """
344
+ PlotsContainer class represents a container for displaying multiple plots.
345
  """
346
 
347
  # Parameters for the contents, titles, and sizes of the FlexBox containers
 
359
 
360
  def __init__(self, **params):
361
  """
362
+ Initializes thePlotsContainer class with the provided parameters.
363
  """
364
  super().__init__(**params)
365
 
366
  def __panel__(self):
367
  """
368
+ Returns the Panel layout for the B plots container, including the plots with their respective titles and sizes.
369
  """
370
  flexbox_container = pn.FlexBox(
371
  align_items="center", justify_content="flex-start", flex_wrap="wrap"
 
530
  )
531
 
532
  return footer
 
 
utils/globals.py ADDED
@@ -0,0 +1 @@
 
 
1
+ loaded_event_data = []
utils/sidebar.py CHANGED
@@ -1,9 +1,23 @@
1
  import panel as pn
2
  import importlib
3
- from modules.QuickLook.LightCurve import create_quicklook_lightcurve_header
4
- from modules.Home.HomeContent import create_home_bokeh_plots_container, create_home_footer, create_home_header, create_home_help_box, create_home_main_area, create_home_output_box, create_home_warning_box
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  from assets.icons.svg import HOME_ICON_SVG, LOAD_DATA_ICON_SVG
6
 
 
7
  def create_sidebar(main_area, header, footer, output_box, warning_box, help_box):
8
  menu_items_quicklook_stingray = [
9
  ("Light Curve", "QuickLookLightCurve"),
@@ -11,16 +25,24 @@ def create_sidebar(main_area, header, footer, output_box, warning_box, help_box)
11
  ("Cross Correlation", "QuickLookCrossCorrelation"),
12
  ]
13
 
14
-
15
  # Home Button
16
  home_button = pn.widgets.Button(
17
- icon=HOME_ICON_SVG, icon_size="20px", name="", button_type="default", styles={"width": "50"}, description="Back to Home"
 
 
 
 
 
18
  )
19
 
20
  # Load Button
21
  load_data_button = pn.widgets.Button(
22
- icon=LOAD_DATA_ICON_SVG, icon_size="20px",name="Load Data", button_type="warning", styles={"width": "100"},
23
- description="Loading EventList"
 
 
 
 
24
  )
25
 
26
  # Create MenuButtons
@@ -32,33 +54,43 @@ def create_sidebar(main_area, header, footer, output_box, warning_box, help_box)
32
  )
33
 
34
  def handle_home_button_selection(event):
35
- header[:]=[create_home_header()]
36
-
 
 
 
 
 
37
  home_button.on_click(handle_home_button_selection)
38
 
39
  # Load Button changing main content
40
  def load_data(event):
41
- pass
42
-
 
 
 
43
  load_data_button.on_click(load_data)
44
 
45
  # Quicklook Button changing main content
46
- def handle_quicklook_button_selection(event):
47
  clicked = event.new
48
  if clicked == "QuickLookLightCurve":
49
- header[:]=[create_quicklook_lightcurve_header()]
50
-
51
 
52
  quicklook_stingray_button.on_click(handle_quicklook_button_selection)
53
 
54
  sidebar = pn.FlexBox(
55
-
56
- pn.pane.Markdown("# Navigation"),
57
- pn.FlexBox(home_button,
58
- load_data_button, flex_direction="row", justify_content="center", align_items="center"),
59
-
 
 
 
60
  quicklook_stingray_button,
61
-
62
  flex_direction="column",
63
  align_items="flex-start",
64
  justify_content="flex-start",
 
1
  import panel as pn
2
  import importlib
3
+ from modules.QuickLook.LightCurve import lightcurve_header, lightcurve_main_area
4
+ from modules.Home.HomeContent import (
5
+ home_header,
6
+ home_main_area,
7
+ home_output_box,
8
+ home_warning_box,
9
+ home_help_area,
10
+ home_footer,
11
+ )
12
+ from modules.DataLoading.DataIngestion import (
13
+ loadingdata_header,
14
+ loadingdata_main_area,
15
+ loadingdata_output_box,
16
+ loadingdata_warning_box,
17
+ )
18
  from assets.icons.svg import HOME_ICON_SVG, LOAD_DATA_ICON_SVG
19
 
20
+
21
  def create_sidebar(main_area, header, footer, output_box, warning_box, help_box):
22
  menu_items_quicklook_stingray = [
23
  ("Light Curve", "QuickLookLightCurve"),
 
25
  ("Cross Correlation", "QuickLookCrossCorrelation"),
26
  ]
27
 
 
28
  # Home Button
29
  home_button = pn.widgets.Button(
30
+ icon=HOME_ICON_SVG,
31
+ icon_size="20px",
32
+ name="",
33
+ button_type="default",
34
+ styles={"width": "50"},
35
+ description="Back to Home",
36
  )
37
 
38
  # Load Button
39
  load_data_button = pn.widgets.Button(
40
+ icon=LOAD_DATA_ICON_SVG,
41
+ icon_size="20px",
42
+ name="Load Data",
43
+ button_type="warning",
44
+ styles={"width": "100"},
45
+ description="Loading EventList",
46
  )
47
 
48
  # Create MenuButtons
 
54
  )
55
 
56
  def handle_home_button_selection(event):
57
+ header[:] = [home_header]
58
+ main_area[:] = [home_main_area]
59
+ output_box[:] = [home_output_box]
60
+ warning_box[:] = [home_warning_box]
61
+ help_box[:] = [home_help_area]
62
+ footer[:] = [home_footer]
63
+
64
  home_button.on_click(handle_home_button_selection)
65
 
66
  # Load Button changing main content
67
  def load_data(event):
68
+ header[:] = [loadingdata_header]
69
+ main_area[:] = [loadingdata_main_area]
70
+ output_box[:] = [loadingdata_output_box]
71
+ warning_box[:] = [loadingdata_warning_box]
72
+
73
  load_data_button.on_click(load_data)
74
 
75
  # Quicklook Button changing main content
76
+ def handle_quicklook_button_selection(event):
77
  clicked = event.new
78
  if clicked == "QuickLookLightCurve":
79
+ header[:] = [lightcurve_header]
80
+ main_area[:] = [lightcurve_main_area]
81
 
82
  quicklook_stingray_button.on_click(handle_quicklook_button_selection)
83
 
84
  sidebar = pn.FlexBox(
85
+ pn.pane.Markdown("<h1> Navigation </h1>"),
86
+ pn.FlexBox(
87
+ home_button,
88
+ load_data_button,
89
+ flex_direction="row",
90
+ justify_content="center",
91
+ align_items="center",
92
+ ),
93
  quicklook_stingray_button,
 
94
  flex_direction="column",
95
  align_items="flex-start",
96
  justify_content="flex-start",
utils/strings.py CHANGED
@@ -209,4 +209,4 @@ HELP_BOX_STRING = """
209
  This is the helpbox container. It will display any help or documentation for the analysis tools.
210
  It will also have links to the documentation and tutorials for the tools.
211
  And have a brief description of the physics behind the analysis.
212
- """
 
209
  This is the helpbox container. It will display any help or documentation for the analysis tools.
210
  It will also have links to the documentation and tutorials for the tools.
211
  And have a brief description of the physics behind the analysis.
212
+ """