Análise do vizinho mais próximo temporal no QGIS

Nov 30 2020

Como eu conduzo uma análise de vizinho mais próximo temporal no QGIS?

Não tenho certeza se essa é a terminologia certa, mas basicamente, eu tenho um conjunto de dados com aproximadamente 100.000 transações de preços de casas em um período de 5 anos. Nesse período, novas estações de trem foram construídas. Sei como realizar uma análise básica do vizinho mais próximo, mas gostaria de realizar um NNA temporal para determinar a estação ferroviária mais próxima no momento da transação .

Respostas

6 Babel Nov 30 2020 at 22:13

Inspirando-se nesta resposta aqui https://gis.stackexchange.com/a/335914/88814, você pode criar uma camada virtual.

Infelizmente, Processing Toolbox / Vector analysis / Distance to nearest hub (line to hub)não permite configurações avançadas, filtros, condições e assim por diante.

Digamos que você tenha duas camadas de pontos chamadas transactionse stations. Ambos contêm um carimbo de data / hora: a data em que a transação ocorreu time_of_transaction, a hora em que a estação ferroviária foi aberta timestamp_stations.

Crie uma camada virtual e cole esta consulta:

SELECT trs.fid as id_transaction, st.fid as id_station,
       ROUND(MIN(ST_Distance(trs.geometry, st.geometry)),2) AS distance
FROM transactions AS trs, stations AS st
WHERE st.timestamp_stations < trs.time_of_transaction
GROUP BY trs.fid
ORDER BY distance DESC

Isso fornece uma lista das transações com a estação ferroviária mais próxima que existia no momento em que a transação foi realizada. O resultado da consulta é semelhante a este - é uma lista de transaction_id com o id da estação ferroviária mais próxima correspondente:

Você pode verificar na próxima imagem: pontos vermelhos são transações (casas), e azuis uma estação de trem. Compare os resultados:

O ponto vermelho 11 (na parte inferior) tem o ponto azul 18 (no meio à esquerda) como o ponto mais próximo - há alguns pontos azuis mais próximos (como o nº 3), mas são mais recentes do que a transação, portanto ainda não existe quando a transação ocorreu.

O ponto vermelho 10 (no meio) não aparece, uma vez que esta transação ocorreu antes da data associada a todos os pontos azuis (estação de trem): nenhuma estação de trem existia neste ponto do tempo, portanto, nenhuma mais próxima.

O ponto vermelho 2 (no meio) não tem o ponto azul 21 como o mais próximo, mas não. 11 que está mais longe, mas mais antigo: é o que já existia no momento da transação.

Usando o novo controlador temporal (disponível no QGIS 3.14 - para versões mais antigas, use o plugin do gerenciador de tempo ), você pode gerar uma série de tempo animada para verificar os resultados - veja uma captura de tela que mostra para o período de tempo atual quais estações de trem existiam neste ponto em time (as configurações de tempo se acumulam na guia temporal da camada de estações) e que traz à visibilidade as transações durante um intervalo de tempo de 4 meses (definindo a duração do evento para 4 meses na guia temporal da camada de transações). Você vê claramente que as conexões geradas pela consulta realmente correspondem à estação de trem mais próxima no momento: