2.1.7
 * Updated the LWA-SV SSMIF to 2022/11/15
 * Updated the LWA1 SSMIF to 2022/11/15
 * Fixed a build problem on Python 3.8+

2.1.6
 * Updated for Python 3.10
 * Cleaned up the naming of the tutorial notebooks
 * Added support for observing with TRK_LUN

2.1.5
 * Fixed a few more problems with the new cache management
 * Fixed a problem in lsl.sim.vis.add_baseline_noise() that caused the SEFD values to be ignored in some cases
 * Various clean ups

2.1.4
 * Fixed a couple of problems with the new cache management
 * Fixed a couple of problems with the new file locking
 * Fixed a couple of problems with the lsl.testing.SilentVerbose class
 * More cleanup in the test suite

2.1.3
  * Added support for adding/subtracting timedelta instances from FrameTimestamp instances
  * Fixed an indexing problem in the coherent dedispersion padding
  * Added a `tai_mjd` field to lsl.reader.base.FrameTimestamp
  * Fixed a problem downsampling baselines from a lsl.imaging.data.VisibilityDataSet instance
  * Added a new `lsl.writer.virtual` module to help convert correlator output into something that can be used with `lsl.imaging.utils`
  * Updated the visibility writers to accept integrations with different numbers of baselines
  * Added support for 'python -m lsl.version'
  * Removed lslTelemetry.py in favor of 'python -m lsl.misc.telemetry'
  * Removed maskWisdom.py in favor of 'python -m lsl.misc.wisdom'
  * Changed the lsl.correlator.fx.FXMaster polarization keyword from 'Pol' to 'pol'
  * Added lsl.misc.file_cache to help with LSL cache management
  * Added lsl.misc.file_lock to help with conflicts updating the LSL file caches
  * Updated lsl.misc.ionosphere to use the 'unlzw' module to deal with unix compressed files
  * Updated LSL to work on read-only filesystems where the configuration/caches cannot be created
  * Moved the LSL-specific FFTW wisdom file to ~/.lsl
  * Added a new lsl.testing module to help with the test suite
  * Updated the test suite to improve coverage and make failures more specific

2.1.2
  * Improved compatibility for measurement sets generated by lsl.writer.measurementset
  * Added support for directly writing measurement sets with correlateTBF.py, correlateTBN.py, and correlateTBW.py
  * Fixed a problem copying AntennaArrays in lsl.imaging.data.VisibilityDataSet
  * Fixed a bug in the polarization handling in XEngine3

2.1.1
  * Fixed a build problem with lsl/reader/drspec.c found on some versions of OSX
  * Various cleanups based on https://lgtm.com analysis
  * Fixed a problem in the measurement set writer that caused CASA's listobs() to fail
  * Clarified which version of FFTW3 is needed.

2.1.0
  * Added UCF_USERNAME_RE to lsl.common.idf/sdf/sdfADP to make it eaiser to validate UCF usernames 
  * Added support for querying the MCS `mindelays.txt` file in lsl.common.metabundle/metabundleADP
  * Added support for the XXCRCIYY, CRCI, and I-only DR spectrometer modes
  * Several consistency fixes for the API in lsl.common.sdf/sdfADP and lsl.common.metabundle/metabundleADP

2.0.3
  * Fixed a problem with displaying lsl.reader.errors under Python3
  * Cleaned up SDF and IDF rendering to make it faster
  * Fixed a problem in lsl.imaging.utils.ImgW that lead to a shift in source position with frequency
  * Fixed a problem fitting a Gaussian to the point spread function in lsl.imaging.deconv
  
2.0.2
  * Added a -v/--lwasv option to correlateTBN.py and tbnSpectra.py
  * Added better input file type checking to the various "correlate" and "spectra" scripts
  * Switched back to CDDIS for ionospheric data
  * Fixed an error when setting beam/dipole mode for STEPPED SDFs
  * Fixed a bug in updateLSLSSMIF.py when trying to revert a SSMIF
  * Added a color keyword to the classes in lsl.common.busy and lsl.common.progress
  * Added a new BusyIndicatorPlus class to lsl.common.busy
  * Added a new DownloadBar class to lsl.common.progress
  * Reduced the number of warning messages generated by STEPPED SDFs
  * Added automatic updates of leap second information
  * Changed the IDF and SDF modules to be more flexible on the styles of input coordinates

2.0.1
  * Fixed a few problems with the scripts that ship with LSL
  * Added support for time zone-aware datetime instances in lsl.common.datetime_to_mjdmpm() and mjdmpm_to_datetime()
  * Added a utc_datetime attribute to lsl.reader.base.FrameTimestamp to provide a time zone-aware datetime instance
  * Dropped the requirement that a beam be specified in lsl.common.sdf and sdfADP
  * Fixed a deadlock condition that could occur during a DRXFile.offset()
  * Fixed a bug in the DRXFile when dealing with small gaps in the data
  * Updated lsl.reader.errors.SyncError to allow for reporting of non-Mark5C problems
  * Update the documentation for lsl.common.idf, sdf, and sdfADP
  * Added missing sub, isub, div, and idiv operators to lsl.reader.base.FrameBase
  * Added a jd property to lsl.reader.base.FrameTimestamp to access the associated Julian day
  * Updated the lsl.writer module to accept times as FrameTimestamp instances
  * Updated the documentation in lsl.common.stations.Cable to make it more clear what attenuation and gain are

2.0.0
  * Major API changes to put LSL under a uniform coding style
  * Bumped the minimum Python version to 2.7
  * Bumped the mininum SciPy version to 0.13
  * Replaced PyFITS with astropy.io.fits
  * Removed support for 32-bit systems in the lsl.common modules
  * Added a new lsl.imaging.data module and classes to help store visibility data
  * Added a new extension to speed up w-projection gridding
  * Merged the non-windowed and windowed functions in the lsl.correlator extensions to de-duplicate some of the codebase
  * Added support for reading CASA measurement sets with multiple spectral windows
  * Added test suites for CASA measurement set support when the 'casacore' module is found
  * Added support for astorpy.units.quantity.Quantity instances to lsl.misc.rfutil
  * Updated the AIPY version requirement to >=3.0.1
  * Updated the scipy version requirement to >=0.19
  * Removed lsl.misc.mathutil.savitzky_golay since it was added in scipy v0.14.0+
  * Added support for collecting usage data for LSL via lsl.misc.telemetry
  * Updated to lsl.misc.ionosphere to IGRF13
  * Dropped support for PyFFTW

