outputbundle JSON files

inputs.json

This file contains a dictionary mapping input names (e.g. t2m, u, v) to usage statistics for each input:

{
 "t2m": {
  "used_by": ["rh2m"]
  "computation": [
   [1000000000, "processing step description"],
  ]
 }
}

Note

This may be changed to contain a single inputs entry containing the actual dictionary

Usage statistics are a dictionary containing:

  • used_by: list of recipe names that used this input to generate products

  • computation: list of pairs (int, str) with each computation step and the time in nanoseconds that it took to compute

log.json

This file contains the processing log:

{
 "entries": [
  {
   "ts": 1703171046.9032948,
   "level": 20,
   "msg": "emro.shp resolved as /media/arkimaps/recipes/static/emro.shp",
   "name": "postprocess"
  },
  {
   "ts": 1703171047.2248235,
   "level": 10,
   "msg": "flavour emro_web: recipe cp12h uses inputs: {'cpdec12h'}",
   "name": "arkimaps.flavours"
  },
  …
}

It contains a single key entry which maps to a list of log entries. Each log entry is a dictionary with 4 keys:

  • ts: float: timestamp in seconds

  • level: int: log level

  • msg: str: log message

  • name: str: logger name

products.json

This file contains metadata for each product in the output bundle.

At the top level it contains 3 keys:

  • flavour: details about the flavour used in product generation

  • recipes: details about all recipes that generated products

  • products: details about all products generated

flavour

Information about the flavour used to generate products. It contains:

  • name: flavour name

  • defined_in: filename of the .yaml file that defines the flavour

Example:

"flavour": {
 "name": "emro_tiles",
 "defined_in": "flavours/tiles.yaml",
},

recipes

Dictionary of information indexed by recipe name:

  • reftimes: dictionary, indexed by reference time, with statistics for products produced by a recipe at a given reference time. It contains:

    • inputs: names of inputs used

    • steps: dictionary mapping each step name to the number of products produced for that step

    • render_stats: dictionary with rendering statistics. At the moment it only contains:

      • time_ts: time spent rendering all the steps for this reference time

  • legend_info: add_contour step parameters used to generate products for this recipe. This information can be used to render a legend for all the products generated by this recipe

Example:

"rh2m": {
 "reftimes": {
  "2023-12-19 14:00:00": {
   "inputs": ["rh2m"],
   "steps": {"0h": 1},
   "render_stats": {
    "time_ns": 911183162
   }
  },
  "2023-12-19 00:00:00": {
   "inputs": ["rh2m"],
   "steps": {"0h": 1},
   "render_stats": {
    "time_ns": 1093373956
   }
  },
  …
 },
 "legend_info": {
  "contour_shade": true,
  "contour_shade_method": "area_fill",
  …
 }
}

products

Dictionary of product information, indexed by the path of each product in the output bundle:

  • recipe: recipe name

  • reftime: product reference time

  • step: product step

  • georef: (optional) dictionary with georeferencing information for this product:

    • projection: currently, always "EPSG"

    • epsg: EPSG number for the projection used

    • bbox: 4-tuple of floats defining a bounding box, with minimum longitude, minimum latitude and maximum longitude maximum latitude.

Example:

"2023-12-19T14:00:00/rh2m_emro_web/rh2m+000.png": {
 "recipe": "rh2m",
 "reftime": "2023-12-19 14:00:00",
 "step": "0h",
 "georef": {
  "projection": "EPSG",
  "epsg": 3857,
  "bbox": [
   9.19514626509458,
   43.714193665380236,
   12.828319549646094,
   45.14257501046363
  ]
 }
},
"2023-12-19T00:00:00/rh2m_emro_web/rh2m+000.png": {
 "recipe": "rh2m",
 "reftime": "2023-12-19 00:00:00",
 "step": "0h",
 "georef": {
  "projection": "EPSG",
  "epsg": 3857,
  "bbox": [
   9.19514626509458,
   43.714193665380236,
   12.828319549646094,
   45.14257501046363
  ]
 }
},