Random sampling in ArcGIS Desktop

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 ? Commented Oct 3, 2019 at 10:25
• No. It's 200 points spread across the States. Commented Oct 3, 2019 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. Commented Oct 3, 2019 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 Commented Oct 3, 2019 at 10:53
• maybe you mean "minimum distance" and not "maximum distance" Commented Oct 3, 2019 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 :

``````myrandfunction()
``````

box:

``````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.

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