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 相关文章推荐
在Docker上部署Python的Flask框架的教程
Apr 08 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
python函数的5种参数详解
Feb 24 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
Jul 13 Python
分享几道你可能遇到的python面试题
Jul 24 Python
python中Apriori算法实现讲解
Dec 10 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
pandas 实现字典转换成DataFrame的方法
Jul 04 Python
使用python脚本实现查询火车票工具
Jul 19 Python
python爬取微信公众号文章的方法
Feb 26 Python
Python networkx包的实现
Feb 14 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 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使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
微信小程序实现留言板
2018/10/31 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
Python 解析XML文件
2009/04/15 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
python psutil库安装教程
2018/03/19 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python3中property使用方法详解
2019/04/23 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
护理专业毕业生自荐信
2014/06/15 职场文书
新闻人物通讯稿
2014/10/09 职场文书
旅游投诉信范文
2015/07/02 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技
Django基础CBV装饰器和中间件
2022/03/22 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python