我有一些HDF5格式的原始每日海风数据,想知道如何使用Numpy将它们转换为风速和风向
原始的每日海风数据存储在两个HDF5文件中:u.HDF5和v.HDF5。每个HDF5文件包含三个内容:纬度、经度、u(或v),u(或v)数组为3D,0维表示小时(0:00-24:00)。我需要做的是将u和v阵列每小时切片(即0:00-1:00),然后使用以下代码将它们转换为风速和风向:
#!/usr/bin/python2
import os
import sys
import math
def d2r(degree):
radian = degree * math.pi / 180.0
return (radian)
def r2d(radian):
degree = radian * 180.0 / math.pi
return (degree)
def uv2sd(u,v):
s = math.sqrt((u*u)+(v*v))
radian = math.atan2(u,v)
degree = r2d(radian)
if degree < 0:
degree = 360 + degree
return (s,d)
之后,我需要创建另一个HDF5文件,其中包含纬度、经度和每小时风速和风向(s,d)信息。在
非常感谢!在
我尝试使用下面的代码,但没有成功:
^{pr2}$
您希望脚本返回数组或列表的平方根,但这是不可能的,除非您有一个元素数组或列表!在
例如:
这行不通。您将得到相同的错误:
^{pr2}$必须为数组的每个元素调用
math.sqrt
函数。。。例如:现在你将得到你想要的:
如果对函数
uv2sd
做了一些小的更改,代码应该可以工作:struct模块用于操作二进制压缩数据。
您可以在外部文件中读写字符数组(即字符串),并在内部将它们转换为python存储类型。
您所要做的就是基于理解HDF5的struct创建一个函数或类
例如
相关问题 更多 >
编程相关推荐