在3D阵列中存储一个周期的向量结果。

问题描述 投票:0回答:1

我想存储每个时间三角区和每个网格点的v_tide结果。我需要存储v_tide的结果,它取决于经纬度和时间。

例如,如果时间向量的尺寸是120x1,纬度是101x121,经度是101x121,那么v_tide矩阵的尺寸就是120x101x121。

northward_velocity = fes.Handler("ocean", "memory", configuration_file)
# eastward_velocity = fes.Handler("ocean", "memory", configuration_file)

# GRID

lats = np.arange(1, 2, 0.5)
lons = np.arange(-79, -78, 0.5)

assert lons.shape == lats.shape
size = lats.size

lons, lats = np.meshgrid(lons, lats)

# DATES

ai, mi, di = 2019, 6, 3
af, mf, df = 2019, 6, 4
dates = datetime(ai, mi, di)
step = timedelta(minutes=60)

# DATENUM

def datenum(dt):
   mdn = dt + timedelta(days = 366)
   frac = (dt - datetime(dt.year,dt.month,dt.day,0,0,0)).seconds/86400.0
   return mdn.toordinal() + frac

dat=np.empty(lons.shape,dtype='datetime64[us]')

while dates < datetime(af, mf, df):
    dat.fill(dates)
    v_tide, _ = northward_velocity.vector(lats.ravel(), lons.ravel(), dat.ravel())
    # u_tide, lp = eastward_velocity.vector(lats.ravel(), lons.ravel(), dates.ravel())
    dates += step
python python-2.7 numpy datetime
1个回答
0
投票

你是否在寻找类似的东西?

import numpy as np

n = 10
time = np.arange(n)

all_data = np.zeros((10, 5, 6))

for i in range(n):

    tide = np.random.rand(5, 6)
    all_data[i] = tide

这是一个非常糟糕和基本的例子。可能有100种方法可以做得更好。但我们对你的数据一无所知,它应该让你开始。

在numpy中使用for循环填充一个2D矩阵。

请阅读以下教程。

https:/numpy.orgdevdocsuserquickstart.html#indexing-slicing-and-iterating。

https:/scipy-lectures.org

© www.soinside.com 2019 - 2024. All rights reserved.