mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-15 14:50:25 +01:00
343 lines
8.4 KiB
JSON
343 lines
8.4 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema",
|
|
"$id": "https://github.com/fjosw/pyerrors/tree/develop/examples/json_schema.json",
|
|
"type": "object",
|
|
"title": "pyerrors JSON file format",
|
|
"description": "Schema to validate JSON files according to the pyerrors file format 1.0.",
|
|
"required": [
|
|
"obsdata"
|
|
],
|
|
"optional": [
|
|
"program",
|
|
"version",
|
|
"who",
|
|
"date",
|
|
"host",
|
|
"description"
|
|
],
|
|
"properties": {
|
|
"program": {
|
|
"type": "string",
|
|
"description": "The program that was used to write the file",
|
|
"examples": [
|
|
"pyerrors"
|
|
]
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"description": "The version of the file format.",
|
|
"examples": [
|
|
"1.0"
|
|
]
|
|
},
|
|
"who": {
|
|
"type": "string",
|
|
"description": "The username of the creator of this file."
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"description": "Date, when this file has been written.",
|
|
"examples": [
|
|
"2021-11-29 09:55:05"
|
|
]
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"description": "Hostname of the machine where the file has been written."
|
|
},
|
|
"description": {
|
|
"type": ["number","string","boolean","object","array","null"],
|
|
"description": "A description of the content of the file."
|
|
},
|
|
"obsdata": {
|
|
"type": "array",
|
|
"description": "Contains the actual data. One entry per structure. A structure is either a single Obs or a one-dimensional representation of a multi-dimensional object (list, array, Corr). Each Obs inside a structure has to be defined on the same set of configs.",
|
|
"items": {
|
|
"$ref": "#/$defs/obsdata_items"
|
|
}
|
|
}
|
|
},
|
|
"$defs": {
|
|
"obsdata_items": {
|
|
"type": "object",
|
|
"description": "Contains the information for one structure of Observables.",
|
|
"required": [
|
|
"type",
|
|
"value"
|
|
],
|
|
"optional": [
|
|
"layout",
|
|
"tag",
|
|
"reweighted",
|
|
"data",
|
|
"cdata"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Specifies the type of the structure, needed for the correct parsing of flattened structures.",
|
|
"examples": [
|
|
"Obs", "List", "Array", "Corr"
|
|
]
|
|
},
|
|
"layout": {
|
|
"type": "string",
|
|
"description": "The layout of the structure. One entry per dimension, separated by commas",
|
|
"default": "1",
|
|
"examples": [
|
|
"1", "1, 2", "2, 2, 4"
|
|
]
|
|
},
|
|
"value": {
|
|
"type": "array",
|
|
"description": "The mean values of all Obs inside the structure.",
|
|
"examples": [
|
|
[1.2],
|
|
[2.3, 2.1, 3.1]
|
|
],
|
|
"items": [{
|
|
"type": "number",
|
|
"description": "A mean value of an Obs."
|
|
}]
|
|
},
|
|
"tag": {
|
|
"type": ["number","string","boolean","object","array","null"],
|
|
"description": "Optional descriptor of the structure."
|
|
},
|
|
"reweighted": {
|
|
"type": "boolean",
|
|
"description": "May be used to specify whether the Obs inside the structure have been reweighted."
|
|
},
|
|
"data": {
|
|
"type": "array",
|
|
"description": "Contains the data for each ensemble.",
|
|
"items": {
|
|
"$ref": "#/$defs/ensdata_items"
|
|
}
|
|
},
|
|
"cdata": {
|
|
"type": "array",
|
|
"description": "Contains the data for each covariance matrix.",
|
|
"items": {
|
|
"$ref": "#/$defs/cdata_items"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ensdata_items": {
|
|
"type": "object",
|
|
"description": "The data for one single ensemble",
|
|
"required": [
|
|
"id",
|
|
"replica"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "The id of the ensemble"
|
|
},
|
|
"replica": {
|
|
"type": "array",
|
|
"description": "Contains the data for each replica of the ensemble.",
|
|
"items": {
|
|
"$ref": "#/$defs/repdata_items"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
"repdata_items": {
|
|
"type": "object",
|
|
"description": "The data for one single replica",
|
|
"required": [
|
|
"name",
|
|
"deltas"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the replica."
|
|
},
|
|
"deltas": {
|
|
"type": "array",
|
|
"description": "The actual data: Contains configuration numbers and the deltas, i.e., the deviations from the mean value, for each Obs inside the structure.",
|
|
"items": {
|
|
"$ref": "#/$defs/deltas_items"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
"deltas_items": {
|
|
"type": "array",
|
|
"description": "First entry is the configuration number. Each further entry is the delta, i.e., the deviation from the mean value, for one Obs inside the structure.",
|
|
"prefixItems": [{
|
|
"type": "integer"
|
|
}],
|
|
"items": [{
|
|
"type": "number"
|
|
}]
|
|
},
|
|
|
|
"cdata_items": {
|
|
"type": "object",
|
|
"description": "Contains the data for one covariance matrix.",
|
|
"required": [
|
|
"id",
|
|
"layout",
|
|
"cov",
|
|
"grad"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "The identifier of the covariance matrix."
|
|
},
|
|
"layout": {
|
|
"type": "string",
|
|
"description": "The layout of the NxN covariance matrix",
|
|
"examples": [
|
|
"1, 1", "2, 2"
|
|
]
|
|
},
|
|
"cov": {
|
|
"type": "array",
|
|
"description": "Contains the NxN covariance matrix, stored in row-major format.",
|
|
"items": [{
|
|
"type": "number"
|
|
}]
|
|
},
|
|
"grad": {
|
|
"type": "array",
|
|
"description": "The gradient of all Obs inside the structure with respect to the corresponding (diagonal) elements of the covariance matrix.",
|
|
"items": [{
|
|
"type": "array",
|
|
"description": "The gradient of all Obs with respect to the Ith element of the covariance matrix, where I is the position of this array inside grad.",
|
|
"items": [{
|
|
"type": "number"
|
|
}]
|
|
}]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"examples": [
|
|
{
|
|
"program": "pyerrors 2.0.0+dev",
|
|
"version": "1.0",
|
|
"who": "s-kuberski",
|
|
"date": "2022-02-16 12:59:09 +0100",
|
|
"host": "Hostname",
|
|
"obsdata": [
|
|
{
|
|
"type": "Obs",
|
|
"layout": "1",
|
|
"value": [
|
|
1.0
|
|
],
|
|
"data": [
|
|
{
|
|
"id": "A",
|
|
"replica": [
|
|
{
|
|
"name": "A|r1",
|
|
"deltas": [
|
|
[1, -4.579833517667820e-02],
|
|
[2, 1.272532469141094e-01],
|
|
[3, -7.042514710393744e-02],
|
|
[4, -4.800967024769492e-01],
|
|
[5, 2.967284377711763e-01],
|
|
[6, 3.156118966788146e-01],
|
|
[7, 1.139599354351861e-02],
|
|
[8, -1.546693901500542e-01]
|
|
]
|
|
},
|
|
{
|
|
"name": "A|r2",
|
|
"deltas": [
|
|
[1, 2.003189752235817e-01],
|
|
[2, 1.456782186748891e-01],
|
|
[3, -2.417953154609670e-01],
|
|
[4, 1.112557347812830e-01],
|
|
[5, -6.889549539458262e-02],
|
|
[6, 2.984543471692340e-01],
|
|
[7, -4.874803852180309e-01],
|
|
[8, 4.246392022459267e-02]
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "B",
|
|
"replica": [
|
|
{
|
|
"name": "B|r1",
|
|
"deltas": [
|
|
[1, -2.726195322210824e-01],
|
|
[2, 3.949288132215630e-01],
|
|
[3, -2.832514721110847e-01],
|
|
[4, -8.371015800402004e-02],
|
|
[5, 2.643463355004773e-01],
|
|
[6, -2.265154600267616e-02],
|
|
[7, -1.954084091845127e-01],
|
|
[8, 1.983659688013363e-01]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"cdata": [
|
|
{
|
|
"id": "#renorm",
|
|
"layout": "2, 2",
|
|
"cov": [1.000000000000000e-01, 5.000000000000000e-02, 5.000000000000000e-02, 2.000000000000000e-02],
|
|
"grad": [
|
|
[1.000000000000000e+00],
|
|
[0.000000000000000e+00]
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "List",
|
|
"layout": "2",
|
|
"value": [
|
|
1.2,
|
|
0.8333333333333334
|
|
],
|
|
"data": [
|
|
{
|
|
"id": "B",
|
|
"replica": [
|
|
{
|
|
"name": "B|r1",
|
|
"deltas": [
|
|
[1, 2.368958758731594e-01, 1.645110249119163e-01],
|
|
[2, 3.164596213857241e-01, 2.197636259623084e-01],
|
|
[3, -2.422021289001151e-01, -1.681959228473022e-01],
|
|
[4, 1.365207560473117e-01, 9.480608058841092e-02],
|
|
[5, -1.958565486752142e-02, -1.360114921355654e-02],
|
|
[6, -6.335145310374894e-01, -4.399406465538122e-01],
|
|
[7, 1.945374561549609e-02, 1.350954556631673e-02],
|
|
[8, 1.859723158834354e-01, 1.291474415857190e-01]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"cdata": [
|
|
{
|
|
"id": "renorm",
|
|
"layout": "2, 2",
|
|
"cov": [1.000000000000000e-01, 5.000000000000000e-02, 5.000000000000000e-02, 2.000000000000000e-02],
|
|
"grad": [
|
|
[1.000000000000000e+00, -6.944444444444444e-01],
|
|
[0.000000000000000e+00, 0.000000000000000e+00]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|