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 变量,因此您必须更改它以加载您感兴趣的变量来自你的文件。