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网页请求urllib2模块简单封装代码
Feb 07 Python
Python中os和shutil模块实用方法集锦
May 13 Python
用于统计项目中代码总行数的Python脚本分享
Apr 21 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
python pygame模块编写飞机大战
Nov 20 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
django写用户登录判定并跳转制定页面的实例
Aug 21 Python
python 实现list或string按指定分段
Dec 25 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 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数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
composer.lock文件的作用
2016/02/03 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
php加密解密字符串示例
2016/10/13 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
js实现简单模态框实例
2018/11/16 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
自己使用总结Python程序代码片段
2015/06/02 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
python操作yaml说明
2020/04/08 Python
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
总经理助理工作职责
2014/02/06 职场文书
新年团拜会主持词
2014/04/02 职场文书
暑期教师培训方案
2014/06/07 职场文书
大专毕业生求职信
2014/07/05 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
博士给导师的自荐信
2015/03/06 职场文书
MySQL 时间类型的选择
2021/06/05 MySQL