如何在os.path.join中添加物理文件路径?

时间:2019-09-01 13:12:11

标签: jupyter-notebook cartopy

我是Python和Jupyter noteboook的初学者, 我正在尝试使用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()

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试根据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变量,因此您必须更改它以从您的计算机中加载您感兴趣的变量文件。