我有一个具有不规则间隔纬度和经度坐标的 xarray 数据集。我的目标是在最接近某个纬度/经度的点处找到变量的值。
由于x和y尺寸不是纬度/经度值,因此ds.sel()在这种情况下似乎不能单独使用该方法。是否有一种以 xarray 为中心的方法来通过参考多维纬度/经度维度来定位最接近所需纬度/经度的点?例如,我想提取最接近lat=21.2和的 SPEED 值lon=-122.68。
下面是一个示例数据集...
lats = np.array([[21.138 , 21.14499, 21.15197, 21.15894, 21.16591],
[21.16287, 21.16986, 21.17684, 21.18382, 21.19079],
[21.18775, 21.19474, 21.20172, 21.2087 , 21.21568],
[21.21262, 21.21962, 21.22661, 21.23359, 21.24056],
[21.2375 , 21.2445 , 21.25149, 21.25848, 21.26545]])
lons = np.array([[-122.72 , -122.69333, -122.66666, -122.63999, -122.61331],
[-122.7275 , -122.70082, -122.67415, -122.64746, -122.62078],
[-122.735 , -122.70832, -122.68163, -122.65494, -122.62825],
[-122.7425 , -122.71582, -122.68912, -122.66243, -122.63573],
[-122.75001, -122.72332, -122.69662, -122.66992, …Run Code Online (Sandbox Code Playgroud) 您如何在 Cartopy 中绘制美国县边界?
绘制州和国家边界非常简单
ax.add_feature(cfeature.BORDERS.with_scale('50m'))
ax.add_feature(cfeature.STATES.with_scale('50m'))
Run Code Online (Sandbox Code Playgroud)
但我似乎找不到类似的方法来添加县界。这是 Basemap 的优点之一。
我使用了numpy的arange函数来制作以下范围:
a = n.arange(0,5,1/2)
Run Code Online (Sandbox Code Playgroud)
这个变量本身很好用,但是当我尝试将它放在我的脚本中的任何地方时,我得到一个错误
ZeroDivisionError:除以零
我正在下载像satellite_image这样的卫星图片 http://home.chpc.utah.edu/~u0553130/NASA_SPoRT_VIIRS_Images/VIIRS_11um_20150104_1834_UTC.gif 因为有些图像大多是黑色的,就像这个,我不想保存它.
如何使用python检查图像是否超过50%黑色?
问题:有没有办法检查颜色条是否已经存在?
我正在制作许多带有循环的情节.问题是每次迭代都会绘制颜色条!
如果我可以确定颜色条是否存在,那么我可以将颜色条功能放在if语句中.
if cb_exists:
# do nothing
else:
plt.colorbar() #draw the colorbar
Run Code Online (Sandbox Code Playgroud)
如果我使用多处理来制作数字,是否可以防止添加多个颜色条?
import numpy as np
import matplotlib.pyplot as plt
import multiprocessing
def plot(number):
a = np.random.random([5,5])*number
plt.pcolormesh(a)
plt.colorbar()
plt.savefig('this_'+str(number))
# I want to make a 50 plots
some_list = range(0,50)
num_proc = 5
p = multiprocessing.Pool(num_proc)
temps = p.map(plot, some_list)
Run Code Online (Sandbox Code Playgroud)
我知道在绘制下一次迭代之前我可以用plt.clf()和plt.cla()清除这个图.但是,我在我的底图图层上有数据我不想重新绘制(这会增加创建绘图所需的时间).所以,如果我可以删除颜色条并添加一个新颜色,我会节省一些时间.
我试图从许多 HDF5 文件中提取值并存储在列表中。
import h5py
h = [h5py.File('filenum_%s.h5' % (n),'r')['key'][10][10] for n in range(100)]
Run Code Online (Sandbox Code Playgroud)
此列表推导式包含来自 HDF5 文件filenum0.h5- 'key' 数组中网格点 (10, 10) 处的值filenum99.h5。
它可以工作,除了它在第 50 个元素附近停止并出现错误:
IOError: unable to open file (File accessibilty: Unable to open file)
即使我知道该文件存在并且如果我没有打开许多其他文件也可以打开它。我想我收到错误是因为打开了太多文件。
有没有办法关闭此列表理解中的文件?或者,有没有更有效的方法来构建我想要的列表?
如果我有一个带有子图的 matplotlib 图形,是否可以有多个子图suptitle?(有点像常规标题的 loc='center'、loc='left' 和 loc='right' 参数)。
在下面的示例中, 的多个实例suptitle被覆盖,并且图中仅显示最后一个字幕。
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1,2)
plt.suptitle('center title')
plt.suptitle('right title', x=.8)
plt.suptitle('left title', x=.2)
Run Code Online (Sandbox Code Playgroud)
我正在使用python底图绘制美国大湖区周围的海岸线。当我增加绘制为“ i”(中间)的地图的分辨率时,它会绘制许多小的水景。有没有办法只绘制海洋和大湖周围的海岸线,而不是绘制所有小的水景?