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 简易计算器程序,代码就几行
Aug 29 Python
Python实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
使用Python生成url短链接的方法
May 04 Python
python类和继承用法实例
Jul 07 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
python使用selenium实现批量文件下载
Mar 11 Python
python打开windows应用程序的实例
Jun 28 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
python IP地址转整数
Nov 20 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 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
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
js变量提升深入理解
2016/09/16 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
极简的Python入门指引
2015/04/01 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
韩国11街:11STREET
2018/03/27 全球购物
两道JAVA笔试题
2016/09/14 面试题
自荐信怎么写呢?
2013/12/09 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
企业军训感言
2014/02/08 职场文书
幼儿评语大全
2014/04/30 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
2014年医务科工作总结
2014/12/18 职场文书
团员个人年度总结
2015/02/26 职场文书