Search in sources :

Example 36 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class GraphDistanceNGTest method testSpecial2DirectedGraphRadius.

@Test
public void testSpecial2DirectedGraphRadius() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    DirectedGraph directedGraph = graphModel.getDirectedGraph();
    Node node1 = graphModel.factory().newNode("0");
    Node node2 = graphModel.factory().newNode("1");
    Node node3 = graphModel.factory().newNode("2");
    Node node4 = graphModel.factory().newNode("3");
    Node node5 = graphModel.factory().newNode("4");
    directedGraph.addNode(node1);
    directedGraph.addNode(node2);
    directedGraph.addNode(node3);
    directedGraph.addNode(node4);
    directedGraph.addNode(node5);
    Edge edge12 = graphModel.factory().newEdge(node1, node2);
    Edge edge14 = graphModel.factory().newEdge(node1, node4);
    Edge edge23 = graphModel.factory().newEdge(node2, node3);
    Edge edge25 = graphModel.factory().newEdge(node2, node5);
    Edge edge35 = graphModel.factory().newEdge(node3, node5);
    Edge edge43 = graphModel.factory().newEdge(node4, node3);
    Edge edge51 = graphModel.factory().newEdge(node5, node1);
    Edge edge54 = graphModel.factory().newEdge(node5, node4);
    directedGraph.addEdge(edge12);
    directedGraph.addEdge(edge14);
    directedGraph.addEdge(edge23);
    directedGraph.addEdge(edge25);
    directedGraph.addEdge(edge35);
    directedGraph.addEdge(edge43);
    directedGraph.addEdge(edge51);
    directedGraph.addEdge(edge54);
    GraphDistance d = new GraphDistance();
    d.initializeStartValues();
    UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
    HashMap<Node, Integer> indicies = d.createIndiciesMap(undirectedGraph);
    d.calculateDistanceMetrics(graphModel.getGraph(), indicies, true, false);
    double radius = d.getRadius();
    assertEquals(radius, 2.0, TOLERANCE);
}
Also used : DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) Node(org.gephi.graph.api.Node) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 37 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class ExporterPajek method exportData.

private void exportData(Graph graph) throws Exception {
    int max = graph.getNodeCount(), i = 1;
    HashMap<String, Integer> idx = new HashMap<>(3 * max / 2 + 1);
    Progress.start(progressTicket, max);
    writer.append("*Vertices " + max + "\n");
    NodeIterable nodeIterable = graph.getNodes();
    for (Node node : nodeIterable) {
        writer.append(Integer.toString(i));
        writer.append(" \"" + node.getLabel() + "\"");
        if (exportPosition) {
            writer.append(" " + node.x() + " " + node.y() + " " + node.z());
        }
        writer.append("\n");
        // assigns Ids from the interval [1..max]
        idx.put(node.getId().toString(), i++);
        if (cancel) {
            nodeIterable.doBreak();
            return;
        }
    }
    if (graph.isUndirected()) {
        writer.append("*Edges\n");
    } else {
        writer.append("*Arcs\n");
    }
    EdgeIterable edgeIterable = graph.getEdges();
    for (Edge edge : edgeIterable) {
        if (cancel) {
            edgeIterable.doBreak();
            return;
        }
        writer.append(Integer.toString(idx.get(edge.getSource().getId().toString())) + " ");
        writer.append(Integer.toString(idx.get(edge.getTarget().getId().toString())));
        if (exportEdgeWeight) {
            writer.append(" " + edge.getWeight());
        }
        writer.append("\n");
        Progress.progress(progressTicket);
    }
    Progress.finish(progressTicket);
}
Also used : NodeIterable(org.gephi.graph.api.NodeIterable) HashMap(java.util.HashMap) EdgeIterable(org.gephi.graph.api.EdgeIterable) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge)

Example 38 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class LegacyAttributeRowsPersistenceProvider method readRows.

