NC文件不规则裁剪(利用shp文件裁剪)(三)
文章目录
- 前言
- 实例数据
- 代码部分
- 需要的库
- 加载文件
- 写入地理信息
- 裁剪NC
- 结果
- 完整代码奉上
前言
Hello大家好呀,最近正好需要用到多个SHP去裁剪NC,按照我以前的两种办法(办法1和办法2)操作的话,我自己都会破防,在偶然的情况下发现了rioxarray这个库。这个库可以将坐标信息直接写入到NC之中,从而直接使用shp裁剪,比原先的方法更为简单明了。
实例数据
本次测试数据采用2m气温数据,下载链接:点我直接下载;
NC数据打开后如下图所示,该数据为逐月的三维数据。
SHP数据我就直接采用NOAA公开的海岸线数据吧,主要是涉及到中国的SHP极大可能性会被平台封文章。下载链接:点我直接下载。数据如下图所示,我用的文件是GSHHS_i_L1.shp
代码部分
需要的库
本次我们需要用到以下四个库,这几个库都可以直接用pip安装比较方便。
import xarray as xr
import rioxarray
import geopandas as gpd
from shapely.geometry import mapping
加载文件
ds = xr.open_dataset(r'C:\Users\Administrator\Downloads/air.2m.mon.mean.nc') # 加载NC文件
# ds['lon'] = ds['lon'] -180
shp = gpd.read_file(r"D:\BaiduNetdiskDownload\gshhg-shp-2.3.7\GSHHS_shp\i/GSHHS_i_L1.shp") # 加载shp文件
写入地理信息
ds.rio.write_crs("epsg:4326", inplace=True) # 向NC文件中写入WGS84坐标系信息
ds.rio.set_spatial_dims(x_dim="lon", y_dim="lat", inplace=True) # 指定NC文件的xy识别名称
裁剪NC
ds = ds.rio.clip(shp.geometry.apply(mapping),shp.crs,drop=False)
结果
结果是出来了,但是我们会发现,数据只有0-180度之间的,而-180-0之间的数据没有了,造成这个问题的原因就是NCEP数据的lon是从0-360的,而这个库识别不出来。因此在裁剪之前我们需要仔细的观察一下数据的lon是否是从-180开始的。如果是从-180开始的就不用管了,如果是从0开始的就需要将加载文件那一步中的ds[‘lon’] = ds[‘lon’] -180取消注释。
经过lon处理后的结果就是正常的啦!!
完整代码奉上
import xarray as xr
import rioxarray
import geopandas as gpd
from shapely.geometry import mappingds = xr.open_dataset(r'C:\Users\Administrator\Downloads/air.2m.mon.mean.nc')
# ds['lon'] = ds['lon'] - 180 # 根据实际NC文件的经度范围确定是否开启这一行
shp = gpd.read_file(r"D:\BaiduNetdiskDownload\gshhg-shp-2.3.7\GSHHS_shp\i/GSHHS_i_L1.shp")ds.rio.write_crs("epsg:4326", inplace=True)
ds.rio.set_spatial_dims(x_dim="lon", y_dim="lat", inplace=True)ds = ds.rio.clip(shp.geometry.apply(mapping),shp.crs,drop=False)ds.to_netcdf(r'D:\CSDN/air.2m.mon.mean_clip.nc') # 保存NC文件
相关文章:

NC文件不规则裁剪(利用shp文件裁剪)(三)
文章目录 前言实例数据代码部分需要的库加载文件写入地理信息裁剪NC结果 完整代码奉上 前言 Hello大家好呀,最近正好需要用到多个SHP去裁剪NC,按照我以前的两种办法(办法1和办法2)操作的话,我自己都会破防,…...

java 宠物在线商城系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目
一、源码特点 java 宠物在线商城系统是一套完善的java web信息管理系统 servletdaobean mvc模式,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…...

三防平板丨手持工业平板丨ONERugged工业三防平板丨推动数字化转型
随着科技的发展,数字化转型已经成为企业转型升级的必由之路。而在数字化转型中,三防平板作为一种重要的工具,可以极大地推动企业的数字化转型。本文将从以下几个方面探讨三防平板如何推动数字化转型。 一、提高工作效率 ONERugged加固平板的…...

【Linux | C++ 】基于环形队列的多生产者多消费者模型(Linux系统下C++ 代码模拟实现)
阅读导航 引言一、生产者消费者模型二、环形队列简介三、基于环形队列的生产者消费者模型(C 代码模拟实现)⭕Makefile文件⭕ . h 头文件✅sem.hpp✅ringQueue.hpp ⭕ . cpp 文件✅testMain.cpp 温馨提示 引言 在上一篇文章中,我们深入探讨了…...

