师弟nba

admin · 2003-10-01

  

  群众好,我是Python进阶者。

   弁言

  头几天有个叫【温池】的粉丝正在Python钻石调换群里问了一道对于.nc文献读取的成绩,如下图所示。

  

  .nc文献和惯例的文献不太同样,有特意的第三方管制库,netCDF4,需求安置才行。

  

pipinstallnetCDF4

 

  即使感觉下载的慢,能够应用换源的法子举行下载:

  

pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplenetCDF4

 

  对于永恒换源能够参考这个著作:手把手教你举行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-*-importnetCDF4fromnetCDF4importDatasetnc_obj=Dataset(D:\tem_e0025_2.nc)#检查nc文献有些啥东东#print(nc_obj)#print(---------------------------------------)#检查nc文献中的变量,了局是:[lon,lat,lev,time,tem]#print(nc_obj.variables.keys())#foriinnc_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+
)file.write(lat,lon+
)file.write(lat+
)foriinrange(len(lat)):file.write(str(lat[i])+,
)file.write(str(lon[i])+,)file.write(str(lev[i])+,)file.write(str(time[i])+,)file.write(str(tem[i])+,
)file.close()

 

  你只要要调换代码中的nc文献途径便可,其余的实质,你能够自行自取。

  法子二:直接取值 这个法子是【温池】本身供给的,也是能够读取文献,举行取值的。

  

#-*-coding:utf-8-*-importnetCDF4fromnetCDF4importDataset#检查nc文献中的变量,了局是:[lon,lat,lev,time,tem]#print(nc_obj.variables.keys())#foriinnc_obj.variables.keys():#print(i)#print(---------------------------------------)A_temp=Dataset(rE: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

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

   三、总结

  我是Python进阶者。本文基于粉丝发问,针对.nc文献读取的成绩,给出了两种管理法子,就手助助粉丝管理了成绩。

文章推荐:

大地欧洲杯直播

cctv怎么看欧洲杯直播表

cba回放中心

nba公众号