¿Cómo se puede calcular un ráster de manera eficiente (en Python), dado un conjunto que consiste en miles de millones de cuadros delimitadores (leídos secuencialmente de un archivo), y dado que los valores de ráster para cada celda deben dar el número de cuadros delimitadores superpuestos?
Para una trama 4000 * 4000
He cronometrado la creación de matriz numpy:
$ python -m timeit 'import numpy' 'a = numpy.zeros(shape=(4000,4000))'
10 loops, best of 3: 51.7 msec per loop
Creación de matriz de python estándar:
$ python -m timeit 'a = 4000*[0]' 'for i in range(4000):' ' a[i]=4000*[0]'
10 loops, best of 3: 218 msec per loop
Así que numpy es más rápido, pero aún 50 ms por ciclo, con mil millones de iteraciones, produce un tiempo de ejecución igual a aproximadamente un año (0.05 ms * 1000000000/60/60/24/365 = 1.5 años)
Por lo tanto, no es una opción probar cada polígono. ¿Cuál es un enfoque típico para este problema?