spherical_kde
0.1.2
Эти пакеты позволяют вам выполнять элементарную оценку плотности ядра на сфере. Предложения по улучшениям/расширениям приветствуются.
Основной принцип состоит в том, чтобы заменить традиционную гауссовую функцию, используемую при оценке плотности ядра на распределение фон Мизес-Фишера.
Оценка полосы пропускания по-прежнему является грубой и готовой.
Импорт numpyfrom spherical_kde import sphericalkdeimport matplotlib.pyplot в качестве карты pltimport.crsfrom matplotlib.gridspec Импорт gridspec, gridspecfromsubplotspec# Выберите семя для детерминированных слоев. (10, 10)) gs_vert = gridspec (3, 1) gs_lower = gridspecfrombplotspec (1, 2, subplot_spec = gs_vert [1]) Fig.add_subplot (gs_vert [0], projection = cartopy.cls.mollweide ()) фиг. add_subplot (gs_lower [0], projection = cartopy.crs.orthographic ()) Fig.add_subplot (gs_lower [1], projection = cartopy.crs.orthographic (-10, 45)). = cartopy.crs.platecarree ())# Выберите параметры для образцов. , size = nsamples) phi_samples = numpy.random.normal (loc = 1, scale = 0,3, size = nsamples) phi_samples = numpy.mod (phi_samples, pi*2) kde_green = sphericalkde (phi_samples, theta_samples)# gresplayed на (-1,1) +/- 0,4 Radiansstheta_samples = numpy.random.normal (loc = 1, шкала = 0,4, размер = nsamples) phi_samples = numpy.random.normal (loc = -1, масштаб = 0,4, размер = nsamples) phi_samples = numpy.mod (phi_samples, pi*2) kde_red = sphericalkde (phi_samples, theta_samples)# Сгенерировать разброс образцов вдоль широты 2, высота 0. size = nsamples) phi_samples = numpy.random.uniform (low = -pi/2, high = pi/2, size = nsamples) phi_samples = numpy.mod (phi_samples, pi*2) kde_blue = sphericalkde (phi_samples, theta_sampl = 0,1) для AX на рис. Axes: ax.set_global () ax.gridlines () ax.coastlines (linewidth = 0,1) kde_green.plot (ax, 'g') kde_green.plot_samples (ax) kde_red.plot (ax, 'r') kde_blue.plot (ax, 'b')# save to plotfig.tight_layout () fig.savefig ('plot.png')