6. Outputs - Data Types

6.1. The Mesh.json file

Once a mesh has been constructed using MeshiPhi, it can then be exported as a json object and saved to a file. An example of mesh construction and json object generation are as follows:

from meshiphi.mesh import Mesh

with open('config.json', 'r') as f:
    config = json.load(f)

mesh = Mesh(config)
mesh_json = mesh.to_json()

Note

Examples and a description of the configuration files can be found in the Configuration - Mesh Construction section of this document.

The json object outputted by the Mesh consists of 3 sections: config, cellboxes and neighbour_graph.

{
    "config": {
        ...
    },
    "cellboxes": [
        {...},
        ...
        {...}
    ],
    "neighbour_graph": [
        "<id_1>": {
            ...
        },
        ...
        "id_n": {
            ...
        }
    ]
}

where the parts of the json object can be understood as follows:

  • config : The configuration file used to generate the Mesh.

  • cellboxes : A list of json representations of CellBox objects that form the Mesh.

  • neighbour_graph : A graphical representation of the adjacency of CellBoxes within the Mesh.

6.1.1. cellboxes

Each CellBox object within cellboxes in the outputted json object is of the following form:

{
    "id" (string): ...,
    "geometry" (string): ...,
    "cx" (float): ...,
    "cy" (float): ...,
    "dcx" (float): ...,
    "dcy" (float): ...,
    "<value_1>" (float): ...,
    ...
    "<value_n>" (float): ...
}

Where the values within the CellBox represent the following:

  • id : The index of the CellBox within the Mesh.

  • geometry : The spatial boundaries of the CellBox.

  • cx : The x-position of the centroid of the CellBox, given in degrees latitude.

  • cy : The y-position of the centroid of the CellBox, given in degrees longitude.

  • dcx : The x-distance from the edge of the CellBox to the centroid of the CellBox. Given in degrees longitude.

  • dxy : the y-distance from the edge of the CellBox to the centroid of the CellBox. Given in degrees latitude.

../_images/cellbox_json.png

6.1.2. neighbour_graph

For each CellBox in the cellboxes section of the json object, there will be a corresponding entry in the neighbour_graph.

Note

Once the vehicle accessibility conditions have been applied to the json object, this may no longer be true as inaccessible CellBoxes will be removed from neighbour_graph but will remain in cellboxes

Each entry in the neighbour_graph is of the following form:

"<id>": {
    "1": [...],
    "2": [...],
    "3": [...],
    "4": [...],
    "-1": [...],
    "-2": [...],
    "-3": [...],
    "-4": [...]
}

where each of the values represent the following:

  • <id>The id of a CellBox within cellboxes
    • 1 : A list of id’s of CellBoxes within cellboxes to the North-East of the CellBox specified by ‘id’.

    • 2 : A list of id’s of CellBoxes within cellboxes to the East of the CellBox specified by ‘id’.

    • 3 : A list of id’s of CellBoxes within cellboxes to the South-East of the CellBox specified by ‘id’.

    • 4 : A list of id’s of CellBoxes within cellboxes to the South-West of the CellBox specified by ‘id’.

    • -1 : A list of id’s of CellBoxes within cellboxes to the South of the CellBox specified by ‘id’.

    • -2 : A list of id’s of CellBoxes within cellboxes to the South-West of the CellBox specified by ‘id’.

    • -3 : A list of id’s of CellBoxes within cellboxes to the North-West of the CellBox specified by ‘id’.

    • -4 : A list of id’s of CellBoxes within cellboxes to the South of the CellBox specified by ‘id’.

../_images/neighbour_graph_json.png