High Precision Pulsar Timing with "Pint", a New Software Package
Over the past several decades, high precision pulsar-timing experiments have continued to advance, reaching precisions of ~10 nanoseconds where many subtle phenomena can be observed. At this level of precision, extremely careful data handling and sophisticated timing models are required. In this thesis, we present a modern Python-based pulsar timing package, called PINT (from PINT Is Not TEMPO3), which is designed to analyze high-precision pulsar timing data in a wide variety of applications. PINT is a well-tested, validated, object-oriented, and modular package, enabling interactive data analysis and providing an extensible and flexible development platform for timing applications. PINT utilizes well-debugged public Python packages and modern software development schemes (e.g., the NumPy and Astropy libraries, version control and development with git and GitHub, and various types of testing) for increased development efficiency and enhanced stability. PINT has been developed and implemented completely independently from traditional pulsar timing software (e.g., TEMPO/TEMPO2) and is therefore a robust tool for cross-checking timing analyses and simulating timing data. We describe the design, usage, and validation of PINT, and compare timing results between it and TEMPO and TEMPO2. The result of using PINT to set up a long-term stable timing model for the newly discovered pulsar PSR J0916+0658 is reported in this thesis as well.