os.path.join如何添加物理文件路径?
How to add a physical file path to os.path.join?
我是 Python 和 Jupyter 笔记本的初学者,
我正在尝试使用 Cartopy 绘制我从 NOAA 获得的数据。
我得到如下代码,
我遇到的问题是 "os.path.join" 部分,
因为我的数据集保存在我的便携式光盘中。
我尝试使用物理路径并将其添加到我找到的代码中。
但它向我展示了 "KeyError: '/Elements'"
物理路径是:
"/Elements/Capstone_Project_Data/NOAA/air.mon.amon.nc"
代码如下:
任何建议和帮助将不胜感激。
非常感谢!
import os
import matplotlib.pyplot as plt
from netCDF4 import Dataset as netcdf_dataset
import numpy as np
from cartopy import config
import cartopy.crs as ccrs
# get the path of the file. It can be found in the repo data directory.
fname = os.path.join(config["/Elements"],'/Capstone_Project_Data','/NOAA',
#'/Elements','/Capstone_Project_Data','/NOAA',
'air.mon.amon.nc'
)
dataset = netcdf_dataset(fname)
sst = dataset.variables['sst'][0, :, :]
lats = dataset.variables['lat'][:]
lons = dataset.variables['lon'][:]
ax = plt.axes(projection=ccrs.PlateCarree())
plt.contourf(lons, lats, sst, 60,
transform=ccrs.PlateCarree())
ax.coastlines()
plt.show()
您似乎在尝试改编 Cartopy 文档中的这个示例? https://scitools.org.uk/cartopy/docs/latest/matplotlib/advanced_plotting.html?highlight=config#contour-plots
在该示例中,Cartopy 的 config
字典用于确定某些标准样本数据的位置。如果您提供自己的数据,那么根本不需要使用 config
字典,您可以直接指定文件的路径,您甚至可能根本不需要 os.path.join
:
# Correct this if your path is different
fname = "/Elements/Capstone_Project_Data/NOAA/air.mon.mean.nc"
dataset = netcdf_dataset(fname)
(请注意,如果您使用 os.path.join
,它会为您插入 /
,因此他们不需要为每个元素添加前缀。)
示例的其余部分可能无法运行,因为在编写时它正在寻找 netcdf 文件中的 sst
变量,因此您必须更改它以加载您感兴趣的变量来自你的文件。
我是 Python 和 Jupyter 笔记本的初学者, 我正在尝试使用 Cartopy 绘制我从 NOAA 获得的数据。 我得到如下代码, 我遇到的问题是 "os.path.join" 部分, 因为我的数据集保存在我的便携式光盘中。 我尝试使用物理路径并将其添加到我找到的代码中。 但它向我展示了 "KeyError: '/Elements'" 物理路径是: "/Elements/Capstone_Project_Data/NOAA/air.mon.amon.nc"
代码如下: 任何建议和帮助将不胜感激。 非常感谢!
import os
import matplotlib.pyplot as plt
from netCDF4 import Dataset as netcdf_dataset
import numpy as np
from cartopy import config
import cartopy.crs as ccrs
# get the path of the file. It can be found in the repo data directory.
fname = os.path.join(config["/Elements"],'/Capstone_Project_Data','/NOAA',
#'/Elements','/Capstone_Project_Data','/NOAA',
'air.mon.amon.nc'
)
dataset = netcdf_dataset(fname)
sst = dataset.variables['sst'][0, :, :]
lats = dataset.variables['lat'][:]
lons = dataset.variables['lon'][:]
ax = plt.axes(projection=ccrs.PlateCarree())
plt.contourf(lons, lats, sst, 60,
transform=ccrs.PlateCarree())
ax.coastlines()
plt.show()
您似乎在尝试改编 Cartopy 文档中的这个示例? https://scitools.org.uk/cartopy/docs/latest/matplotlib/advanced_plotting.html?highlight=config#contour-plots
在该示例中,Cartopy 的 config
字典用于确定某些标准样本数据的位置。如果您提供自己的数据,那么根本不需要使用 config
字典,您可以直接指定文件的路径,您甚至可能根本不需要 os.path.join
:
# Correct this if your path is different
fname = "/Elements/Capstone_Project_Data/NOAA/air.mon.mean.nc"
dataset = netcdf_dataset(fname)
(请注意,如果您使用 os.path.join
,它会为您插入 /
,因此他们不需要为每个元素添加前缀。)
示例的其余部分可能无法运行,因为在编写时它正在寻找 netcdf 文件中的 sst
变量,因此您必须更改它以加载您感兴趣的变量来自你的文件。