Analisis tetangga terdekat sementara di QGIS

Nov 30 2020

Bagaimana cara melakukan analisis tetangga terdekat sementara di QGIS?

Tidak yakin apakah itu terminologi yang tepat, tetapi pada dasarnya, saya memiliki kumpulan data dengan ~ 100.000 transaksi harga rumah selama periode 5 tahun. Selama periode ini, stasiun kereta baru sedang dibangun. Saya tahu cara melakukan analisis tetangga terdekat dasar, tetapi saya ingin melakukan NNA sementara untuk menentukan stasiun kereta terdekat pada saat transaksi .

Jawaban

6 Babel Nov 30 2020 at 22:13

Mengambil inspirasi dari jawaban ini di sini https://gis.stackexchange.com/a/335914/88814, Anda dapat membuat lapisan virtual.

Sayangnya, Processing Toolbox / Vector analysis / Distance to nearest hub (line to hub)tidak memungkinkan untuk pengaturan lanjutan, filter, kondisi, dan sebagainya.

Katakanlah Anda memiliki dua lapisan poin yang disebut transactionsdan stations. Keduanya berisi stempel waktu: tanggal terjadinya transaksi time_of_transaction, waktu pembukaan stasiun kereta timestamp_stations.

Buat lapisan virtual dan tempel kueri ini:

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

Ini memberi Anda daftar transaksi dengan stasiun kereta terdekat yang ada pada saat transaksi terjadi. Hasil kueri terlihat seperti ini - ini adalah daftar transaction_id dengan id stasiun kereta terdekat yang cocok:

Anda dapat memeriksanya di screenshot berikutnya: titik merah adalah transaksi (rumah), stasiun kereta api biru. Bandingkan hasilnya:

Titik merah 11 (di bawah) memiliki titik biru 18 (di tengah kiri) sebagai titik terdekat - ada beberapa titik biru yang lebih dekat (seperti no. 3), tetapi mereka lebih baru dari transaksi, jadi belum ada saat transaksi terjadi.

Titik merah 10 (di tengah) tidak muncul sama sekali, karena transaksi ini terjadi lebih awal dari tanggal yang terkait dengan semua titik biru (stasiun kereta): tidak ada stasiun kereta api pada saat ini, jadi tidak ada yang terdekat.

Titik merah 2 (di tengah) tidak memiliki titik biru 21 sebagai yang terdekat, tetapi tidak. 11 yang lebih jauh, tetapi lebih tua: itu yang sudah ada pada saat transaksi.

Dengan menggunakan pengontrol temporal baru (tersedia dari QGIS 3.14 - untuk versi yang lebih lama, gunakan plugin pengelola waktu ), Anda dapat membuat deret waktu animasi untuk memeriksa hasilnya - lihat tangkapan layar yang menunjukkan untuk jangka waktu saat ini stasiun kereta mana yang ada pada saat ini di waktu (pengaturan waktu terakumulasi di tab temporal lapisan stasiun) dan yang membawa ke visibilitas transaksi selama slot waktu 4 bulan (pengaturan durasi acara menjadi 4 bulan di tab temporal lapisan transaksi). Anda melihat dengan jelas bahwa koneksi yang dihasilkan oleh kueri benar-benar sesuai dengan stasiun kereta terdekat saat ini: