Vairāk

Norāda uz neregulāru režģi

Norāda uz neregulāru režģi


Man ir milzīga datu kopa (miljoniem punktu) un neregulārs režģis (quadtree) formas faila formātā, un man ir jāpārvērš punkti grādos, izmantojot sniegto režģi. Man izdevās panākt, lai tas darbotos, izmantojot formīgu daudzstūri.satur un naivu dubultu cilpu, kas mērogojas kā O (n ** 2).

Acīmredzot skripts ir ļoti lēns. Tūkstošiem punktu iegūšana prasa ļoti ilgu laiku. Vai ir kāds cits veids, kā ievērojami samazināt darbības laiku, nerakstot daudz vairāk koda?

Kāda ir tipiskā procedūra, lai tik daudz punktu pārvērstu režģa sistēmā, un kā to sauc, lai es varētu meklēt papildu informāciju par to?


Tā vietā, lai pārbaudītu katru punktu pret katru daudzstūri jūsu režģī, varat izmantot telpisko indeksu, lai paātrinātu lietas. Telpiskais indekss ļauj meklēt daudzstūrus ar ierobežojošu lodziņu, kas krustojas ar vaicājuma ierobežojošo lodziņu. Jūsu konkrētajā gadījumā, tā kā daudzstūri jūsu četrstūrī būs kvadrātveida un jūs meklēsit punktus, jums pat nav jāzvanasatur.

Šajā atbildē ir daži koda piemēri, izmantojot Shapely un Rtree:

https://gis.stackexchange.com/a/144764/12420