Output

Contents

Output#

Mesher creates a directory with the same name as the configuration file name or a user-defined name as configured by user_output_dir (see Outputs). Within this folder is a subdirectory with the same name as that of the input DEM.

In the primarily output directory are three JSON format files: - *.ic that contains the initial conditions - *.mesh that contains the primary mesh - *.param that contains the per-triangle parameter values

If no parameter or initial conditions are given, then these files are empty.

In the second directory are the reprojected files (`*_projected`), intermediary files, and the triangulation shape file (`*_USM.shp`). A `*.vtu` file is also created for visualizing in 3D in Paraview.

Note

All indicies are 0-indexed!

.mesh#

The primary mesh file’s structure is as follows:

{
  "mesh": {
           "vertex": [ [double,double,double], [double,double,double], ... ],
           "nvertex": int,
           "neigh": [ [int,int,int], [int,int,int], ... ],
           "elem": [ [int,int,int], [int,int,int], ... ],
           },
  "is_geographic": int,
  "proj4": string,
  "UTM_zone": int,
  "nelem": int
}
mesh.vertex#
Type:

list of [double,double,double]

List of triangle vertexes. Triangles may share a vertex, thus it isn’t stored twice. A vertex has [x,y,z] coordinates in the output coordinate system.

mesh.nvertex#
Type:

int

Number of verticies.

mesh.neigh#
Type:

list of [int,int,int]

The neighbours to each triangle. Each int is an index into the elem list.

A value of -1 means “missing”.

mesh.elem#
Type:

list of [int,int,int]

Verticies are connected via edges to form triangle elements. These indicies are indexes into the vertex array.

For example, consider the flat mesh. It has 2 triangles in the domain. The .mesh file looks like:

{
    "mesh": {
        "vertex": [
            [
                488479.5,
                6713528.0,
                1000.0
            ],
            [
                490527.5,
                6713528.0,
                1000.0
            ],
            [
                490527.5,
                6711480.0,
                1000.0
            ],
            [
                488479.5,
                6711480.0,
                1000.0
            ]
        ],
        "nvertex": 4,
        "neigh": [
            [
                1,
                -1,
                -1
            ],
            [
                -1,
                0,
                -1
            ]
        ],
        "elem": [
            [
                1,
                0,
                2
            ],
            [
                0,
                3,
                2
            ]
        ],
        "is_geographic": 0,
        "proj4": "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs ",
        "UTM_zone": 8,
        "nelem": 2
    }
}

For example, triangle0 is give by mesh.elem[0]:

[
    1,
    0,
    2
]

This says that to define triangle0, use the 1st, the 0th, and 2nd vertex elements. That is:

triangle0 = [490527.5, 6713528.0, 1000.0], [488479.5, 6713528.0, 1000.0], [490527.5, 6711480.0, 1000.0]

It has a neighbour mesh.neigh[0]

[
   1,
   -1,
   -1
]

which says that edge0 is the only edge with a neighbour, and it is triangle1.

.param#

The parameter file’s schema is:

{
    "param1": [
        double/int,
        double/int,,
        ...
    ],
   "param2": [
        double/int,
        double/int,,
        ...
    ]
}
param1#
Type:

List of length length(elem)

Each item of the list at index i corresponds to a value for that parameter for triangle_*i*.

For example, that parameter file for ideal is

{
    "area": [
        2097152.0,
        2097152.0
    ]
}

Thus the area of triangle0 is 2097152 m^2 or (1448m)^2. The latter is more easily used for approximate comparisons against raster cell sizes.

.ic#

The initial conditions file’s schema is:

{
    "ic1": [
        double/int,
        double/int,,
        ...
    ],
   "ic2": [
        double/int,
        double/int,,
        ...
    ]
}
ic1#
Type:

List of length length(elem)

Each item of the list at index i corresponds to a value for that initial condition for triangle_*i*.

.vtu#

Within the intermediary folder is a .vtu file. This can be opened in Paraview to provide feedback on how the mesh generation went, and if tweaks should be done.

.shp#

Within the intermediary folder is an ESRI .shp file with the _USM.shp suffix. This can be loaded directly into a GIS tool.