R/calc_tension_strain.R
calc_tension_strain.Rd
This function calculates the line tension and strain characteristics for the edges in a graph. It is called by default by all the embedding functions (SETSe_*) but is included here for completeness.
calc_tension_strain( g, height_embeddings_df, distance = "distance", edge_name = "edge_name", k = "k" )
g | An igraph object of the network. |
---|---|
height_embeddings_df | A data frame. This is the results of Create_stabilised_blocks or Find_network_balance |
distance | A character string. The name of the edge attribute that contains the distance between two nodes. The default is "distance" |
edge_name | A character string. The name of the edge attribute that contains the edge name. The default is "edge_name". |
k | A character string. The name of the edge attribute that contains the spring coefficient |
The function returns a data frame of 7 columns. These columns are the edge name, the change in elevation, The final distance between the two nodes (the hypotenuse of the original distance and the vertical distance), the spring constant k, the edge tension, the edge strain, and the mean elevation.
Whilst the node embeddings dataframe contains the elevation of the setse algorithm this function produces a data frame that contains the Tension and Strain. The dataframe that is returned contains a substantial amount of line information so reducing the number of variables may be necessary if the data frame will be merged with previously generated data as there could be multiple columns of the same value. This function is called by default at the end of all setse functions
set.seed(234) #set the random see for generating the network g <- generate_peels_network(type = "E")%>% prepare_edges(k = 500, distance = 1) %>% #prepare the network for a binary embedding prepare_categorical_force(., node_names = "name", force_var = "class") #embed the network using auto setse embeddings <- setse_auto(g, force = "class_A") edge_embeddings_df <- calc_tension_strain(g, embeddings$node_embeddings) all.equal(embeddings$edge_embeddings, edge_embeddings_df)#> [1] TRUE