Skip to content

JuliaAPlavin/VOTables.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VOTables.jl

Support for the VOTable format (Virtual Observatory Table, defined by IVOA) in Julia.

Supports:

  • ✅ Read VOTable files
    • ✅ XML (TABLEDATA) and binary (BINARY, BINARY2) formats
    • 🚧 FITS format in VOTable
  • 🚧 Multiple tables in a single file
  • ✅ (De)compressing on the fly: pass a (De)compressorStream from TranscodingStreams.jl
  • ✅ Parse numbers, strings, datetimes, units (uses VOUnits.jl and Unitful.jl)
  • ✅ Extract column descriptions from VOTable files into Julia array metadata
  • ✅ Write VOTable files

See also: https://github.com/JuliaAstro/VOTables.jl, an older package with similar goals. That one was never registered in General, and the current VOTables.jl package is more performant and featureful.
See also: VirtualObservatory.jl for integrations with online services following Virtual Observatory protocols.

Usage

using VOTables

# only parse plain data types (numbers, strings) and datetimes:
tbl = VOTables.read("tbl.vot")

# also parse physical units:
using Unitful
tbl = VOTables.read("tbl.vot"; unitful=true)

The result is a StructArray be default, a Julia table with column-based storage. Whole columns can be accessed as tbl.colname, rows as tbl[123], and individual values as tbl.colname[123] or tbl[123].colname. To avoid compilation overhead, especially for very wide tables, can use DictArray instead (from DictArrays.jl): VOTables.read(DictArray, "tbl.vot").

About

Reading and writing Virtual Observatory (VO) Table format for astronomical data interchange.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors