python - 如何找到 2D 数组和 3D 矩阵网格中的点之间的最近距离?
问题描述
我有 30 天的经度和纬度数组浮标数据,但是我想找到浮标位置与每天 0% 海冰浓度之间的最近距离。海冰浓度数据是一个 3D 矩阵,但是空间维度是 xy 坐标而不是纬度和经度。我已将所有高于 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
时间(时间) datetime64[ns] 2017-01-01T12:00:00 ... 2017-12-30T12:00:00
经度(时间,y,x)float32 dask.array
纬度(时间,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 维度)转换为纬度/经度。
推荐阅读
- r - 从向量中的数据框中获取变量名称
- excel - 使用 Excel VBA 转换列中的文本格式数据
- vue.js - 在 vue.js 中的组件之间共享数据
- html - 如何通过python从HTML表中按颜色删除列
- javascript - 名称已存在正则表达式
- r - 由于一个数据集中的列较长,合并会附加额外的值?
- jquery - Bootstrap 4 + 同位素
- sql-server - 如何从计算机 A 可以连接而计算机 B 不能连接的远程计算机连接到 SQL Server
- javascript - 如何触发 HTML 选择(下拉)的更改事件?
- listview - xamarin中的列表视图选定项