python实现经纬度采样的示例代码


Posted in Python onDecember 10, 2020

原理

经度 phi,纬度 theta 处的坐标为:
x =R* cos(phi) * cos(theta)
y = Rsin(phi) * cos(theta)
z = R
sin(theta)

问题

经纬度采样的采样点是相同经纬度间隔的交点。但是采样1000个点,如何划分多少条经线,多少条纬线相交,才能使1000个采样点最均匀的分布在球面上(虽然经纬度采样本来就不均匀,但对于不同的采样点个数应该有一种相对最均匀的经纬线划分)?求大佬指教!
我目前是将纬度每10度进行划分。

Code

import random
from mpl_toolkits import mplot3d
import numpy as np
import math
import matplotlib.pyplot as plt
%matplotlib inline
ax=plt.axes(projection="3d")

N=1000
x=[]
y=[]
z=[]
r=1


#经度
def longitude(lng): 
  phi=(180+lng)*(math.pi/180)
  return phi

#纬度
def latitude(lat):
  theta=lat*(math.pi/180)
  return theta

for 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实现经纬度采样的示例代码的文章就介绍到这了,更多相关python 经纬度采样内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
Jul 04 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
Python实现图片转字符画的代码实例
Feb 22 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
如何在python中执行另一个py文件
Apr 30 Python
python中altair可视化库实例用法
Jan 26 Python
使用Python下载抖音各大V视频的思路详解
Feb 06 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
Python urlopen()参数代码示例解析
Dec 10 #Python
Python urllib request模块发送请求实现过程解析
Dec 10 #Python
Python APScheduler执行使用方法详解
Dec 10 #Python
flask项目集成swagger的方法
Dec 09 #Python
python的dict判断key是否存在的方法
Dec 09 #Python
python RSA加密的示例
Dec 09 #Python
python中把元组转换为namedtuple方法
Dec 09 #Python
You might like
PHP的变量总结 新手推荐
2011/04/18 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
javascript简易画板开发
2020/04/12 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
详解Python中的条件判断语句
2015/05/14 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
Django Rest framework频率原理与限制
2019/07/26 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
使用Python的turtle模块画国旗
2019/09/24 Python
jupyter 导入csv文件方式
2020/04/21 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
年度考核自我鉴定
2013/11/09 职场文书
计算机专业毕业生求职信分享
2013/12/24 职场文书
保密承诺书
2014/03/27 职场文书
程序员求职信
2014/04/16 职场文书
服务宗旨标语
2014/07/01 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
小学语文国培研修日志
2015/11/13 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python