https://github.com/juliaspacephysics/spacedatamodel.jl
A flexible data model for handling space/heliospheric science data
https://github.com/juliaspacephysics/spacedatamodel.jl
heliophysics julia space-physics
Last synced: 28 days ago
JSON representation
A flexible data model for handling space/heliospheric science data
- Host: GitHub
- URL: https://github.com/juliaspacephysics/spacedatamodel.jl
- Owner: JuliaSpacePhysics
- License: mit
- Created: 2025-04-01T07:28:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-19T22:57:46.000Z (12 months ago)
- Last Synced: 2025-06-19T23:28:28.418Z (12 months ago)
- Topics: heliophysics, julia, space-physics
- Language: Julia
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SpaceDataModel.jl
[](https://JuliaSpacePhysics.github.io/SpaceDataModel.jl/dev/)
[](https://doi.org/10.5281/zenodo.15207556)
[](https://juliahub.com/ui/Packages/General/SpaceDataModel)
[](https://github.com/JuliaSpacePhysics/SpaceDataModel.jl/actions/workflows/CI.yml?query=branch%3Amain)
[](https://github.com/aviatesk/JET.jl)
[](https://github.com/JuliaTesting/Aqua.jl)
[](https://codecov.io/gh/JuliaSpacePhysics/SpaceDataModel.jl)
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.
## Quick Start
```julia
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"] = var
```
## Metadata Schemas
Resolve semantic attributes (`:name`, `:unit`, `:desc`, …) against heterogeneous metadata formats (ISTP, HAPI, Madrigal).
```julia
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`](docs/src/schema_guide.md) for lookup patterns and extending to new formats.