确定网格化数据的坐标以查找对象的长度

时间:2017-05-11 18:20:44

标签: python arrays distance scikit-image ndimage

我正在识别浮点值在二维numpy数组中大于某个阈值的对象。然后我需要确定每个物体长轴的长度,并确保物体的长轴长度满足一定的公里数阈值。

我可以使用scipy.ndimage.measurements.label模块在我的2-D numpy数组中识别我想要的对象。然后,我可以使用scikit-image regionprops模块(skimage.measure.regionprops)确定每个对象主轴的长度。

但是,我不确定对象长度的单位是什么,因为2-D numpy数组本身没有关于坐标的任何信息。 2-D numpy数组本质上是一个映射到地球表面上的子域的数据集。另外,我还有两个与我的数据数组大小相同的2-D numpy数组,其中一个数组包含每个网格点的纬度坐标,另一个数组包含经度坐标。我相信我不知何故需要使用lat / lon数组来确定我的对象主轴的长度,但我不知道如何。

这是我到目前为止的代码:

from scipy import ndimage
from skimage.measure import regionprops
import numpy as np

# 2-D numpy array with data.
data

# 2-D numpy arrays with latitude and longitude coordinates that are same grid as data array.
lat
lon

# Allow label module to have diagonal object matching.
struct = np.ones((3,3), dtype=bool)

# Find objects in data array.
labl, n_features = ndimage.measurements.label(data>=35,structure=struct)

# Find major axis length in labl array for each object found.
props = regionprops(labl)
# Loop through each object.
for p in props:

    # Find object's major axis length.
    length = p.major_axis_length

    (some code to compute major axis length in kilometers?)

    if length < 125: #(125 is in km)
        (keep object)

非常感谢任何帮助。谢谢!

0 个答案:

没有答案