电离层实时同化模型-IRTAM系数的matlab批量下载代码

         电离层模式通常无法正确预测空间天气事件对电离层的影响。利用当今实时可用的底部电离层测量电子密度分布,美国开发了一种技术“IRTAM((Ionosphere Real-Time Assimilative Model)”来指定实时 foF2 和 hmF2 全局图。测量数据从全球电离层射电天文台 (GIRO) 的大约 ~70 个电离探空仪站到达洛厄尔 GIRO 数据中心 (LGDC) ,通常以 15 分钟的节奏到达,并被摄取到 LGDC 的数据库中(http://ulcar.uml.edu/DIDBase/),其中使用国际参考电离层(IRI)电子密度模型作为背景模型。

      IRI是一个经验性的月度中位数模型,主要取决于 F2 层峰高 hmF2 和密度 NmF2(或临界频率 foF2)的正确值。IRI 模型使用所谓的 CCIR(或 URSI)系数来规范中位数 foF2 和 hmF2 映射。IRTAM通过动态“调整”CCIR系数,在IRI中吸收测量的GIRO数据。foF2 和 hmF2 在现在之前的最后 24 小时的更新图连续显示在 http://giro.uml.edu/RTAM 上 。通过使用新的Vary-Chap上部剖面模型,可以将“调整后的”底部剖面扩展到上部,该模型将剖面从hmF2扩展到等离子体层。

     在研究过程中,经常需要批量下载IRTAM的数据,提供一个批量下载的matlab代码:

% 批量下载IRTAM数据
clear;clc;tic;
% URL-based scripted download:
% Populate URL with date-time (ISO format) and name:
% https://lgdc.uml.edu/rix/gambit-coeffs?time=yyyy.mm.ddThh:mm&charName=nnnn
% nnnn = foF2, hmF2, B0, B1
% Please be considerate and pace download requests at 15 sec cadence
% See Consortium agreement to acquire GAMBIT database mirror copy for fast local access to IRTAM 3D computations

% C ISEL parameter   filename
% C   0    foF2    IRTAM_foF2_COEFFS_yyyymmdd_hhmm.asc
% C   1    hmF2    IRTAM_hmF2_COEFFS_yyyymmdd_hhmm.asc
% C   2    B0      IRTAM_B0in_COEFFS_yyyymmdd_hhmm.asc
% C   3    B1      IRTAM_B1in_COEFFS_yyyymmdd_hhmm.asc

ResavePath = 'E:\Data\IRTAM\';
str1 = 'https://lgdc.uml.edu/rix/gambit-coeffs?time=yyyy.mm.ddThh:mm&charName=nnnn';
str2 = 'IRTAM_nnnn_COEFFS_yyyymm1dd_hhmm2.asc';

DataType  = {'foF2'; 'hmF2';'B0';'B1'};
DataType2 = {'foF2'; 'hmF2';'B0in';'B1in'};

Time0   = [2015 3 15 0 0 0];% 起始日期
Lastday = 7;  % 下载数据的天数
TimeRes = 0.25;% 时间间隔(单位:小时)
while 1
    NumErr = 0;
    for nt = 1:round(Lastday*24/TimeRes)+1
        
        TimeBG = datevec(datetime(Time0) + (nt-1)*TimeRes/24);
        
        str2_1 = strrep(str2,'yyyy',num2str(TimeBG(1),'%04d'));%clear str3;
        str2_2 = strrep(str2_1,'mm1',num2str(TimeBG(2),'%02d'));clear str2_1;
        str2_3 = strrep(str2_2,'dd',num2str(TimeBG(3),'%02d'));clear str2_2;
        str2_4 = strrep(str2_3,'hh',num2str(TimeBG(4),'%02d'));clear str2_3;
        str2_5 = strrep(str2_4,'mm2',num2str(TimeBG(5),'%02d'));
        
        str3_1 = strrep(str1,'yyyy',num2str(TimeBG(1),'%04d'));%clear str3;
        str3_2 = strrep(str3_1,'.mm',strcat('.',num2str(TimeBG(2),'%02d')));clear str3_1;
        str3_3 = strrep(str3_2,'dd',num2str(TimeBG(3),'%02d'));clear str3_2;
        str3_4 = strrep(str3_3,'hh',num2str(TimeBG(4),'%02d'));clear str3_3;
        str3_5 = strrep(str3_4,':mm',strcat(':',num2str(TimeBG(5),'%02d')));
        

        for ntype = 1:length(DataType)
            
            %sourcefile = strrep(sourcefile,'---','999');
            txtFile = fullfile(ResavePath,strrep(str2_5,'nnnn',DataType2{ntype}));
            
            
            if exist(txtFile,'file')
                continue;
            end
            url = strrep(str3_5,'nnnn',DataType{ntype});%clear str3;
            try
                options = weboptions('ContentType','text');
                options.Timeout = 30;
                sourcefile = webread(url,options);
            catch
                disp('Internet Error');
                NumErr = NumErr + 1;
                continue;
            end
            
            fileID  = fopen(txtFile,'w');
            fprintf(fileID,'%s',sourcefile);
            fclose(fileID);
            
            disp(['Data save as :',txtFile]);
        end
        
    end
    disp(['Error Number =',num2str(NumErr)]);% 如果NumErr>0,重新运行代码,直到0
    
    if NumErr==0
        break;
    end
    
end
toc;

下载的数据包括四类,具体文件如下所示(仅显示部分):

%  0    foF2    IRTAM_foF2_COEFFS_yyyymmdd_hhmm.asc
%  1    hmF2    IRTAM_hmF2_COEFFS_yyyymmdd_hhmm.asc
%  2    B0      IRTAM_B0in_COEFFS_yyyymmdd_hhmm.asc
%  3    B1      IRTAM_B1in_COEFFS_yyyymmdd_hhmm.asc

# START_HEADER
# GLOBAL IONOSPHERE RADIO OBSERVATORY (G.I.R.O.)
# giro.uml.edu
#
# IRI-based Real-Time Assimilative Model (IRTAM)
#
# IRTAM Coefficients of Temporal-Spatial Expansion
# Generated by GambitCoefficients_Servlet 0.2b on 2020-04-07T02:11:43.020Z
# Ionospheric Characteristic: B0 [km] 
# Time of Validity 2015-03-17T00:00:00.000Z
# Assimilative Engine: NECTAR v0.2A
# Earth Grid: 46 lats x 45 lons
# Expansion Basis: JonesGallet_LinTrend
# Basis Lengths: 14(temporal) x 76(spatial)
# Assimilated stations: 
# JI91J AT138 PA836 PRJ18 MHJ45 VT139 BC840 EB040 GR13L DB049
# SAA0K EA036 PQ052 TR169 FF051 EG931 JR055 YA462 LV12P BP440
# MO155 HE13N PSJ5J JJ433 IC437 WU430 BVJ03 GU513 AU930 IF843
# MH453 SA418 AL945 ME929 FZA0M CAJ2M
# END_HEADER
    112.86818277      2.53802630     -4.37489790     -3.38416970
     -0.41538640      1.23556452      1.39446195     -0.13753619
      1.15381269     -0.97164220     -0.17204990      0.35366155
      0.66826918     14.74919763     -1.45210473     -0.87189668
     -3.24577740      2.23326214      5.37750129     -0.42844079
     -1.52580020     -1.85619884     -1.71484753     -0.45050004
     -0.78396881     -1.59473236      5.47534145      2.35783719
      9.50537296      5.92587652     -3.31531055      6.80141493
    -13.00524802      2.67824502    -11.00757756     -4.03488675
      2.70670448    -10.68007938      4.51078169   -399.66848864
     28.35109802    -17.09890277      0.42306268    -43.41315505
    -39.15004855    -10.56132165      7.89791472      4.76720797
     -7.24100073     10.44838150      7.62444105     32.56675734
   -267.45468978    -86.78657740     30.81683979     22.90545335
     74.72041309    -49.29123068     64.13977097    -29.50082261
     80.76629645     55.47123789    -30.58194280     86.86770180

  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值