Я пытаюсь инвертировать карту.
import geopandas as gpd
import geoplot as gplt
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
denmark = world[world.name == 'Denmark']
Я хотел бы выяснить границы "данных Дании", к которым я могу создать рамку GeoDataFrame в форме рамки, которая охватывает всю Данию.
Затем я бы пересек это с "Данией", чтобы получить форму всего, что не является Данией, которое я позже смогу использовать для покрытия частей карты, которые я не хочу показывать.
Я пытался просмотреть GeoDataFrame, чтобы создать это поле вручную, но это не работает.
cords = [c3
for c in mapping(denmark['geometry'])['features']
for c2 in c['geometry']['coordinates']
for c3 in c2
]
xcords = [x[0] for x in cords if isinstance(x[0], float)]
ycords = [y[1] for y in cords if isinstance(y[1], float)]
w3 = gpd.GeoDataFrame(
[Polygon([[max(xcords), max(ycords)],
[max(xcords), min(ycords)],
[min(xcords), min(ycords)],
[min(xcords), max(ycords)]
])],
columns = ['geometry'],
geometry='geometry')
Есть ли простой и быстрый способ получить эту коробку?
Или есть способ инвертировать GeoDataFrame?