小编Ale*_*ico的帖子

使用 python 读取 .nc (netcdf) 文件

我正在尝试学习如何以最简单/最快的方式使用 Python 读取 .nc (netcdf) 文件。我听说它可以用 3 行代码完成,但我真的不知道如何。

我正在运行 MITgcm 数值模型。我试图找到一种简单的方法来可视化输出数据,其方式与 NCview 之类的程序相同,但使用 Python,因此我可以自定义要读取的参数和所有内容。

我找到了这个:

from matplotlib import pyplot as plt
import pandas as pd
import netCDF4
fp='uwstemp.nc'
nc = netCDF4.Dataset(fp)
plt.imshow(nc['Temp'][1,:,0,:])
plt.show()
Run Code Online (Sandbox Code Playgroud)

它大致按照我想要的方式工作,但我想逐字逐句地了解它在做什么。我猜 'Temp' 是我的变量之一,但我不知道如何弄清楚我所有的变量是什么。

特别是,我不明白plt.imshow(nc['Temp'][1,:,0,:])[1,:,0,:] 我试图改变它并且没有编译; 但我不明白它在做什么以及为什么这个数字。

python

6
推荐指数
2
解决办法
2万
查看次数

使用python读取.dat文件

我使用MITgcm进行了模拟,包括内部波浪和水中的粒子移动.对于每个时间步,它的输出看起来像这样:

   -9999 0.0000000000000000000  #Time step (0.00000000000000 seconds)
 1308.2021183321899       -14.999709364517091 # Particle 1 (X,Z)
 1308.2020142528656       -24.999521595698688 # Particle 2 (X,Z)
 1308.2018600072618       -34.999345597877536 # .
 1308.2016593336587       -44.999185870669805 # .
 1308.2014165588744       -54.999046508237896 # .
 1308.2011370083103       -64.998931076248894
 1308.2008269116873       -74.998842490305705
 1308.2004933548124       -84.998782925797485
 1308.2001441978532       -94.998753764086956
 1308.1997879652938       -104.99875557384759
 1308.1994336881464       -114.99878812280582
 1308.1990906721119       -124.99885041328211
 1308.1987681881285       -134.99894073461562
 1308.1984750963150       -144.99905672694641
 1308.1982194336249       -154.99919545294702
 1308.1980080134056       -164.99935347476733
 1308.1978461242272       -174.99952693694112
 1308.1977378137256       -184.99971163492469
 1308.2000000000000       -195.00000000000000
 5232.8000000000002       -15.000038916290352
 5232.8000000000002       -25.000064153684303
 5232.8000000000002       -35.000089286157163
 5232.8000000000002       -45.000114270293523
 5232.8000000000002       -55.000139061712051 # Particle 57
Run Code Online (Sandbox Code Playgroud)

其中-9999 #number是时间步长(以秒为单位),左列是X位置,右列是Z位置(以米为单位); 并且每一行都是不同的粒子(-9999除外).因此,对于每个时间步和每个粒子,我们将拥有大量的线条.

我想绘制粒子位置的时间演变.我该怎么做?如果这太难了,我会对所有粒子位置的不同时间步长的静态图表感到满意.

非常感谢.

编辑1:我试图做的是这个,但我之前没有展示过,因为它远非正确: …

python plot matplotlib

1
推荐指数
1
解决办法
3619
查看次数

标签 统计

python ×2

matplotlib ×1

plot ×1