spherical_kde
0.1.2
이 패키지를 사용하면 구에서 초보적인 커널 밀도 추정을 수행 할 수 있습니다. 개선/확장에 대한 제안을 환영합니다.
기본 원칙은 커널 밀도 추정에 사용되는 전통적인 가우스 기능을 Von Mises-Fisher 분포로 대체하는 것입니다.
대역폭 추정은 여전히 거칠고 준비되어 있습니다.
numpyfrom spherical_kde import sphericalkdeimport matplotlib.pyplot as pltimport cartopy.crsfr의 matplotlib.gridspec import gridspec, gridspecfromsubplotspec# 결정 론적 plotnumpy.random.seed (seed = 0)를위한 씨를 선택하십시오. (10, 10)) gs_vert = gridspec (3, 1) gs_lower = gridspecfromsubplotspec (1, 2, subplot_spec = gs_vert [1]) fig.add_subplot (gs_vert [0], projection = cartopy.crs.mollweide ()). add_subplot (gs_lower [0], projection = cartopy.crs.orthographic ()) fig.add_subplot (gs_lower [1], projection = cartopy.crs.orgographic (-10, 45)) 그림 Add_subplot (gs_vert [2], projection = cartopy.crs.platecarree ())# samplesnsamples = 100pi = numpy.pi#에 대한 매개 변수 선택 (1,1) +/- 0.3 Radianstheta_samples = numpy.random.normal (loc = 1, scale = 0.3 , 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)# on (-1,1) +/- 0.4 Radianstheta_samples = numpy.random.normal (loc = 1, scale = 0.4, size = nsamples) phi_samples = numpy.random.normal (loc = -1, scale = 0.4, size = nsamples) phi_samples = numpy.mod (phi_samples, pi*2) kde_red = sphericalkde (phi_samples, theta_samples)# 위도 2를 따라 샘플의 스프레드를 생성합니다. 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_samples, 대역 밴드 밴드. = 0.1) 그림의 ax의 경우 : 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')# plotfig.tight_layout ()에 저장