1.2.6
  * Fixed a bug in the lsl.reader.ldp classes that causes offset() to fail in certain cases

1.2.5
  * Updated setup.py to make it more likely that clang will build OpenMP-enabled extensions
  * Updated the install documentation to recommend pip
  * Added a 4-tap + Hanning windowed polyphase filter bank to the various functions in lsl.correlator.fx
  * Added an option to use the new PFB in correlateTBN and correlateTBW
  * Added an option to use the new PFB in drxSpectra, tbnSpectra, and tbwSpectra
  * Added support for proper motions to the IDF format
  * Added support for storing source intentions in the CALCODE field in FITS IDI files
  * Modified the offset method in lsl.reader.ldp to take into account the frame buffers
  * Added support to the lsl.reader.ldp.DRSpecFile object for jumping over bad data at the start of a file
  * Improved support for complex and multi-channel VDIF data
  * Added support for filter code 7 (19.6 MHz) on ADP
  * Added support for beam 3 on ADP

1.2.4
  * Fixed a bug in driftcurve.py that put a cos(decliation) correction into the LFSM runs
  * Updated the documentation to reflect that unittest2 is now required as of 1.2.2 for Python 2.6 support
  * Added argparse as an extra dependency for Python 2.6
  * Moved the scripts that ship with LSL to argparse for command line parsing
  * Added a new lsl.misc.parser module to help with the switch over to argparse
  * Updated the minimum PyEphem version of 3.5.7.3
  * Fixed a bug in lsl.misc.ionosphere that causes some UQR files to fail to parse
  * Updated the URL/filename structure used to download the CODE files in lsl.misc.ionosphere
  * Added support for MCS MIBs stored as .gdb files
  * Added support for writing comments and history to FITS-IDI, SDFITS, and UVFITS files
  * Changed the lsl.reader.ldp.DRXFile class to deal with small (<50 frame) gaps in DRX files
  * Changed the lsl.reader.cor module to ensure the YX is valid for the autocorrelations
  * Worked on reduced the memory usage of the FITS-IDI writer
  * Adjusted the TBW duration calculation to reflect that DP can output TBW twice as fast now
  * Changed the lsl.common.sdf and lsl.common.sdfADF to allow "flat" Projects and Sessions
  * Fixed a problem triggering auto-copy in SDFs when not session comments are provided
  * Fixed a problem in some of the lsl.writer modules that caused duplicate entries to end up in SOURCE tables
  * Added support for interferometer definition files (IDFs)

1.2.3
  * Fixed a problem with the conditional dependencies in setup.py for older versions of setuptools
  * Increased the default ring segment count for lsl.reader.buffer.DRXFrameBuffer to better deal with LWA-SV data
  * Increased the number of frames examined by lsl.reader.ldp.DRXFile to better deal with LWA-SV data

1.2.2
  * Bumped the minimum PyFITS version to 3.2
  * Fixed a bug in setup.py that causes it to crash when 'pkg-config' is not installed
  * Fixed a memory leak in the new, more flexible lsl.reader modules
  * Fixed a problem with the data ordering in the lsl.writer modules when a high time resolution (<~2 ms) is used
  * Fixed a bug in the DR spectrometer reader which incorrectly mapped tuning 2, Stokes I for IQUV-mode observations
  * Fixed a bug in the new measurement set writer
  * Added multiple IF support to the FITS IDI writer and reader
  * Added multiple IF/spectral window support to the CASA measurement set writer
  * Worked on making the lsl.writer.fitsidi and lsl.writer.measurementset modules more robust
  * Fixed a bugs in the VDIF reader and writer
  * Fixed a few bugs in the scripts that ship with LSL
  * Added unittest2 as an extra dependency for Python 2.6

1.2.1
  * Added a new lsl.common.color module to help bring color to ANSI terminals
  * Small fix to lsl.imaging.utils.plotGriddedImage() to get the image scale correct for non-all-sky images
  * Finished moving imageIDI.py over to using the lsl.imaging modules
  * Changed the default FFT length in correlateTBN.py to 16 channels
  * Fixed a bug in lsl.common.sdf/sdfADP that caused parseSDF() to crash on SDFs generated by MCS when beam delays/gains were specified
  * Updated lsl.common.sdfADP to allow two beams at LWA-SV
  * Cleaned up a few messages in lsl.sim.vis and lsl.reader.ldp so that they use the warnings module
  * Made problems in lsl.statistics.robust raise ValueErrors if a problem is encountered
  * Added functions to lsl.common.adp to calculate the magnitude response of the TBN and DRX filters
  * Small fix to lsl.common.metabundle(ADP).getSessionMetaData() to make it more robust
  * Updated the lsl.skymap.SkyMapLFSM module to the 2018 April 23 version of the model
  * Added support for the UQR global ionospheric model to the lsl.misc.ionosphere module
  * Updated the lsl.reader.cor module to support what ADP at LWA-SV is currently capable of generating
  * Added OVRO-LWA as a valid station for a few of the LSL scripts that do not depend on detailed configuration information
  * Fixed a bug in lsl.common.metabundle*.getSessionMetaData() when parsing metadata from failed observations
  * Various performance enhancements to the C extentions in lsl.correlator
  * Updated the various lsl.reader extensions to use the read() method of the filehandle to make them more flexible
  * Improved support for TBF in the lsl.reader.ldp module
  * Added a writeto() method to lsl.common.sdf/sdfADP.Project to make it easier to write an SDF to a file
  * Fixed a bug in the PyFFTW usage in lsl.correlator.filterbank and fixed the output scaling
  * Added a new lsl.version.get_fingerprint() function to help keep track of local changes made to the LSL installation
  * Added support for writing correlated data to a CASA measurement set
  * Added ARX filter response measurements for Sevilleta

