A lightweight Julia package providing a flexible data model for handling space/heliospheric science data. It offers abstractions for organizing space data into hierarchical structures including projects, instruments, datasets, and data variables.
using Pkg; Pkg.add("SpaceDataModel")
using SpaceDataModel: Project, Instrument, DataSet, DataVariable
# Create a project
project = Project(; name="Project Name")
instrument = Instrument(; name="Instrument Name")
dataset = DataSet(; name="Dataset Name")
var = DataVariable([1.0, 2.0, 3.0], Dict())
push!(project, instrument, dataset)
push!(instrument, dataset)
dataset["var"] = varResolve semantic attributes (:name, :unit, :desc, …) against heterogeneous metadata formats (ISTP, HAPI, Madrigal).
using SpaceDataModel: ISTPSchema, get_schema
# data is anything carrying metadata (raw Dict, DimArray, DataVariable, …)
schema = ISTPSchema()
attrs = schema(data)
attrs[:unit]
attrs[:desc]
# Or auto-detect the schema from the metadata content
get_schema(data)See docs/src/schema_guide.md for lookup patterns and extending to new formats.