mirror of
				https://github.com/fjosw/pyerrors.git
				synced 2025-11-04 09:35:45 +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]
 | 
						|
       ]
 | 
						|
      }
 | 
						|
     ]
 | 
						|
    }
 | 
						|
   ]
 | 
						|
  }
 | 
						|
 ]
 | 
						|
}
 |