Можно ли добавить переменный буфер на основе атрибута в geo pandas? - PullRequest
2 голосов
/ 11 февраля 2020

У меня есть следующие GeoSeries:

print(zambia_grid)

voltage_kV, geometry, buffer_value                                                             
88.0,        MULTILINESTRING ((662448.559 8288872.590, 6625...,  660.0   
132.0,       MULTILINESTRING ((662368.932 8288816.909, 6623...,  142.0   
220.0,       MULTILINESTRING ((632159.980 8609158.729, 6321...,  990.0   
330.0,       MULTILINESTRING ((662612.310 8288970.288, 6626...,  220.0 

Я попытался создать буфер:

zambia_grid_buffer = zambia_grid.buffer(distance = zambia_grid['buffer_value'])

Однако когда я пытаюсь построить это, я получаю следующую ошибку:

Объект 'Polygon' не может быть подписан

... возможно ли иметь различные буферы в geo pandas?

1 Ответ

2 голосов
/ 11 февраля 2020

Начиная с Geo Pandas версии 0.5, вы должны иметь возможность передать массив серий значений в buffer для аргумента distance, чтобы иметь переменные размеры буфера.

Использование встроенного набора данных стран в качестве фиктивного примера:

>>> df = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres"))
>>> df
    pop_est      continent       name iso_a3  gdp_md_est                                           geometry
0    920938        Oceania       Fiji    FJI      8374.0  MULTIPOLYGON (((180.00000 -16.06713, 180.00000...
1  53950935         Africa   Tanzania    TZA    150600.0  POLYGON ((33.90371 -0.95000, 34.07262 -1.05982...
2    603253         Africa  W. Sahara    ESH       906.5  POLYGON ((-8.66559 27.65643, -8.66512 27.58948...
3  35623680  North America     Canada    CAN   1674000.0  MULTIPOLYGON (((-122.84000 49.00000, -122.9742...
..      ...            ...        ...    ...         ...                                             

>>> df.buffer(distance=df['pop_est'])
0      POLYGON ((-920362.560 -15501.816, -921118.000 ...
1      POLYGON ((-1110993.428 53939492.982, 4253453.0...
2      POLYGON ((-8.666 603280.656, 58859.799 600401....
3      POLYGON ((-35623475.484 26100.474, -35623805.6...
...
...