1. A method implemented by a computer for determining for a set of co-ordinate records a number of incidents associated with co-ordinates within a query area, comprising: storing data representing a binary tree comprising leaf nodes, a root node and branch nodes wherein the leaf nodes are associated with individual items of co-ordinate data identified by the set of co-ordinate records, and the root node and branch nodes are each associated with a pair of child nodes, and are each associated with split values, wherein the storing the co-ordinate data identifies the individual items of the co-ordinate data in an array, which is an indexed array as an initial group, wherein the root node represents an entire data space, wherein the binary tree used to structure the co-ordinate data is stored in a linearized tree form, wherein generation of the linearized tree form occurs in place where the process takes the array of co-ordinate data and generates a linearized tree by implementing a number of grouping steps within the array that results in an ordered array of co-ordinate data, and wherein each of the grouping steps creates another level of a tree, wherein the co-ordinate data is visualized in a form of intensity data, and wherein calculation of the split value and separation of the set of co-ordinates into two groups based on the split value is an N log N process to make the process suitable for processing a large volume of data; receiving a query identifying a query area; selecting the root node as the first node to be processed; recursively: determining if the current node being processed corresponds to a leaf node and if so determining whether the item of co-ordinate data associated with the current node is within the query area and, if so, incrementing the number of incidents identified as being within the query area by a value corresponding to the number of incidents associated with the leaf node; if the current node being processed is not a leaf node, determining the extent to which a bounding box associated with the node intersects with the query area wherein the bounding box associated with the root node identifies an area bounding all of the co-ordinates identified by the individual items of co-ordinate data; if the bounding box associated with the current node being processed is contained entirely within the query area, increasing the number of incidents identified as being within the query area by a value corresponding to a determined number of incidents associated with the current node and not scheduling the child nodes of the current node as nodes for processing; if the bounding box associated with the current node is entirely within the query area, scheduling the child nodes of the current node as nodes for processing and associating the child nodes with a bounding box wherein the bounding boxes associated with the child nodes correspond to the bounding box of the current node being processed divided into two parts on the basis of the split value associated with the current node; and outputting the total incremented number of incident values as the number of incidents associated with co-ordinates within the query area when all scheduled nodes have been processed.