Appar för lokalisering vid 112 samtal

Ett av 112-operatörers största problem är att lokalisera en inringande person. Det är vanligt att personer inte kan ge en god beskrivning av vart de befinner sig. Kan du tex säga adressen till vart du är just nu? Det är många situationer där det kan vara svårt, tex om man är på besök hos en bekant, promenerar inne i en storstad, på vägen i sin bil, på vandring i naturen, turist på orten, eller om inringaren är ett barn.

När jag senast konfronterades för problemet stod lite över en halv kilometer hemifrån, långt ute på landet med en svårt skadad motorcyklist, och med vägar utan namn. Resultatet –

“öhh, jag står typ mellan A och B, alldeles vid vägen till C, och ca 500 meter sydväst om D … ok fortfarande svårt … jag ser en postlåda en bit bort, jag får springa dit och kolla om det står en adress på den”.

Problemet är så vanligt förekommande att man nu (äntligen) har infört appar i flera länder som informerar SOS-operatören om den inringandes position. Appen måste installeras på telefonen, vilket inledningsvis kommer orsaka både frustration och en låg install-base, men som över tid kommer att rädda liv. Fördelen med denna typ av applikation är att positionen är baserad på GPS-data vilken gör den mycket precis, till skillnad från triangulering mellan master som används av SOS-Alarm idag. En annan fördel är att det är helt frivilligt att installera den. Om myndigheter vill kan den även användas för att sprida Viktigt Meddelande till Allmänheten, eller annan viktig information, tex hur HLR utförs korrekt. Tyvärr finns inte applikationen för användning i Sverige, men det känns som en ofrånkomlig framtid. Läs mer om projekten i Nya Zeeland och Finland i länkarna under.

Generating network graphs with Python and pygexf

When you have data collected that consists of some form of connected elements, then visualization may be a fruitful method for exploring that data. If you are familiar with Python, or programming in general, creating network graphs that can be visualized in Gephi is a rather trivial task. The snippet below shows how to traverse an arbitrary number of connected elements and how to generate a graph that be loaded into Gephi:

def generate_graph(node,graph):

    # We start by adding the current node to the graph
    graph.addNode(id=str(node["label"]), label=str(node["id"]))

    # Loop over each child node, or twitter replies
    for reply in node["replies"]:
        # ... and go one level deeper if child nodes exists
        graph = generate_graph(reply, graph)

        # ... then connect the child node that now exists with the current parent node
        graph.addEdge(id=str(reply["id"]), source = str(reply["id"]), target = str(node["id"]))

    # When all child nodes has been appended, or if no more exists,
    return graph

The main element in the code is the line graph = generate_graph(r, graph) as it adds the recursion to the algorithm, meaning that the function calls itself. The call also provides the graph currently being constructed, and the node(s) to be added. In this example all nodes already exists as objects appended as a list of “replies” to the node. The node element is an element consisting of a dict object with nested list as the “replies” element. See below for the most simple example of a connected graph as dict/list elements.

{node_id=1, replies=[{node_id=2, replies=[]}]s}

The graph object needs to be created initially, and the data needs to be gathered. The data can be appended to the function in the cursive loop, but this would however affect both complexity and speed. I would advocate to first collect the data, then work with it. The code below illustrates how to initially setup create the graph object and later how to write the complete graph to file.

def main(argv):
   gexf = Gexf("Name of Graph collection","Info on graph collection")
   graph=gexf.addGraph("directed","static","Information about graph")

   # function to get data
   thread = get_single_thread()

   # generate graph
   graph = generate_graph(thread,graph)

   # we end by writing the graph to file
   output_file=open("graph.gexf","w")
   gexf.write(output_file)

The following example is a graph generated to visualize reply-threads in Twitter data.

Replies on Twitter

Replies on Twitter

Data for the graph above was captured using Phirehose, the graphs were generated using Python and the pygexf library, and the network was visualized using Gephi. Read more about social web mining in ‘Mining the Social web’.

