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实现文件分组复制到不同目录的例子
Jun 04 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
Dec 19 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
详谈python在windows中的文件路径问题
Apr 28 Python
python实现生成字符串大小写字母和数字的各种组合
Jan 01 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
Python数组并集交集补集代码实例
Feb 18 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
python中的错误如何查看
Jul 08 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python如何读取bin文件并下发串口
2019/07/05 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
Java里面如何创建一个内部类的实例
2015/01/19 面试题
后勤主管工作职责
2013/12/07 职场文书
中英文求职信范文
2014/01/27 职场文书
厂长岗位职责
2014/02/19 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
python实现层次聚类的方法
2021/11/01 Python