I have 14,033 points representing the location of some weather stations across the 36 states in Nigeria. I want to use an ArcGIS Desktop sampling tool to implement a random selection of 200 points with minimum distance of 250 km between each point.

I don't seem to find an appropriate tool in ArcGIS Desktop to do that. I use ArcGIS version 10.5 and 10.6.

  • what is your criteria for the stratification ? Is it 200 points per state ? – radouxju Oct 3 '19 at 10:25
  • No. It's 200 points spread across the States. – Sarah Chiejile Oct 3 '19 at 10:32
  • so maybe you mean "simple random sampling" and not "stratified" sampling. By the way, why do you need a maximum distance of 250 km between points, because this is a strong constraint of the sampling. – radouxju Oct 3 '19 at 10:37
  • Okay. My boss asked me to do that using stratified sampling though I am using just simple random sampling. I can use a lower distance between them though – Sarah Chiejile Oct 3 '19 at 10:53
  • maybe you mean "minimum distance" and not "maximum distance" – radouxju Oct 3 '19 at 11:37

If you have a set of point, you can random select from it based on a random number in your attribute table. This is the first step. Once you have the random number, sort your attribute table and take the 200 first points (select manually is the fastest).

The probability that you have two points at less than 250 km from each others is quite small, but it could happen. You should therefore build 125 km buffers around each point, with dissolved boundaries, and select by attributes the buffers with an area larger than pi*125000*125000 m²(which means that you have at least two touching buffers) and only keep the point with the smallest random value. then you select by location all the points that are within 250 km of your first sample of point, invert the selection and manually select the "x" first points to have a total of 200 points. Check again if the new points are not close to each other and repeat the selection process if needed until you have 200 points.

I don't think that you will have to repeat the process more than once, so I suggest that you do this manually.

to compute the random number, you can use python in the field calculator

command :



import random
def myrandfunction():
    return random.rand()

Run NEAR tool on itself and select points with near distance greater or equal to 250 km.

If you are lucky to get 200 points or more, copy them to a separate feature class and use any random generator to pick 200 of them. Selected points in a picture below show points sitting at least 500 m away from any other point.

enter image description here

If there are less than 200 points, solution doesn't exist.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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