Um método simples para mover locais dentro de tais anéis explora uma representação em grade da distância até o limite do trato. Começando com uma representação poligonal dos setores censitários (que é o habitual),
Converta isso nos limites do polígono (uma camada de polilinha).
Calcule a grade da distância euclidiana até os limites.
Extraia as distâncias euclidianas nos locais indicados.
Mova cada local dentro do intervalo indicado pela distância - que, por definição, é o máximo até o limite.
Cada um normalmente requer apenas um único comando com um GIS, tornando a sequência inteira facilmente automatizada e facilmente executada manualmente. Esses são comandos eficientes , porque não exigem a construção de um buffer para cada ponto (o que normalmente cria várias dezenas a quase mil pontos para descrever um anel ou anel ). Também não são necessários ensaios ou pesquisas aleatórias: os pontos são deslocados diretamente por quantias garantidas para deixá-los dentro de seus setores censitários originais.
Por exemplo, movi 172.902 locais em 47 setores em direções aleatórias por deslocamentos uniformemente distribuídos entre metade da distância e a distância total até o limite. Aqui está uma parte de uma área antes da mudança:
(quadrados amarelos marcam os locais) e após a mudança:
(agora quadrados cinza marcam os novos locais). A operação total levou apenas um ou dois minutos (usando um GIS desatualizado antigo :-).
Comparando esses números de perto, você pode ver que
Os pontos que estão agora próximos ao limite (como perto dos dois lagos mostrados como "buracos" brancos nessas figuras) permanecem necessariamente próximos ao limite.
Pontos distantes do limite tendem a se afastar.
Consequentemente, um ponto próximo ao limite provável (mas não certamente) se originou muito próximo, enquanto qualquer ponto distante do limite provavelmente se originou em algum outro lugar longe do limite. Essas duas tendências estão longe de ser completamente aleatórias: elas podem (com bastante facilidade) ser exploradas por alguém que deseja penetrar na privacidade que esses movimentos pretendiam proporcionar.
Métodos melhores tornariam as conexões entre a localização final e a inicial mais tênues e mais aleatórias. No mínimo, os pontos devem ser movidos dentro de bairros razoavelmente grandes, em vez de bairros de tamanhos variados (e possivelmente arbitrariamente pequenos). Tais movimentos não são realizados prontamente com grades, porque geralmente requerem algumas tentativas e erros: você gera vários pontos aleatórios em uma vizinhança de cada ponto original e seleciona o primeiro que se encontra no mesmo setor censitário. Esse é um loop envolvendo (1) um movimento aleatório e (2) uma consulta ponto a polígono. Ambas as operações são rápidas, mas isso requer um pouco de programação para implementar o loop.
(Em um comentário à pergunta, forneço links para alguns estudos de métodos usados para disfarçar dados de localização para fins de privacidade.)