arcgis导入netCDF文件的问题
程序员文章站
2022-07-14 10:29:51
...
首先,使用arcgis导入nc文件使用系统工具箱下的make netCDF raster layer工具
每一项都对应选择即可,x为经度,y为纬度。
但在显示时可能会出现上下翻转的问题,因为可能nc文件中的纬度是从下往上排的,但arcgis分配时是从上往下的顺序,就会出现上下翻转的情况,于是选择用matlab读取文件信息并导出为tif。
(代码为网上代码,非原创,但找不到那篇文章了,找到一定加原文链接(づ●─●)づ)
matlab代码如下:
clc;
clear;
ncFilePath='C:\xxxx\xxxx.nc';% ncFilePath是变量名,后面是文件地址和文件名,要改
%% 大概了解nc文件内的属性信息 知道数据的变量是什么就可以不用运行
%ncdisp(ncFilePath);%显示nc文件的所有结构,以便大概了解里面的内容
%ncdisp(ncFilePath,'lrad');%显示指定变量的内容,注意一定要是变量variables才可以
%ncdisp(ncFilePath,'/','min');%简单显示结构以及定义
%ncdisp(ncFilePath,'/','full');%全部显示所有结构和定义信息
%% 读取变量值
lon=ncread(ncFilePath,'lon');%读取经度变量可能l为大写,自己用对应的
lat=ncread(ncFilePath,'lat');%读取纬度变量
lrad=ncread(ncFilePath,'value');%获取nc中所要的的属性值,value要改
%%保存为地理栅格tif格式,以便arcgis读取
data=flipud(lrad'); %data这里用了一个flipud函数,这个函数是进行上下翻转的
R =georasterref('RasterSize', size(data),'Latlim', [double(min(lat)) double(max(lat))], 'Lonlim', [double(min(lon)) double(max(lon))]);%地理栅格数据参考对象
geotiffwrite('C:\xxxx.tif',data,R);%路径要改
disp('done')
代码结果TIF图:
另外,最近用arcgis打开nc文件又遇见了新的问题:
按照网上说的属性-netCDF那里调整时间后,显示的图层结果有异常(我的异常是全为0……)
使用matlab提取也受到了数据量的限制:
最后解决方法是,使用arcgis系统工具箱中的按维度选择,选择想要的时间维度即可正常显示。
上一篇: 关于递归的一些练习
下一篇: layui的change监听事件