NC文件不规则裁剪(利用shp文件裁剪)

示例数据与软件介绍

数据

  1. NCEP的逐月2m气温数据
  2. 中国基础shp文件

软件

这次除了常用的Python之外,我们还需要用到ArcGis软件。有需要的小伙伴记得提前装好哦!

中国区域提取

  1. 首先我们需要准备一张中国的基础shp文件,并将其导入到ArcGis中,如果小伙伴们不是很会的话,可以直接将中国shp拖入到ArcGis中(基础shp文件放在文末,自提)。
    在这里插入图片描述

  2. 打开NCEP的2m气温文件,首先我们需要在ArcGis右侧的找到搜索按钮,然后再搜索框中输入netcdf然后搜索,选择创建NetCDF栅格图层(多维)工具打开。(注意:尽量不要使用中文输入法,我这个arcgis使用中文输入法搜索后点不开工具组件)
    在这里插入图片描述

  3. 创建NetCDF栅格图层(多维)参数设置
    在维度值这一栏我们可选也可以不选(我在这里,选择了维度值:time)
    在这里插入图片描述

  4. 接着我们需要创建常量栅格

在这里插入图片描述

在创建常量栅格数据中,我们输出的像元大小要与NC文件本身的像元大小一致(2.5的),接着我们需要在环境选项中选择则处理范围范围要与中国shp一致
在这里插入图片描述
创建好的常量栅格如下所示,但是我们可以看到这个栅格还是四四方方的,并不是我们想要的不规则图形。
在这里插入图片描述

接下来我们需要对栅格进行裁剪处理。
切记一定要勾选几何选项
在这里插入图片描述

完成之后的图形应该是如下所示的样子
在这里插入图片描述

  1. 镶嵌至世界地图中

我的思路是这样的,将中国范围内的数值设置为1,其余范围内的数值设置为0,然后再使用新生成的数据去乘以原始的旧数据,这样就能得到一个中国范围的数据。所以接下来一步便是需要生成世界范围的常量数据。工具依旧是创建常量栅格,但是这里面的栅格值需要设置为0,输出范围需要选择nc文件生成的栅格
在这里插入图片描述
创建完事之后会变成黑乎乎的一片,大家不要担心,因为还差一步,需要将这两个栅格镶嵌在一起
在这里插入图片描述

  1. 栅格数据镶嵌
    使用的工具是镶嵌至新栅格打开工具之后第一步是选择输入栅格,在这里第一个必须是裁剪好的中国范围常量栅格,第二再选择世界范围的常量栅格
    在这里插入图片描述
    再选择输出位置的时候,先点击右边的文件夹,然后新建一个地理数据库,新建的方式就是左边对话框上的那个框起来的标志
    在这里插入图片描述

建好之后修改名字,然后点击添加就好
在这里插入图片描述
还有便是确定数据集名与波段数称,名称这个就看大家命名方式了!!!
波段数这里我们需要输入的是1
在这里插入图片描述
最后的镶嵌运算符,必须是FIRST,上面所有参数设置好之后就可以点击确定了
在这里插入图片描述
7. 生成nc文件

最后一步便是将刚刚生成的0、1栅格数据转为nc文件使用到的工具是栅格至NetCDF
在这里插入图片描述
到这一步就比较简单了,首先我们需要注意一下,输出的nc文件路径,再就是设置一个你喜欢的变量名称就好了,单击确定,一个新的nc文件就这么保存出来了。至此,ArcGis部分就完事了。

在这里插入图片描述

利用Python裁剪nc文件

这一步大家就参照我的代码来就行了

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

  • 23
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 54
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 54
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷心没有菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值