IRI-2016 Matlab 使用教程

2023-10-30

IRI2016在线计算模型:(https://ccmc.gsfc.nasa.gov/modelweb/models/iri2016_vitmo.php

同时IRI2016还有Matlab和Fortran版本,其中的Matlab也是通过在线的接口进行计算的(Fortran没用不知道,猜测也是这样的),不使用线下的好处在于自己可以批量指定范围,这样更加方便,下面介绍如果下载何和使用Matlab版的IRI2016。

1. 下载

网址:http://irimodel.org/

下载需要注册账号,没有注册账号的自行注册,下载好后解压是这样的:

iri2016.m的运行需要一个网络传输工具-curl,iri2016.m代码里面有提到,curl下载网址:https://curl.haxx.se/windows/,我这里使用window系统,下载后解压,将bin目录下的curl.exe复制到与iri2016.m的相同路径

2. 运行

iri2016.m本身有一点bug,运行它给的测试代码iritest.m会报错,一番摸索后将iri2016.m最后一行代码

data = sscanf(result(newlines(246)+1 : newlines(246 + sweeplen)-1), '%f');

替换成

data = sscanf(result(newlines(248)+1 : newlines(248 + sweeplen)-1), '%f');

iri2016.m代码里面有使用并行工具requires Parallel Computing Toolbox,我们没有,我们使用常规循环的方式单线程运行就好,我把iri2016.m里的代码精简一下如下:

% IRITEST Plot electron density around the world to test IRI functions.

%% Clear variables and close all figures.
tic;
clc;
clear;
close all;

%% Test values.
time = datenum([2012 7 17 12 0 0]); % Must be a scalar in this script.
latitude = -90:1:90;    % Degrees. Can be a vector or scalar.
longitude = -180:1:180; % Degrees. Can be a vector or scalar.
altitude = 100;         % km. Must be a scalar in this script.
fun2test = @iri2016; % Either @iri2012 or @iri2016.

Ne = zeros(numel(latitude), numel(longitude));

    
    % Index into the vector (latitude or longitude) with fewer elements.
    if numel(latitude) >= numel(longitude)% || altitude ~= 100
        latitude = latitude(:); N = numel(longitude);
        for index = 1:N
            out = fun2test(time, latitude, longitude(index), altitude);
            Ne(:, index) = out(:, 1);
            fprintf('%4.4g%% Complete\n', index/N*100);
        end
    else
        longitude = longitude(:); N = numel(latitude);
        for index = 1:N
            out = fun2test(time, latitude(index), longitude, altitude);
            Ne(index, :) = out(:, 1).';
            fprintf('%4.4g%% Complete\n', index/N*100);
        end
    end
    


%% Plot data.
figure;
if ~license('test', 'MAP_Toolbox')
    hold on;
    % surf(LON.', LAT.', B.'); %decl
    surf(longitude, latitude, Ne);
    colormap(jet(64));
    shading flat;
    clim = get(gca, 'CLim'); zlim = get(gca, 'ZLim');
    load('topo.mat', 'topo'); topo = [topo(:, 181:360), topo(:, 1:180)];
    [C, h] = contour3(-180:179, -90:+89, topo + zlim(2), [0 0] + zlim(2));
    set(h, 'EdgeColor', 0.25*[1 1 1]);
    set(gca, 'XLim', [-180 180], 'XTick', [], ...
        'YLim', [-90 90], 'YTick', [], 'CLim', clim);
else
    axesm miller; axis fill;
    hold on;
    % surfm(LAT, LON, B); %decl
    surfm(latitude, longitude, Ne);
    load coast;
    plotm(lat, long, 'Color', 0.25*[1 1 1]);
end
hc = colorbar;
title(hc, '\itN_e\rm in m^{-3}');
% title(['Magnetic Field Declination in degrees at \ith\rm = ' ...
%     sprintf('%g km', altitude) ' at ' datestr(time) ' UTC']);
title(['Electron Density (\itN_e\rm) at \ith\rm = ' ...
    sprintf('%g km', altitude) ' at ' datestr(time) ' UTC']);
print -dpng -r100 iri.png

%%
toc;

 自己新建一个m文件把代码复制进去运行,运行时间为:

最终结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IRI-2016 Matlab 使用教程 的相关文章

  • ROS学习(一):Navigation中GNSS与IMU数据融合定位

    1 参考博客 主要参考以下博客 感谢各位博主的分享 link https blog csdn net qinqinxiansheng article details 107108475 utm medium 61 distribute pc
  • GVINS:基于GNSS视觉惯性紧耦合的平滑状态估计方法

    文章 xff1a GVINS Tightly Coupled GNSS Visual Inertial Fusion for Smooth and Consistent State Estimation 作者 xff1a Shaozu Ca
  • 【3】IMU模块:PA-IMU-460 ROS驱动 + 与GNSS时间同步

    一 模块介绍 惯性测量单元 IMU 产品展示 西安精准测控有限责任公司 说明 这是一款国产的IMU模块 之所以选择这个是因为同等精度的产品价格8500元 这个只要2500元 缺点是 担心国产的模块性能不好 参数需要自己标定 二 程序运行 c
  • 定位——GNSS

    GNSS GNSS 即全球导航卫星系统 xff08 Global Navigation Satellite System xff09 是所有导航定位卫星的总称 xff0c 凡是可以通过捕获跟踪其卫星信号实现定位的系统 xff0c 均可纳入G
  • GNSS定位(SPP、RTK、PPP)位置坐标系

    欢迎关注个人公众号 xff1a 导航员学习札记 文章目录 一 前言二 单点定位三 差分定位四 PPP 一 前言 最近研究不同FTP的基站数据 xff0c 发现它们坐标系都不一致 xff0c 因此研究了下GNSS定位结果的坐标系 参考了一些文
  • (3)GNSS在ROS中数据获取与解析

    1 在ubuntu16 04中安装串口工具minicom 输入sudo minicom s进行串口配置 xff1a 弹出如下设置界面 xff1a 使用方向键 选择 Serial port setup xff0c 按Enter键 xff0c
  • 你了解RTK技术吗?—— 揭秘GNSS中的定位技术

    上期文章中我们一起探讨了GNSS仿真及其对测试验证的重要意义 xff0c 今天我们将一起走进GNSS中的定位技术 RTK技术 什么是RTK技术 xff1f 传统RTK技术与网络RTK技术又有什么区别呢 xff1f 随着GNSS系统的迅速发展
  • GNSS PPP和PPK区别

    01 PPP PPP全称Precise Point Positioning xff0c 译为精密单点定位 xff0c 属于单点定位也叫绝对定位 xff0c 精密单点定位是指利用载波相位观测值以及由IGS等组织提供的高精度的卫星星历及卫星钟差
  • rtklib中的基线约束应对观测条件糟糕的GNSS数据

    文章目录 问题 观测数据质量很差 使用基线约束后和约束前的结果对比 基线约束的原理 问题 观测数据质量很差 最近遇到一个难题 采集了500小时的数据 可是只有大约50 的的数据可以解算 呃 基线长度大约5公里 也算不上长基线 对这批数据进行
  • IRI-2016 Matlab 使用教程

    IRI2016在线计算模型 https ccmc gsfc nasa gov modelweb models iri2016 vitmo php 同时IRI2016还有Matlab和Fortran版本 其中的Matlab也是通过在线的接口进
  • 讲一点点自动驾驶技术(2)自动驾驶定位系统 part 1 GNSS和激光雷达部分

    最近又有点时间了 来唠一唠自动驾驶技术的第一个部分 定位系统吧 对于一辆自动驾驶的车辆来说 定位技术是关键技术之一 在这一篇小Q来说一说不同的定位技术 这里面包括GNSS全球导航卫星系统 激光雷达 LiDAR 高精度地图 视觉里程计和其他的
  • INS/GNSS组合导航(二)-INS常用的坐标系统及转换

    一 常用坐标系 由于INS是一种完全自主的导航系统 不与外界发生联系 但是我们又想知道物体的的位置 尤其是其与GNSS组合时需要知道其与GNSS在同一坐标系下的位置信息 这就牵扯到了INS的几个导航系统之间的转换 笼统的讲 INS输出的是载
  • GNSS精密单点定位(PPP)基本原理(进阶篇)

    上节介绍了精密单点定位的基本原理 本文继续在精密单点定位的基础上进行更深层次的介绍 一 精密单点定位的函数模型 上节说过 在精密单点定位之前 也有一种绝对定位技术 那就是伪距单点定位 伪距单点定位靠的伪距进行单点定位 但是伪距的精度较差 主
  • GNSS系列(1)------GNSS坐标系转换

    由于工作需要 最近开启了GNSS系列文章的撰写工作 发布于公司官网 现将其同步至CSDN 原文链接 http onemo10086 com school article 165 GNSS定位不准确 漂移了好几公里 是怎么回事呢 相信有不少用
  • INS/GNSS组合导航(七)-SINS的微分方程的推导

    三 中对SINS的机械编排进行了初步可行性的介绍 并未对机械编排进行原理性介绍 那么在详细介绍机械编排之前 需要先对SINS的微分方程进行详细的推导 无论是机械编排 还是后面误差方程的建立 SINS的微分方程都是其重要的基础内容 那么本文在
  • (20181206)在线计算GPS周、北斗周、周内日、年积日、简化儒略日

    介绍两个用于在线计算GPS周 周内日 年积日 简化儒略日的网站 网站一 http www gnsscalendar com 使用说明 网站二 http webapp geod nrcan gc ca geod tools outils ca
  • 小白如何学习GNSS(三)- 如何阅读rtklib源码

    总览 和前两篇一样 都是画重点 而不会去解读代码 只会告诉你哪些代码需要阅读 而哪些可以稍后阅读 哪些基本不需要关注 首先给一个总览 即 输入 gt 处理 gt 输出 输入的观测文件 o文件 和星历文件 p文件 都是rinex格式 建议初步
  • 什么是Ntrip?Ntrip协议简介

    文章目录 Ntrip通讯协议1 0 Ntrip是什么 Ntrip系统组成 NtripServer NtripClient 4 1 获取源列表 4 2 获取差分数据 其他资料 Ntrip通讯协议1 0 Ntrip是什么 NTRIP是在互联网上
  • rtklib源码 rtk差分解算,rtkpos和replos函数流程梳理

    rtklib源码 rtk差分解算 rtkpos和replos函数流程梳理 rtkpos函数梳理 总体流程 replos函数梳理 replos总体流程 1 通过satposs函数计算卫星的位置 速度等参数 2 通过zdres函数计算基站伪距和
  • RTK、PPP与RTK-PPP?一文带您认识高精定位及如何进行高精定位GNSS测试!(一)

    来源 德思特测试测量 德思特干货丨RTK PPP与RTK PPP 一文带您认识高精定位及如何进行高精定位GNSS测试 一 原文链接 https mp weixin qq com s 6Jb3DuJEhRGqFPrH3CX8xQ 欢迎关注虹科

随机推荐

  • PowerDesigner 模型类型介绍

    目录 PowerDesigner 提供了两种方式组织模型 分别是Categories和Model types 1 Categories方式是从企业架构建模角度出发 主要包含业务层 信息层 应用层 技术层 需求与规划层 1 1 业务层主要用于
  • tmux系列:2、tmux会话

    tmux系列 2 tmux会话 文章目录 tmux系列 2 tmux会话 1 前言 2 创建会话 3 状态栏 4 命令和标志 5 命令提示符 6 附加和分离 7 会话清单 8 完全杀死tmux 9 总结一下 1 前言 其实最开始时候我用tm
  • less两种转换方式

    一 浏览器端转换 link导入 less文件
  • 深聊全链路压测之:第二十二讲

    解决 GoReplay 动态数据关联 1 引言 2 中间件 2 1 什么是中间件 2 2 如何使用中间件 3 关联 3 1 什么是关联 3 2 关联回放实现 4 总结 1 引言 第二十讲 我们聊的是GoReplay平台的搭建 在私下里 不少
  • 使用html表单制作简单网页(加表单详细知识点)

    表单也是html非常重要的一块 常用于输入信息 进行信息的收集和提交 属性 action 信息提交地址 method 提交方式 get 信息拼接在地址中 不安全 post 信息打包发送 安全 select 下拉菜单 option 下拉菜单中
  • 无法获取 java Console 对象

    在eclipse环境中调用System console 获取Console对象 打印返回对象为空 反复试验都是相同结果 Console con System console if con null System out println co
  • 分布式系统:数据分区

    数据分区 每一条数据只属于某个特定分区 一个大数据集可以分散在更多的磁盘上 查询负载也随之分布到更多的处理器上 每个节点对自己所在分区可以独立执行查询操作 因此可以提高查询的吞吐量 通常一个节点负责几个分区 采用数据分区的主要目标是提高可扩
  • Python手势识别与控制

    代码地址如下 http www demodashi com demo 12968 html Python手势识别与控制 概述 本文中的手势识别与控制功能主要采用 OpenCV 库实现 OpenCV是一个基于BSD许可 开源 发行的跨平台计算
  • Spring Security集成knife4j访问接口文档出现403

    目录 问题描述 解决过程 问题描述 使用的springboot版本是2 3 12 RELEASE 引用的依赖如下
  • 搜索引擎的故事

    本篇要介绍的搜索引擎包括 Shodan censys 钟馗之眼 Google FoFa Dnsdb等 介绍的内容主要是这几款搜索引擎的一些高级语法 掌握高级语法会让搜索结果更准确 Google搜索引擎 这里之所以要介绍google搜索引擎
  • 日常开发中常用的JVM调优参数有哪些呢?

    下文笔者讲述JVM调优参数的简介说明 如下所示 Xms2g 初始化推大小为 2g Xmx2g 堆最大内存为 2g XX NewRatio 4 设置年轻的和老年代的内存比例为 1 4 XX SurvivorRatio 8 设置新生代 Eden
  • python找不到对象报错代码,python2.7源码安装方式

    安装python2 7 下载Python 2 7 下载地址 解压安装 tar xzvf Python 2 7 15 tgz cd Python 2 7 15 configure prefix opt local python enable
  • Ubuntu下安装MySQL 以及C++连接MySQL

    一 简单分享Ubuntu 16 04下安装MySQL的过程 首先执行下面三条命令 sudo apt get install mysql server 此步骤可以省略 已经启用docker mysql服务容器 sudo apt get isn
  • ctf.show刷题记录_web(1-10)

    ctf平台 ctfshow https ctf show 1 签到 解题 base64解码 ctfshow 0da357d0 359b 47e1 80dc 5c02212725e5 2 web2 解题 正常页面 输入用户名admin 密码a
  • koin框架预研文档

    背景 koin框架简介 Koin框架 适用于使用Kotlin开发 是一款轻量级的依赖注入框架 无代理 无代码生成 无反射 相对于dagger 而言更加适合Kotlin语 引入目的 目前app比较常用的是dagger框架 dagger框架属于
  • echarts显示纵坐标轴上的箭头

    问题描述 提示 这里描述具体问题 在使用echarts时默认纵坐标是不显示的 所以你在怎么设置样式也不会显示出来 需要手动在代码里面写出来 yAxis name type value axisLine show true 这个是需要主动添加
  • java实现插入排序+代码推导

    图解 代码推导 package data structure import java util Arrays public class insertSort public static void main String args int a
  • 使用Eclipse IDE for GNU ARM搭建STM32的开发环境

    01 下载必要的文件 1 1 安装java运行环境 这一步比较简单 就不细说了 1 2 需要下载四个文件gnumcueclipse gcc arm none eabi xpack windows build tools jlink gnum
  • VS2017无法登录:我们无法刷新此账户的凭证、我们无法添加此账户发送请求时出错、评估期已结束,请登录以解除产品锁定

    之前下了vs但是开的有点慢习惯用codeblocks了 之后因为vs有快速生成类getset函数的快捷键就跑回来用 这个时候vs提示我 评估期已结束 请登录以解除产品锁定 问题描述 vs2017许可证到期 如何评估 解决方法 登录更新许可证
  • IRI-2016 Matlab 使用教程

    IRI2016在线计算模型 https ccmc gsfc nasa gov modelweb models iri2016 vitmo php 同时IRI2016还有Matlab和Fortran版本 其中的Matlab也是通过在线的接口进