Ging dat inderdaad maar zo makkelijk. Voor de simpele kaarten kan dat inderdaad ook gemakkelijk, maar wanneer je per punt een lcl en nattebol moet herleiden dan gaat dat helaas niet, vandaar dat per punt een loop nodig is
Bij lange berekeningen kan het schelen om eerst een subset te pakken en niet de hele dataset.
Maar zelfs voor het hele GFS grid (720x361) duurt voor één tijdstap de nattebol berekening op mijn computer 211 milliseconden. Voor alle 65 tijdstappen in GFS kom je dan totaal op 13 seconden. En dan doe ik het nog vrij lomp door net zolang het hele grid te itereren totdat alle waardes geconvergeerd zijn, dat kan ongetwijfeld efficiënter door vooral de nog-niet geconvergeerde punten te itereren.
En wat Lars zegt, probeer alles in arrays te houden, en de berekeningen daarop te vectoriseren (niet zelf door de elementen in een array gaan loopen).
Als snelheid echt de bottleneck wordt kan je uitwijken naar andere optimalisaties via Numexpr, Cython of Numba etc, maar daar zou ik zeker niet mee beginnen.
Quote selectie