{"id":2386,"date":"2017-07-26T06:32:33","date_gmt":"2017-07-26T11:32:33","guid":{"rendered":"https:\/\/blogs.mathworks.com\/loren\/?p=2386"},"modified":"2017-07-28T08:06:10","modified_gmt":"2017-07-28T13:06:10","slug":"matlab-and-the-2017-eclipse-part-3-rehearsing-for-the-eclipse","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/loren\/2017\/07\/26\/matlab-and-the-2017-eclipse-part-3-rehearsing-for-the-eclipse\/","title":{"rendered":"MATLAB and the 2017 Eclipse \u2013 Part 3: Rehearsing for the Eclipse"},"content":{"rendered":"<div class=\"content\"><!--introduction--><p>Today our guest blogger, David Garrison, will continue his series on MathWorks involvement in the 2017 solar eclipse.<\/p><div><ul><li>Part 1: The Citizen CATE Experiment<\/li><li>Part 2: Training the Volunteers<\/li><li><b>Part 3: Rehearsing for the Eclipse<\/b><\/li><li>Part 4: Imaging the Eclipse<\/li><\/ul><\/div><p>Here is Part 3 of the Series.<\/p><!--\/introduction--><h3>Contents<\/h3><div><ul><li><a href=\"#a819d28c-c771-47d4-8e21-e12f27e6d9ac\">Recap of Parts 1 &amp; 2<\/a><\/li><li><a href=\"#b80ea73c-1c15-4ca2-84e2-d45803960909\">Rehearsing for the Eclipse<\/a><\/li><li><a href=\"#8f8184a2-1fbb-4462-9168-8cc88b5a3cad\">The MATLAB Solar Eclipse App<\/a><\/li><li><a href=\"#069c9878-f3f2-4e8d-8b63-09dbc0c0e156\">What Will Happen During Totality<\/a><\/li><li><a href=\"#27e3064e-bbb0-4ba7-9e19-cf03bdaad96e\">After Totality<\/a><\/li><li><a href=\"#a27552ee-1813-45de-bd3a-688ede624a45\">Any Questions?<\/a><\/li><li><a href=\"#fa8887a5-4ebb-42d4-a265-dac2a9ff208a\">Next Up: Imaging the Eclipse<\/a><\/li><\/ul><\/div><h4>Recap of Parts 1 &amp; 2<a name=\"a819d28c-c771-47d4-8e21-e12f27e6d9ac\"><\/a><\/h4><p>In <a href=\"https:\/\/blogs.mathworks.com\/loren\/2017\/05\/31\/matlab-and-the-2017-eclipse-part-1-the-citizen-cate-experiment\">Part 1<\/a> of this series, I discussed MathWorks participation in the <a href=\"https:\/\/sites.google.com\/site\/citizencateexperiment\/home\">Citizen CATE Experiment<\/a> - a citizen science project to image the 2017 solar eclipse.  In <a href=\"https:\/\/blogs.mathworks.com\/loren\/2017\/06\/27\/matlab-and-the-2017-eclipse-part-2-training-the-volunteers\">Part 2<\/a> of this series, I described the volunteers, the equipment they will be using, and how they are being trained.<\/p><p>In this post, I will be joined by Andrei Ursache - another of our MathWorks Citizen CATE volunteers.  Andrei is an Application Engineer who works with Image Acquisition Toolbox and Image Processing Toolbox.  I will start by giving a brief description of what the volunteer teams are doing to prepare for the eclipse. Andrei will then discuss the MATLAB Solar Eclipse App that will be used by the volunteers and what will happen during and after totality.<\/p><h4>Rehearsing for the Eclipse<a name=\"b80ea73c-1c15-4ca2-84e2-d45803960909\"><\/a><\/h4><p>The volunteer teams have been working hard to prepare for the eclipse. Each team has been asked to practice capturing images for both solar and lunar observation.  The purpose of these practice sessions is to become familiar with the equipment, the software used to capture the images, and the observation protocol.<\/p><p>The complete hardware and software setup consists of the following:<\/p><div><ul><li>Windows 10 laptop<\/li><li>5 megapixel Point Grey (FLIR) USB3 monochrome camera (Grasshopper3 GS3-U3-51S5M with a 12-bit Sony IMX250 sensor and 2448 x 2048 resolution)<\/li><li>Daystar 80 mm diameter, 500 mm focal length refractor telescope<\/li><li>Celestron CG4 equatorial mount with motor drives for tracking<\/li><li>Arduino microcontroller<\/li><li>GPS module with antenna<\/li><li>MATLAB Solar Eclipse App<\/li><\/ul><\/div><p>The software is described in the sections below.<\/p><h4>The MATLAB Solar Eclipse App<a name=\"8f8184a2-1fbb-4462-9168-8cc88b5a3cad\"><\/a><\/h4><p>Hi, this is Andrei. As a volunteer for the Citizen CATE Experiment, I wrote the MATLAB Solar Eclipse App which will be used by the volunteer teams to capture the August 2017 total solar eclipse at each observation site on the totality path.<\/p><p>The software is a MATLAB app and uses functionality from Image Acquisition Toolbox, Image Processing Toolbox, and Parallel Computing Toolbox. A standalone executable application, built with MATLAB Compiler, has been installed on each of the laptop computers used by the volunteer teams. The app user interface is workflow-oriented based on the solar observation protocol put together by the Citizen CATE scientists. The graphical user interface consists of multiple tabs, each of them focused on a specific task, such as Alignment, Focus, Calibration, and Totality. As an example, here is a screenshot of the Focus tab, which is used to fine-tune the telescope focus:<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2017\/SolarEclipseApp.png\" alt=\"\"> <\/p><p>A live view of the video stream will be captured by the telescope camera which is connected to the laptop via a USB3 cable.  The live view will allow the volunteers to zoom in on a region of interest in order to fine tune the telescope focus. Image Acquisition Toolbox <tt>videoinput<\/tt> functionality will control the camera, transfer the acquired images into the MATLAB workspace, and provide a preview. A live image histogram, calculated with the <tt>imhist<\/tt> function in Image Processing Toolbox, will provide visual feedback for optimizing the exposure time. In the histogram, the x-axis shows the pixel intensity values (0-65535 for 16-bit scaled data) and the y-axis shows the number of pixels at each pixel value. The image histogram shows if there are overexposed pixels and will allow the volunteers to choose an appropriate exposure time. A focus quality indicator and a line profile will provide visual feedback for fine-tuning the telescope focus.<\/p><h4>What Will Happen During Totality<a name=\"069c9878-f3f2-4e8d-8b63-09dbc0c0e156\"><\/a><\/h4><p>During the 2-3 minutes of totality, the camera will capture a stream of images of the Sun's corona. Because the corona's brightness can vary significantly as you move away from the Sun's surface, high dynamic range (HDR) images are required to cover its full brightness range. The camera's exposure time will be controlled by a varying pulse-width TTL signal, output by the Arduino as shown in the picture below.  Those exposure times are 0.4, 1.3, 4, 13, 40, 130, 400, and 1300 milliseconds. The multi-exposure sequence will be continuously repeated during totality.  Each sequence will then be combined into a single HDR image. For 2.5 minutes of totality, each volunteer site will create about 75 HDR images.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2017\/HardwareTrigger.png\" alt=\"\"> <\/p><p>This might be a complicated programming exercise in other languages but in MATLAB it can be achieved with a few lines of code:<\/p><pre class=\"language-matlab\">v = videoinput(<span class=\"string\">'pointgrey'<\/span>, 1, <span class=\"string\">'F7_Mono16_2448x2048_Mode7'<\/span>);\r\ntriggerconfig(v, <span class=\"string\">'hardware'<\/span>, <span class=\"string\">'risingEdge'<\/span>, <span class=\"string\">'externalTriggerMode1-Source0'<\/span>);\r\nstart(v)\r\nframes = getdata(v);\r\nmontage(frames(:,:,:,1:8), <span class=\"string\">'Size'<\/span>, [2 4])\r\n<\/pre><p>Here is a series of images from a recent lunar observation practice session.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2017\/LunarExposures.png\" alt=\"\"> <\/p><p>Acquired image frames are saved to disk as TIF format files using the <tt>imwrite<\/tt> function:<\/p><pre class=\"language-matlab\"><span class=\"keyword\">for<\/span> ii = 1:size(frames,4)\r\n  filename = sprintf(<span class=\"string\">'frame_%d.tif'<\/span>, ii);\r\n  imwrite(frames(:,:,:,ii), filename, <span class=\"string\">'tiff'<\/span>);\r\n<span class=\"keyword\">end<\/span>\r\n<\/pre><p>In the app, we do not want the image saving operation to delay the execution of other code.  Saving to disk is done in a parallel worker using the <tt>parfeval<\/tt> function from Parallel Computing Toolbox.  For an example of how to simultaneously acquire images and save them to disk, see this MATLAB Answers <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/answers\/350044-how-can-i-simultaneously-acquire-images-and-save-them-to-disk-as-tiff-files\">post<\/a>.<\/p><p>While acquiring the images, the software also logs the frame timestamps. In order to synchronize the timestamps from different observation sites, the software gets GPS time information from the GPS module.  The GPS module is transmitting NMEA strings (lines of ASCII text) to the computer via a virtual COM port, as in the example below. The NMEA sentences contain information such as the GPS date and time, latitude, and longitude.<\/p><pre>  $GNZDA,180755.000,20,07,2017,,*47\r\n  $GPGGA,180755.000,4217.9848,N,07121.0476,W,1,18,0.6,83.6,M,-33.8,M,,0000*5A\r\n  $GNRMC,180755.000,A,4217.9848,N,07121.0476,W,0.00,0.03,200717,,,A*61<\/pre><p>We make use of the MATLAB <tt>serial<\/tt> function to communicate with and transfer data from the GPS module. For an example of how to log GPS NMEA strings to a text file, see this MATLAB Answers <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/answers\/350074-how-can-i-log-gps-nmea-strings-to-a-text-file\">post<\/a> .<\/p><p>After the eclipse, I will post the app to the <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/\">MATLAB File Exchange<\/a> for anyone who wants to see how it all works.<\/p><h4>After Totality<a name=\"27e3064e-bbb0-4ba7-9e19-cf03bdaad96e\"><\/a><\/h4><p>After totality ends, the multiple exposure images taken during the eclipse will be processed to create a set of high dynamic range (HDR) images as described above.  To create a high-dynamic range image from a multi-exposure image sequence, we use the <tt>makehdr<\/tt> function in Image Processing Toolbox. The <tt>tonemap<\/tt> function is used to compress the HDR image for viewing on a computer screen, which has a much lower dynamic range.<\/p><pre class=\"language-matlab\">filenames = cellstr(<span class=\"string\">\"frame_\"<\/span> + (1:8) + <span class=\"string\">\".tif\"<\/span>);\r\nexposures = [0.4 1.3 4 13 40 130 400 1300];\r\nhdr = makehdr(filenames,<span class=\"string\">'RelativeExposure'<\/span>,exposures\/exposures(3),<span class=\"keyword\">...<\/span>\r\n        <span class=\"string\">'MinimumLimit'<\/span>,1000,<span class=\"string\">'MaximumLimit'<\/span>,54000);\r\nhdr8 = tonemap(hdr);\r\nimshow(hdr8);\r\n<\/pre><p>Here is an HDR image which was obtained from combining a cycle of 8 multiple exposure images from a lunar practice session and another one created during the March 2016 eclipse in Indonesia.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2017\/HDRImages.png\" alt=\"\"> <\/p><p>After the eclipse, all the data taken by the volunteer teams will be uploaded to a server at the National Solar Observatory.  The HDR images from all volunteer sites will then be put together to create a 90 minute video of totality.<\/p><h4>Any Questions?<a name=\"a27552ee-1813-45de-bd3a-688ede624a45\"><\/a><\/h4><p>If you have an interest in amateur Astronomy or have any questions or comments about the Citizen CATE experiment, please let us know <a href=\"https:\/\/blogs.mathworks.com\/loren\/?p=2386#respond\">here<\/a>.<\/p><h4>Next Up: Imaging the Eclipse<a name=\"fa8887a5-4ebb-42d4-a265-dac2a9ff208a\"><\/a><\/h4><p>That's all for now.  In the last post in this series, I'll tell you about the day of the eclipse. I'll describe what happened during totality and show you some images of the corona taken on that day.<\/p><p>One final note.  The project sponsors and volunteers have prepared very carefully for the big event.  Working with the volunteer teams, they've tried to account for all contingencies. However, there is one variable that we cannot control - weather.  We just have to hope that mother nature cooperates on that day.<\/p><script language=\"JavaScript\"> <!-- \r\n    function grabCode_18383d15154740b6b475a0b4019c03de() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='18383d15154740b6b475a0b4019c03de ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' 18383d15154740b6b475a0b4019c03de';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        copyright = 'Copyright 2017 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add copyright line at the bottom if specified.\r\n        if (copyright.length > 0) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n\r\n        d.title = title + ' (MATLAB code)';\r\n        d.close();\r\n    }   \r\n     --> <\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_18383d15154740b6b475a0b4019c03de()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n      the MATLAB code <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2017a<br><\/p><\/div><!--\r\n18383d15154740b6b475a0b4019c03de ##### SOURCE BEGIN #####\r\n%% MATLAB and the 2017 Eclipse \u00e2\u20ac\u201c Part 3: Rehearsing for the Eclipse\r\n% Today our guest blogger, David Garrison, will continue his series on\r\n% MathWorks involvement in the 2017 solar eclipse.\r\n% \r\n% * Part 1: The Citizen CATE Experiment \r\n% * Part 2: Training the Volunteers\r\n% * *Part 3: Rehearsing for the Eclipse*\r\n% * Part 4: Imaging the Eclipse\r\n%\r\n% Here is Part 3 of the Series.\r\n\r\n%% Recap of Parts 1 & 2\r\n% In\r\n% <https:\/\/blogs.mathworks.com\/loren\/2017\/05\/31\/matlab-and-the-2017-eclipse-part-1-the-citizen-cate-experiment Part 1>\r\n% of this series, I discussed MathWorks participation in the\r\n% <https:\/\/sites.google.com\/site\/citizencateexperiment\/home Citizen CATE Experiment> - \r\n% a citizen science project to image the 2017 solar eclipse.  In \r\n% <https:\/\/blogs.mathworks.com\/loren\/2017\/06\/27\/matlab-and-the-2017-eclipse-part-2-training-the-volunteers Part 2> \r\n% of this series, I described the volunteers, the equipment they will be\r\n% using, and how they are being trained.\r\n%\r\n% In this post, I will be joined by Andrei Ursache - another of our\r\n% MathWorks Citizen CATE volunteers.  Andrei is an Application Engineer who\r\n% works with Image Acquisition Toolbox and Image Processing Toolbox.  I will\r\n% start by giving a brief description of what the volunteer teams are doing\r\n% to prepare for the eclipse. Andrei will then discuss the\r\n% MATLAB Solar Eclipse App that will be used by the volunteers and what will\r\n% happen during and after totality.\r\n%\r\n%% Rehearsing for the Eclipse\r\n%\r\n% The volunteer teams have been working hard to prepare for the eclipse.\r\n% Each team has been asked to practice capturing images for both solar and\r\n% lunar observation.  The purpose of these practice sessions is to become\r\n% familiar with the equipment, the software used to capture the\r\n% images, and the observation protocol.\r\n%\r\n% The complete hardware and software setup consists of the following:\r\n%\r\n% * Windows 10 laptop\r\n% * 5 megapixel Point Grey (FLIR) USB3 monochrome camera (Grasshopper3 GS3-U3-51S5M with a\r\n% 12-bit Sony IMX250 sensor and 2448 x 2048 resolution)\r\n% * Daystar 80 mm diameter, 500 mm focal length refractor telescope\r\n% * Celestron CG4 equatorial mount with motor drives for tracking\r\n% * Arduino microcontroller\r\n% * GPS module with antenna\r\n% * MATLAB Solar Eclipse App\r\n%\r\n% The software is described in the sections below.\r\n\r\n%% The MATLAB Solar Eclipse App\r\n% Hi, this is Andrei. As a volunteer for the Citizen CATE Experiment, I\r\n% wrote the MATLAB Solar Eclipse App which will be used by the volunteer\r\n% teams to capture the August 2017 total solar eclipse at each observation\r\n% site on the totality path.\r\n%\r\n% The software is a MATLAB app and uses functionality from Image\r\n% Acquisition Toolbox, Image Processing Toolbox, and Parallel Computing\r\n% Toolbox. A standalone executable application, built with MATLAB Compiler,\r\n% has been installed on each of the laptop computers used by the volunteer\r\n% teams. The app user interface is workflow-oriented based on the solar\r\n% observation protocol put together by the Citizen CATE scientists. The\r\n% graphical user interface consists of multiple tabs, each of them focused\r\n% on a specific task, such as Alignment, Focus, Calibration, and Totality.\r\n% As an example, here is a screenshot of the Focus tab, which is used to\r\n% fine-tune the telescope focus:\r\n%\r\n% <<SolarEclipseApp.png>>\r\n%\r\n% A live view of the video stream will be captured by the telescope camera\r\n% which is connected to the laptop via a USB3 cable.  The live view will\r\n% allow the volunteers to zoom in on a region of interest in order to fine\r\n% tune the telescope focus. Image Acquisition Toolbox |videoinput|\r\n% functionality will control the camera, transfer the acquired images into\r\n% the MATLAB workspace, and provide a preview. A live image histogram,\r\n% calculated with the |imhist| function in Image Processing Toolbox, will\r\n% provide visual feedback for optimizing the exposure time. In the\r\n% histogram, the x-axis shows the pixel intensity values (0-65535 for\r\n% 16-bit scaled data) and the y-axis shows the number of pixels at each\r\n% pixel value. The image histogram shows if there are overexposed pixels\r\n% and will allow the volunteers to choose an appropriate exposure time. A\r\n% focus quality indicator and a line profile will provide visual feedback\r\n% for fine-tuning the telescope focus.\r\n%\r\n%% What Will Happen During Totality\r\n% During the 2-3 minutes of totality, the camera will capture a stream of\r\n% images of the Sun's corona. Because the corona's brightness can vary\r\n% significantly as you move away from the Sun's surface, high dynamic range\r\n% (HDR) images are required to cover its full brightness range. The\r\n% camera's exposure time will be controlled by a varying pulse-width TTL\r\n% signal, output by the Arduino as shown in the picture below.  Those\r\n% exposure times are 0.4, 1.3, 4, 13, 40, 130, 400, and 1300 milliseconds.\r\n% The multi-exposure sequence will be continuously repeated during\r\n% totality.  Each sequence will then be combined into a single HDR image.\r\n% For 2.5 minutes of totality, each volunteer site will create about 75 HDR\r\n% images.\r\n%\r\n% <<HardwareTrigger.png>>\r\n%\r\n% This might be a complicated programming exercise in other languages but\r\n% in MATLAB it can be achieved with a few lines of code:\r\n%\r\n%   v = videoinput('pointgrey', 1, 'F7_Mono16_2448x2048_Mode7');\r\n%   triggerconfig(v, 'hardware', 'risingEdge', 'externalTriggerMode1-Source0');\r\n%   start(v)\r\n%   frames = getdata(v);\r\n%   montage(frames(:,:,:,1:8), 'Size', [2 4])\r\n%\r\n% Here is a series of images from a recent lunar observation practice session.\r\n%\r\n% <<LunarExposures.png>>\r\n%\r\n% Acquired image frames are saved to disk as TIF format files using the |imwrite| function:\r\n%\r\n%   for ii = 1:size(frames,4)\r\n%     filename = sprintf('frame_%d.tif', ii);\r\n%     imwrite(frames(:,:,:,ii), filename, 'tiff');\r\n%   end\r\n%\r\n% In the app, we do not want the image saving operation to delay the\r\n% execution of other code.  Saving to disk is done in a parallel worker\r\n% using the |parfeval| function from Parallel Computing Toolbox.  For an\r\n% example of how to simultaneously acquire images and save them to disk,\r\n% see this MATLAB Answers\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/answers\/350044-how-can-i-simultaneously-acquire-images-and-save-them-to-disk-as-tiff-files post>.\r\n%\r\n% While acquiring the images, the software also logs the frame timestamps.\r\n% In order to synchronize the timestamps from different observation sites,\r\n% the software gets GPS time information from the GPS module.  The GPS\r\n% module is transmitting NMEA strings (lines of ASCII text) to the computer\r\n% via a virtual COM port, as in the example below. The NMEA sentences\r\n% contain information such as the GPS date and time, latitude, and\r\n% longitude.\r\n%\r\n%    $GNZDA,180755.000,20,07,2017,,*47\r\n%    $GPGGA,180755.000,4217.9848,N,07121.0476,W,1,18,0.6,83.6,M,-33.8,M,,0000*5A\r\n%    $GNRMC,180755.000,A,4217.9848,N,07121.0476,W,0.00,0.03,200717,,,A*61\r\n%\r\n% We make use of the MATLAB |serial| function to communicate with and\r\n% transfer data from the GPS module. For an example of how to log GPS NMEA\r\n% strings to a text file, see this MATLAB Answers \r\n% <https:\/\/www.mathworks.com\/matlabcentral\/answers\/350074-how-can-i-log-gps-nmea-strings-to-a-text-file post> .\r\n%\r\n% After the eclipse, I will post the app to the \r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/ MATLAB File Exchange>\r\n% for anyone who wants to see how it all works.\r\n%\r\n%% After Totality\r\n%\r\n% After totality ends, the multiple exposure images taken during the\r\n% eclipse will be processed to create a set of high dynamic range (HDR)\r\n% images as described above.  To create a high-dynamic range image from a\r\n% multi-exposure image sequence, we use the |makehdr| function in Image\r\n% Processing Toolbox. The |tonemap| function is used to compress the HDR\r\n% image for viewing on a computer screen, which has a much lower dynamic\r\n% range.\r\n%\r\n%   filenames = cellstr(\"frame_\" + (1:8) + \".tif\");\r\n%   exposures = [0.4 1.3 4 13 40 130 400 1300];\r\n%   hdr = makehdr(filenames,'RelativeExposure',exposures\/exposures(3),...\r\n%           'MinimumLimit',1000,'MaximumLimit',54000);\r\n%   hdr8 = tonemap(hdr);\r\n%   imshow(hdr8);\r\n%\r\n% Here is an HDR image which was obtained from combining a cycle of 8\r\n% multiple exposure images from a lunar practice session and another one\r\n% created during the March 2016 eclipse in Indonesia.\r\n%\r\n% <<HDRImages.png>>\r\n%\r\n% After the eclipse, all the data taken by the volunteer teams will be\r\n% uploaded to a server at the National Solar Observatory.  The HDR images\r\n% from all volunteer sites will then be put together to create a 90 minute video\r\n% of totality.\r\n\r\n%% Any Questions? \r\n% If you have an interest in amateur Astronomy or have any questions or\r\n% comments about the Citizen CATE experiment, please let us know  \r\n% <https:\/\/blogs.mathworks.com\/loren\/?p=2386#respond here>.\r\n\r\n%% Next Up: Imaging the Eclipse \r\n% That's all for now.  In the last post in this series, I'll tell you about\r\n% the day of the eclipse. I'll describe what happened during totality and\r\n% show you some images of the corona taken on that day.\r\n% \r\n% One final note.  The project sponsors and volunteers have prepared very\r\n% carefully for the big event.  Working with the volunteer teams, they've\r\n% tried to account for all contingencies. However, there is one variable\r\n% that we cannot control - weather.  We just have to hope that mother\r\n% nature cooperates on that day.\r\n##### SOURCE END ##### 18383d15154740b6b475a0b4019c03de\r\n-->","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2017\/HDRImages.png\" onError=\"this.style.display ='none';\" \/><\/div><!--introduction--><p>Today our guest blogger, David Garrison, will continue his series on MathWorks involvement in the 2017 solar eclipse.... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/loren\/2017\/07\/26\/matlab-and-the-2017-eclipse-part-3-rehearsing-for-the-eclipse\/\">read more >><\/a><\/p>","protected":false},"author":39,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[71],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts\/2386"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/comments?post=2386"}],"version-history":[{"count":2,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts\/2386\/revisions"}],"predecessor-version":[{"id":2388,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts\/2386\/revisions\/2388"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/media?parent=2386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/categories?post=2386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/tags?post=2386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}