Estou enfrentando um dilema ao tentar usar v.generalize para simplificar polígonos que são similares em tamanho e estrutura aos condados ou estados dos EUA. Freqüentemente, perco polígonos do conjunto de dados após executar um método de simplificação ou suavização neles. O que me preocupa é que não parece haver nenhum padrão consistente para esse comportamento. Em alguns casos, o mesmo conjunto de comandos aplicados a diferentes conjuntos de dados causa resultados completamente diferentes. Como resultado, sou incapaz de desenvolver um fluxo de trabalho repetível e relutantemente começo a procurar outras ferramentas de simplificação que preservam a topologia. Aqui está um exemplo:
# LOAD AND CLEAN
v.in.ogr dsn=counties.shp output=county
v.build.polylines input=county output=county_polylines
v.clean input=county_polylines output=county_clean tool=bpol,rmdupl type=boundary
# SMOOTH AND GENERALIZE
v.generalize input=county_clean output=county_smooth method=sliding_averaging look_ahead=7 slide=1
v.generalize input=county_smooth output=county_general method=douglas threshold=.005
Cada uma das etapas v.generalize resulta no desaparecimento de alguns polígonos. Eu gostaria de entender por que isso acontece. É devido aos recursos sendo carregados na memória insuficiente? Meus parâmetros são "rígidos" o suficiente para fazer com que os recursos sejam excluídos por atenderem a algum tipo de critério de geometria? (Observe que estou perdendo alguns recursos muito grandes.) Existe um problema com a topologia dos recursos descartados que os faz serem apagados? Em relação à última pergunta, suponho que build.polylines e operações limpas que eu faço inicialmente devam cuidar disso, mas não tenho muita certeza e não consigo encontrar boas instruções para resolver isso. Há alguns?
Aprecie todas as idéias que as pessoas podem dar, especialmente aquelas baseadas na experiência pessoal com a ferramenta v.generalize.
Roger
fonte
Respostas:
Resposta da equipe de desenvolvimento GRASS.
"O desaparecimento dos polígonos [na v 6.4.1] ocorreu porque os limites suavizados que violavam a topologia do vetor foram excluídos; depois disso, todos os limites que estavam topologicamente incorretos. Os limites agora [no 6.4.2] agora são suavizados / simplificados apenas se a modificação não violar a topologia vetorial. "
fonte