IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 学习python的xarray库 -> 正文阅读

[Python知识库]学习python的xarray库

对于初学者,推荐看大佬“摸鱼咯”的系列博文学习。

一、读取文件:得到dataset

#从文件中读取
import xarray as xr
import cfgrib
ds = xr.open_dataset('G:/NEW_RAIN_QC/INPUT/HRCLDAS/TAIR-2021060904.GRB2',engine='cfgrib')

读取得到的ds的类型是xarray.Dataset
在这里插入图片描述

二、读数据:从dataset到dataarray

(一)层层查看

其中的Dimensions,Coordinates,Data variables,Attributes都是属性,可以通过下列代码查看

print(ds.coords)
print(ds.dims)
print(ds.variables)
print(ds.attrs)

查看
在这里插入图片描述
可以通过下列语句查看,得到了一个DataArray类型
在这里插入图片描述
ds.varibles试着取数据出来,看着是字典dict的形式

在这里插入图片描述
接着取tem数据出来ds.variables['t2m'],得到了类型为variable的数据在这里插入图片描述
用.values取值,得到了一个矩阵
在这里插入图片描述

(二)直接查看

直接由ts取数据,得到的是DataArray类型的
在这里插入图片描述

三、处理DataArray

(一)创建DataArray

x = xr.DataArray([[1,2],[3,4],[8,9]],dims=('lat','lon'),coords={'lat':[35,40,50],'lon':[101,102]})

(1)构造随机数据

data = np.random.rand(rows, columns)

(2)构造时间

来自博文

times = pd.date_range('2000-01-01', periods=4)

(二)DataArray的属性查看

查看dataarray属性的方法和查看dataset属性的方法一样

ds['t2m'].values
ds['t2m'].coords
ds['t2m'].dims
ds['t2m'].attrs

其中.values获得了数据矩阵(numpy.ndarray类型)

(三)DataArray的修改

a = ds['t2m']
a.values = a.values/10.0

(四)DataArray的提取

想要从二维网格数据中提取某个经纬度的值

(1)从numpy.ndarray中提取

计算经纬度(lat,lon)对应在网格中的格点数(lat_n,lon_n),这一步需要从站点插值到格点。
然后直接在网格中取那个网格点

b= a.values
value = b[lat_n][lon_n]

(2)直接从DataArray中提取

(a)格点值
可以单独取一行或者一列
使用.where

m = a.where(a.latitude==1.29125, drop=True)
n=  a.where(a.longitude==106.091248, drop=True)

得到的依然是DataArray格式
在这里插入图片描述
也可以取某个值

lala=a.where((a.longitude==106.091248) & (a.latitude==1.29125),drop=True)

使用.sel

momo=a.sel(longitude=106.091248)

请注意命令中间是=而不是==!!!
在这里插入图片描述
使用.loc

print(a.loc[1.29125,:])

直接使用[]

print(a[0,:])

(b)站点值

value = a.interp(latitude = 23,longitude=120, method='nearest')

插值方法有 linear,cubic,nearest等

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:12:29  更:2021-09-29 10:14:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:35:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码