public void readRows(XMLStreamReader reader, GraphModel graphModel, LegacyMapHelper mapHelper) throws XMLStreamException {
    Graph graph = graphModel.getGraph();
    boolean end = false;
    while (reader.hasNext() && !end) {
        int type = reader.next();
        switch(type) {
            case XMLStreamReader.START_ELEMENT:
                String name = reader.getLocalName();
                if (ELEMENT_NODE_ROW.equalsIgnoreCase(name)) {
                    String id = reader.getAttributeValue(null, "for");
                    Node node = graph.getNode(id);
                    readRow(reader, node, graphModel.getNodeTable(), mapHelper);
                } else if (ELEMENT_EDGE_ROW.equalsIgnoreCase(name)) {
                    String id = reader.getAttributeValue(null, "for");
                    Edge edge = graph.getEdge(id);
                    readRow(reader, edge, graphModel.getEdgeTable(), mapHelper);
                }
                break;
            case XMLStreamReader.END_ELEMENT:
                if (ELEMENT_ROWS.equalsIgnoreCase(reader.getLocalName())) {
                    end = true;
                }
                break;
        }
    }
}
Also used : Graph(org.gephi.graph.api.Graph) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge)

Example 39 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class ClusteringCoefficient method createNeighbourTable.

private HashMap<Node, EdgeWrapper> createNeighbourTable(Graph graph, Node node, HashMap<Node, Integer> indicies, ArrayWrapper[] networks, boolean directed) {
    HashMap<Node, EdgeWrapper> neighborTable = new HashMap<>();
    if (!directed) {
        for (Edge edge : graph.getEdges(node)) {
            Node neighbor = graph.getOpposite(node, edge);
            neighborTable.put(neighbor, new EdgeWrapper(1, networks[indicies.get(neighbor)]));
        }
    } else {
        for (Node neighbor : ((DirectedGraph) graph).getPredecessors(node)) {
            neighborTable.put(neighbor, new EdgeWrapper(1, networks[indicies.get(neighbor)]));
        }
        for (Edge out : ((DirectedGraph) graph).getOutEdges(node)) {
            Node neighbor = out.getTarget();
            EdgeWrapper ew = neighborTable.get(neighbor);
            if (ew == null) {
                neighborTable.put(neighbor, new EdgeWrapper(1, network[indicies.get(neighbor)]));
            } else {
                ew.count++;
            }
        }
    }
    return neighborTable;
}
Also used : DirectedGraph(org.gephi.graph.api.DirectedGraph) HashMap(java.util.HashMap) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge)

Example 40 with Edge

use of org.gephi.graph.api.Edge in project gephi by gephi.

the class GraphElementsControllerImpl method buildEdge.

private Edge buildEdge(Graph graph, String id, Node source, Node target, boolean directed, Object typeLabel) {
    int type;
    if (typeLabel == null) {
        type = graph.getModel().getEdgeType(null);
    } else {
        // Create the type if missing:
        type = graph.getModel().addEdgeType(typeLabel);
    }
    Edge newEdge;
    if (id != null) {
        newEdge = graph.getModel().factory().newEdge(id, source, target, type, DEFAULT_EDGE_WEIGHT, directed);
    } else {
        newEdge = graph.getModel().factory().newEdge(source, target, type, DEFAULT_EDGE_WEIGHT, directed);
    }
    return newEdge;
}
Also used : Edge(org.gephi.graph.api.Edge)

Aggregations

Edge (org.gephi.graph.api.Edge)151 Node (org.gephi.graph.api.Node)122 GraphModel (org.gephi.graph.api.GraphModel)84 GraphController (org.gephi.graph.api.GraphController)79 Test (org.testng.annotations.Test)67 UndirectedGraph (org.gephi.graph.api.UndirectedGraph)46 DirectedGraph (org.gephi.graph.api.DirectedGraph)44 Graph (org.gephi.graph.api.Graph)31 HashMap (java.util.HashMap)26 EdgeIterable (org.gephi.graph.api.EdgeIterable)18 LinkedList (java.util.LinkedList)13 Column (org.gephi.graph.api.Column)11 NodeIterable (org.gephi.graph.api.NodeIterable)9 ArrayList (java.util.ArrayList)8 Table (org.gephi.graph.api.Table)6 GraphView (org.gephi.graph.api.GraphView)5 HashSet (java.util.HashSet)4 Interval (org.gephi.graph.api.Interval)4 TimeFormat (org.gephi.graph.api.TimeFormat)4 DateTimeZone (org.joda.time.DateTimeZone)4