爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6886|回复: 4

matlab MinGW64编译器安装(成功)+JRA-55数据处理

[复制链接]

新浪微博达人勋

发表于 2018-6-24 17:37:36 | 显示全部楼层 |阅读模式
MATLAB
问题截图:
问题概况: 下载JRA-55数据,需要在matlab 2014a 安装编译器,安装了TDM-GCC无法识别,然后安装了SDK7.1之后安装.NET framework4 显示无法继续安装。
我看过提问的智慧: 看过
自己思考时长(天): 2
系统平台: win10

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 小莹子 于 2018-8-2 22:18 编辑

一、数据下载用FTP专业软件FileZilla批量下载JRA-55数据,之后需要用MATLAB处理。查看JRA数据说明,JRA数据是grib形式。
用matlab处理,需要下载read_grib插件之前,先要安装MinGW64编译器。
二、编译器安装
1.安装TDM-GCC
按照教程安装设置环境http://blog.sina.com.cn/s/blog_167bbdec10102x113.html,总结下就是:
第一步:下载TDM-GCC(注意看清是32位还是64位),TDM-GCC的安装路径不要包括空格; http://tdm-gcc.tdragon.net/download
第二步:新建环境变量MW_MINGW64_LOC,设置为TDM-GCC-64的安装位置;
第三步:在MATLAB命令行内运行命令setenv(‘MW_MINGW64_LOC’,folder),folder为TDM-GCC的安装位置,要加单引号; 最后,重启一下MATLAB;
问题:在matlab命令行输入mex -setup显示:错误使用mex,未找到支持的编译器或SDK
         输入mex -setup -v之后,显示:找不到已安装的编译器‘Microsoft windows SDK7.1(C)’
2.安装SDK7.1
1)SDK7.1
matlab中给出的SDK下载地址:http://www.mathworks.com/support/compilers/R2014a/win64
但是我只找到了Win7的安装包。下载下来试试。能安装成功。
输入mex -setup -v之后,显示:警告: Windows SDK 7.1 appears to be installed, but its compiler was not found. Install .NET Framework 4.0, and then rerun the SDK installation to add the "Visual C++ Compilers" component. See http://www.mathworks.com/support/solutions/en/data/1-IB1G3Q/ for more information.
2).NET Framework 4
安装SDK7.1之前必须安装.Net4.0。下载安装之后显示:您的安装将不会进行。
Microsoft .NET Framework 4 已是此操作系统的一部分。不需要安装 .NET Framework 4 可再发行组件包。<A HREF="http://go.microsoft.com/fwlink/?LinkId=164207">详细信息</A>。
已在此计算机上安装相同或更高版本的 .NET Framework 4。
博客中说:针对matlab找不到编译器问题,matlab官方给的解决方法是下载SDK7.1,而安装SDK7.1需要安装.Net 4.0。win10默认安装的是4.6,所以安装不了SDK7.1。
3)尝试安装更高版本的.NET Framework
官网下载安装4.7.2,安装失败。显示:产生阻滞的问题:此系统不支持.NET Framework 4.7.2。根据阻滞安装的详细信息,查找原因。
不能再已有的版本上安装旧版本,如何确定当前.NET版本?
通过查看注册表来查找 .NET Framework 版本(.NET Framework 4.5 和更高版本)To find .NET Framework versions by viewing the registry (.NET Framework 4.5 and later)
  • 在“开始”菜单上,选择“运行”。
  • 在“打开”框中,输入“regedit.exe”。
    你必须具有管理凭据才能运行 regedit.exe。
  • 在注册表编辑器中,打开以下子项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
      右侧显示: release  REG_DWORD 0*0006004f(393295),该值指示的是安装的.NET的版本。393295——仅在Windows 10系统上,.NET Framework 4.6
