Ошибка с keep_geom_type с использованием наложения как= «разница», возвращающая коллекцию геометрии, когда keep_geom_type=True? Использование геопанд 0.10.1

#python #pandas #gis #geopandas

Вопрос:

Мое понимание наложения геопанд состоит в том, что, когда я указываю на keep_geom_type=True это, он будет поддерживать левую геометрию как один и тот же тип. Например, левый геодезический кадр содержит полигоны/мультиполигоны, и выполнение наложения гарантирует, что в результате будут получены геометрии, являющиеся полигонами/Мультиполигонами. Однако в моем примере я получаю геометрическую коллекцию для одного из результатов. Я полагаю, что это должно было быть исправлено с помощью pull #1582. Но вот конкретный пример того, как это не работает, и я хотел бы отметить, что я использую geopandas=0.10.1.

Допустим, у меня есть левый фрейм данных в виде left_df

Отображение ГеоДатаФрама для левого ГеоДатаФрама

и мой правый фрейм данных, как right_df

Отображение кадра геоданных для правильного кадра данных

учет различий с помощью наложения

 res_difference = left_df.overlay(right_df, 
                                 how='difference',
                                 keep_geom_type=True,
                                 make_valid=True)
 

где res_difference показывает

Геодезический кадр в результате наложения

а геометрия в индексе 4232-это коллекция геометрии, когда она должна быть мультиполигоном.

Используя sjoin, я смог обнаружить, что 4232 (синий мультиполигон) пересекается с 4182 и 4184 (оранжевые полигоны), и построить пересекающиеся фигуры.

Пересекающиеся многоугольники, где синий-4232, а оранжевый-4182 и 4184

Строка строки отображается, потому что они имеют одну и ту же границу с отличиями, которые я вынул из полигонов ранее, где вы можете видеть реку, как вырезы. Я думаю, что есть ошибка, но было бы интересно посмотреть, что скажут люди, и хотелось бы знать, является ли это ошибкой?

Комментарии:

1. Это действительно похоже на настоящий жучок. Можете ли вы сообщить об этом github.com/geopandas/geopandas/issues пожалуйста? В идеале с образцом данных для воспроизведения проблемы.

2. @martinfleis конечно, спасибо за комментарии!