联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格

图片摘要

联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格_第1张图片

本专栏目的是将netcdf格式的雪覆盖数据进行重新投影,需要使用的工具包括matlab和Arcgis,下面进入正题。

1.数据的下载与读取---matlab

最近我需要读取北半球的冰雪覆盖数据,下载的是MODIS/Terra Snow Cover Monthly L3 Global 0.05Deg CMG, Version 61,文件格式为netcdf,在matlab中读取发现其为polar_stereographic极坐标投影。

matlab读取程序

file = 'D:\文件\研究内容\Kakhovskoye\RAW_data\EUROPE_SNOW\ims2021281_4km_v1.3.nc';
ncdisp(file)
lon = ncread(file,'x');lat = ncread(file,'y');snow = ncread(file,'IMS_Surface_Values');
O.rg = snow';
imshow(O.rg),caxis([0,4])

绘图显示与官网提供的数据与投影方式一致。但是在matlab中读取netcdf文件的经纬度坐标没有办法进行后续的处理与计算,因此需要进行重新投影转换。

联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格_第2张图片

联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格_第3张图片

2.数据的投影栅格---arcgis

下面我们将NetCDF文件导入arcgis中,使用arcgis工具箱中的“多维工具”下的“创建NetCDF栅格图层”导入,得到以下的结果:

联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格_第4张图片

接下来选择【数据管理工具】->【投影和变换】下的【栅格】->【投影栅格】,选择输出坐标系为GCS_WGS_1984,点击确定,注意需要将结果导出后新建空白地图,再把文件重新导入arcgis中,即可得到正确的投影,此时再把这个文件导出成NetCDF文件。选择【多维工具】下的【栅格转NetCDF】。

联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格_第5张图片

联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格_第6张图片

再在matlab中读取即可得到正确的结果。

程序代码:

%% oringal
file = 'D:\文件\研究内容\Kakhovskoye\RAW_data\EUROPE_SNOW\ims2021281_4km_v1.3.nc';
ncdisp(file)
lon = ncread(file,'x');lat = ncread(file,'y');snow = ncread(file,'IMS_Surface_Values');
O.rg = snow';subplot(1,2,1)
imshow(O.rg),caxis([0,4])


%% reproject
file = 'D:\文件\研究内容\Kakhovskoye\RAW_data\EUROPE_SNOW\sd.nc';
ncdisp(file)
lon = ncread(file,'lon');lat = ncread(file,'lat');snow = ncread(file,'IMS_Surface_Values_Layer_Pro1.tif');
[lon,lat] = meshgrid(lon,lat);
O.lon = lon;O.lat = lat;O.rg = snow';
subplot(1,2,2),rg_plot(O)
caxis([0,4])

得到最终的结果:

联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格_第7张图片

后续有新的方法将更新!欢迎交流学习!

你可能感兴趣的:(arcgis,matlab,算法,学习)