Software:Nom.tam.fits
Developer(s) | Thomas A. McGlynn, Attila Kovács, Richard van Nieuwhoven, et al. |
---|---|
Initial release | 2008 July 11 |
Stable release | 1.19.1
/ 2024 March 11 |
Preview release | 1.20.0-rc1
/ 2024 April 30 |
Repository | github |
Written in | Java |
Operating system | Cross-platform |
Type | Technical computing |
License | Unlicense |
Website | nom-tam-fits |
nom.tam.fits is a full-featured, fast, 100% pure Java library for reading, writing, and modifying FITS files. The library owes its origins to Thomas A. McGlynn (hence the nom.tam prefix) at NASA Goddard Space Flight Center. Currently, it is maintained by Attila Kovács at the Center for Astrophysics | Harvard & Smithsonian.
Using the library effectively requires a level of familiarity with the FITS standards.[1][2] and conventions[3]. For example, while the library will automatically interpret and populate the mandatory minimum data description in FITS headers, it will not automatically process most optional standard or conventional header entries. It is up to the users to extract or complete the description of data, for example to include FITS world coordinate systems (WCS)[4][5][6], physical units, etc.
nom.tam.fits is an open-source, community maintained project hosted on GitHub as nom-tam-fits/nom-tam-fits[7]. Further information and documentation, including a User's Guide and API documentation, can be found there.
History
The brief history of the library presented here is derived from (a) release notes and documentation published on the original HEASARCH home page[8] of the project; (b) the commit history, release notes, and other documentation, published in the GitHub repository[7]; (c) public[7] and private communications among the three lead maintainers who spearheaded the project at various stages of its existence.
The library was originally conceived and developed by Thomas A. McGlynn at NASA Goddard Space Flight Center. It was originally written for Java 1.0, which influenced many of the original design choices that remain in place to this day. The first published version was version 0.92 (12 October 2000), and was followed by a series of development releases, up until 0.99.6 (4 December 2007)[8].
The library reached 'stable' status with the 1.0.0 release on 11 July 2008. Tom McGlynn remained the lead developer through version 1.12.0 (25 February 2015), occasionally integrating contributions from users, as attested by the release notes[8].
In 2015, Tom passed the baton to Richard van Nieuwhoven, who has already contributed significantly to version 1.12.0, and who then continued to oversee releases 1.13.0 (20 July 2016) through 1.15.2 (28 April 2017)[8][7] as Tom took on a less active advisory role in the project. Ritchie has been instrumental in adding the initial image and table compression support to the library, as well as modernizing the API to use Java 6 features, such as generic types and the java.nio package. He also migrated the source code to GitHub (at version 1.12.0), set up continuous integration, added unit testing with nearly complete code coverage, set up a build system with Apache Maven, and began publishing GPG-signed release packages to both GitHub[7] and the Maven Central repository[9].
In 2021, Attila Kovács from the Center for Astrophysics | Harvard & Smithsonian took over as the lead maintainer (still with the blessing from Tom McGlynn), and continued overseeing releases starting with 1.16.0 (13 December 2021). Continuous integration was migrated from Travis CI to GitHub Actions, and successive releases were/are aimed at fixing outstanding bugs, improving compliance to the FITS standard, providing a more consistent user experience, and more complete, more accurate documentation. The source was also updated to utilize Java 8 features, such as diamond operators, try-with-resources constructs, and default methods in interfaces[7].
At least 14 other developers (excluding bots) have also contributed bits and pieces to the library since the project's presence on GitHub, based on the contributor statistics available in the GitHub repository[7].
Adoption
At the time of writing this article, the GitHub project repository lists 73 other GitHub repositories that utilize nom.tam.fits[10]. A few are also listed as dependents on Maven Central[9].
Some examples of software that rely on nom.tam.fits to handle FITS files (in no particular order):
- NASA's Planetary Data System (PDS), specifically its Transform Tool[11], PDSView[12] and PDS4 JParser[13] components.
- NASA's Interoperable Remote Component (IRC)[14] software, which provided data aquisition for astronomical cameras such as CSO/SHARC-2[15] and IRAM/GISMO[16].
- Starlink Project's Starlink Tables Infrastructure Library (STIL)[17], used e.g. by TOPCAT.
- International Virtual Observatory Alliance (IVOA) Data Access Layer[19] (specifically the cadc-data-ops-fits[20] submodule) and FITS package[21].
- Spectral Line Identification and Modelling (SLIM)[26] component of the MADCUBA[27] software package for the analysis of astronomical data cubes.
- CRUSH[28][29] a data reduction package for many ground based or airborne far-infrared and submillimeter cameras, such as CSO/SHARC-2[15] and SOFIA/HAWC+[30].
- Terran Interstellar Plotter System (TRIPS)[32], a stellar cartography system for stellar databases.
- AstroToolBox[33] for visualizing, identifying, and classifying astronomical objects.
- JParsec[34] for ephemerides computation.
Releases
Early releases, and related documentation, for versions 0.92 through 1.15.1 are available at the original HEASARCH site[8].
More recent releases (1.15.2 and later) are available on the GitHub project site[7].
Starting with version 1.12.0 (21 February 2015) releases are also published to the Maven Central Repository[9].
Starting with version 1.16.0, releases now follow a predictable, quarterly schedule with releases targeted around the 15th of March, June, September, and/or December[7]. In the weeks and month(s) leading up to releases, a number of release candidates are published briefly on the GitHub project site[7] to allow sufficient testing of the fixes and new features.
Redistribution
The nom.tam.fits library is also redistributed as the libfits-java package[35] for Debian Linux, and as the nom-tam-fits RPM package[36] by Fedora Linux. However, as of the writing of this article both of these redistributions are based on outdated versions of the library (specifically version 1.15.2).
External links
- GitHub project site
- API documentation
- History of changes
- Maven Central page
- A list of FITS libraries
References
- ↑ IAU FITS working group (2018-08-13). "Definition of the Flexible Image Transport System (FITS)". https://fits.gsfc.nasa.gov/fits_standard.html.
- ↑ Pence, W.D.; Chiappetti, L.; Page, C.G. et al. (2010). "Definition of the Flexible Image Transport System (FITS), version 3.0". Astronomy & Astrophysics 524: A42. doi:10.1051/0004-6361/201015362. Bibcode: 2010A&A...524A..42P.
- ↑ IAU FITS working group (2023). "The Registry of FITS Conventions". https://fits.gsfc.nasa.gov/fits_registry.html.
- ↑ Greisen, E.W.; Calabretta, M.R. (2002). "Representations of world coordinates in FITS". Astronomy & Astrophysics 395 (3): 1061–1075. doi:10.1051/0004-6361:20021326. Bibcode: 2002A&A...395.1061G.
- ↑ Greisen, E.W.; Calabretta, M.R. (2002). "Representations of celestial coordinates in FITS". Astronomy & Astrophysics 395 (3): 1077–1122. doi:10.1051/0004-6361:20021327. Bibcode: 2002A&A...395.1077C.
- ↑ Greisen, E.W.; Calabretta, M.R.; Valdes, F.G. et al. (2006). "Representations of spectral coordinates in FITS". Astronomy & Astrophysics 446 (2): 747–771. doi:10.1051/0004-6361:20053818. Bibcode: 2006A&A...446..747G.
- ↑ 7.0 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 "nom.tam.fits GitHub repository". https://github.com/nom-tam-fits/nom-tam-fits.
- ↑ 8.0 8.1 8.2 8.3 8.4 "Index of /Docs/Heasarc/Fits/Java". https://heasarc.gsfc.nasa.gov/docs/heasarc/fits/java/.
- ↑ 9.0 9.1 9.2 ""nom-tam-fits on Maven Central"". https://mvnrepository.com/artifact/gov.nasa.gsfc.heasarc/nom-tam-fits.
- ↑ "Network Dependents · nom-tam-fits/Nom-tam-fits". https://github.com/nom-tam-fits/nom-tam-fits/network/dependents.
- ↑ "PDS Transform Tool". https://github.com/NASA-PDS/transform.
- ↑ "PDSView". https://github.com/NASA-PDS/pds-view.
- ↑ "PDS4 JParser". https://nasa-pds.github.io/pds4-jparser/.
- ↑ "Interoperable Remote Component (IRC)". https://opensource.gsfc.nasa.gov/projects/IRC/index.php.
- ↑ 15.0 15.1 Dowell, C. D.; Allen, C. A.; Babu, R. S. et al. (2003). "SHARC II: a Caltech submillimeter observatory facility camera with 384 pixels". Proc. SPIE. Millimeter and Submillimeter Detectors for Astronomy 4855: 73. doi:10.1117/12.459360. Bibcode: 2003SPIE.4855...73D. https://resolver.caltech.edu/CaltechAUTHORS:20150120-140348785.
- ↑ Staguhn, Johannes G.; Allen, Christine; Benford, Dominic J. et al. (2008). "GISMO, a 2 mm Bolometer Camera Optimized for the Study of High Redshift Galaxies". Journal of Low Temperature Physics 151 (3-4): 709-714. doi:10.1007/s10909-008-9733-6. Bibcode: 2008JLTP..151..709S.
- ↑ Taylor, M.B. (2005). "TOPCAT & STIL: Starlink Table/VOTable Processing Software". Astronomical Data Analysis Software and Systems XIV. ASP Conference Series. 347. pp. 29.
- ↑ King, Gary (2007). "An Introduction to the Dataverse Network as an Infrastructure for Data Sharing". Sociological Methods and Research 36 (2): 173–199. doi:10.1177/0049124107306660. http://nrs.harvard.edu/urn-3:HUL.InstRepos:4215067.
- ↑ "IVOA Data Access Layer". https://github.com/opencadc/dal.
- ↑ "IVOA Data Access Layer / cadc-data-ops-fits module". https://github.com/opencadc/dal/tree/master/cadc-data-ops-fits.
- ↑ "IVOA FITS package". https://skyservice.pha.jhu.edu/develop/vo/ivoafits/.
- ↑ Collins, Karen A.; Kielkopf, John F.; Stassun, Keivan G. et al. (2017). "AstroImageJ: Image Processing and Photometric Extraction for Ultra-Precise Astronomical Light Curves". The Astronomical Journal 153 (2): 77. doi:10.3847/1538-3881/153/2/77. Bibcode: 2017AJ....153...77C.
- ↑ "AstroImageJ". https://www.astro.louisville.edu/software/astroimagej/.
- ↑ Reutemann, Peter; Vanschoren, Joaquin (2012). "Scientific Workflow Management with ADAMS". Proceedings of the Machine Learning and Knowledge Discovery in Databases (ECML-PKDD), Part II. Lecture Notes in Computer Science. 7524. pp. 833–837.
- ↑ "ADAMS Spectral Base Modules". https://github.com/waikato-datamining/adams-spectral-base.
- ↑ Martín, S.; Martín-Pintado, J.; Blanco-Sánchez, C. et al. (2019). "Spectral Line Identification and Modelling (SLIM) in the MAdrid Data CUBe Analysis (MADCUBA) package". Astronomy & Astrophysics 631: A159. doi:10.1051/0004-6361/201936144. Bibcode: 2019A&A...631A.159M.
- ↑ "MAdrid Data CUBe Analysis (MADCUBA)". https://cab.inta-csic.es/madcuba/.
- ↑ Kovács, A. (2008). "CRUSH: a fast and scalable data reduction for imaging arrays". Proc. SPIE. Millimeter and Submillimeter Detectors and Instrumentation for Astronomy IV 7020: 45. doi:10.1117/12.790276. Bibcode: 2008SPIE.7020E..1SK.
- ↑ "CRUSH: Comprehensive Reduction Utility for SHARC-II". https://www.sigmyne.com/crush.
- ↑ 30.0 30.1 Harper, Doyal A.; Runyan, Marcus C.; Dowell, C. Darren et al. (2018). "HAWC+, the Far-Infrared Camera and Polarimeter for SOFIA". Journal of Astronomical Instrumentation 07 (4): 1840008–1841025. doi:10.1142/S2251171718400081. Bibcode: 2018JAI.....740008H.
- ↑ "attipaci/jnum". https://www.github.com/attipaci/jnum.
- ↑ "Terran Interstella Plotter System (TRIPS)". https://github.com/ljramones/trips.
- ↑ Kiwy, Frank (2022). "AstroToolBox: Java tools for identifying and classifying astronomical objects". https://ascl.net/2201.002.
- ↑ Albi, Tomás Alonso (2018). "JPARSEC: a Java package for astronomy with twelve years of development and use". arXiv:1806.03088 [astro-ph.IM].
- ↑ "Debian libfits-java package". https://packages.debian.org/sid/libfits-java.
- ↑ "Fedora Linux nom-tam-fits RPM package". https://src.fedoraproject.org/rpms/nom-tam-fits.
Original source: https://en.wikipedia.org/wiki/Nom.tam.fits.
Read more |