1.文件读取与变量信息提取
(1)方法一:from netCDF4 import Dataset

from netCDF4 import Datasetnc_file = './file.c'
nc = Dataset(nc_file, mode='r')#variable name
all_vars = nc.variables.keys()
# print(len(all_vars))#Viewing a single variable
# var_info = f.variables['pwr_waveform_20_ku']
lon = nc['lon'][:]
lat = nc['lat'][:]
tim = nc['time'][:]
power = nc['power'][:]
# print(var_info)
# print(var_data.shape) #covert to np.array
power = np.array(power )
lon = np.array(lon)
lat = np.array(lat)
tim = np.array(tim)# print(tim.shape)#row

(2)方法二:import xarray as xr

import xarray as xr
data = xr.open_dataset(input_data_path)

2.利用shp边界裁剪nc文件
前提是所需要裁剪的变量是关于时间、坐标信息的变量,即variable_need = function (time,lon,lat)

#read nc file with xr
with xr.open_dataset('./data/file.nc') as file_nc:waveform_xr=file_nc
print(waveform_xr)# read selin boundary shp
lake_path = "./data/boundary_shp"
lake_path = os.path.join(lake_path,"test.shp"
)lake_gdf=gpd.read_file(lake_path)
# print(lake_gdf.head())#select test
test_aoi=lake_gdf[lake_gdf.name=="test"]#get the outer envelop rectangular coordinates
# print(test_aoi.total_bounds) #The NC data were sectioned according to the latitude and longitude of the outer envelope rectangle.
# 获取外包络矩形的左下角和右上角经纬度坐标
aoi_lat = [float(test_aoi.total_bounds[1]), float(test_aoi.total_bounds[3])]
aoi_lon = [float(test_aoi.total_bounds[0]), float(test_aoi.total_bounds[2])]
# print(aoi_lat, aoi_lon)# 将坐标转换为标准经度,即去掉正负号
aoi_lon[0] = aoi_lon[0] + 360
aoi_lon[1] = aoi_lon[1] + 360# print(aoi_lon)
# 根据指定的时间和空间范围进行切片
start_date = "2011-02-02"
end_date = "2011-02-03"waveform_test = waveform_xr["waveform"].sel(time=slice(start_date, end_date),lon=slice(aoi_lon[0], aoi_lon[1]),lat=slice(aoi_lat[0], aoi_lat[1]))
waveform_test .plot()
plt.show()

如果所选的变量只与时间有关系,我们如何根据坐标信息进行裁剪呢?
即已知variable1 = function1(time);
lon = function2(time);lat = function3 (time);

一种思路是根据经纬度坐标信息,计算时间范围,按照时间范围切片。

参考资料:Lesson 6. Calculate Seasonal Summary Values from Climate Data Variables Stored in NetCDF 4 Format: Work With MACA v2 Climate Data in Python:https://www.earthdatascience.org/courses/use-data-open-source-python/hierarchical-data-formats-hdf/summarize-climate-data-by-season/

python 读取并裁剪nc文件相关推荐

  1. Python 使用netCDF4读写nc文件以及截取指定经纬度范围内的数据生成新的nc文件

    Python 使用netCDF4读写nc文件以及截取nc文件经纬度范围内的数据 简单介绍nc文件的读写操作,以及实现输入nc文件和坐标范围,输出一个新的nc文件的功能 环境 python3.8.13 ...

  2. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)

    Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录

  3. python读取txt文件写入-python 读取、写入txt文件的示例

    写入文件 使用open()函数和write()函数 但是有两种写法,分别是'a'和'w' 'a' 表示写入文件 若无该文件会直接创建一个 如果存在这个文件,会接着已有的内容的后面写入 with ope ...

  4. python shp文件_对python 读取线的shp文件实例详解

    如下所示: import shapefile sf = shapefile.reader("e:\\1.2\\cs\\dx_csl.shp") shapes = sf.shapes ...

  5. 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本

    使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 文章目录 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 前言: 背景 tm ...

  6. Python读取.dat后缀名文件

    Python读取.dat后缀名文件 .dat文件基本上是没有任何头的二进制文件.对于每个样本,它由(256,256,3)个uint8图像,(64,64,1)uint8深度图和1个uint8标签组成.T ...

  7. python读取C语言头文件

    在使用python编程过程中,经常需要对C语言文件进行操作,即.h文件进行读取操作,这里举例说明,python读取C语言头文件,提取其中#define 宏定义 废话少说,上代码 import os i ...

  8. python 读取mat文件,python读取并写入mat文件的方法

    先给大家介绍下python读取并写入mat文件的方法 用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); sav ...

  9. python读取指定路径txt文件-如何使用pandas读取txt文件中指定的列(有无标题)

    最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...

  10. python读取指定路径txt文件-python读取txt文件并取其某一列数据的示例

    菜鸟笔记 首先读取的txt文件如下: AAAAF110 0003E818 0003E1FC 0003E770 0003FFFC 90 AAAAF110 0003E824 0003E208 0003E7 ...

最新文章

  1. 学习笔记-4.1用户管理命令
  2. acwing yxc总结时间算法复杂度
  3. SQL游标原理和使用方法
  4. Linux课程第二十一天学习笔记
  5. Java计算一个字符串的HashCode
  6. 如何给SAP Cloud Platform的CloudFoundry环境里的subaccount添加quota
  7. React开发(205):react代码分割之context
  8. Ext.Net全部Icon图标名称展示
  9. 使用Xcode 6中的AutoLayout约束模拟方面适合行为
  10. dell笔记本c语言系统,戴尔dell笔记本电脑U盘重装系统win7教程图解
  11. php转换ofd文件格式,OFD文件怎么转换成图片格式
  12. hadoop put命令的格式_hadoop Shell命令详解
  13. T-SQL 基础简介
  14. java 主动模式 port_详解SpringBoot修改启动端口server.port的四种方式
  15. 苏锡常镇一模数学试卷含官方答案
  16. 考虑风光火储的微电网优化调度 介绍:考虑风电、光伏、热电机组和储能优化调度,其中负荷考虑冬季或夏季两种场景
  17. FM调制的FPGA实现
  18. 失物招领小程序,失物招领微信小程序,校园失物招领小程序系统毕设作品
  19. java启动脚本指定jdk_使用指定的JDK启动IDEA的三种方法
  20. Windows电脑用户都应该知道的好安全软件和防护知识

热门文章

  1. 常用的DOS操作命令使用方法及介绍
  2. 基于vscode编写markdown导出带书签(目录)的pdf
  3. Solidity 系列教程
  4. 10个比较不错的 JavaScript 库
  5. 经济学人重磅:数据经济虽好,可是仍需补钙
  6. C28x DSP程序加载与运行
  7. magento yandex插件 moneta插件 qiwi插件 俄罗斯银行
  8. VGG19识别CIFAR10数据集(Pytorch实战)
  9. XPS Viewer 无法设置权限账户 - 无法激活此计算机上的任何权限管理账户
  10. MD4 算法代码实现