I. Telescope Control Systems
The Realtime Software Ecosystem of the SMA
II. Software Libraries
SuperNOVAS C/C++ Astrometry Library
SuperNOVAS is easy to use and it is very fast, providing 3--5 orders of magnitude faster position calculations than astropy 7.0.0 in a single thread, and its performance will scale with the number of CPUs when calculations are performed in parallel threads.
SMA-X Real-time Hierarchical Database for Distributed Systems
The SMA Exchange (SMA-X) is a free, high performance, and versatile real-time data sharing platform for distributed software systems. It is built around a central Redis (or equivalent) database, and provides efficient atomic access to structured data, including specific branches and/or leaf nodes, with associated metadata. SMA-X was developed at the Submillimeter Array (SMA) observatory, where we use it to share real-time data among hundreds of computers and nearly a thousand individual programs
SMA-X consists of a set of server-side LUA scripts that run on a Redis / Valkey server; a set of libraries to interface client applications; and a set of command-line tools built with them. Currently we provide client libraries for C99 and Python 3.
RedisX — Independent Redis / Valkey client library for C/C++
RedisX is a free, light-weight Redis / Valkey client library for C/C++. It supports both interactive and batch queries, managing and processing subscriptions, atomic execution blocks, and LUA script loading. It can be used with multiple Redis servers simultaneously also. RedisX is free to use, in any way you like, without licensing restrictions.
While there are other C/C++ Redis clients available, this one is C99 compatible, andarren dowelld hence can be used on older platforms also. It is also small and fast, but still capable and versatile.
Rather than providing high-level support for every possible Redis command (which would be challenging given the pace new commands are being introduced all the time), it provides a basic framework for synchronous and asynchronous queries, with some higher-level functions, such as for managing key/value storage types (including hash tables) and PUB/SUB. Future releases may add further higher-level functionality based on demand for such features.
xchange — Structured data representation library for C/C++
The xchange library provides structured data representation and exchange in C/C++, and includes support for JSON parsing and generation. It is free to use, in any way you like, without licensing restrictions. For JSON parsing end emitting, xchange provides a higher-level data model than cjson, with high-level functions for accessing and manipulating data both with less code and with cleaner code.
The nom.tam.fits Java FITS Library
III. Instrumentation
A mm-Wave Integral Field Unit (IFU) Spectrometer Instrument
Coming soon...
NASA / POEMM Mission
The APEX MKID Camera (A-MKID)
AMKID is a large-format, dual-band (850um + 350um), camera for the APEX telescope. Its densely packed focal planes (in both bands) fill the ~12 arc minute Field-of-View (Fov) of the 12-m telescope, located at the high plateau, at 5300m elevation, in the Atacama desert in Chile. I provide the unified readout backend software, which collects and processes (in real-time) the data from 24 Fast Fourier Transform Spectrometer (FFTS) boards, needed to read out all pixels in the array. The backend also controls the FFTS boards, manages spectral sweeps, and interfaces to the telescope's control system (APECS), and to the frontend (FE) computer. Apart from the software, I help with troubleshooting and commissioning the instrument, which is now the largest, most powerful mm-wave camera in existence.
GISMO-2
My role in GISMO-2 began with suggested improvements (e.g. stray-light rejection, detector wiring), and I shall provide its data reduction facility with CRUSH. GISMO-2 may make its debut on the Greenland Telescope (GLT) in the not too distant future. Stay tuned!
IV. Observational Science
S-Z Clusters
Coming soon...
Interferometric On-the-Fly (OTF) Mapping
Coming soon...