Vairāk

Kā izveidot līniju starp punktu un tuvāko kaimiņu, izmantojot pitonu (iekļauta veidne)

Kā izveidot līniju starp punktu un tuvāko kaimiņu, izmantojot pitonu (iekļauta veidne)


Man ir 2 formas faili - viens ir punktu virkne, otrs - līnijas. Es gribu novilkt taisnu līniju starp katru punktu līdz tuvākajam līnijas punktam.

Šis jautājums jau ir uzdots attiecībā uz ArcGIS. Jeff Berry piedāvātais risinājums izskatās tieši tas, kas man nepieciešams:

Līnijas izveidošana (vistuvākā virsotne līnijai)

Diemžēl es nekad neesmu strādājis ar pitonu, un man ir tikai pamata izpratne par kodēšanu caur Linux.

Mani jautājumi:

  • Vai kāds vēlas un spēj modificēt Džefa Berija risinājumu, lai tas atbilstu QGIS?
  • Vai arī ir kāds alternatīvs veids, kā izveidot līniju starp punktiem un līniju, tādējādi izvairoties no pitona? *

* PIEZĪME. Šeit ir sniegts noderīgs ieteikums:

QGIS: izveidot līnijas no sākuma līdz ierašanās punktiem?

Tomēr man nav izdevies noteikt tuvākā kaimiņa koordinātas - ja kāds zina, kā to izdarīt, es varu turpināt izmantot risinājumu, kas nav pitons.


Jūs varētu izmēģināt GRASS funkciju v. attālums (https://grass.osgeo.org/grass70/manuals/v.distance.html / https://grass.osgeo.org/grass64/manuals/v.distance.html).

Sadaļā “Izveidot jaunu vektoru karti” teikts:

Izveidojiet jaunu vektoru karti, kurā ir līnijas, kas savieno karšu "pnt" un kartes "ln" tuvākās iezīmes. Iegūto vektoru karti var izmantot, piemēram, lai savienotu punktus ar tīklu, ja nepieciešams tīkla analīzei:

v. attālums -p no = pnt līdz = ln out = savienojumu augšupielāde = dist kolonna = dist

Diemžēl QGIS Apstrāde v.distance versija pašlaik nedarbojas (https://github.com/qgis/QGIS/pull/2009, http://hub.qgis.org/issues/12817), tāpēc jums būs jāpiekļūst šai GRASS funkcijai no QGIS, izmantojot GRASS spraudnis.


Pirms tam tika uzdots līdzīgs jautājums, kura mērķis ir atrast vistuvāko kaimiņu starp punktu slāni un līnijas slāni, ar atbildi sniedza @scw, kas izmanto paketi Shapely Python. Tas varētu palīdzēt jums virzīties pareizajā virzienā.

Alternatīvi ir a Attālums līdz tuvākajam centrmezglam rīks QGIS, kas var izveidot līnijas starp punktu avotu un tā tuvāko mērķa centru. To var izmantot, izmantojot interfeisu vai izsaucot to caur pitonu:

importa apstrādes process.runalg ('qgis: distancetonearesthub', punkti, rumbas, lauks, ģeometrija, vienība, izeja)

Ceru tas palīdzēs!


Skatīties video: The Solomons Seal Puzzle Impossible Japanese Puzzle