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 相关文章推荐
Python实现合并字典的方法
Jul 07 Python
python利用正则表达式提取字符串
Dec 08 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
火车票抢票python代码公开揭秘!
Mar 08 Python
Python实现Event回调机制的方法
Feb 13 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
利用anaconda保证64位和32位的python共存
Mar 09 Python
Django REST framework 分页的实现代码
Jun 19 Python
浅谈Python中(&,|)和(and,or)之间的区别
Aug 07 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
Pycharm安装python库的方法
Nov 24 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
Symfony的安装和配置方法
2016/03/17 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
PHP函数积累总结
2019/03/19 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
js点击选择文本的方法
2015/02/09 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
python分割和拼接字符串
2013/11/01 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
获取Django项目的全部url方法详解
2017/10/26 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
人力资源管理专业自荐书范文
2014/02/10 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书