spherical_kde
0.1.2
แพ็คเกจเหล่านี้ช่วยให้คุณทำการประมาณความหนาแน่นเคอร์เนลพื้นฐานบนทรงกลม คำแนะนำสำหรับการปรับปรุง/ส่วนขยายยินดีต้อนรับ
หลักการพื้นฐานคือการแทนที่ฟังก์ชั่นดั้งเดิมแบบเกาส์เซียนที่ใช้ในการประมาณความหนาแน่นเคอร์เนลด้วยการกระจาย Von Mises-Fisher
การประมาณแบนด์วิดท์ยังคงหยาบและพร้อม
นำเข้า numpyfrom apherical_kde นำเข้า Sphericalkdeimport matplotlib.pyplot เป็น pltimport cartopy.crsfrom matplotlib.gridspec นำเข้า gridspec, gridspecfromsubplotspec# เลือกเมล็ดสำหรับ plothurig (10, 10)) gs_vert = gridspec (3, 1) gs_lower = gridspecfromsubplotspec (1, 2, subplot_spec = gs_vert [1]) fig.add_subplot (gs_vert [0], การฉาย = cartopy.crs.mollweide () add_subplot (gs_lower [0], projection = cartopy.crs.orthographic ()) fig.add_subplot (gs_lower [1], การฉาย = cartopy.crs.orthographic (-10, 45)) fig.add_subplot (gs_vert [2] = 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 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, ขนาด = ขนาด = nsamples) phi_samples = numpy.mod (phi_samples, pi*2) kde_red = sphericalkde (phi_samples, theta_samples)# สร้างการแพร่กระจายของตัวอย่างตามละติจูด 2, ความสูง 0.1theta_samples = numpy.rand size = nsamples) phi_samples = numpy.random.uniform (ต่ำ = -pi/2, สูง = pi/2, ขนาด = nsamples) phi_samples = numpy.mod (phi_samples, pi*2) kde_blue = sphericalkde = 0.1) สำหรับขวานในรูปที่: ax.set_global () ax.gridlines () ax.coastlines (linewidth = 0.1) kde_green.plot (ขวาน, 'g') kde_green.plot_samples (ax) kde_red.plot.plot.plot.plot.plot.plot.plot.plot. 'r') kde_blue.plot (ขวาน, 'b')# บันทึกเป็น plotfig.tight_layout () fig.savefig ('plot.png')