python实现经纬度采样的示例代码
经度 phi,纬度 theta 处的坐标为:x =R* cos(phi) * cos(theta)y = Rsin(phi) * cos(theta)z = Rsin(theta)
问题经纬度采样的采样点是相同经纬度间隔的交点。但是采样1000个点,如何划分多少条经线,多少条纬线相交,才能使1000个采样点最均匀的分布在球面上(虽然经纬度采样本来就不均匀,但对于不同的采样点个数应该有一种相对最均匀的经纬线划分)?求大佬指教!我目前是将纬度每10度进行划分。
Codeimport randomfrom mpl_toolkits import mplot3dimport numpy as npimport mathimport matplotlib.pyplot as plt%matplotlib inlineax=plt.axes(projection='3d')N=1000x=[]y=[]z=[]r=1#经度def longitude(lng): phi=(180+lng)*(math.pi/180) return phi#纬度def latitude(lat): theta=lat*(math.pi/180) return thetafor i in range(-80,90,10): for j in np.arange(-180,180,360/((N-2)/17)): #x.append(-r*math.sin(latitude(i))*math.cos(longitude(j))) #y.append(r*math.cos(latitude(i))) #z.append(r*math.sin(latitude(i))*math.sin(longitude(j)))x.append(r*math.cos(latitude(i))*math.cos(longitude(j))) z.append(r*math.sin(latitude(i))) y.append(r*math.cos(latitude(i))*math.sin(longitude(j)))x.append(r*math.cos(latitude(-90))*math.cos(longitude(0)))z.append(r*math.sin(latitude(-90)))y.append(r*math.cos(latitude(-90))*math.sin(longitude(0)))x.append(r*math.cos(latitude(90))*math.cos(longitude(0)))z.append(r*math.sin(latitude(90)))y.append(r*math.cos(latitude(90))*math.sin(longitude(0)))xline=np.array(x)yline=np.array(y)zline=np.array(z)print(xline.shape)ax.scatter3D(xline,yline,zline,s=2)plt.savefig('D:samples经纬度采样.png')
效果

到此这篇关于python实现经纬度采样的示例代码的文章就介绍到这了,更多相关python 经纬度采样内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. notepad++运行python脚本的操作方法2. XML、DataSet、DataGrid结合一3. android studio新手如何创建项目?androidstudio的使用方法4. Vue封装一个TodoList的案例与浏览器本地缓存的应用实现5. bootstrap select2 动态从后台Ajax动态获取数据的代码6. JAVA教程:解析Java的多线程机制(6)7. springBoot接入阿里云oss的实现步骤8. python+excel接口自动化获取token并作为请求参数进行传参操作9. 在 PHP 中用描点法“绘制”中文10. python 实现在无序数组中找到中位数方法

网公网安备