A declarative schema and workflow framework for analysis and visualization of physical systems.
The Analysis Schema creates a workflow system that processes a configuration file where users specify what they would like the code to do, instead of how to do it to complete analysis and visualization tasks. It supports high level analysis description that can be saved, shared, and reused in JSON document.
It consists of three pieces:
- A structured schema that guides the workflow. See
yt_analysis_schema.json
. - An engine that connects input from the configuration file to the underlying code.
- The configuration file.
TODO
Use a JSON file to describe a basic plot. The file has to reference the structured schema file, which is also called the analysis schema. The schema validates the workflow and ensures the correct data types are used.
Let's call this example.json
and fill it out:
{
"$schema": "yt_analysis_schema.json",
"Plot": [
{
"ProjectionPlot": {
"Dataset": [
{
"Filename": "IsolatedGalaxy/galaxy0030/galaxy0030",
"DatasetName": "IG"
}
],
"Axis": "y",
"FieldNames": {
"field": "density",
"field_type": "gas"
}
}
}
]
}
Once a configuration file is complete, the file can be submitted to the analysis_schema
command line interface,
analysis_schema run-analysis example.json
After running that command, image files will be saved and their filenames will display at the command line.
Documentation is coming soon to: https://analysis-schema.readthedocs.io.
More examples can be seen with this virtual poster describing Analysis Schema use cases and in the examples folder above.
Currently, the Analysis Schema is built from yt, a python library for analyzing and visauliation volumetric data. It also uses pydantic to create the schema and validate workflow input.
The Analysis Schema requires Python 3.7+ and yt 4.0 in addition to other packages.
- Free software: MIT license