官方网站:https://docs.microsoft.com/zh-cn ... sions-are-installed
现在陷入僵局,请问怎么解决编译器的问题那?
三、Matlab 2016a安装
转为matlab2016a
下载安装:
http://www.xue51.com/soft/3355.html#xzdz
https://pan.baidu.com/s/1nwFIDXf ... tPath=%2Fxue51_2018
clc;
clear;
setenv('MW_MINGW64_LOC','C:\TDM-GCC-64');   %配置编译器
mex -setup -v                               %查看编译器能否被找到
mex -setup                                  %查看是哪个编译器
mex -setup C++
%%进入read_grib文件中启动程序
cd F:\MATLAB\JRA\read_grib\read_grib1.4.0
mex BDS_unpack_mex5.c
%%进入数据文件中读取grib数据
cd F:\..\jradata
gribname='anl_surf125.197901';
read_grib(gribname,'invent');
未定义函数或变量 'read_grib'。
帖子:http://blog.sina.com.cn/s/blog_5d7295010101ia5b.html
要read_grib.m真正起作用,需要“安装”和“编译”两步。
1)查找startup.m文件路径:E:\Matlab2016a\install\toolbox\local,但是startupsav.m,所以按照帖子上的方法处理。
2)将read_grib拷贝至E:\Matlab2016a\install\toolbox\目录下
3)打开E:\MATLABR2016a\toolbox\local\pathdef.m文件,打开,添加路径。
       matlabroot,'\toolbox\read_grib\read_grib1.4.0;',...
4)运行rehash toolboxcache命令,完成工具箱加载
       >>rehash toolboxcache
5)重启Matlab,在命令窗口中运行
      >>what read_grib1.4.0
关于“编译”
1)切换到read_grib1.4.0目录下
      >>cd ([matlabroot '\toolbox\read_grib\read_grib1.4.0']);
2)编译
      >>mex BDS_unpack_mex5.c
3)运行rehash toolboxcache命令,完成工具箱加载
       >>rehash toolboxcache
5)重启Matlab,完成!!!
read_grib(gribname,'invent')
错误使用 fileparts
输出参数太多。

出错 read_grib (line 77)
[fpath,fname,fext,fver]=fileparts(gribname);

参数太多,删除,如何删除?
发现是原始数据下载的有问题,anl_surf125有好几层,我只需要code figure=11的 Temperature。
四、JRA-55再下载
根据https://blog.csdn.net/nj_yttp/article/details/53453220JRA-55数据预处理模块:
第一步:确认数据变量的层次数目(可做可不做):在CMD或者LINUX中命令中输入wgrib{文件名},查看数据的层次等信息,以确认层次的数目(注意wgrib.exe需要事先下载好并将其路径添加到环境变量中去)
第二步:修改.ctl文件中的路径,保存
第三步:编写合并多个GRIB文件的.gs文件,并用GRADS运行,生成合并后的.grd文件
1.wgrib.exe下载
http://www.cpc.ncep.noaa.gov/products/wesley/wgrib.html  之windows(gcc/cygwin)ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib/machines/


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-6-25 16:58:54 | 显示全部楼层
小莹子 发表于 2018-6-25 10:45
意思是把matlab版本提高吗?同把win10换成win7的思路一样,换版本是吗?

我觉得换系统总是有些不靠谱的,动的太多了,win10的兼容性应该是最好的,matlab2014a确实有些久了。另外,我记得之前给师弟读grib文件时,matlab论坛是有人传过相关函数的,grib文件也就是一种二进制文件,有相应格式,你看的这个指南个人觉得好麻烦,另外指南里面的是matlab2016a
https://blog.csdn.net/xqclll/article/details/68511972
http://bbs.06climate.com/forum.php?mod=viewthread&tid=7673
https://ww2.mathworks.cn/matlabc ... -netcdf-grib-reader
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2018-6-25 10:12:56 | 显示全部楼层
装上matlab2018a试试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-6-25 10:45:10 | 显示全部楼层
Wetter 发表于 2018-6-25 10:12
装上matlab2018a试试

意思是把matlab版本提高吗?同把win10换成win7的思路一样,换版本是吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-6-26 11:07:01 | 显示全部楼层
Wetter 发表于 2018-6-25 16:58
我觉得换系统总是有些不靠谱的,动的太多了,win10的兼容性应该是最好的,matlab2014a确实有些久了。另外 ...

实在是很感谢您的经验和帮助那。我就是按照你给的网址一下载安装的编译器,能安装成功,但是matlab 2014a识别不了。找了好些帖子,也都类似,并没有解决问题。比如说https://blog.csdn.net/zhaozhichenghpu/article/details/75452015,是2016a,我借鉴了下他里面的版本问题。
我已经下载了read_grid.m 。但在这之前得先搞定编译器。不过我这里也有2018的安装包,我到时候试试,看结果如何。很感谢你那,谢谢那。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表