Проблемы с получением пересекающейся строки с использованием GeoPandasPython

Программы на Python
Ответить
Anonymous
 Проблемы с получением пересекающейся строки с использованием GeoPandas

Сообщение Anonymous »

У меня возникла проблема с получением строки пересечения с многоугольником с помощью GeoPandas. Строка линий является самопересекающейся, что и вызывает мои проблемы.
Линия, пересекающая многоугольник:
Изображение

Учитывая следующий код:

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

import geopandas as gp
from shapely.geometry import LineString, Polygon

# Draw a polygon that is 100 x 100 units, starting at coordinates 0, 0
polygon = Polygon([(50, 0), (50, 100), (100, 100), (100, 0)])

# Convert the polygon to a geodataframe
polygon = gp.GeoDataFrame(index=[0], crs='EPSG:4326', geometry=[polygon])

# Draw a horizontal line that starts at coordinates 50, 0 and is 200 units long
line = LineString([(0, 50), (75, 50), (70, 35), (55, 40), (250, 50)])

# Convert the line to a geodataframe
line = gp.GeoDataFrame(index=[0], crs='EPSG:4326', geometry=[line])

print(line)

# Intersect the line with the polygon
intersection = line.intersection(polygon)

print(intersection)
У меня есть следующие результаты:

0 LINESTRING (0.00000 50.00000, 75.00000 50.0000...
0 МНОГОСТРОЧНАЯ СТРОКА ((50.00000 50.00000, 75.00000 ...

После пересечения мне возвращается мультилиния вместо строки. Линия разделяется многоугольником (желательно), но также разделяется. разбивается на несколько строк, где оно самопересекается (нежелательно).
Я безуспешно пытался повторно соединить многострочную строку с помощью унарного объединения.
Я не уверен, что еще я могу сделать, чтобы сохранить только часть линии, содержащуюся в многоугольнике, как одну линию. Есть мысли, как это можно сделать?>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -geopandas
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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