Como executar a interpolação Spline no GPS Track


8

Estou procurando uma maneira de aplicar a interpolação de splines em uma faixa de GPS (formato Gpx). Eu sou um usuário regular do QGIS e também tenho bibliotecas GDAL instaladas no meu mac, se isso ajudar.

Basicamente, as informações sobre trilhas e passeios no MTB Project têm um pequeno conjunto de pontos e os caminhos reais são expandidos via interpolação de splines para reduzir o tamanho dos arquivos. Posso fazer o download das faixas no formato gpx, mas elas contêm apenas um pequeno conjunto de pontos, fornecendo uma faixa que se assemelha a uma linha irregular que representa a pequena quantidade de pontos antes da interpolação. Quero aplicar uma transformação semelhante para recriar as linhas curvas que estão no site, em um processo um tanto repetitivo que não me permite re-traçar manualmente cada ponto com a ferramenta de desenho de splines no QGIS.

insira a descrição da imagem aqui

Alguém sabe de uma maneira que eu possa aplicar facilmente a interpolação de spline aos dados da minha trilha de GPS para reproduzir a trilha estriada do MTB Project usando ferramentas gratuitas? De preferência no OSX?


FWIW, topofusion tem esse recurso que estou procurando, mas sou um usuário de mac. Então, estou procurando algo que funcione sem o Windows. topofusion.com/spline.php
Benzo

Na verdade, eu usei um pc com Windows e constatei que a topofusão faz um bom trabalho em suavizar as linhas, mas elas não são interpoladas da mesma maneira que o projeto MTB; portanto, às vezes as curvas acontecem de uma maneira diferente e causam menos trilhas. preciso em vez de mais preciso, mesmo depois de ajustar os parâmetros.
Benzo 11/01

Respostas:


5

Tente usar a ferramenta "v.generalize" na caixa de ferramentas de processamento. Existem vários algoritmos que podem generalizar bem uma linha.

Outra solução possível poderia ser o plug-in "Generalizador" mencionado nesta publicação ; as informações do plug-in no QGIS sugerem que a ferramenta é baseada no módulo Grass do v.generalizer de qualquer maneira.

Apenas para referência abaixo, há um exemplo da saída da ferramenta v.generalize. Eu usei as entradas padrão para as saídas Chaiken e Hermite, não tenho dúvida de que você poderia obter melhores resultados com um pouco de pesquisa sobre a ferramenta e, especificamente, o que significam os valores de entrada.

Atualização - O algoritmo Snakes (não mostrado na imagem original abaixo) com alguns ajustes nos parâmetros alfa e beta fornece uma aparência mais suave no meu conjunto de dados de teste.

Exemplo de saída v.generalize


1

Sinto-me desconfortável, mas deixe-me recomendar o QGIS + Spline Plugin como uma das opções para o seu caso.

  1. Sim, digitalizar todos os pontos é complicado. Porém, a configuração de um parâmetro apropriado da Opção de snap pode diminuir o ônus da tarefa.
  2. Outro software capaz de criar Splines seria CAD (por exemplo, AutoCAD) ou solução matemática (por exemplo, R). Se você escolher CAD, seu fluxo de trabalho é quase o mesmo, para repetir os pontos de clique para adicionar segmentos de spline.
  3. Se a pista de bicicleta era uma curva spline "ideal", interpolada matematicamente, a spline de melhor ajuste será a solução. Na realidade, esse spline raramente representa toda a sua trilha. Você pode acabar emendando várias curvas, tentando vários parâmetros de suavização.
  4. Ao usar o Spline Plugin, você pode alterar os parâmetros à medida que avança na digitalização.

insira a descrição da imagem aqui

Se sua tensão estiver definida como 0,5 (valor padrão), ele poderá conectar pontos de medição densos sem problemas, e uma tensão mais alta tentará não dobrar a curva em torno desses pontos.

Você notará que a curva azul (0,9) se encaixa melhor na curva suave e a laranja (0,5) é boa para curvas apertadas. Essa flexibilidade é a melhor parte da digitalização manual pelo Spline Plugin. Se tentarmos fazer isso pela equação matemática, pode ser um pesadelo.

  1. Receio que a técnica de generalização não respeite os pontos de dados originais. Em outras palavras, a curva derivada pelo generalizador não passa pela sua trilha de bicicleta.

Obrigado pelo ponto sobre a técnica generalizada, bom saber. Provavelmente não vou usar a opção de plug-in spline, pois estou tentando definir parâmetros e executar esse processo em várias faixas, para que essa não seja uma operação única. Eu preciso de um processo rapidamente repetível.
Benzo

Não aceitando isso como resposta, mas concedendo recompensa pela solução mais próxima. Talvez se eu dedicar algum tempo para descobrir como hackear o plug-in spline, já que conheço algum python, posso fazer com que ele repita os pontos existentes automaticamente, em vez de digitalizar manualmente. Não sei o quão difícil isso seria, mas a fonte está disponível para o plugin.
Benzo 12/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.