1.2.0
  * Added a new lsl.common.adp module to help describe ADP
  * Added support for MCS working with ADP-based stations
  * Added support for SDFs for ADP-based stations
  * Addes support for metadata handling for ADP-based stations
  * Added support for ADP TBF data
  * Added support for ADP COR data
  * Added support for complex antenna response to lsl.sim.nec_util.NECPattern
  * Dropped support for block reads in lsl.reader.drx and lsl.reader.tbn
  * Added a new interface attribute to lsl.common.stations.LWAStationBase instances
  * Added support for auto-copy to the LWAUCF in the lsl.common.sdf and lsl.common.sdfADP modules
  * Added a function to lsl.common.stations, getFullStations(), to return a list of full stations
  * General code clean-up using pylint
  * Fixed various bugs found in pylint in seldom-used routines
  * Moved the C extensions over to version 1.7 of the Numpy C API
  * Added a new OMP_SCHEDULER macro the the various C extensions to help control how OpenMP schedules things
  * Added more robust error handling inside the C extensions to help make segfaults more rare
  * Released the GIL inside the various computing C extensions and some of the LWA file format readers
  * Added a backport of the Python3 LRU cache module to help with internal caching
  * Added a new LSLInterfaces attribute to lsl.common.station.LWAStation instances to help keep track of which station uses which modules
  * Updated various scripts that ship with LSL to support data from LWA-SV
  * Updated the lsl.reader.ldp module to issue warnings on timetag errors when 'ignoreTimeTagErrors' is set to True
  * Updated the lsl.skymap module to include the Low Frequnecy Sky Model (LFSM)
  * Added an option for applying an empirical correction to the dipole power pattern to driftcurve.py and plotAntenna.py

1.1.4
  * Fixed a missing import statement and a couple of bugs in splitTBN.py
  * Fixed a conjugation problem in the lsl.writer.fitsidi module that caused the image to be transposed in AIPS
  * Fixed a conjugation problem in the lsl.utils.imaging module that caused images created from FITS-IDI files to be transposed
  * Fixed a source enumeration problem in the lsl.writer.fitsidi module that caused excessive source IDs
  * Fixed a bug in lsl.reader.vdif that caused gofast.c not to compile with newer versions of gcc
  * Fixed several problems when using LSL with Numpy >=1.12
  * Updated test_geodesy.py to work with the revised EOP parameter files
  * Fixed a formatting typo in lsl.reader.ldp when getInfo() tries to return an invalid key
  * Fixed a bug in lsl.reader.buffer that could lead to some invalid frames being added to the buffer
  * Dropped support for ADP DRX8 in the lsl.reader.buffer module
  * Dropped support for FreeBSD
  * Added support for printing to location of sync. errors in the lsl.reader modules

1.1.3.2
  * Applied a fix for the course FIFO phase jumps in the core.c FEngineC2/3 functions.

1.1.3.1
  * Re-fixed a bug in the complex functions in lsl.correlator._spec and lsl.correlator._stokes that caused the negative frequencies in odd-sized FFTs to be unpacked incorrectly

1.1.3
  * Fixed a bug in the complex functions in lsl.correlator._core, lsl.correlator._spec, and lsl.correlator._stokes that caused the negative frequencies in odd-sized FFTs to be unpacked incorrectly
  * Updated the tai-utc.dat file for the upcoming leap second in December 2016
  * Changed the Earth orientation parameters data source to the IERS FTP server

1.1.2
  * Fixed a bug in the lsl.reader.ldp.TBWFile class that caused the wrong start time to be returned in some cases
  * Fixed a missing import statement in tbnSpectra.py that caused the script to fail when a metadata tarball as passed in on the command line
  * Updated the lsl.writer.fitsidi module to be more efficient
  * Updated the lsl.writer.uvfits module to be more efficient
  * Updated the lsl.imaging.utils.CorrelatedMS function to work with MeasurementSets stored inside a tarball
  * Small change to lsl.correlator.uvUtils.computeUVW to make it faster for large frequency arrays
  * Added 'memmap' and 'clobber' keywords to the various lsl.writer modules to expose a consistent interface
  * Small fix in imageIDI.py to make it work with CASA MeasurementSets
  * Transitioned to the native C complex type for the various C extensions
  * Added 'memmap' and 'clobber' keywords to the various lsl.writer modules to expose a consistent interface
  * Small fix in imageIDI.py to make it work with CASA MeasurementSets
  * Transitioned to the native C complex type for the various C extensions
  * Added better support VDIF files in the lsl.reader.vdif module
  * Added a ring buffer for VDIF files to the lsl.reader.buffer module
  * Added support for single tuning beam SDFs
  * Fixed a couple of bugs that caused FITS IDI files to have invalid uvw coordinates
  * Added an option to imageIDI.py to show the time in UTC instead of LST
  * Updated the LWA1 SSMIF to the 7 July 2016 version

1.1.1
  * Fixed a bug in the lsl.statistics.robust.checkfit function
  * Fixed a few modules that caused problems with automatic recasting in newer versions of NumPy
  * Cleaned up the lsl.misc.dedispersion.delay() function so that it will work with lists of single frequency values
  * Small fix to the lsl.imaging.selfCal module to make it more robust when not all antennas are present
  * Updated the updateLSLSSMIF.py script to use the new LWA1 SSMIF location on the archive
  * Added new ionosphere model sources to the lsl.misc.ionosphere module
  * Changed the disk caching to lsl.misc.ionosphere to store only gzipped files
  * Added options for other model sources to getIonosphericRM.py
  * Fixed a bug in correlateTBW.py/correlateTBN.py that causes the script to usually write out an Extended IDI file
  * Fixed a bug in splitSession.py that caused the script to crash
  * Updated the various FITS-based writers to remove the old PyFITS API that is no longer supported

