【问题标题】:How to read the coordinate values of a repeated first string in xarray?如何读取xarray中重复的第一个字符串的坐标值?
【发布时间】:2020-11-18 04:27:14
【问题描述】:

xarray 是二维的 (storm*time),坐标为 time、lat 和 lon。我正在尝试获取xarray中第一个重复值的对应坐标值。

换句话说,在xarray中有nan值和b'TD'的重复值。我想获取每个风暴中第一个 b'TD' 的时间、纬度和经度值。

这是一个 xarray 的输出。

数组([[nan,nan,b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD', b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',nan,nan,nan, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南], [南,南,b'TD',b'TD',南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南], [南,南,南,南,南,南,南,南,b'TD',b'TD',b'TD', b'TD',南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南], [b'TD',b'TD',南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南], [南,南,南,南,南,南,南,南,b'TD',b'TD',南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南], [b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD', b'TD',b'TD',b'TD',b'TD',b'TD',nan,nan,nan,nan,b'TD', b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD', b'TD', b'TD', b'TD', b'TD', b'TD', b'TD', b'TD', b'TD'], [b'TD',b'TD',南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南], [b'TD',b'TD',b'TD',b'TD',南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南], [南,南,南,南,南,南,南,南,南,南,南,南, b'TD',b'TD',b'TD',b'TD',南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南], [b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',nan,nan, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南], [b'TD',b'TD',南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南], [b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD',b'TD', 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南], [南,南,南,南,南,南,b'TD',b'TD',南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,b'TD',南,南,南,南,南], [南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,b'TD',b'TD',南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南], [南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,b'TD',b'TD',南, 南,南,南,南,南,南,南,南,南,南,南], [南,南,南,南,南,南,南,南,南,南,南,南,南, 南,南,南,南,南,b'TD',b'TD',b'TD',b'TD',b'TD', b'TD',南,南,南,南,南,南,南,南,南,南,南, 南], [南,南,南,南,南,南,南,南,南,南,南,南,南, 南,b'TD',b'TD',b'TD',b'TD',南,南,南,南,南,南, 南,南,南,南,南,南,南,南,南,南,南,南]], 数据类型=对象) 坐标: 时间(风暴,日期时间) datetime64[ns] 2017-07-05T12:00:00.000039936 ... 2019-09-26T03:00:00.000039936 纬度(风暴,日期时间) float32 11.8 11.880182 12.0 ... 14.5 14.634828 lon (storm, date_time) float32 -35.9 -36.475014 ... -37.6 -38.230053 没有坐标的维度:storm、date_time 属性: long_name:风暴状态 描述:DB - 干扰,TD - 热带低气压,TS... coverage_content_type: 主题分类

【问题讨论】:

    标签: python python-xarray


    【解决方案1】:

    如果没有数据外观的示例,很难知道,但是,以下方法可能有效:

    import xarray as xr
    import numpy as np
    data = np.array(
        [[np.NaN, "AB", "AB"], [np.NaN, np.NaN, "AB"], ["AB", np.NaN, np.NaN]],
        dtype=object
    )
    da = xr.DataArray(data)
    (da == "AB").argmax(dim="dim_1")
    

    da 如下所示:

    <xarray.DataArray (dim_0: 3, dim_1: 3)>
    array([[nan, 'AB', 'AB'],
           [nan, nan, 'AB'],
           ['AB', nan, nan]], dtype=object)
    Dimensions without coordinates: dim_0, dim_1
    

    【讨论】:

      猜你喜欢
      • 2022-12-07
      • 2017-09-25
      • 2017-03-25
      • 2017-03-03
      • 2012-08-03
      • 2015-06-29
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      相关资源
      最近更新 更多