Есть ли какая-нибудь команда, которая даст мне альфа-форму на основе многоточечной геометрии?Python

Программы на Python
Anonymous
Есть ли какая-нибудь команда, которая даст мне альфа-форму на основе многоточечной геометрии?

Сообщение Anonymous »

Добрый день всем!
У меня есть кластеризованные геоданные, геометрия которых состоит из нескольких точек. Я могу создавать выпуклые оболочки, используя метод geopanda convex_hull. Но почему-то мне не удалось найти подобную команду для создания альфа-формы. Или что-то, что даст мне четкую границу вокруг всех точек в данном кластере.
Для демонстративных целей я приведу здесь код. Код загружает образцы данных из Open Street Map, использует метод HDBSCAN для кластеризации точек, а затем создает выпуклую оболочку для каждого кластера.

Код: Выделить всё

# Import all necessary packages

import pandas as pd
import geopandas as gpd
import osmnx as ox
from hdbscan import HDBSCAN
import numpy as np

# Get the sample data from OSM
tags={"amenity": 'restaurant'}

place_name = 'San Diego'

sample = ox.geometries_from_place(
place_name, tags={"amenity": ['restaurant', 'bar']}
)[["name", "geometry"]]

# Change crs to calculate centroids

sample_albers = sample.to_crs(epsg=3311) # This is only the sample data. CRS might be wrong, but it is not the main focus here
sample_albers['point'] = sample_albers.centroid
sample_albers.set_geometry('point', inplace = True)

# Create lat and lon to cluster the data
lon_lat = np.column_stack((sample_albers['point'].x, sample_albers['point'].y))

# Apply HDBSCAN, get labels directly and dissolve the sample data by labels

labels = HDBSCAN(min_cluster_size=10).fit(lon_lat).labels_

clusters = sample_albers[['point']].dissolve(by=labels)

# Creating Convex Hulls
clusters['convex_hull'] = clusters.convex_hull

Основной вопрос касается последней команды. Я хочу создать альфа-форму (с параметром predifend альфа) аналогичным образом, где у меня будут многоугольники, как в случае с convex_hull.
Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/691 ... int-geomet

Вернуться в «Python»