Eu preciso ser capaz de medir distâncias entre pontos, no entanto, a distância precisa ser calculada em relação à elevação. Os pontos são lares de contadores de histórias do século XIX e os lugares mencionados em suas histórias. A distância, portanto, deve ser "curta distância". Um caminho ao longo de um vale provavelmente será mais curto que um caminho sobre uma montanha, mesmo que a distância reta real seja menor. Em anexo está uma captura de tela que ilustra meu pensamento. Na imagem, os caminhos A e C seriam, portanto, calculados mais curtos que o caminho B.
Os pontos são de um arquivo CSV, mas também tenho uma camada raster com os dados de elevação.
Respostas:
Atingir esse objetivo é uma tarefa básica no GIS, no entanto, o método no QGIS pode não ser trivial. Sua melhor chance é usar a
r.walk
função GRASS , que cria uma superfície de custo anisotrópico (dem + inclinação + outros fatores).Primeiro, você deve criar uma superfície de atrito como uma entrada para
r.walk
. No seu caso, pode ser uma varredura de valor único (1.0) que corresponde à extensão do seu DEM. Você pode criá-lo comr.mapcalculator
a fórmula:A*0+1
onde A é seu DEM.Em seguida, você deve selecionar um conjunto de pontos de partida no seu CSV. Estes são os pontos, a partir da qual a superfície de custo acumulada será calculada. É necessário criar uma superfície de custo individual a partir de cada ponto de partida. Pode ser inteligente definir os pontos finais associados a todos os pontos de partida nesta etapa (em camadas individuais fora do curso). Depois, você pode executar
r.walk
com as entradas criadas. Os pontos de partida podem estar em uma única camada, você pode iterá-los com a seta verde na caixa de diálogo.Agora, em um caso ideal, você tem as superfícies de custo e os pontos finais para cada superfície de custo. Em teoria, você pode encontrar os caminhos de menor custo
r.drain
, mas, para mim, acabou com um erro (o python não pôde importar a biblioteca QgisRaster). Se você executar o mesmo problema, poderá usar o algoritmo "Menos caminhos de custo" da SAGA. Ele criará um ponto e uma camada de linha para cada ponto final com a superfície de custo (use o botão de iteração novamente). Depois de ter todas as linhas, é possível mesclá-las em um único arquivo de forma com a ferramenta "Mesclar formas de camadas" do SAGA.Esse método pode ser muito lento com o incremento de pontos; portanto, se você tiver muitos deles, tente automatizar o método com python. Ainda será necessário muito tempo para calcular (especialmente as superfícies de custo), mas você não precisa criar toneladas de camadas de ponto final manualmente.
fonte
r.walk
. Você pode usar o mapa de fricção para configurar as células intransitáveis. Reclassifique seu DEM comr.reclass
regras como1 thru 2000 = 1
2000 thru * = 9999
em um arquivo de regras (se seu limite for 2000m). Dessa forma, o algoritmo não passa células com altos valores de atrito, será menos dispendioso.