首页 定制产品 地区报价 案例展示 企业介绍
  • 首页
  • 定制产品
  • 地区报价
  • 案例展示
  • 企业介绍
  • 地区报价

    你的位置:【欧冠体育平台网址】 > 地区报价 > 盘点两种运用Python读取.nc文件的编制

    盘点两种运用Python读取.nc文件的编制

    发布日期:2022-08-07 06:26    点击次数:196

    巨匠好,我是Python进阶者。

    前言

    前几天有个叫【温池】的粉丝在Python钻石交流群里问了一道对付.nc文件读取的成就,以下图所示。

    .nc文件和通例的文件不太同样,有专门的第三方处理惩罚库,netCDF4,需求按部就班才行。

    pip install netCDF4 

    假定感应下载的慢,可运用换源的编制举行下载:

    pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple netCDF4 

    对付永恒换源可以或许参考这个文章:手把手教你举行pip换源,让你的Python库下载嗖嗖的(系列二)、手把手教你举行pip换源,让你的Python库下载嗖嗖的。

    1、nc文件底子知识

    nc 全称 netCDF(The Network Co妹妹on Data Form),可以或许用来存储一系列的数组,就是这么俭朴。对付nc文件的介绍,可以或许参考:

    https://www.unidata.ucar.edu/software/netcdf/docs/netcdf_introduction.html

    既然 nc 可以或许用来一系列的数组,所以常常被用来存储科学观察数据,最佳照旧长时分序列的。

    试想一下一个科学家每隔一分钟收集一次试验数据并存储了上去,假定不消这类项目存储,时光长了可以或许就需求创立一系列的 csv 或许 txt 等,而给与 nc 一个文件就能搞定,是否是很方便呢?

    更方便的是假定这个科学试验与气候、水文、温度等天文信息轻细沾点边的,齐全也可以用 nc 举行存储, GeoTiff 顶多能多存几个奔忙段(此处奔忙段可以或许觉得是气候、水文等差别旗子灯号),而 nc 可以或许存储差别奔忙段的长时分观察终局,是否是极度方便呢?

    2、经管规划

    编制一:通例读取 这个编制是在网上找到的,代码以下,个中关键部份有注释,该当均可以或许看得懂。

    # -*- coding: utf-8 -*- import netCDF4 from netCDF4 import Dataset nc_obj = Dataset('D:\\tem_e0025_2.nc')  # 查察nc文件有些啥东东 # print(nc_obj) # print('---------------------------------------')  # 查察nc文件中的变量,终局是:['lon', 'lat', 'lev',地区报价 'time', 'tem'] # print(nc_obj.variables.keys()) # for i in nc_obj.variables.keys(): #     print(i) # print('---------------------------------------')  # 查察每个变量的信息 # print(nc_obj.variables['lat']) # print(nc_obj.variables['lon']) # print(nc_obj.variables['lev']) # print(nc_obj.variables['time']) # print(nc_obj.variables['tem']) # print('---------------------------------------')  # 查察每个变量的属性 # print(nc_obj.variables['lat'].ncattrs()) # print(nc_obj.variables['lon'].ncattrs()) # print(nc_obj.variables['lev'].ncattrs()) # print(nc_obj.variables['time'].ncattrs()) # print(nc_obj.variables['tem'].ncattrs()) # # print(nc_obj.variables['lat'].units) # print(nc_obj.variables['lon'].units) # print('---------------------------------------')  # 读取数据值 lat = (nc_obj.variables['lat'][:]) lon = (nc_obj.variables['lon'][:]) lev = (nc_obj.variables['lev'][:]) # print(lev) time = (nc_obj.variables['time'][:]) tem = (nc_obj.variables['tem'][:])  # lat = (nc_obj.variables['lat'][1:2]) # lon = (nc_obj.variables['lon'][1:2]) # lev = (nc_obj.variables['lev'][1:2]) # time1 = (nc_obj.variables['time'][1:2]) # tem = (nc_obj.variables['tem'][1:2])  # print(lat) # print(len(lat)) # print(lon) # print(lev) # print(time1) # print(len(time)) # print(tem) # print('---------------******-------------------')  file = open('ppm_lat.txt', 'a') file.write('lat,lon,time,tem'+'\n') file.write('lat,lon'+'\n') file.write('lat'+'\n') for i in range(len(lat)):     file.write(str(lat[i])+',\n')     file.write(str(lon[i])+',')     file.write(str(lev[i])+',')     file.write(str(time[i])+',')     file.write(str(tem[i])+',\n') file.close() 

    你只需求替代代码中的nc文件门路即可,别的的内容,你可以或许自行自取。

    编制二:间接取值 这个编制是【温池】自身供应的,也是可以或许读取文件,举行取值的。

    # -*- coding: utf-8 -*- import netCDF4 from netCDF4 import Dataset   # 查察nc文件中的变量,终局是:['lon', 'lat', 'lev', 'time', 'tem'] # print(nc_obj.variables.keys()) # for i in nc_obj.variables.keys(): #     print(i) # print('---------------------------------------')  A_temp = Dataset(r'E:\PythonCrawler\乏味的代码\数据阐发\最小二乘法数据阐发代码和数据\Temperature_20211031.nc') lat = A_temp['latitude'][:].data  # 497个数字 lon = A_temp['longitude'][:].data  # 409个数字 temp = A_temp['T'][:].data  # 409个数字 depth = A_temp['depth'][:].data  # 51个数字  print(len(lat)) print(len(lon)) 

     

    本文参考链接:1. https://blog.csdn.net/showpingzhang/article/details/833847802. https://www.cnblogs.com/shoufengwei/p/9068379.html

    取值当前,接上去做回归、聚类等,就不开展赘述了。

    3、总结

    我是Python进阶者。本文基于粉丝提问,针对.nc文件读取的成就,给出了两种经管编制,顺利协助粉丝经管了成就。