### Category "Solar"

[iTerm2] is a macOS terminal emulator with a lot of extra features. In particular, it has a simple protocol for displaying images inline. It comes with a program imgcat that will display common image formats such as PNG, JPEG, GIF, etc. Most of the images I deal with are FITS, though. I wrote fitscat to be a handy utility to display FITS images, as well as to print basic information about the FITS file such as a listing of extensions or an extension header.

For example, fitscat can display an image in an extension, as seen below:

There are options to specify a minimum and maximum value for scaling, as well as to use a simple filter such square root.

Also, fitscat can also print basic information about a FITS file, such as a listing of extensions:

CoMP$fitscat --list 20150624.170419.comp.1074.iqu.5.fts Filename: 20150624.170419.comp.1074.iqu.5.fts No. Name Ver Type Cards Dimensions Format 0 PRIMARY 1 PrimaryHDU 67 () 1 I, 1074.38 1 ImageHDU 33 (620, 620) float32 2 I, 1074.50 1 ImageHDU 33 (620, 620) float32 3 I, 1074.62 1 ImageHDU 33 (620, 620) float32 4 I, 1074.74 1 ImageHDU 33 (620, 620) float32 5 I, 1074.86 1 ImageHDU 33 (620, 620) float32 6 Q, 1074.38 1 ImageHDU 33 (620, 620) float32 7 Q, 1074.50 1 ImageHDU 33 (620, 620) float32 8 Q, 1074.62 1 ImageHDU 33 (620, 620) float32 9 Q, 1074.74 1 ImageHDU 33 (620, 620) float32 10 Q, 1074.86 1 ImageHDU 33 (620, 620) float32 11 U, 1074.38 1 ImageHDU 33 (620, 620) float32 12 U, 1074.50 1 ImageHDU 33 (620, 620) float32 13 U, 1074.62 1 ImageHDU 33 (620, 620) float32 14 U, 1074.74 1 ImageHDU 33 (620, 620) float32 15 U, 1074.86 1 ImageHDU 33 (620, 620) float32 Or display a header: CoMP$ fitscat --header -e 3 20150624.170419.comp.1074.iqu.5.fts
XTENSION= 'IMAGE ' /extension type
BITPIX = -32 /bits per data value
NAXIS = 2 /number of axes
NAXIS1 = 620 /
NAXIS2 = 620 /
PCOUNT = 0 /
GCOUNT = 1 /
EXTNAME = 'I, 1074.62' /
WAVELENG= 1074.620 / WAVELENGTH OF OBS (NM)
POLSTATE= 'I ' / POLARIZATION STATE
EXPOSURE= 250.00 / EXPOSURE TIME (MILLISEC)
NAVERAGE= 16 / Number of images averaged together
FILTER = 1 / FILTER WHEEL POSITION (1-8)
DATATYPE= 'DATA' / DATA, DARK OR FLAT
LCVR1TMP= 29.639999 / DEGREES CELSIUS
LCVR2TMP= 33.429001 /
LCVR3TMP= 33.715000 /
LCVR4TMP= 33.738998 /
LCVR5TMP= 33.618999 /
LCVR6TMP= 28.847000 /
NDFILTER= 8 / ND 1=.1, 2=.3, 3=.5, 4=1, 5=2, 6=3, 7=4, 8=cle
BACKGRND= 13.154 / Median of masked line center background
BODYTEMP= 34.023 / TEMPERATURE OF FILTER BODY (C)
BASETEMP= 33.599 / BASE PLATE TEMP (C)
RACKTEMP= 25.012 / COMPUTER RACK AMBIENT AIR TEMP (C)
OPTRTEMP= 33.306 / OPTICAL RAIL TEMP (C)
DEMULT = 1 / 1=DEMULTIPLEXED, 0=NOT DEMULTIPLEXED
FILTTEMP= 35.000 / ILX FILTER TEMPERATURE (C)
FLATFILE= '20150624.070023.FTS' / Name of flat field file
INHERIT = T /
DISPMIN = 0.00 / Minimum data value
DISPMAX = 5.00 / Maximum data value
DISPEXP = 0.50 / Exponent value for scaling

