Ini adalah pertanyaan yang bagus, saya harus melakukan sesuatu yang serupa baru-baru ini tetapi dengan dataset yang jauh lebih kecil, jadi saya dapat menggunakan persimpangan sederhana dengan beberapa pengecekan kualitas visual tambahan dan itu baik-baik saja.
Tapi ini ide untuk ini, walaupun saya tidak punya kode, dan ini semacam proses yang lumayan. Uji dengan sampel dari dataset lengkap terlebih dahulu. Anda mungkin dapat beberapa kode yang berguna di sekitar sini. (Lekukan agak aneh di bawah ini.):
ambil himpunan geometri yang baik (di mana Anda ingin atribut berakhir) dan buat buffernya *
beralih melalui masing-masing fitur buffer:
2a. menghitung orientasi umum fitur (max_y - min_y / max_x - min_x atau sesuatu seperti itu)
2b. buat kueri pemilihan lokasi berdasarkan pada layer lain menggunakan fitur tunggal ini
Anda akan memiliki lebih dari satu fitur yang cocok dengan kueri pemilihan lokasi, jadi ulangi melalui fitur yang dipilih ini dan hitung orientasi masing-masing
dapatkan atribut dari fitur mana saja yang memiliki orientasi paling dekat dengan fitur buffer.
* Saya akan mulai dengan jarak yang sangat kecil (satu unit peta atau sesuatu) dan kemudian jalankan proses ini dengan jarak yang semakin jauh, berhati-hati untuk tidak menimpa atribut apa pun yang telah Anda transfer.
** Anda sebenarnya bisa melupakan membuat fitur buffer, dan lakukan saja kueri pemilihan lokasi menurut jarak buffer di dalamnya. Saya tidak terlalu mengenal QGIS, tetapi saya yakin Anda akan dapat melakukannya.
Tidak mungkin ini akan bekerja dengan sempurna untuk semua fitur Anda, tetapi ini adalah permulaan, dan kemudian berkembang menjadi strategi QA / QC yang baik untuk memeriksa dan menyelesaikan transfer.
EDIT Memikirkan hal ini lebih lanjut, berikut adalah contoh dasar yang benar-benar akan merusak sistem jika Anda mulai dengan jarak buffer yang sangat kecil dan memilih fitur dengan orientasi paling cocok seperti yang saya rekomendasikan:
Atribut dari garis merah yang salah akan diambil. Untuk menghindari hal ini, Anda mungkin ingin membuat semacam toleransi, dan hanya mengambil atribut fitur jika orientasinya (bila dibandingkan dengan orientasi fitur biru asli) termasuk dalam toleransi itu.
EDIT 2 Ups, apakah ini poligon? Saya kira saya hanya berasumsi mereka garis pada latar belakang abu-abu. Jika mereka poligon, saya tidak benar-benar tahu apakah konsep orientasi ini bagus. Tapi Anda bisa memilih semua fitur berpotongan, dan mencari tahu yang memiliki paling tumpang tindih (menjalankan alat tipe Union, dan kemudian menggunakan poligon dengan area terbesar ...).