Network: Difference between revisions

From Tygron Preview Support Wiki
Jump to navigation Jump to search
No edit summary
 
(52 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{learned|what networks are|how networks relate to the Tygron Engine|how networks are structured|how to create networks}}
[[File:Api_current_situation_network.png|thumb|right|400px|Network with [[Net Node]]s connected by [[Net Line]]s, [[Net Load]]s clustered by [[Net Cluster]]s and configured by [[Net Setting]]s]]


{{stub}}
Networks in the platform are composed of multiple constituent components:
* [[Net Type]]: A categorization of the network.
* [[Net Node]]s: A node present in one or more networks
* [[Net Line]]s: A connection between two net nodes
** Has an associated [[Net Function]], which in turn is related to a specific [[net type]].
* [[Net Load]]s: A definition of supply or demand in the network
** Belongs to a particular [[Net Type]]
** Is associated to [[Net Node]].
** Can be activated or deactivated with specific time states.
* [[Net Cluster]]s: Cluster of net loads that provides group (de)activation.
** Can be associated with [[Net Load]]s of different [[Net Type]]s
* [[Net Setting]]s: Settings related to the configuration of a Network of a specific Net Type.


==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 line]]s and [[net node]]s. 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 load]]s, 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 [[TQL|queries]] on the loads of networks, or to add [[panel]]s 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===
===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.
* 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 line]]s, except when that node is a [[net load|load node]]. In that case, a net node can only be connected to exactly 1 net line.
* A net node can be connected to 1, 2, or more [[net line]]s, except when that node is a [[net load|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, [[upgrade]]d, sold to other stakeholders, or otherwise changed.
* 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, [[Upgrade Type|upgrade]]d, 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 load]]s 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 line]]s 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 line]]s 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 definition]]s 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 [[net loads|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 [[net loads|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 [[net loads|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.
 
==Checking for errors==
When there is doubt on whether the network has been created correctly, there are options to have the engine check for issues automatically.


===Network wizard===
{{article end
When creating or importing network data using the net wizard, but also when stepping through the available steps of the wizard without effecting any changes, there are 2 validation steps where all preceding information is checked. These validation steps will check the following for all active network types:
|howtos=
* There is a root node
* [[How to generate a network using the network wizard]]
* All net lines are connected directly or indirectly to the root node
* [[How to import an existing network]]
* All net loads are connected via paths composed of net lines to the root note
* [[How to manually edit a network]]
* All net nodes with only 1 net line connected to them have a net load connected to them
* [[How to check for errors when using the network wizard]]
* All net nodes with a net load connected to them only have 1 net line connected to them
* [[How to check for errors when using the net validation panel]]
* There are no cycles in the network (except for the GAS network type)
|seealso=
* All net loads are part of a cluster
* [[Network Overview Overlay]]
* [[Network Ownership Overlay]]
* [[Network Distance Overlay]]
|videos=
:[[File:Network_VT.jpg| link=https://youtu.be/k4WDyjdurU4|left|thumb|Network and network generation]]
}}


===Net validation===
{{Template:Editor current situation nav}}
The net validation panel will check the following for a given network type:
* There is a root node
* All net lines are connected directly or indirectly to the root node
<!--* All net loads are connected via paths composed of net lines to the root note-->
* All net nodes with only 1 net line connected to them have a net load connected to them
* All net nodes with a net load connected to them only have 1 net line connected to them
<!--* There are no cycles in the network (except for the GAS network type)-->
<!--* All net loads are part of a cluster-->

Latest revision as of 15:14, 29 February 2024

Network with Net Nodes connected by Net Lines, Net Loads clustered by Net Clusters and configured by Net Settings

Networks in the platform are composed of multiple constituent components:

  • Net Type: A categorization of the network.
  • Net Nodes: A node present in one or more networks
  • Net Lines: A connection between two net nodes
  • Net Loads: A definition of supply or demand in the network
    • Belongs to a particular Net Type
    • Is associated to Net Node.
    • Can be activated or deactivated with specific time states.
  • Net Clusters: Cluster of net loads that provides group (de)activation.
  • Net Settings: Settings related to the configuration of a Network of a specific Net Type.


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.