【Docker】Docker存储卷
文章目录 一、什么是存储卷二、为什么需要存储卷三、存储卷分类四、管理卷Volume创建卷方式一:Volume 命令操作方式二:-v 或者--mount 指定方式三:Dockerfile 匿名卷 操作案例Docker 命令创建管理卷Docker -v 创建管理卷Docker mount 创建管理…...
基于python的租车管理平台/汽车租赁网站
功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能包括:首页、详情页、用户中心、家政入驻模块。后台功能包括:总览、车辆管理、分类管理…...

【JVM】双亲委派机制
📝个人主页:五敷有你 🔥系列专栏:JVM ⛺️稳中求进,晒太阳 双亲委派机制 在Java中如何使用代码的方式去主动加载一个类呢? 方式1:使用Class.forName方法,使用当前类的类加载…...

分布式id实战
目录 常用方式 特征 潜在问题 信息安全 高性能 UUID 雪花算法 数据库生成 美团Leaf方案 Leaf-segment 数据库方案 Leaf-snowflake 方案 常用方式 uuid雪花算法数据库主键 特征 全局唯一趋势递增信息安全 潜在问题 信息安全 如果id连续递增, 容易被爬虫, 批量下…...
深入了解 SOCKS5 代理、代理 IP 和 HTTP
在网络通信和数据传输中,代理服务器扮演着至关重要的角色。本文将深入探讨 SOCKS5 代理、代理 IP 和 HTTP,揭示它们的工作原理、应用场景以及优缺点。 1. SOCKS5 代理 SOCKS(Socket Secure)是一种网络协议,允许客户端…...

外包干了3个多月,技术退步明显。。。。
先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

Unity之闪电侠大战蓝毒兽(简陋的战斗系统)
目录 🎨一、创建地形 🎮二、创建角色 🏃2.1 动画 🏃2.2 拖尾 🏃2.3 角色控制 🏃2.4 技能释放 🏃2.5 准星 📱三、创建敌人 🐲3.1 选择模型 🐲3.…...
C# 菜鸟级别有关于redis的使用
public IActionResult Index() { ConnectionMultiplexer _conn ConnectionMultiplexer.Connect("127.0.0.1:6379");//初始化 var database _conn.GetDatabase(7);//指定连接的库 0 RedisHelper redisHelper new Redi…...

AlexNet的出现推动深度学习的巨大发展
尽管AlexNet(2012)的代码只比LeNet(1998)多出几行,但学术界花了很多年才接受深度学习这一概念,并应用其出色的实验结果。 AlexNet(由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton共同设计…...
2024面试offer收割宝典字节篇
1.IO 模型有哪些,讲讲你理解的 nio ,他和 bio,aio 的区别是啥, 谈谈 reactor 模型。 IO 模型主要包括以下几种:1. 阻塞 I/O (BIO): 当一个线程调用 read() 或 write() 系统调用时,如果数据没有准备好或者缓冲区已满,则该线程会被操作系统阻塞,直到有数据可读或写入完…...

冒泡排序及其优化
冒泡排序 int[] arr {1,3,2,9,4,7,2,8};//比较多少轮(n个数字比较n-1次)for(int i0,n arr.length;i<n-1;i) {//每轮比较多少次(n-1-i次)for(int j 0;j<n-1-i;j) {//两两比较if(arr[j] > arr[j1]) { //比较结果为升序排列,如果想要降序排列结果将 >…...

【医学大模型 补全主诉】BioGPT + LSTM 自动补全医院紧急部门主诉
BioGPT LSTM 自动补全医院紧急部门主诉 问题:针对在紧急部门中自动补全主诉的问题子问题1: 提高主诉记录的准确性子问题2: 加快主诉记录的速度子问题3: 统一医疗术语的使用子问题4: 减少打字错误和误解子问题5: 提高非特定主诉的处理能力 解法数据预处理神经网络方…...
HCIE-Datacom证书有效期多久?HCIE考试有哪些内容?
如今越来越多的人开始关注并参与到华为认证的学习中来。 其中,华为认证数据通信专家(HCIE-Datacom)作为华为认证体系中的高级认证,备受瞩目。 那么,关于HCIE-Datacom证书的有效期以及HCIE考试的内容,你知道多少呢?下…...

OpenCV中的边缘检测技术及实现
边缘检测是在电脑如何理解图片这一问题中的一环,它帮助电脑找出照片里的轮廓和分界线。想象一下你在看一幅黑白漫画,轮廓线定义了每一个角色和物体,而电脑要做的,就是通过边缘检测来找出这些线条。这在很多像是图像分析这样的领域…...
机器学习基础(一)理解机器学习的本质
导读:在本文中,将深入探索机器学习的根本原理,包括基本概念、分类及如何通过构建预测模型来应用这些理论。 目录 机器学习 机器学习概念 相关概念 机器学习根本:模型 数据的语言:特征与标签 训练与测试…...

Eclipse - Makefile generation
Eclipse - Makefile generation References right mouse click on the project -> Properties -> C/C Build -> Generate Makefiles automatically 默认会在 Debug 目录下创建 Makefile 文件。 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...