1.1.0
  * Updated the lsl.imaging.deconv module to include a source-based CLEAN method and a forward-modeling/least squares method
  * Added support for phase centers other than zenith to the various functions in lsl.imaging.overlay
  * Added support for determining coordinates for images with phase centers other than zenith to the lsl.imaging.utils module
  * Added a new image analysis module, lsl.imaging.analysis, that allows one to find point sources in a 2-D image
  * Added backward compatibility for older metadata tarball formats to the lsl.common.metabundle module (Ticket #61)
  * Added preliminary support for working with circular polarizations in the correlator (lsl.correlator.fx) and imaging (lsl.imaging.utils) modules
  * Added an option of imageIDI.py to overlay a topocentric graticle rather than a equatorial one
  * Added better support for non-linear polarizations to imageIDI.py
  * Added support for retrieving the file start time in samples to the various lsl.reader.ldp.LDPFileBase sub-classes
  * Removed the lsl.misc.mathutil.robustmean() function in favor of lsl.statistics.robust.mean()
  * Added a function to the lsl.astro module to help deal with correcting a celestial coordinate for nutation
  * Added support for image weighting and tapering with the new lsl.imaging.utils.ImgWPlus class
  * Switched lsl.imaging.utils.buildGriddedImage() over to using the new ImgWPlus class
  * Added a new RadioEarthSatellite class to lsl.sim.vis help with simulating satellites that may be transmitting within the observing band
  * Added the lsl.misc.ionosphere module to help with computing the dispersion and rotation measure of the ionosphere
  * Added a new script, getIonosphericRM.py, that uses the lsl.misc.ionosphere module to estimate the rotation measure during an observation
  * Added a new VDIF reader
  * Improved the speed of the 4-bit TBW, TBN, and DRX reads through look-up tables
  * Improved support for UVFITS files written by AIPS
  * Added multiple integration selection to the various readers in lsl.imaging.utils
  * Added support for phase centers other than zenith in the FITS-IDI writer
  * Made the 'phaseCenter' keyword in lsl.correlator.fx.FXMaster and lsl.correlator.fx.FXStokes more flexible by allowing other data types
  * Switched the various CorrelatedData readers in lsl.imaging.util to only using the metadata for building the station information

1.0.3
  * Fixed a bug in the inspectTarball.py script that caused it to crash on TBN/TBW metadata
  * Added fallbacks to lsl.misc.geodesy to use a backup EOP server if the primary is unreachable
  * Fixed a bug in imageIDI.py that caused it to crash if a FITS image is not saved
  * Added a new module, lsl.misc.rfutil, to help with understanding commercial antenna properties
  * Moved the calculateSEFD() function out of lsl.sim.vis and into lsl.misc.rfutil
  * Changed the meaning of the 'ForceGaussian' keyword in lsl.sim.vis.buildSimArray to contain the Gaussian full widths at half maximum in degrees
  * Added Boltzmann's constant to lsl.common.constants
  * Added a 'color' keyword to the various functions in lsl.imaging.overlay to change the color of the overlay
  * Added a 'marker' keyword to the lsl.imaging.overlay.source() to change symbol of the source overlay
  * Added a function to lsl.statistics.robust to help estimate the mode of a data set using the half-sample method
  * Fixed the __all__ declaration in the lsl.writer.sdfits module
  * Fixed a bug in the lsl.common.progress.ProgressBarPlus class that caused the time estimates not to get updated when using __iadd__
  * Fixed a bug in the splitSession.py script that caused it to die on truncated data files (Ticket #60)
  * Fixed a bug in imageIDI.py that assumed that 'xx' was always present in the data
  * Fixed a bug in the lsl.reader.ldp.DRXFile class that caused the tuning frequencies to be reported wrong by getInfo()
  * Changed how the lsl.reader.ldp.*.readFrame() functions interact with the time tag checker
  * Fixed the ranging of phases coming out of the lsl.imaging.selfCal module
  * Added 'axis' and 'dtype' keywords to the various statistical functions in lsl.statistics.robust and lsl.misc.mathutil to make the functions more compatible with their numpy counterparts
  * Added 'boundary' and 'fill_value' keyword to the lsl.misc.dedispersion.incoherent() function to make it clear how the time boundary is handled
  * Added options to the imageIDI.py script to make it easy to change which dipoles are used for imaging
  * Added an option to the correlateTBW/correlateTBN scripts to correlate all dipoles, regardless of status in the SSMIF
  * Fixed a bug in lsl.imaging.utils.CorrelatedData() that makes the IOErrors more transparent
  * Added a deprecation warning to the lsl.misc.mathutil.robustmean() function since it will be removed in 1.1.x
  * Added options to the splitSession script to give better control over the output
  * Added options to the possm script that makes it behave more like imageIDI
  * Fixed a problem in the lsl.imaging.deconv module when computing the positions of RadioFixedBody instances
  * Fixed a bug in the lsl.sim.vis.buildSimArray() function that caused the simulation array date not to match the input if 'jd=None'
  * Fixed a bug in the lsl.sim.vis.buildSimData() function that caused the wrong antenna gain pattern to be applied
  * Fixed a bug in the lsl.imaging.utils module that causes the AntennaArray instances returned by the CorrelatedData readers to be out-of-order in some cases
  * Cleaned up the DR spectrometer reader so that file alignment is not lost when a syncError is raised

1.0.2
  * Added documentation for LDP to the Sphinx build system
  * Added a call to close() for the data dictionary used in lsl.sim.vis.buildSimArray
  * Fixed a version number regression in lsl.correlator.fx
  * Added a call to close() for the data dictionary used in lsl.skymap.SkyMapGSM

1.0.1
  * Added an option to updateLSLSSMIF.py to update the LWA1 SSMIF using a local file
  * Fixed a build problem on OS X with Python 2.7
  * Added support for using PyFFTW in the lsl.misc.dedispersion module
  * Added support for using PyFFTW in the lsl.correlator.filterbank module
  * Fixed a sign problem in the rewritten lsl.skymap.ProjectedSky class that caused the sky to invert in azimuth
  * Added support for FFTW wisdom
  * Switched the various C extensions over to used the floating point version of FFTW
  * Changed the name of the lsl.stations.LWAStation method for finding the distance and direction to another point on surface of the Earth from 'getPointingAndDirection' to 'getPointingAndDistance'
  * Updated the lsl.misc.gaussparams function to imporve the 2-D fits
  * Removed the requirement for a BANDPASS table in the lsl.imaging.utils.CorrelatedDataIDI class
  * Reworked the lsl.reader.ldp module to provide a more object oriented way to access data files
  * Fixed a packing bug in the lsl.sim.drx.frame2frame function
  * Fixed a bug in lsl.imaging.utils.CorrelatedDataUV that cause getDataSet to always return all data
  * Fixed the baseline ordering in FITS IDI files that use the stand number mapper
  * Updated the FITS IDI reader to use the UVFITS  scheme for determining baseline sets
  * Major overhaul of the lsl.sim.vis module to use a new C-based simulation extension instead of AIPY
  * Fixed a bug in lsl.correlator.fx that caused the number of overlapped FFTs to be calculated incorrectly
  * Fixed a bug in lsl.correlator.fx.FXMaster/FXStokes that caused the last FFT window to be excluded from the integration
  * Removed the lsl.correlator.fx.SpecMasterP function
  * Updated the lsl.imaging.utils module to better deal with sparse FITS IDI/UVFITS files
  * Added support for the new MCS beam-dipole mode via the SDF keyword OBS_BDM
  * Various fixes to the lsl.imaging.deconv module
  * Added a plotting helper function to lsl.imaging.utils
  * Added a new overlay module for images called lsl.imaging.overlay
  * Fixed several bugs in lsl.sim.vis and lsl.imaging.utils related to single-channel data sets
  * Added an option to export the images created to imageIDI.py to a FITS image file
  * Small bugfix to the lsl.writer.tsfits module with regards to processing DRX frames
  * Cleaned up the setup.py script to uses NumPy's internal facilities to identify ATLAS
  * Updated the list of dependencies to include pytz
  * Added the 'iauConvention' keyword to the lsl.misc.beamformer.circularize() function
  * Added a few new convenience functions to the lsl.reader.drspec module
  * Added 'lwavl' as an alias to 'lwa1' in the lsl.common.stations module
  * Added methods to return the response curves of the FEE and Cable to the lsl.common.stations module
  * Fixed a bug in lsl.imaging.utils.CorrelatedData() that caused IOErrors to be get masked

1.0.0
  * Added in LWA Development Primitives module (lsl.reader.ldp)
  * Added a function to lsl.misc.beamformer to convert X and Y linear pols. to circular L and R pols
  * Removed the lsl.correlator.visUtils module since it isn't used by any other modules or scripts
  * Switched the lsl.correlator modules over to returned all 'LFFT' channels
  * Replaced the Fermi first point source catalog with the 2-year catalog
  * Dropped libnova in favor of PyEphem for the backend to the lsl.astro module
  * Modified skymap.ProjectedSkyMap to not rely on the lsl.astro_array module
  * Removed the lsl.astro_array module
  * Removed the lsl.libnova module and the associated swig file
  * Updated the documentation to reflect the reduced dependencies
  * Update lsl.common.stations.LWAStation to be a sub-class to ephem.Observer
  * Added a function to lsl.common.stations.Antenna to access information about the impedence mis-match
  * Added an option to the various response functions in lsl.common.stations to return values in dB
  * Switch the information/SSMIF for the north arm site to lwana instead of lwa2 to avoid confusion with the SV site
  * Renamed the lsl.common.stations.LWAStation.getECEFTransform() function to getECITransform() to reflect what is really happening
  * Added a function to lsl.imaging.utils to make it easy to re-phase a data dictionary to a new pointing center
  * Added new functions to the LWAStation class to deal with direction and distance to other stations/points on the Earth
  * Generalized the computeUVW() and computeUVTrack() functions
  * Added a disk-based cache to the lsl.misc.geodesy module to help keep network traffic down
  * Added support for reading and writing UVFITS files
  * Added support for reading CASA measurement sets via pyrap
  * Added a function to rephase a visibility data dictionary to a new pointing center
  * Improved the visibility simulation speed in lsl.sim.vis
  * Added try...except blocks to lsl.common.metabundle to clean up after failed functions
  * Added append() functions to Project and Session in lsl.common.sdf to make it easier to add sessions and observations
  * Added a setSpectrometerMetatag() function to lsl.common.sdf.Session to make setting the metatag easier
  * lsl.common.sdf.Project.render() now calls update() to make sure everything is up-to-date before rendering
  * Added 'verbose' keywords to lsl.imaging.utils.buildGriddedImage() and the lsl.imaging.selfCal functions
  * Added a ASCII busy indicator for long running tasks
  * Added a script to make it easier to update the internal LWA1 SSMIF used by LSL

0.6.6
  * Fixed a problem with older NumPy installs not having a close() function
  * Fixed a bug in the splitTBN.py and splitDRX.py scripts when a 'count' is not provided
  * Fixed the try...except blocks in lsl.statistics.kurtosis.getLimits() to catch the appropriate error
  * Improved the end buffering the in lsl.misc.dedispersion.coherent() function
  * Updated the LWA1 SSMIF to the 131031 version
  * Fixed a typo in the help for correlateTBN.py

0.6.5
  * Fixed the time remaining computation in lsl.common.progress.ProgressBarPlus
  * Fixed a bug in imageIDI.py that caused the LST not to update on subsequent integrations
  * Added in a call to close() after numpy.load() is used
  * Updated the setup.py script to help deal with clang/OpenMP on OSX
  * Updated the lsl.common.metabundle module to deal with the new _metadata.txt file format
  * Added a method to read in MCS MIB files in the GDBM format
  * Added new functions to lsl.common.metabundle to retrieve the ASP configuration from a new metadata tarball

0.6.4
  * Cleaned up the coherent part of the dedispersion module
  * Added a time estimating progress bar to lsl.common.progress
  * Fixed the data scaling in the SoftwareDP _processStreamFilter() function
  * Fixed the integration time stored in the FITS IDI files generated by correlateTBW.py
  * Added validation for the DR spectrometer channels/integration count/mode in an SDF
  * Fixed a couple of typos in the DR spectrometer reader that mixed the I-only and Q-only output modes
  * Fixed the 'fills' normalization in the DR spectrometer reader for the YX-only, YY-only, XX/YY, and XX/XY/YX/YY modes
  * Fixed the axis order in the SDFITS writer

0.6.3
  * Fixed a typo. in lsl.imaing.utils.pruneBaselineRange() function
  * Added normalization by the transform length to the lsl.reader._gofast module
  * Added back in the "import lsl; lsl.test()" fixture
  * Updated the plotUVcoverage.py script to work with all 260 stands
  * Fixed the data volume computation for lsl.common.sdf.Stepped observations
  * Updated the imageIDI.py script to work with either correlated TBW or TBN files
  * Reorganized the scripts to better handle metadata and removed the IOC scripts
  * Changed the default values of SESSION_LOG_SCH and SESSION_LOG_EXE in lsl.common.sdf to False
  * Fixed the lsl.common.sdf.Stepped class so that the step lists of independent
  * Added the pointing correction keywords to the binary SSMIF reader
  * Fixed a bug in the calculation of cable delays
  * Fixed the order of the optional SESSION_* keywords in the SDF renderer
  * Updated the SDF parser to better work with SDFs that contain custom beamforming
  * Added convenience functions to the lsl.common.mcs module to help pack delays and gains for custom beamforming SDFs
  * Updated the included LWA1 SSMIF to the March 10, 2013 version
  * Added support for phase offsets to the lsl.sim.vis.scaleData() function
  * Improved the lsl.imaging.selfCal module by added in new methods
  * Fixed the decimation values for the TBN and DRX CIC filters

0.6.2
  * Fixed a bug in splitDRX.py that caused the script to die if an --offset was passed in
  * Fixed a bug in lsl.common.mcs that caused binary packed files to be read in incorrectly on 32-bit installs
  * Fixed a bug in lsl.misc.beamformer that caused the beam simulators to fail when running in single-thread mode
  * Added frequency keywords to the integer delay-and-sum beamformer functions
  * Fixed a problem with the beam power pattern measured by lsl.misc.beamformer.intBeamShape
  * Overhaul of the lsl.common.sdf module to address Ticket #40 (OBS_DRX_GAIN problem) and to improve the render
  * Removed jinja2 as a dependency
  * Fixed a bug in lsl.common.sdf dealing with parsing LST times
  * Added the inspectTarball.py script
  * Added an option to the lsl.imaging.utils.CorrelatedData class to only return baselines in a certain uv range
  * Updated the LWA1 SSMIF to the 2013/1/23 version to include the LEDA outriggers

0.6.1
  * Added support for DROS metatags in the SESSION_SPC SDF keyword

0.6.0
  * Removed the correlator.fx.calcSpectra()/calcSpectrum() functions
  * Removed the lsl.common.warns module
  * Removed the LWAFS-specific modules since they are not needed for the new DROS v2
  * Updated the DR spectrometer reader (lsl.reader.drpsec) for the new DROS v2

0.5.5
  * Added in the pointing correction rotation code to lsl.common.mcs as applyPointingCorrecton()
  * Made the visibility simulations consistent with the output of lsl.correlator.fx.FXMaster()
  * Added a new lsl.writer.fitsidi.ExtendedIDI class to deal with more than 255 antennas
  * Updated lsl.imaging.utils to deal with the new ExtendedIDI class
  * Added in the self-calibration routines to lsl.imaging.selfCal
  * Updated the LWA1 and LWA2 SSMIFs
  * Fixed the observatory/instrument specific header values in lsl.writer.fitsidi so that they reflect the different sites
  * Updated lsl.misc.dedispersion.coherent() to deal with the padding better

0.5.4
  * Switched over to transparent compression in the lsl.common.metabundle functions
  * Added support for '/' seperated YYYY/MM/DD in lsl.common.sdf.parseTimeString()
  * Removed the 'return' values from the _gofast module import call
  * Various cleanups in the C extentions to remove compile time warnings
  * Tweaked the splitDRX.py script to be more robust
  * Added support for libnova version 0.15.0
  * Improved support for STEPPED observations in lsl.common.sdf
  * Made the TBW read-out duration calculation consistent with the current version of MCS
  * Changed the allowed TBN tuning from 10 to 88 MHz to 5 to 93 MHz
  * Tweaked lsl.common.beamformer.phaseAndSum() to automatically exclude bad stands
  * Removed a testing block from lsl.common.beamformer.intDelayAndSum() which only sums the first 20 antennas

0.5.3
  * Changed the DROS spectrometer reader to match the new format
  * Fixed the documentation for the various correlator.fx spectra functions
  * Updated the sphinx documentation to address Ticket #25
  * Added the session splitting script to IOC to address Ticket #24
  * Changed lsl.common.mcs.mjdmpm2datetime() to return naive datetime instances (Ticket #26)
  * Fixed a bug in lsl.common.sdf.Project that causes some observation non-overlaps to be reported as overlaps
  * Fixed a bug in the setup.py script that caused it to crash on systems without pkg-config installed
  * Modified splitDRX.py to cope with DRX data that begins with frames that list a decimation of zero
  * Added support for parsing the OBS_DRX_GAIN and OBS_TBN_GAIN keywords in the SDF parser
  * Cleaned up drxSpectra.py to better deal with files that have a tuning missing at the beginning or where the sample rate changes at the beginning of the file
  * Added a module to lsl.misc to generate autostereograms from 2-D NumPy arrays
  * Fixed a bug in lsl.misc.geodesy related to an exception that is thrown when the URL cannot be reached
  * Added support for parsing LST times at LWA-1 in lsl.common.sdf.parseTimeString()

0.5.2
  * Fixed a bug in gatherDebugging.py that caused the script to crash on missing modules
  * Fixed a bug in FEnginep[RC][23] that caused segmentation faults in Python 2.7
  * Made the module path finder a little more robust
  * Updated the LWA1 SSMIF to the May 16, 2012 version to include the latest antenna status codes
  * Added a beamformer to lsl.common.dp.SoftwareDP
  * Changed lsl.common.dp.SoftwareDP.apply() to lsl.commondp.SoftwareDP.applyFilter()
  * Fixed multi-threading in the lsl.common.dp.SoftwareDP class
  * Added a clock offset parameter to the cable model (lsl.common.stations.Cable)
  * Cleaned up the correlateTBW.py scripts
  * Fixed a bug in the correlator integer sample delays
  * Fixed bugs in the lsl.misc.beamformer module related to delays
  * Fixed the URL used by lsl.misc.geodesy.__loadHistoric1992()
  * Added support for FreeBSD
  * Added datetime <-> MJD/MPM conversion functions to lsl.common.mcs
  * Converted lsl.common.progress.ProgressBar to a rotating progress bar

0.5.1
  * Added jinja2 to the list of install dependencies
  * Fixed the segfault associated with the DR spectrometer reader
  * Cleaned up how splitDRX.py offsets in a file
  * Removed splitTBW.py since it is no longer needed
  * Fixed a few bugs in the SDF parser dealing the logging keywords
  * Modified lsl.common.metabundle.getSessionDefinition to use the SDF in the tarball rather than generate it from the session and observation specification files
  * Made drxSpectra.py robust against DRX frames with decimation of zero
  * Made the SDF parser more robust against single word names

0.5.0
  * Worked on adding better polarization support to correlator.fx and correlator.uvUtils
  * Updated the correlateTBN script to make full polarization support possible
  * Added a crude deconvolution routine that should work with the AIPY ImgW images
  * Worked on adding in support for binary packed SSMIF files in lsl.common.stations
  * Worked on adding in support for binary packed SDM files via a new lsl.common.sdm module
  * Worked on adding in support for the various MCS meta-data tarball file formats
  * Moved the SDF module out of SessionSchedules and into lsl.common
  * Added functions to generate the TBN and DRX filter magnitude response
  * Added versions of the spectra plotters, the correlations, and the stand plotters that use MCS meta-data bundles
  * Added a basic SSMIF file for the north arm site (LWA-2)
  * Added a preliminary module for incoherent dedispersion lsl.misc.dedispersion
  * Added support for spectral kurtosis via lsl.statistics.kurtosis
  * Updated the dependency list
  * Cleaned up the TBN ring buffer using deques and OrderedDicts
  * Added support for reading the TBN tuning word/frequency and gain from a TBN frame
  * Added support for reading the DRX tuning word/frequency from a DRX frame
  * Added support for stepped SDF files that specify the delays and gains to use
  * Added support for ARX board/channel responses via a new common.stations.ARX class
  * Removed the misc.beamformer.fftDelayAndSum functions in favor of phase-and-sum beamforming
  * Fixed a problem on some platforms with Numpy/LSL version determination in gatherDebugging.py
  * Cleared the post-interpreter multiprocessing/logging errors during 'test'
  * Added support for the DR spectrometer output data format
  * Added support for computing Stokes parameters from timeseries data
  * Removed deprecated and unused functions from lsl.correlator.fx
  * Added support for computing Stokes parameters in the FX correlator and fixed the FITS IDI writer to save the data
  * Removed S60 reader/simulator
  * Reworked the SDFITS writer to make it more like the FITS IDI writer

0.4.5
  * Tweaked how the averaging in drxSpectra and tbnSpectra is performed
  * Upgraded the lsl.reader.drsu module to work with larger file count LWAFS
  * Added a ls-style script, lsDRSU.py, to list the contents of a DRSU
  * Added a glob-style function to the DRSU module
  * Added an array-geometry correction to the correlator to phase up on zenith
  * Updated the dependency list
  * Added ARX channel mapping information to lsl.common.stations.Antenna instances
  * Added a new versioning system to make it easier to access the LSL version in python
  * Fixed a mapping problem in plotStands.py that mapped by digitizer, not stand
  * Added a gatherDebugging.py script alongside setup.py to help with debugging and installation problems
  * Moved gatherDebugging.py to the script directory to have it installed with LSL
  * Added 'documentation support' for accessing the central frequency of a DRX frame
  * Fixed a RPD_DD mapping problem in lsl.common.stations.parseSSMIF()
  * Fixed a DP1_SLOT parsing problem in lsl.common.stations.parseSSMIF()
  * Updated LWA-1 SSMIF to 12/26/2011 to include calibration information
  * Added the June 30, 2012 leap second into the TAI-UTC file
  * Fixed a problem in cpDRSU.py with the verbose output
  * Cleaned up the 'sfdisk' calls with the DRSU direct-access module
  * Added a BeamAlm class to lsl.sim.vis to help with polarization difference between LWA1 and what is implemented in AIPY


0.4.4.1
  * Fixed the missing cable attenuation parameters in the SSMIF

0.4.4
  * Added an id number attribute to lsl.common.stations.FEE objects
  * Updated LWA-1 SSMIF to 2011-08-10 version
  * Added 'keep' option to tbnSpectra.py to only display a certain collection of stands
  * Possibly cleared up a install problem on some systems that prevents testing
  * Fixed various memory leaks in the readers and the direct DRSU access module
  * Added 'documentation support' for accessing the central frequency of a TBN frame
  * Added support for variable noise level in the various lsl.sim.dp functions
  * Worked on improving ATLAS library detection on Redhat-based distributions
  * Improved detection of potential build problems with the DRSU direct-access extension
  * Updated the coordinates of stand #148 to be consistent with the revised LWA-1 survey
  * Fixed the digitizer to board mapping to account for DP2 boards
  * Fixed a bug simulating visibilities that could include sources below the horizon
  * Fixed the '-i' option in gsmnpz2map.py

0.4.3
  * Cleaned up the various __init__.py scripts
  * Fixed a few typos in lsl.correlator.uvUtils
  * Fixed a typo in the progress bar caused some decrements to increment
  * Fixed a few typos in lsl.correlator.uvUtils.computeUVTrack
  * Fixed a typo in the _spec.PPSDC2() function that caused it to die
  * Fixed several heinous problems in sim.dp.pointSource()
  * Fixed a bug with indexing in the 4-bit TBW reader
  * Fixed a few sign errors in correlator _core and uvUtils modules
  * Fixed a bug in the correlateTBW script related to antenna indexing
  * Fixed a bug in the FITS IDI writer that caused EOP problems to be fatal

0.4.2
  * Fixed tbwSpectra.py to skip over non-TBW frames at the beginning of a TBW file
  * Fixed the common.stations.geo2ecef() conversion function (Ticket #16)
  * Fixed the correlator.fx.FXMaster() function (Ticket #18)
  * Fixed a few type conversion problems in correlator._core (core.c) introduced with the new data types
  * Fixed a frequency units conversion in tbnSpectra.py
  * Improved polarization support in the FITS IDI writer
  * Fixed a sign error in the fractional delay correction of the correlator F engine
  * Improved the speed of the X Engine
  * Fixed a azimuth definition problem in astro_array.c
  * Updated the included SSMIF to the 5/18/2011 version
  * Updated the correlateTBN script to make computing XX and YY products easier
  * Added support for different cable attenuation models supported in MCS0031, v5
  * Added support for the old 20-stand prototype system through lsl.common.stations.prototypeSystem
  * Updated the correlateTBW script to make computing XX and YY products easier
  * Updated SSMIF with new stretch and cable gain coefficients
  * Added support for time-domain blanking via the 'ClipLevel' keyword to various _spec and _core routines

0.4.1
  * Fixed a problem with the C readers that manifests itself on 32-bit platforms
  * Modified sphinx to be more independent about version numbers and release notes
  * Added additional PyDict checks to the _gofast module
  * Modified lsl.sim.drx to zero the frame and seconds counts to make the DRX frames ICD compliant
  * Fixed a small bug in lsl.sim.tbw/tbn/drx that caused the seconds counts to be wrong

0.4.0
  * Added new robust statistical methods
  * Added Global Sky Model models to skymap
  * Added new smoothing and fitting functions to misc.mathutil
  * Added a progress bar for use with long-running applications
  * Added in new LWA-1 dipole NEC models
  * Re-worked the plotAntenna.py script to use the pre-computed dipole response fits
  * Added support for EXCITATION keywords in misc.nec_util
  * Added new gofast readers for TBW, TBN, and DRX
  * Added better polyphase filter support
  * Fixed initialization problems the various lsl.reader Frame objects
  * Fixed the TBN ring buffer
  * Added support for simulating point sources in TBW and TBN data
  * Moved the tests directory out of lsl proper
  * Added new offset/average options to drxSpectra and tbnSpectra
  * Added new DRSU direct access module for Linux system (experimental)
  * Added documentation for the various C extensions
  * Updated the dependencies list to capture everything needed for the extensions

0.3.4.2
  * Fixed a couple of typos. in the correlator scripts
  * Added more colors to tbwSpectra.py so that all 20 inputs can be plotted
  * Fixed problems with DRX frame attributes
  * Fixed filter code problems in the DRX writer
  * Fixed typo in URL for libnova
  * Added a brief tutorial for DRX data
  * Fixed a problem determining if a TBW chunk has enough samples to FFT

0.3.4.1
  * Fixed various documentation problems

0.3.4
  * Added in the new cable attenuation model
  * Re-wrote the TBW reader so that is it ~40% faster
  * Removed unnecessary "import" statements in the TBW, TBN, and DRX readers
  * Fixed slow frame creation by sim.dp on 64-bit systems
  * Added in the new C-based correlator
  * Major re-organization of correlator.fx with regards to windowing functions
  * Switched from 'processing' to 'multiprocessing'
  * Added the possm.py script for each FITS IDI examination
  * Fixed tbwSpectra.py and tbnSpectra.py to accommodated the windowing change
  * Added drxSpectra.py
  * Fixed various problems with the DP data simulator
  * Added in option to cable losses in tbwSpectra.py
  * Fixed a problem in the sim.vis.Antenna class function get_beam_shape
  * Added in a correlator script for TBW
  * Added new beam models for use with AIPY based on SLC0015

0.3.3
  * Fixed stand indexing error in uvUtils.cableAttenuation
  * Fixed Mac OS X tbnSpectra.py plotting problem (Ticket #3)
  * Spectra generated by tbwSpectra.py and tbnSpectra.py now agree with IDA v0.1
  * Fixed problems with the frame comparison attributes
  * Re-wrote the TBN reader so that it is ~20% faster
  * Fixed syntax errors in misc.difxconfig
  * Fixed MemoryError problem for some systems with tests.test_vdiff (Ticket #7)
  * Fixed a problem that caused some systems to assume that LSL was zip safe
  * Added new stand mappings that correct the 3/4 pair swaps

0.3.2
  * Added new "tutorial" style documentation for various parts of LSL
  * Added scripts tbwSplit.py and tbnSplit.py to split large TBW and TBN files down to more manageable sizes

0.3.1
  * Fixed various typos. in correlator.fx, misc.beamformer, and reader.buffer
  * Added "close" function to writer.fitsidi

0.3.0
  * New setuptools-based build system
  * New, improved documentation
  * Added post-acquisition beam forming module
  * Added in modules for writing simulated data to the S60, TBW, TBN, and DRX raw data formats
  * Added a module for simulated basic test signals in TBW, TBN, and DRX data
  * Moved the lwa_user script 'astrostatus.py' into the scripts directory
  * Fixed the FITS IDI writer
  * Fixed a couple of bugs dealing with incorrect chunking of data in scripts/tbwSpectra.py and scripts/tbnSpectra.py

0.2.0
  * Added in other modules from the lwa_user library developed by NRL

0.1.0
  * Initial version