What is the main function of Twitter in crisis?

What is the main function of Twitter in crisis?

During a large scale forrest fire in Sweden this summer I was able to capture a few interesting dataset. One of those consists of a months worth of Twitter data. While doing a “test run” on the data to generate visualizations I found two really interesting patterns. By looking at these two graphs, I would say that Twitter users mainly look for interesting or important information, and forward it to our followers. There is hardly any conversations (or replies), and that really surprised me.

Screen Shot 2014-09-24 at 10.02.13 Screen Shot 2014-09-24 at 10.02.44

The left image shows the small number of reply networks with 315 reply tweets in total. The right image show a much larger network of retweets, with 9952 retweets. Clearly there is very little conversations going on Twitter, at least using the “official” hashtag of the forrest fire. Now the question for you! Why is this important, and how does it affect research on social media use in crisis in general?

More is to come regarding both this dataset and the event. Data was captured using Phirehose, the graphs were generated using Python and the pygexf library, and the network was visualized using Gephi.

Printing whiteboards

Aspects of digitizing response work interests me a great deal, and recent years innovation and adoption of services, methods and devices have been truly interesting to study. What we have seen is that communication, documentation, and many more aspects of work are getting digitized, thus allowing for new kinds of content to be generated and made part of response activities. One environment to study such change is “situation rooms”. These work intensive, white board clad, and collaboratory environments have seen huge changes in the last couple of years. What struck me today is that I found i predecessor to todays “smartboard” that had completely gone me by. Printing whiteboards allows for digital copies to be made, stored, shared and of course, printed. We commonly see whiteboards being photographed for backup, sharing and to make permanent as part of emergency response work and other similar and related disciplines. I have however not seen a whiteboard able of doing those tasks themselves. (And maybe it not all to hard to imagine why I haven’t seen these devices in the wild.) Here is a video for you to consider. Would features relate to situation room work as we know it today?

Nästa steg i en värld av sensorer

Vi har länge pratat om mänskliga sensorer och hur står påverkan introduktionen av “smart phones” har haft när det gäller generering av sensordata. Exempel på dessa är bland annat United States Geographical Surveys (USGS) projekt “Did you fell it”(DYFI) och “Twitter Earthquake Detector”(TED). DYFI samlar in rapporter från allmänheten gällande hur väl en jordbävning har känts av för att skapa modeller om en jordbävnings påverkan. TED är idag en av världens snabbaste metoder för att upptäcka jordbävningar. Genom att scanna av Twitter efter tecken på jordbävningar kan man ofta upptäcka dem snabbare än via sin seismiska utrustning då en tweet rör sig snabbare än en chockvåg genom jorden.

Senaste årens explosionsartade utveckling av hälsoteknik har nu bland annat lett till att miljontals människor bär på sig sensorer dygnet runt, även i sängen. Normalt är syftet att logga fysisk aktivitet och sömnkvalitet, men företaget Jawbone visar nu sensordata som ger intressanta insikter från jordbävningen i Napa Valley i västra USA.

Screenshot 2014-08-26 14.03.40Datan visar reaktionen i sömnmönster från användare i berörda områden då sensordatan från armbandet paras ihop med positionsdata från telefonen. Själva datan i sig kanske inte säger så mycket mer än hur kraftig jordbävning vissa personer klarade att sova sig igenom, men det visar spännande egenskaper av en möjlig nära framtid. Troligtvis kommer inte hemmen att rymma en mindre mängd sensorer, och automatisk larmdata kommer troligen kunna berätta vad som har inträffat, vilka som är eller inte är hemma, samt vilket tillstånd de är i. Frågan är hur vi ska tänka kring den informationen vi skapar och i vilket sammanhang den kan användas. Om mitt aktivitetsarmband säger att jag ligger hemma stilla samtidigt som min brandvarnare larmar om brand så vill jag gärna att någon blir varse denna information.

Via theverge.com