Как исправить ‘NameError: name ‘cartopy’ не определено’, в графике о температуре поверхности моря в python?

#python #python-3.x #python-2.7 #sst

#python #python-3.x #python-2.7 #sst

Вопрос:

Я действительно новичок в python, и мне нужно построить сетку данных о температуре поверхности моря (sst) на python, но она продолжает выдавать ошибку.

Я использую тот же код в другом ноутбуке, и он работает отлично.

 ###SST CÓDIGO PLOT
import numpy as np                                                                     
import matplotlib.pyplot as plt                                                    
from numpy import pi                                                                
from mpl_toolkits.basemap import Basemap                                               
from netCDF4 import Dataset                                                               
import pandas as pd                                                               
from scipy import stats                                                           
import seaborn as sns                                                                
import xarray as xr                                                                 
import cartopy.crs as ccrs                                                          
import os                                                                           
from netCDF4 import Dataset as netcdf_dataset                                          
from cartopy import config                                                                       
import statistics                                                                         
import glob                                                                         
import seaborn as sns                                                                                                                          

ds = xr.open_dataset('/home/mayna/Downloads/d86/20190327010000-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_20190327_010000-v02.0-fv01.0.nc')                                                                              

plt.figure(figsize=(8,4))                                                            
ax = plt.axes(projection=ccrs.PlateCarree())                                         
ax.add_feature(cartopy.feature.BORDERS, linestyle='-', linewidth=0.25)                 
ax.coastlines(linewidth=0.25)                                                        

ds['sea_surface_temperature'][0,:,:].plot.contourf(levels=20, ax=ax, transform=ccrs.PlateCarree(),cmap='coolwarm')                                                                                                                        
  

В нем говорится, что ошибка находится в строке «ax.add_feature (cartopy.feature.ГРАНИЦЫ, linestyle =’-‘, ширина линии = 0.25)», что «ошибка имени: имя ‘картопия’ не определено».
Как вы думаете, в чем проблема?
PS: Я знаю, что использую много библиотек, которые не нужны

Комментарии:

1. Вы не импортировали cartopy .

2. Вы импортируете cartopy.crs и импортируете cartopy.config , но вам нужно будет импортировать feature или использовать import cartopy квалифицированную ссылку, как у вас есть в настоящее время

Ответ №1:

Вы, кажется, никогда не определяли cartopy . Возможно import cartopy , вверху это решит вашу проблему.

Ответ №2:

Ошибка имени в python означает, что определенный атрибут / метод не импортирован в программу. В коде вы используете cartopy.crs, cartopy.config и cartopy.features.Граница, но только первые два импортируются через ваши утверждения

 import cartopy.crs as crash
  

и

 from cartopy import config
  

Итак, для функций.Граница, вы либо делаете

 import cartopy 
  

Или

 from cartopy import features.Border #use just features.Border in that line if you are doing this.
  

Ответ №3:

Что касается меня, я установил пакет cartopy в jupyter, но все равно он показывал ошибку, что картография не определена.(Я строил графики с помощью cartopy.ccrs для стереографических графиков)

решение: перед импортом и выполнением cartopy.ccrs просто выполните ‘import cartopy’ в самой первой строке, а затем запустите коды.Это сработало для меня

Комментарии:

1. Добро пожаловать в StackOverflow! На этот вопрос уже был дан ответ, и ваш ответ не содержит ничего нового. Если вы считаете, что можете дать лучший ответ, пожалуйста, дополните свой ответ подробностями exra.