1
\ begingroup美元

我有一个2 d xarray数据集和我有几个nan值的数据集。这些nan值需要充满最近的non-nan值的二维数组。我怎么做呢?

我试图让我的数据符合grid_spec文件读取的地球系统模型。的土地上有矛盾点是在迫使数据和grid_spec文件导致的爆炸模型。

\ endgroup美元
6
  • 2
    \ begingroup美元 你能把代码你迄今为止吗? \ endgroup美元
    - - - - - -Craeft
    2020年4月2日0:31
  • 1
    \ begingroup美元 @ManmeetSIngh我认为这将在这里而不是获得更好的跟踪。 \ endgroup美元
    - - - - - -gansub
    2020年4月2日1:01
  • 1
    \ begingroup美元 查找Numpy .isnan(<元素或数组>)。 \ endgroup美元
    - - - - - -user14859
    2020年4月3日在楼梯口
  • \ begingroup美元 或者试着用一个蒙面的数组(面具南) \ endgroup美元
    - - - - - -user14859
    2020年4月3日在9:06
  • 1
    \ begingroup美元 你如何定义距离? \ endgroup美元
    - - - - - -斯宾塞
    2020年4月3日活动

2答案2

2
\ begingroup美元

如果我是你,我就会排除NaN值,然后对结果执行网格间隔不规则数据。

在Python中已经有工具来执行这个SciPy和使用图书馆

https://scipy-cookbook.readthedocs.io/items/Matplotlib_Gridding_irregularly_spaced_data.html

但请文档一步你做什么和为什么。不包括数据总是……解释数据。

\ endgroup美元
    1
    \ begingroup美元

    我能够通过以下功能

    def fill_mismatch (ds_grid_spec ds_data): ds_data_o = ds_data.copy()数= 0.0我的范围(ds_grid_spec.shape [0]): j的范围(ds_grid_spec.shape[1]):如果ds_grid_spec (i, j)。值> 0.0,(不是ds_data (i, j) > 0.0):数=数+ 1.0 fill_miss2d (ds_data_o, i, j)如果ds_grid_spec (i, j)。值= = 0.0,(不是ds_data (i, j)。值= = 0.0):数=数+ 1.0 ds_data_o (i, j) = 0.0返回ds_data_o def fill_miss2d (ds, lat_i lon_j): #拳头循环周期= 1时真的:bl_i, bl_j = lat_i -周期,lon_j——周期tr_i tr_j = lat_i +循环,lon_j +周期#左下角我如果bl_i < 0: bl_i = 0 #左下角j如果bl_j < 0: bl_j = 0 #右上方我如果tr_i > ds.lat。形状[0]1:tr_i = ds.lat。形状[0]1 #如果tr_j > ds.lon右上方j。形状[0]1:tr_j = ds.lon。形状[0]1 lats_i = np.arange (bl_i, tr_i) lons_j = np.arange lats_i (lats_i_idx bl_j tr_j):在lons_j lons_j_idx:如果ds (lats_i_idx, lons_j_idx) > 0.0: ds [lat_i lon_j] = ds (lats_i_idx lons_j_idx]回报周期=周期+ 1

    grid_spec(最常用的网格文件交换模块化海洋模型妈妈)有一个变量AREA_LND soiltype和文件。数控变量soiltype。这两个变量有0.0网格点归类为海洋。因此我们不需要使用fill_miss2d发生失配和海洋在哪里遇到grid_spec,但是土地是在soiltype。而我们直接填补soiltype网格点为0.0

    可以找到完整的笔记本https://github.com/manmeet3591/python_class/blob/master/xarray_tutorial/grid_soiltype.ipynb

    \ endgroup美元

      你的答案

      通过点击“发布你的答案”,你同意我们服务条款并承认您已阅读并理解我们的隐私政策的行为准则

      不是你要找的答案?浏览其他问题标记问你自己的问题