0
\ begingroup美元

我与一群大学netCDF文件,因此for循环。其全球覆盖率数据,因为地球不是平的,我们需要重量数据的像素/网状细胞,以确保我们有一个准确的值均值(否则某些点占用更多的区域即两极附近,比他们应该将贡献更多的均值)。我试图做的是第一个重量每个像素,然后得到变量的空间平均,这里被称为“var”。这是我的代码:

在os.listdir文件名(indir): # indir = /道路/ / directoy input_file = os.path。output_file = os.path加入(indir文件名)。加入(outdir文件名)# outdir = /道路/ / directoy ds = xr.open_dataset (input_file) R = 6.371 e6 #地球半径m dphi = np.deg2rad(2.5) #纬度之间的度,在元数据的ds dlambda = np.deg2rad(2.5) #之间的度经度dlat = R * dphi * xr.ones_like (ds.var.lon) dlon = R * dlambda * np.cos (np.deg2rad (ds.var.lat)) cell_area = dlon * dlat da_area = cell_area.broadcast_like (ds.var) #到相同形状ds total_area = da_area.sum([“纬度”、“朗”])ds_weighted = ((ds (“var”) * da_area) / total_area) fldmean = ds_weighted。意味着(暗=“纬度”、“朗”,skipna = True) fldmean.to_netcdf (output_file) ds.close ()

其基于这个例子。我也试图保持这里的名称尽可能简单,因此他们很通用。

我得不到任何的错误当我运行它,和它保存得很好,我需要它。由此产生的时间序列图也看起来不错,但值都很小,像2.4743 e-6,我期待5和15之间,所以它的许多大小。对于我的生活,我看不出有什么不同的例子的链接。我猜它必须与分歧让这么小的数量,但是它也有其做的链接以及一些逻辑意义。什么好主意吗?

脚注:这也是“面积加权”而不是“纬度加权”,这是因为我想做一个比较的fldmean函数在CDO(气候数据运营商),它使用面积权重。我还是让我的头如果太多的区别,但我仍然想保持尽可能接近这个操作符!

新的因素
Learn4life这个网站是一个新的贡献者。照顾在要求澄清,评论和回答。看看我们的行为准则
\ endgroup美元

    0

    你的答案

    Learn4life是一个新的贡献。很好,看看我们的行为准则

    通过点击“发布你的答案”,你同意我们服务条款,隐私政策饼干的政策

    浏览其他问题标记问你自己的问题