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之关于循环的小伎俩
Oct 02 Python
在Python的Django框架中加载模版的方法
Jul 16 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
Python语言生成水仙花数代码示例
Dec 18 Python
Python生成一个迭代器的实操方法
Jun 18 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
python3 下载网络图片代码实例
Aug 27 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
python实现三次密码验证的示例
Apr 29 Python
Python实现简单的俄罗斯方块游戏
Sep 25 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
php rsa加密解密使用详解
2015/01/14 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JS的数组迭代方法
2015/02/05 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
vue登录注册实例详解
2019/09/14 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
Python实现验证码识别
2020/06/15 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
刊首寄语大全
2014/04/11 职场文书
课前三分钟演讲稿
2014/04/24 职场文书
redis中lua脚本使用教程
2021/11/01 Redis
图文详解nginx日志切割的实现
2022/01/18 Servers
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis