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 相关文章推荐
numpy自动生成数组详解
Dec 15 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
Python3远程监控程序的实现方法
Jul 15 Python
Django用户认证系统 组与权限解析
Aug 02 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
Python调用.net动态库实现过程解析
Jun 05 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
python用700行代码实现http客户端
Jan 14 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
如何用python清洗文件中的数据
Jun 18 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输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
php可变长参数处理函数详解
2017/02/22 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
python实现读取并显示图片的两种方法
2017/01/13 Python
详细分析python3的reduce函数
2017/12/05 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
python读取指定字节长度的文本方法
2019/08/27 Python
django创建简单的页面响应实例教程
2019/09/06 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
应届生财务管理求职信
2013/11/06 职场文书
《童年》教学反思
2014/02/18 职场文书
小露珠教学反思
2014/04/30 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js