Skip to main content
Jump to: navigation, search

# Custom Graphs

The worldwide administrative data built into STEM is represented as a graph. It is also possible for users to create their own custom graphs using the new graph wizard. The New Graph wizard supports user creation of custom lattices based on a set of "Graph Generators." A graph generator is a pluggable component able to generate a graph (a collection of nodes and edges) either algorithmically or from an external file. Currently, we have implemented an abstract Lattice Graph Generator with a Square Lattice Implementation. A user can specify the size of the lattice as well as several options for how the nearest neighbor (Common Border) is organized. It is also possible to create a new graph from files like Pajek and Esri shapefiles. A graph generator can also be used to create a collection of edges (or other graph components) that can be optionally added to another graph. To use this feature, begin by launching the new graph wizard.

Figure 1. Button to launch the New Graph Wizard

## Creating a Square Lattice Graph

This wizard makes it possible to study the propagation of a disease model on (for example) a simple lattice instead of the more complex geographical administrative divisions.

1) Click on New Graph

2) Name your project

3) Click on TestSquareLattice

4) Specify the size of the lattice

5) Select from the options available how you want the nearest neighbor mixing edges to be organized

6) Click "Finished"

save your work at this point by hitting <ctrl>S

Figure 2. A disease spreading on a square lattice
Figure 3. The New Graph Wizard

## Edges

STEM provides a series of different edges which connects nodes in a graph. This gives the possibility to build complex transportation and migration events in your simulations. Some of them, which can build with the "New Graph" wizard, are presented below.

### Migration Edges

See also Migration Edges: When working with an existing graph, you can create another graph of components you may want to add to the original graph. For example, you can use the Migration Edge Graph Generator to create a graph of migration edges. If you add these to a model containing the original graph, migration of a population will be enabled. Migration edges are created for a specified population and, at the current time, with a single migration rate. If you do not specify a location, a migration edge is created for every physically adjacent region of every node within the graph. If you specify a location, migration edges are created for every physically adjacent region the selected location (i.e., node) contains. For example, if you are working with a graph of the United States, specifying California will create migration edges for every county in California. In the future, we will provide a graphical editor to allow creation of specific edges.

Figure 4. Migration Edge Graph Generator

### Seasonal Migration Edges

The Seasonal Migration Edge Graph Generator works together with a Seasonal Migratory Population Model to allow users to create models where animals migrate seasonally between regions. The edges are just ordinary migration edges. The Migratory Population Model simply modulates the migration rate with a sinusoidal function. As such, negative migration rates are simply ignored by the population model and the population moves only along edges with positive rates. At the end of the season, when the sign of the migration rates changes on some nodes, so does the direction of migration. The Seasonal Migration Edge Graph Generator is a simple way to create a suitable collection of migration edges between two regions. Users are free to create their own sub-graph by other means including pajek. In the example below we show how a migratory sub-graph was constructed for an existing square lattice.

Figure 5. Creating a sub-graph of seasonal migration edges

The user specifies two target nodes (A and B) in the parent graph. The user also specifies the angle α for two rays from node A (+/- 45 degrees in the example) and two rays at angle β about node B (+/- 30 degrees in the example). The Seasonal Migration Edge Graph Generator creates migration edges based on the existing nearest neighbor edges contained in the quadrilateral with vertices as A & B and at the intersection of the rays constructed from each. The nodes are selected by the 'PICK' buttons. This launches a separate dialog where users can chose a node first by selecting 'choose from within project' as shown below.

Figure 6. Picking a node from a set defined in a graph within your existing project

### Custom Mixing Edges

See also Mixing Edges: When working with an existing graph, you can create another graph of components you may want to add to the original graph. For example, you can use the Mixing Edge Graph Generator to create a user customizable graph of mixing edges with a fixed (default) mixing rate or even individually specified mixing rates. Mixing rates can be specified as a fraction of the population or as an absolute number. If you add mixing edges to a model containing the original graph, mixing of a population will be enabled based on these rates (and the default model for mixing human populations will NOT be run). Mixing edges are created for a specified population and with a user specified mixing rate. Users can then edit the generate .graph file to tailor each and every rate based on their own algorithms or data. If you do not specify a location, a mixing edge is created for every physically adjacent region of every node within the graph. If you specify a location, mixing edges are created for every physically adjacent region the selected location (i.e., node) contains. For example, if you are working with a graph of the United States, specifying California will create mixing edges for every county in California. In the future, the graphical editor will also allow creation of specific edges.

Figure 7. Mixing Edge Graph Generator

### Add Mixing and Migration Edges to a Graph

This small Tutorial only show the creating of mixing and standard migration edges. For the seasonal migration edge, please read the section Seasonal Migratory Population Model.
At first it is necessary that you have a graph model like a Square Lattice Graph in your project, where you can include the migration or mixing Edges. It is also recommended to read the sections about the edges and also the article Transportation Models. After you have done this, you can start:

1. Choose the Graph (e.g. Square Lattice Graph) in the Designer perspective where you want to add your edges. If you used the Square Lattice Graph Generator to create your graph model please be sure that you disabled "Periodic Boundaries" before
2. Click on the "New Graph" icon
3. After the New Graph dialogue is open type in a name for your migration or mixing graph project
4. Click on the “Source”-Button and Choose “Migration Edge Graph Generator” or “Mixing Edge Graph Generator"
5. At location it is possible to specify one specific location where you can add the Migration or Mixing Edges on your map. If you don’t choose a specific location, all polygons will be connected with a migration or mixing edge and have the same migration or mixing rate, which you can define under the migration or mixing rate field.
6. In population you can define a specific name for your population in your model. Please be sure that the name of your population is the same like in your decorator files.
7. Click Finish
8. If you want to control that your edge generation was successful, you can click on the small triangle on the left sight of the graph icon to open it. There you can see the different edges and also the rate of the edges
9. To connect your edges with your existing graph, it is necessary to put both in a STEM Model.
10. After Drag and Drop both graphs in a model there is the possibility of visualization. Click for that with a right mouse click on the model and choose in the opened dialogue “Display canonical graph”. You find more informations about this under the section (https://wiki.eclipse.org/Visualizing_and_Editing_Graphs)
11. It is possible to combine migration and mixing edges in one graph. For that you only have to drag and drop your second edge graph into your graph model. This give you for example the possibility to set up the mixing graphs to zero, so that you have only migration events in your graph model.

# Creating Graphs with a File

It is possible to integrate own maps and geographical datasets into STEM from external files. For this we provide the Pajek and the Shape file importer in the Graph wizard.

## Creating a Graph from a Pajek File

The New Graph wizard also makes it possible to import files in a format similar to Pajek. For information on this format and how to import a graph, please see the page on Importing a Pajek Graph.

## Creating a Graph from an Esri Shapefile

For information on how to create a graph from an Esri shapefile, please see the page on Importing an Esri Shapefile.