Итерации интегрирования орбиты в galpy - PullRequest
0 голосов
/ 14 мая 2018

Я выполняю orbit интеграцию с использованием galpy package (http://galpy.readthedocs.io/en/latest/orbit.html).Я хочу выполнить много интеграций орбиты (~1000000 integrations), изменяя потенциальную модель и начальные условия orbit.Затем для каждой интеграции орбиты я хочу получить доступ к Orbit в наблюдаемой системе координат (ra, dec, dist, pm_ra, pm_dec, vrad) в физических единицах (degrees, kpc, mas yr-1, km/sec) на основе distance и velocity Солнца.

Функция getOrbit() обеспечивает мгновенный доступ к Orbit, но только в системе координат R,phi,z,Vr,Vt,vz.Существует возможность доступа к орбите в наблюдаемых координатах, таких как

ra=op.ra(i1)
dec=op.dec(i1)
mu_ra=op.pmra(i1)

, то есть доступ к координате ra орбиты в момент времени i1.Это означает, что для доступа ко всей орбите, я должен повторить эту строку по всей орбите.Это очень очень дорого в вычислительном отношении.Учитывая, что мне нужно сделать это для 6 координат фазового пространства и для> 100000 орбит, проблема становится слишком затратной.Есть ли более быстрый способ сделать это?

1 Ответ

0 голосов
/ 08 августа 2018

Вы можете запускать такие вещи, как

ra=op.ra(i1)

для массивов времен (поэтому i1 может быть массивом времен). Внутри будут использоваться операции с массивами, поэтому они должны быть быстрыми.

...