python-3.x - 如何从 NC 文件中的变量中提取信息?
问题描述
我正在尝试使用此问题中附加的代码从不同的 NC 文件中提取信息,并且代码工作正常,直到它打开一个没有感兴趣变量信息的文件,一旦它尝试提取信息我收到附加的错误。你能帮我解决这个问题吗?
代码
import glob
from netCDF4 import Dataset
import numpy as np
import pandas as pd
date_range=pd.date_range(start="19980101", end="20200930")
df1=pd.DataFrame(0,columns=["precip"],index=date_range)
lat_alecon = 44.8306
lon_alecon = 0.6914
for day in date_range:
print(day)
data = Dataset("gpcp_v01r03_daily_d"+str(day)[0:4]+str(day)[5:7]+str(day)[8:10]+".nc")
prcp=data.variables['precip']
lon_data = data.variables['longitude'][:]
lat_data = data.variables['latitude'][:]
sq_diff_lat = (lat_data - lat_alecon)**2
sq_diff_lon = (lon_data - lon_alecon)**2
min_index_lat = sq_diff_lat.argmin()
min_index_lon = sq_diff_lon.argmin()
df1.loc[str(day)]["precip"] = prcp[0, min_index_lat, min_index_lon]
输出和误差
2001-09-09 00:00:00
2001-09-10 00:00:00
2001-09-11 00:00:00
Traceback (most recent call last):
File "C:\Users\juanj\copernicusData\Precipitation\copernicustable.py", line 43, in <module>
df1.loc[str(day)]["precip"] = prcp[0, min_index_lat, min_index_lon]
File "C:\Users\juanj\anaconda3\lib\site-packages\pandas\core\series.py", line 1000, in __setitem__
self._set_with_engine(key, value)
File "C:\Users\juanj\anaconda3\lib\site-packages\pandas\core\series.py", line 1035, in _set_with_engine
self._values[loc] = value
File "C:\Users\juanj\anaconda3\lib\site-packages\numpy\ma\core.py", line 4383, in __int__
raise MaskError('Cannot convert masked element to a Python int.')
MaskError: Cannot convert masked element to a Python int.
解决方案
推荐阅读
- java - 多线程:线程操作同一对象的不同字段
- amazon-web-services - 无法访问 AWS 私有 API
- c# - C# 私有类 MyColors
- javascript - 不能在反应中使用 useState 或 useEffect 我还有什么?
- python-3.x - 在 ubuntu 20.4 中安装 pgadmin 4 时出错
- excel - Excel的重复乘法公式
- node.js - AutoTask Rest API 队列查询
- flutter - 在上传 onFlutter 之前显示文件选择的结果(我使用 file_picker 插件)
- javascript - 无法在 json axios 请求中打印新行
- node.js - EACCES:权限被拒绝,在 Elastic Beanstalk AWS 上打开“/var/app/current/node_modules/puppeteer/.local-chromium/chrome-linux.zip”