Adding random spatial error to addresses using python?

Discussion created by michelle.debartolo on Jan 3, 2014
Latest reply on Jan 6, 2014 by michelle.debartolo
Hi.  I have geocoded a list of ~2,500 survey respondent addresses and now want to add random spatial error to each location based on underlying population density while also retaining points within their original census block and keeping points out of water bodies.  I am not familiar with Python and am wondering if this is something I could do using Python within ArcGIS 10.2.  ...or maybe there is a better way?   

Development varies from urban to large tracts of rural areas- and geocoding addresses to the census block centroid isn't ideal in the rural areas. 

Essentially, my thoughts are:
(1) Add random spatial error to each point: 360 degrees, distance based on population density.  e.g. if pop. density is < 1 person/sq mile, then distance offset would be within 2 mile radius; if pop. density is 1 < x < 50, then distance offset would be within 1 mile radius...
(2) Keep point within the boundary of the census block from which it originates
(3) Keep point out of water bodies.

I appreciate any thoughts, advise, help that may be offered.  Thank you.