Network

From Tygron Preview Support Wiki
Jump to navigation Jump to search

Template:Learned

This article is a stub.

What is a network

A network is broadly defined as an interconnected system of things. More specifically, networks used here are transport and distribution networks. These are systems composed of interconnected points of supply and demand for specific resources, and the routes connecting them.

How networks relate to the Tygron Engine

In the Tygron Engine, it is possible to add network information to a project.

Network functionality is currently an advanced feature, and not available to new projects by default. Please contact Tygron Support if you wish to make use of networks in your projects.

Network structure

Networks are not themselves an individual component in a project, but are composed of multiple constituent components.

Network type

Each network is related to a predefined resource type. This is known as the network type. The network then is the system through which that resource travels from elements of supply to elements of demand. Each network of a separate type is a separate entity, and networks of different types do not affect each other.

Network components

Networks in the engine consist first and foremost out of net lines and net nodes. The net lines are the principle element in this structure. The two ends of net lines are defined by net nodes. Each net node has at least one net line connected to it, but any arbitrary number of net lines can start or end at a node. The collection of net lines and net nodes between two arbitrary net nodes is called a path.

Networks also have net loads, which are a definition of supply and demand. These net loads are linked to net nodes, to indicate the supply and demand on that node. A net load is a geographical element, which should be connected to a net node, with data concerning the amount of supply or demand that net node represents. Not every net node needs to have a net load connected to it. However, net loads are only relevant and valid when they are connected to a net node.

Lastly, clusters are also used in conjunction with networks. Clusters group together net loads, and serve as an intermediary to use queries on the loads of networks, or to add panels to the network for reading out information and controlling the network. Clusters are not formally an element of the network. Their existence (or lack thereof) does not inherently influence the validity, functioning, or meaning of the network.

Restrictions on networks

  • Networks cannot contain any cycles. All networks should be defined as a tree. If the network is not structured as a tree, network generation and other calculations may have unexpected results.
  • A net node can be connected to 1, 2, or more net lines, except when that node is a load node. In that case, a net node can only be connected to exactly 1 net line.
  • Behavior for networks linked with buildings which are altered during a session are undefined. When using network functionality, the buildings linked to by the network should not be demolished, upgraded, sold to other stakeholders, or otherwise changed.

Network settings

There are a number of settings available with which to tweak how networks functions in your project. For more information on the settings available, see Network settings.

Generating Networks

It is possible to have the Tygron Engine generate networks for your projects.

Load generation

Net loads can be generated based on buildings and the addresses within them. When selecting this option, you can select which neighborhood, stakeholder, and building category to cluster for. Load generation makes use of the following settings:

  • Address Threshold. When the building has more than this many addresses, rather than generate an individual load for each address one single load is created for the entire building.
  • Floors Threshold. When the building has more than this many floors, rather than generate an individual load for each address one single load is created for the entire building.
  • Skip buildings with Load. When a building already has a load in it, that building is no longer checked to see whether loads have to be generated in it. The building is skipped.
  • Create Paths. Whether to also generate the net lines for the network in the same process. This is often desirable, as a network is not valid when there are net loads unconnected to the net lines.

Path generation

Net lines can be generated automatically, based on the net loads present in the 3D world (or when generating as part of the process of generating net loads, also based on the net loads generated by the net load generation process). When selecting this option, you can select the net line definitions the generated net lines should be based on. Network generation makes use of the following settings:

  • Merge range. When generating a path from a given net load, immediately check whether these is an existing net line or net node nearby within this distance. If there is, directly connect this net load to the found net line or net node.
  • Search range. When generating a path from a given net load, nodes are placed on a path to the root node. If any of those nodes are placed within this distance of an existing node, a connection will be made between the placed node and the existing node.

The Merge range is meant to emulate the connecting of buildings to existing pipes already in place. The Search range is meant to emulate the creation of new sections of network, including connecting those new sections of network to a network already in place.

When generating net lines, a root load must be placed somewhere in the world, from where the network will be generated*. If a root load does not yet exist, an option will be offered to place a root load in the world.

* Strictly speaking, the network generation algorithm will work its way from unconnected net loads to the node connected to the root node.

Cluster generation

There are a number of ways to have clusters generated by the Tygron Engine. When selecting this option, you can select which neighborhoods and stakeholders to cluster for. Net loads which are already clustered will not be removed from their clusters or moved to other clusters. Net loads which are not located in the selected neighborhoods are not taken into consideration (Note that this is the position of the net load and not of its connected net node). Net loads which are taken into consideration are not limited by their neighborhoods. This means net loads from different neighborhoods can be placed in the same cluster. No matter the used algorithm, clusters will always only contain net loads of the same stakeholder.

Map Sectors

The map is divided into squares of equal sides, dubbed "sectors". All buildings are checked to see in which sector they reside the most, so that each is considered part of exactly one map sector. All loads in all buildings in the same sector are grouped in the same cluster. This algorithm makes use of the following settings:

  • The size of the sectors in which the map is divvied up. This is a numeric setting, indicating the side of one edge of the sectors in meters.
  • Whether to cluster collective loads separately. This is a yes-or-no option. If this option is selected, collective net loads are placed in individual clusters, and not grouped into the cluster generated based on the sectors in which they reside.
  • The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.

Per attribute

An attribute of the net loads indicates in which cluster the net load is placed. Every net load with the same value for that attribute is placed in the same cluster. This algorithm makes use of the following settings:

  • The attribute to use. When 2 or more loads have the same value for this attribute, they are placed in the same cluster. Net loads which do not have this attribute explicitly defined are ignored.
  • Whether to cluster collective loads separately. This is a yes-or-no option. If this option is selected, collective net loads are placed in individual clusters, and not grouped in a cluster with other net loads which share the same attribute value.
  • The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.

Per building

All the net loads linked to the same building are placed in the same cluster. Each building with net loads will have their own cluster. Net loads which are not linked to buildings are not clustered. If a building already has a cluster and more unclustered loads exist linked to the same building, a new cluster is created for the loads which were not yet clustered. This algorithm makes use of the following settings:

  • Whether to cluster collective loads separately. This is a yes-or-no option. If this option is selected, collective net loads are placed in individual clusters, and not grouped in a cluster with other net loads which share the same attribute value.

Per load

Each net load will be placed in a separate cluster. This algorithm makes use of the following settings:

  • The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.

Per load with unique stakeholders

Each net load will be placed in a separate cluster. Additionally, for each cluster created with this algorithm an additional stakeholder is added to the project. This algorithm makes use of the following settings:

  • The default stakeholder. When a net load has an owner (because the net load is linked to a building), the net load is considered to be owner by that stakeholder. When the net load does not have an owner, it is considered to be owned by the default stakeholder selected.

Add to existing clusters by building

For each cluster, all net loads are checked for the buildings to which they are linked. Those buildings are checked for net loads which are linked to that building but are not yet clustered. If any unclustered net loads are found in buildings this way, those net loads are added to the existing cluster. If multiple net loads, part of different clusters, are linked to the same building, it is random to which cluster any unclustered net loads will be added. This algorithm does not have any settings.