首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python读取.nc文件

用Python读取.nc文件
EN

Stack Overflow用户
提问于 2017-05-25 19:32:41
回答 1查看 12.6K关注 0票数 1

我想通过something.3520_nc (使用conda)读取.nc文件,但我的文件如下所示:

  1. 怎么处理这个,它仍然是.nc文件对吗?我该给它重新命名吗?或者在我下载之后,把它保存在某个特殊的地方重要吗?
  2. 有人能告诉我,如何开始这段代码吗?我找到了关于这个问题的几页,但它对我没有用。我有Windows 10,conda使用my_root环境,我有netCDF4包。

我试着写:

代码语言:javascript
复制
from netCDF4 import Dataset
import numpy as np

f = Dataset('test.nc')

我被建议使用而不是numpy pylab,但是我没有那个软件包,我也不知道如何安装它。我最挣扎的是第三行,因为我访问过的每一页都有不同的书写方式。

我的问题可能相当复杂,我承认我对Python有一点经验。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-25 19:52:55

如果您去查看包的文档,您将发现一个有用的页面这里

所以你在那里发现

静态方法

def __init__( self,filename,mode="r",clobber=True,diskless=False,persist=False,keepweakref=False,format=‘NETCDF4 4’) Dataset构造函数。

这需要这些论据。我只把重要的留在这里。去读剩下的那一页吧

文件名:保存数据集的netCDF文件的名称。也可以是python 3路径库实例或OpenDAP数据集的URL。

格式:基础文件格式(“NETCDF3 4”、“NETCDF3 4_”、“NETCDF3 3_”、“NETCDF3_64BIT_OFFSET”或“NETCDF3 3_64位_DATA”之一)。只有当模式= 'w‘(如果模式= 'r’、'a‘或'r+’的文件格式被自动检测到时,才与此相关。默认的‘netCDF 4’,这意味着使用HDF5 4 API特性将数据存储在一个netCDF文件中。设置format=‘netCDF 4_ HDF5’将创建一个netCDF文件,只使用netCDF 3兼容的API特性。必须根据netCDF 4库重新编译和链接netCDF 3客户端,以读取NETCDF4_CLASSIC格式的文件。“NETCDF3_CLASSIC”是不处理2+ Gb文件的经典netCDF 3文件格式。“NETCDF3_64BIT_OFFSET”是netCDF 3文件格式的64位偏移版本,它完全支持2+ GB文件,但只兼容与netCDF版本3.6.0或更高版本链接的客户端。“NETCDF3_64BIT_DATA”是netCDF 3文件格式的64位数据版本,它支持64位维度大小加上无符号和64位整数数据类型,但只兼容与netCDF版本4.4.0或更高版本链接的客户端。

这是什么意思。

  1. 您需要确定所使用的格式。如果您使用的是NETCDF4,那么您可以忽略它,但如果不使用,则需要指定您的格式。
  2. 您需要确保您传递的文件路径有效。要做到这一点,可以通过在与现有代码相同的目录中创建一个文件,并希望是您的数据,来尝试此测试。

test_file.py

代码语言:javascript
复制
import os

# this gets your current working directory, that is from the perspective of the module that you are running.
where_am_i = os.getcwd()

print(where_am_i)


my_file = "something.3520_nc"

if os.path.exists(my_file):
    print("Yep, I can read that file!")
else:
    print("Nope, the path doesn't reach your file. Go research filepath in python")

my_new_path = os.path.join('/the/absolute/path/to/file', my_file)

if os.path.exists(my_new_path):
    print("Yep, I can read that file!")
else:
    print("Nope, the path doesn't reach your file. Go research filepath in python")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44188476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档