如何找到 2D 数组和 3D 矩阵网格中点之间的最近距离?



我有30天的经度和纬度数组的浮标数据,但是我想找到浮标位置与每天0%海冰浓度之间的最接近距离。海冰浓度数据是一个 3D 矩阵,但空间维度以 x y 坐标为单位,而不是纬度和经度。 我已将所有高于 0% 的浓度转换为 Nan。我现在不确定如何定位海冰的最近纬度+经度点,以达到浮标轨迹上的每个点。

这是我的冰数据集:

尺寸:(时间:363,x:2528,y:2656(

坐标:

y
  • (y( int16 1 2 3 4 5 6 ...2652 2653 2654 2655 2656

  • x
  • (x( int16 1 2 3 4 5 6 ...2524 2525 2526 2527 2528

  • 时间
  • (时间( 日期时间64[ns] 2017-01-01T12:00:00 ...2017-12-30T12:00:00

    longitude (time, y, x( float32 dask.array

    latitude (time, y, x( float32 dask.array

数据变量:

sea_ice_concentration  (time, y, x) float32 dask.array<shape=(363, 2656, 2528), chunksize=(1, 2656, 2528)>
land                   (time, y, x) int8 dask.array<shape=(363, 2656, 2528), chunksize=(1, 2656, 2528)>

你可以尝试使用Djikstras最短路径算法。该链接包含一个 python 示例,这可能是您的起点。

然后,您需要将结果(x,y 维度(转换为纬度/经度。

最新更新