NC文件不规则裁剪(利用shp文件裁剪) |
您所在的位置:网站首页 › arcgis裁剪区域json格式转换shp › NC文件不规则裁剪(利用shp文件裁剪) |
文章目录
示例数据与软件介绍数据软件
中国区域提取利用Python裁剪nc文件
示例数据与软件介绍
数据
NCEP的逐月2m气温数据中国基础shp文件
软件
这次除了常用的Python之外,我们还需要用到ArcGis软件。有需要的小伙伴记得提前装好哦! 中国区域提取首先我们需要准备一张中国的基础shp文件,并将其导入到ArcGis中,如果小伙伴们不是很会的话,可以直接将中国shp拖入到ArcGis中(基础shp文件放在文末,自提)。 打开NCEP的2m气温文件,首先我们需要在ArcGis右侧的找到搜索按钮,然后再搜索框中输入netcdf然后搜索,选择创建NetCDF栅格图层(多维)工具打开。(注意:尽量不要使用中文输入法,我这个arcgis使用中文输入法搜索后点不开工具组件) 创建NetCDF栅格图层(多维)参数设置 在维度值这一栏我们可选也可以不选(我在这里,选择了维度值:time) 接着我们需要创建常量栅格 在创建常量栅格数据中,我们输出的像元大小要与NC文件本身的像元大小一致(2.5的),接着我们需要在环境选项中选择则处理范围范围要与中国shp一致 接下来我们需要对栅格进行裁剪处理。 切记一定要勾选几何选项 完成之后的图形应该是如下所示的样子 我的思路是这样的,将中国范围内的数值设置为1,其余范围内的数值设置为0,然后再使用新生成的数据去乘以原始的旧数据,这样就能得到一个中国范围的数据。所以接下来一步便是需要生成世界范围的常量数据。工具依旧是创建常量栅格,但是这里面的栅格值需要设置为0,输出范围需要选择nc文件生成的栅格 ![]() ![]() 建好之后修改名字,然后点击添加就好 最后一步便是将刚刚生成的0、1栅格数据转为nc文件使用到的工具是栅格至NetCDF 这一步大家就参照我的代码来就行了 import xarray as xr import numpy as np ds1 = xr.open_dataset(r'D:\air.mon.mean.nc') time = ds1.time.data #time 变量名 lat = ds1.lat.data #lat变量名 lon = ds1.lon.data #lon变量名 ds2 = xr.open_dataset(r'D:/China.nc') China = np.array(ds2.china.data) China[np.isnan(China)] = 0 # 一定要有哦 air = np.array(ds1.air.data) for i in range(len(air)): air[i] = air[i]*China print(air.max()) air[air==0] = np.nan ds3 = xr.Dataset() ds3['air'] = (('time','lat','lon'),air) ds3.coords['time'] = time ds3.coords['lat'] = lat ds3.coords['lon'] = lon ds3.to_netcdf(r'D:/air.mon.mean.China.nc')最终的效果也是比较Nice的,本次分享就到此结束了!! 中国基础shp下载地址: 链接:https://pan.baidu.com/s/1v-0sW4rQ3Dbc590cSJtzwQ?pwd=sg8c 提取码:sg8c |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |