小编Cyn*_* GS的帖子

Lat/lon使用Basemap和maskoceans在"for"循环后混淆

我试图在使用maskoceans时识别被遮罩像素的索引,这样我就可以只调用我目前正在全球范围内的代码中的陆地像素,即使我不关心海洋像素.我尝试了不同的方法,并注意到我的情节看起来很奇怪.最后,我意识到在我的纬度/经度指数中出现了混乱,尽管我实际上并没有碰到它们!这是代码:

import numpy as np
import netCDF4
from datetime import datetime, timedelta
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
import matplotlib.dates as mpldates
import heat_transfer_coeffs
from dew_interface import get_dew
from matplotlib.dates import date2num, num2date
import numpy as np
import netCDF4
import heat_transfer_coeffs as htc
from jug.task import TaskGenerator
import matplotlib.cm as cm
import mpl_toolkits
from mpl_toolkits import basemap
from mpl_toolkits.basemap import Basemap, maskoceans
np.seterr(all='raise')

# set global vars
ifile = netCDF4.Dataset('/Users/myfile.nc', 'r')
times = ifile.variables['time'][:].astype(np.float64)  # hours …
Run Code Online (Sandbox Code Playgroud)

python latitude-longitude netcdf python-2.7 matplotlib-basemap

6
推荐指数
1
解决办法
776
查看次数

在底图中使用 maskoceans 时,世界的一半被遮蔽

我想在绘制 netCDF 数据集中的数据时掩盖海洋。我遵循了这个问题的答案中给出的重要指示。它对半个世界都有效,但不知何故,格林威治以西的一切也都被遮盖了,无论是海洋还是陆地。这是我的代码:

import netCDF4
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import mpl_toolkits
from mpl_toolkits import basemap
from mpl_toolkits.basemap import Basemap, maskoceans

filename = 'myfile.nc'
vmin = 0.
vmax = 1

nc = netCDF4.Dataset(filename, 'r')
data = nc.variables['sum'][:]  
lats_1d = nc.variables['lat'][:]
lons_1d = nc.variables['lon'][:]
lons, lats = np.meshgrid(lons_1d, lats_1d)

labels = ['DJF', 'MAM', 'JJA', 'SON']
cmap = cm.RdYlBu
cmap.set_over('#00FF00')

my_dpi = 96

fig = plt.figure(figsize=(1200/my_dpi, 800./my_dpi))
for season …
Run Code Online (Sandbox Code Playgroud)

python plot netcdf matplotlib-basemap

5
推荐指数
1
解决办法
1773
查看次数

C中的冲突类型但行之间没有明显的区别

我正在尝试运行其他人编写的模型.运行make文件时,我收到有关其中一个功能的以下错误:

ground_layer.c:4391:6: error: conflicting types for 'func_'
real func_(R_fp funk, real *x) 
     ^
ground_layer.c:4360:17: note: previous declaration is here
    extern real func_(U_fp, real *);
Run Code Online (Sandbox Code Playgroud)

我觉得这肯定是一个愚蠢的错误,我的C在这一点上真的生锈了,我只是无法识别错误.我已经尝试删除所有的差异:x在第一个定义中添加一个删除funk,但这些更改似乎只会让事情变得更糟.

有关信息,我在MacOSX 10.11上.这是从定义到结束的代码:

/* Local variables */
    static real a, b;
    static integer j;
    static real x;
    static integer it;
    static real del, tnm, sum, ddel;
    extern real func_(U_fp, real *); 

/* ********************************************************************** */
    b = exp(-(*aa));
    a = 0.f;
    if (*n == 1) {
    r__1 = (a + b) * .5f; …
Run Code Online (Sandbox Code Playgroud)

c

-2
推荐指数
1
解决办法
59
查看次数