2017-05-25 92 views
2

我想netCDF4(使用畅达)来读取.NC文件,但我的文件看起来 这样的:something.3520_nc阅读.NC文件被Python

  1. 做什么用的这个,它仍然是.nc文件对不对?我应该重命名吗?或者在我下载它之后,将它保存在一些特殊的地方是否重要?

  2. 任何人都可以告诉我,如何开始代码?我发现了一些关于这个问题的网页,但它不适合我。我有Windows 10,使用my_root环境的conda,我有netCDF4软件包。

我试着写:

from netCDF4 import Dataset 
import numpy as np 

f = Dataset('test.nc') 

我建议,而不是使用numpy的pylab,但是我没有那个包,我不知道,如何安装它。我与第三行的争斗最多,因为我访问的每一页都以不同的方式写了它。

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

+1

文件名不相关的内容。它们通常是相互关联的,但2 – njzk2

+0

之间并没有很强的联系。另外,除非需要绘制东西,否则不要使用pylab(matplotlib的一部分)。 –

+0

我推荐你在阅读一些教程之前,先来看看这样的通用问题。 –

回答

2

如果你去看看你的包裹的documentation,你会发现一个有用的页面here

所以你找到

静态方法

高清__init __(自我,文件名,模式= “R”,痛打=真,无盘=假,坚持=假keepweakref =假格式= 'NETCDF4') 数据集构造函数。

它需要这些参数。我只保留重要的这里。去阅读其余的页面

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

格式:底层文件格式( 'NETCDF4' 中的一个, 'NETCDF4_CLASSIC', 'NETCDF3_CLASSIC', 'NETCDF3_64BIT_OFFSET' 或 'NETCDF3_64BIT_DATA' 只有相关的,如果模式= 'W'(如果模式= 'R', ''或'r +'会自动检测到文件格式)默认的'NETCDF4',这意味着数据存储在一个HDF5文件中,使用netCDF 4 API特性设置格式='NETCDF4_CLASSIC'将创建一个HDF5文件,使用只有netCDF 3兼容的API功能,netCDF 3客户端必须重新编译并链接到netCDF 4库以读取NETCDF4_CLASSIC格式的文件。'NETCDF3_CLASSIC'是经典的netCDF 3文件格式,它不处理2+ Gb文件。'NETCDF3_64BIT_OFFSET'是netCDF 3文件格式的64位偏移版本,完全支持2 GB文件,但仅与与netCDF vers链接的客户端兼容离子3.6.0或更高版本。 'NETCDF3_64BIT_DATA'是netCDF 3文件格式的64位数据版本,它支持64位维度大小以及无符号和64位整数数据类型,但仅与针对netCDF 4.4.0或更高版本链接的客户端兼容。

那么,这是什么意思。

  1. 您需要确定您使用的是什么格式。如果你使用NETCDF4那么你可以忽略这个,但是如果没有,你需要指定你的格式。

  2. 您需要确保您传递的文件路径有效。要做到这一点,通过在同一个目录中的文件和您现有的代码试试这个测试,并希望您的数据

test_file.py

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") 
+0

它帮助,谢谢。我刚刚复制该文件tu我的用户帐户os.path.exists(my_file)给我yep。我希望我现在能工作。 :) – Leif