The full interface of fitscat is shown below:

\$ fitscat --help
usage: fitscat [-h] [--min MIN] [--max MAX] [--debug] [-d] [-l] [-r]
[-e EXTEN_NO] [-f FILTER] [-s SLICE]
filename

fitscat - a FITS query/display program

positional arguments:
filename FITS file to query

optional arguments:
-h, --help show this help message and exit
--min MIN min for scaling
--max MAX max for scaling
--debug set to debug
-d, --display set to display
-l, --list set to list HDUs
-e EXTEN_NO, --exten_no EXTEN_NO
specify extension
-f FILTER, --filter FILTER
specify filter (default: none)
-s SLICE, --slice SLICE
specify slice of data array to display

Source code for the Python script is available on [GitHub]. The script is compatible with Python 2 and 3, but requires standard scientific Python packages AstroPy, NumPy, and PIL.

[iTerm2]: https://iterm2.com "iTerm2"
[GitHub]: https://github.com/mgalloy/scripts/blob/master/fitscat "scripts/fitscat"

I will be posting more about the Great American Eclipse of 2017 this summer. To start off with, NASA has made some [great maps] of where the total eclipse will be visible from:

> On August 21, 2017, the moon will pass between Earth and the sun in a total solar eclipse that will be visible on a path from Oregon to South Carolina across the continental United States. This path of totality will occur in a little over 90 minutes, while observers on the ground will see the eclipse for about two and a half minutes. Standing at the edge of the moon's shadow, or umbra, the difference between seeing a total eclipse and a partial eclipse comes down to elevation - mountains and valleys both on Earth and on the moon - which affect where the shadow lands. In this visualization, data from NASA's Lunar Reconnaissance Orbiter account for the moon's terrain that creates a jagged edge on its shadow. This data is then combined with elevation data on Earth as well as information on the sun angle to create the most accurate map of the eclipse path to date. Watch the video to learn more.

via [kottke]

[kottke]: http://kottke.org/17/06/nasas-super-accurate-map-of-the-2017-eclipse "NASA’s super accurate map of the 2017 eclipse"

[great maps]: https://nasaviz.gsfc.nasa.gov/12458 "Shadow of the Eclipse"

[state maps]: https://eclipse2017.nasa.gov/eclipse-maps "NASA Eclipse Maps"

• #### GPULib

GPULib enables IDL developers to access the high-performance capabilities of modern NVIDIA graphics cards without knowledge of CUDA programming.

TaskDL is a task-farming solution for IDL designed for problems with loosely-coupled, parallel applications where no communication between nodes of a cluster is required.

#### mpiDL

mpiDL is a library of IDL bindings for Message Passing Interface (MPI) used for tightly-coupled parallel applications.

#### Remote Data Toolkit

The Remote Data Toolkit is a library of IDL routines allowing for easy access to various scientific data in formats such as OPeNDAP, HDF 5, and netCDF.

• #### Modern IDL

Modern IDL offers IDL programmers one place to look, for beginners and advanced users alike. This book also contains: a thorough tutorial on the core topics of IDL; a comprehensive introduction to the object graphics system; common problems and gotchas with many examples; advanced topics not normally found are discussed throughout the book: regular expressions, object graphics, advanced widget programming, performance, object-oriented programming, etc.

• #### IDLdoc

IDLdoc is an open source utility for generating documentation from IDL source code and specially formatted comments.

#### mgunit

mgunit is an open source unit testing framework for IDL.

#### rIDL

rIDL is an open source IDL command line replacement.

#### mglib

mglib is an open source library of IDL routines in areas of visualization, application development, command line utilities, analysis, data access, etc.