Importante

Translation is a community effort you can join. This page is currently translated at 48.81%.

6.3. Lesson: Network Analysis

Calculating the shortest distance between two points is a common GIS task. Tools for this can be found in the Processing Toolbox.

Objectivo deste módulo: aprender a utilizar os algoritmos de Análise de Rede.

6.3.1. ★☆☆ Follow Along: The Tools and the Data

Pode encontrar todos os algoritmos de análise de rede no menu Processamento ► Análise de rede. Existem várias ferramentas disponíveis:

../../../_images/select_network_algorithms.png

Open the project exercise_data/network_analysis/network.qgz. It contains two layers:

  • network_points

  • network_lines

The network_lines layer has already a style that helps to understand the road network.

../../../_images/network_map.png

Os algoritmos de caminho mais curto disponibilizam formas de calcular tanto o caminho mais curto, como o caminho mais rápido, entre dois pontos da rede, dados:

  • start and end points selected on the map

  • um ponto de partida seleccionado no mapa e vários pontos de chegada seleccionados numa camada de pontos

  • vários pontos de partida seleccionados numa camada de pontos e um ponto de chegada seleccionado no mapa

Mãos à obra.

6.3.2. ★☆☆ Calculate the shortest path (point to point)

Análise da rede ► Caminho mais curto (ponto para ponto) permite-lhe calcular o percurso mais curto entre dois pontos seleccionados manualmente no mapa.

Neste exemplo vamos calcular o caminho mais curto (e não mais rápido) entre dois pontos.

  1. Escolha o algoritmo Caminho mais curto (ponto para ponto)

  2. Em Camada vectorial representando a rede seleccione network_lines

  3. Use Shortest for Path type to calculate

    Use these two points as starting and ending points for the analysis:

    ../../../_images/start_end_point.png
  4. Click on the button next to Start point (x, y) and choose the location tagged with Starting Point in the picture. Enable the snapping options for an accurate selection. The coordinates of the clicked point are added.

  5. Do the same thing, but choosing the location tagged with Ending point for End point (x, y)

  6. Clique no botão Executar:

    ../../../_images/shortest_point.png
  7. A new line layer is created representing the shortest path between the chosen points. Uncheck the network_lines layer to see the result better:

    ../../../_images/shortest_point_result.png
  8. Open the attribute table of the output layer. It contains three fields, representing the coordinates of the start and end points and the cost.

    Ao escolher para Tipo de caminho a calcular, o parâmetro Mais curto, o campo cost irá conter a distância entre os dois pontos, nas unidades definidas para a camada.

    Neste caso, a distância mais curta entre os pontos escolhidos é aproximadamente 1000 metros:

    ../../../_images/shortest_point_attributes.png

Now that you know how to use the tool, feel free to test other locations.

6.3.3. ★★☆ Try Yourself: Fastest path

Com os mesmos dados do exercício anterior, tente calcular o caminho mais rápido entre os dois pontos.

De quanto tempo necessita para ir do ponto de partida até ao ponto de chegada?

6.3.4. ★★☆ Follow Along: Advanced options

Let us explore some more options of the Network Analysis tools. In the previous exercise we calculated the fastest route between two points. As you can imagine, the time depends on the travel speed.

We will use the same layers and starting and ending points of the previous exercises.

  1. Escolha o algoritmo Caminho mais curto (ponto para ponto)

  2. Preencha Camada vectorial representando a rede, Ponto de partida (x, y) e Ponto de chegada (x, y) conforme fez anteriormente.

  3. Em Tipo de caminho a calcular escolha Mais rápido

  4. Abra o menu Parâmetros avançados

  5. Em Velocidade padrão (km/h), altere o valor predefinido (50) para 4

    ../../../_images/shortest_path_advanced.png
  6. Clique em Executar

  7. Uma vez executado o algoritmo, feche a caixa de diálogo e abra a tabela de atributos da camada resultante.

    The cost field contains the value according to the speed parameter you have chosen. We can convert the cost field from hours with fractions to the more readable minutes values.

  8. Open the field calculator by clicking on the calculateField icon

  9. Add a new field to store the path cost in minutes.

    ../../../_images/shortest_path_conversion.png

That’s it! Now you know how many minutes it will take to get from one point to the other one if the whole network speed is at 4 km/h.

6.3.5. ★★★ Shortest path with speed limit

A ferramenta de processamento Análise de rede, possui outras opções interessantes. Olhando para o seguinte mapa:

../../../_images/speed_limit.png

gostaríamos de determinar o percurso mais rápido, tendo em consideração os limites de velocidade de cada estrada (as etiquetas indicam os limites, em km/h). Sem considerar esses limites, o caminho mais curto seria, como é óbvio, o de cor púrpura. Mas nessa estrada o limite de velocidade é de 20 km/h, enquanto que na estrada verde se pode circular a 100 km/h!

Assim como fizemos no primeiro exercício, vamos seleccionar Análise de rede ► Caminho mais curto (ponto a ponto) e capturar os pontos de partida e chegada.

  1. Abra o algoritmo Análise de rede ► Caminho mais curto (ponto a ponto)

  2. Seleccione network_lines como parâmetro em Camada vectorial representando a rede

  3. Em Tipo de caminho a calcular escolha Mais rápido

  4. Select the Start point (x, y) and End point (x, y) as we did before

  5. Abra o menu Parâmetros avançados

  6. Choose the speed field as the Speed Field parameter. With this option the algorithm will take into account the speed limits for each road.

    ../../../_images/speed_limit_parameters.png
  7. Clique no botão Executar

  8. Turn off the network_lines layer to better see the result

    ../../../_images/speed_limit_result.png

Como pode verificar, o caminho mais rápido não corresponde ao caminho mais curto.

6.3.6. ★★☆ Service area (from layer)

O algoritmo Análise de rede ► Área de serviço (da camada) oferece resposta à questão: dada uma camada de pontos, quais são todas as áreas que se podem alcançar, dentro de uma determinada distância ou de um determinado tempo de percurso?

Nota

The Network Analysis ► Service area (from point) is the same algorithm, but it allows you to manually choose the point on the map.

Dada uma distância de 250 metros, queremos saber, para cada ponto da camada network_points, quão longe nos é possível deslocar-nos através da rede.

  1. Uncheck all the layers except network_points

  2. Abra o algoritmo Análise de rede ► Área de serviço (da camada)

  3. Choose network_lines for Vector layer representing network

  4. Choose network_points for Vector layer with start points

  5. Em Tipo de caminho a calcular escolha Mais curto

  6. Enter 250 for the Travel cost parameter

  7. Click on Run and close the dialog

    ../../../_images/service_area.png

    A camada resultante apresenta, para cada ponto, os percursos que se podem efectuar, sem exceder a distância máxima de 250 metros:

    ../../../_images/service_area_result.png

Porreiro, hã?

6.3.7. In Conclusion

Now you know how to use Network analysis algorithm to solve shortest and fastest path problems.

E está pronto para fazer um pouco de análise e estatística espacial em camadas de dados vectoriais. Vamos lá!

6.3.8. What’s Next?

A seguir verá como executar algoritmos de estatística espacial sobre dados vectoriais.