I have two sets of incident data from different sources but I would like to aggregate them together to provide one version of the truth.

These two sets of data will often contain the same incidents (based on date and time as well as location). But they come from two different organisations.

Does anyone please know of a good way in ArcGIS Desktop of using spatial coordinates as well as the date and time of the events to intelligently identify when the incidents match (say within 30min and 200m of each other)?

  • If you wish to ask a similar question using MapInfo you can do that in a separate question.
    – PolyGeo
    Commented Jun 7, 2018 at 22:27
  • 1
    Add spatial join one too many and compute time difference.
    – FelixIP
    Commented Jun 8, 2018 at 1:39
  • Thanks FelixIP but the problem is that there can be multiple incidents occurring st the same location. So a spatial join won’t work. It needs to be a spatial join based on time or closest time is that possible please?
    – jjc
    Commented Jun 9, 2018 at 7:01

1 Answer 1


This feels a little kludgy, but what about:

  1. Buffer one dataset (I am assuming you are working with points) by 200 m.
  2. Buffer the other dataset by a very small amount, say 0.25 m.
  3. Perform intersection of the two buffered datasets. This takes care of the distance criteria.

Now, because buffer and intersection both carry attributes to the newly created features, the polygons formed by the intersection will have the attributes from both sets of input points.

  1. Add a new field to the intersection polygons and use the field calculator to calculate the time difference between the two datasets.
  2. Select by attributes to get the intersection polygons where the absolute value of the time difference is greater than 30 minutes and delete them. This takes care of the time criteria.
  3. Use the remaining intersection polygons and a select by location to select the points from whichever dataset was used to generate the smaller buffers originally and delete them.
  4. Merge the two datasets into a final composite dataset.

You mentioned that there can be multiple incidents at the same location. Does that mean exactly the same location? For step 2, you want to specify a buffer size small enough that the buffers do not overlap with other buffers in that same dataset. You can use Near with a point dataset and itself to see how far the closest points are to each other. See this related answer.

If the points do coincide exactly, step 2 won't work. In that case, you could use ArcPy and an update cursor to jitter the points (i.e., move each in a different small random direction) before hand. See, for example, this answer (with example code). Store the X and Y components of the move vector in new attributes so you can move the points back later (if desired). The magnitude of the move should be larger than the small buffer size; but not so large as to change the results of the 200 m buffer.

  • Thanks mate I will try that and let you know. Seems logical so really appreciate the help
    – jjc
    Commented Jun 12, 2018 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.