我正在尝试对netCDF文件中的大型数据集应用质量控制过滤器。在netCDF中有一个称为nstorms的维度,其中有lat、lon、date和其他与每个nstorm值相关联的变量(其中nstorms的范围从0到230348)。为了应用质量控制,我目前正在使用带有if和else语句的for循环:
for i in range(len(lowerBound)):
if min37[i] >= lowerBound[i] and min37[i] < upperBound[i]:
nstorms_bad = i
print nstorms_bad
else:
nstorms_good = #everything else - all the other 'i' values
print nstorms_good
#Put values for nstorms_good into an array
lowerBound的大小与nstorms相同,并且由于nstorms和lowerBound都从零开始,因此为nstorms_bad = i
返回的值与netCDF中的坏数据匹配(即,为nstorms_bad返回的前几个值是306、408、486,这些值与netCDF文件中与nstorms 306、408和486相关联的错误数据匹配)。你知道吗
我遇到的问题是,我需要好的nstorms值,我需要将它们放入一个数组中,这样我就可以返回到netCDF文件中,并将nstorms的每个值与其各自的变量数据(lat、lon、time等)关联起来。如果我设置nstorms_good = i
,那么我只得到一个所有i
值的列表,而不应用任何质量控制?定义nstorms_good
以便它包含所有i
值(因为使用i
与实际的nstorms匹配)的最佳方法是什么?如何将所有这些值放入一个数组中?将nstorms_bad
设置为数组,然后为nstorms_good
创建一个包含数字0到230348的新数组,然后比较这两个数组是否更容易?你知道吗
你似乎想要的是两个列表,其中一个有你的风暴数据列表中与坏风暴相关的所有指数,另一个是与好风暴相关的指数。这就像
现在您可以在这两个列表上循环并获得适当的引用。你知道吗
看起来您需要稍后对所有
nstorms_good
进行迭代。因此,任何容器都可以:list
、dict
甚至set
。你知道吗使用
dict
将允许您存储有关每个nstorms_good
的一些附加数据,但由于您确实只需要索引,因此我将使用list:相关问题 更多 >
编程相关推荐