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.