Определить координаты на сеточных данных, чтобы найти длины объектов
Я нахожусь в процессе идентификации объектов, чье значение с плавающей запятой превышает определенный порог в двумерном массиве. Затем мне нужно определить длину главной оси каждого объекта и убедиться, что длина главной оси объекта удовлетворяет определенному порогу в километрах.
Я могу определить нужные объекты в моем двумерном массиве с помощью модуля scipy.ndimage.measurements.label. Затем я могу определить длину главной оси каждого объекта с помощью модуля regionprops scikit-image (skimage.measure.regionprops).
Тем не менее, я не уверен, что единицы измерения длины объекта, поскольку двумерный массив сам по себе не имеет никакой информации о координатах. 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)
Любая помощь будет принята с благодарностью. Спасибо!