Usando o plugin QGIS + GRASS:
Adicione a barra de ferramentas Grass na janela "Gerenciar plug-ins".

Suas linhas precisarão ser um vetor de grama, então converta-as em um conjunto de mapas GRASS novo ou existente.
Na barra de ferramentas do GRASS, selecione Ferramentas GRASS ...

Procure o módulo: v.generalize ( tutorial WIKI aqui )
Você pode escolher vários algoritmos de generalização diferentes:

Observe os algoritmos: Chaiken, Hermite ou até Sliding Average. Existem vários outros também!
As diferenças podem ser vistas nas imagens da wiki:

do Wiki: "Observe que a diferença entre" Chaiken "e" Hermite "é que as linhas produzidas por" Chaiken "" inscrevem "as linhas originais, enquanto as linhas" Hermite "circunscrevem" as linhas originais, como pode ser visto no figura [acima] (a linha preta é a linha original, a linha verde é "Chaiken" e o azul é "Hermite")
Usando uDig + jgrasstools ou grama:
Se você tiver dificuldade em obter resultados desejáveis com o v.generalize do GRASS, tente a versão mais recente do uDig com o jgrasstools . Você também pode pegar o pote de grama no mesmo local que o jgrasstools.
Depois que o uDig estiver instalado e funcionando, ative a Caixa de ferramentas espaciais : Janela> Mostrar exibição> Outros ...

Desmarque a barra de ferramentas para facilitar a legibilidade (clique com o botão direito do mouse na guia Spatial Toolbox> Desanexar ...):

Carregue os módulos jgrasstools e grass (opcional) necessários:

Não se esqueça de definir seus parâmetros de grama (aponte para executável ou arquivo bat no windows, ou comando grass no linux, por exemplo, / usr / bin / grass) se você carregar o arquivo jar jar:

Finalmente! Usando as ferramentas do jgrasstools (não grama), você pode generalizar a linha facilmente com Vector Processing> LineSmootherJaiTools

Certifique-se de definir a entrada e a saída corretamente (funciona apenas em Shapefiles, portanto, não é necessário converter seus dados em conjuntos de mapas / locais para grama) :

Depois de definir a tolerância de suavização (0,0 - 1,0) e a entrada / saída, pressione o botão Play na janela Spatial Toolbox (canto superior direito):

Resultados:
