У меня есть два геоджона. У 'Poly' есть многоугольники с атрибутами, у 'grid' есть точки с атрибутами.
import geopandas as gpd
poly = gpd.read_file('BARCELONA.geojson')
grid = gpd.read_file('cuadricula_barcelona_3.geojson')
poly.head()
ID_CP ... geometry
0 8.127000e + 10 ... POLYGON ( (1.81257 41.65204, 1.81237 41.65225, ...
1 8.238000e + 10 ... POLYGON ((2.04435 41.52550, 2.04323 41.52257, ...
2 8.219000e + 10 ... POLYGON ((2.36957 41.49899, 2.36905 41.49934, ...
3 8.091000e + 10 ... POLYGON ((1.88316 41.41494, 1.87148 41.42428, ...
4 8.113000e + 10. .. POLYGON ((1.85626 41.69379, 1.85625 41.70798, ...
grid.head()
id ID_CP ... CODIGO_INE геометрия
0 63 8.127000e + 10 .. 8127 MULTIPOINT (1.80962 42.29330)
1 64 8.127000e + 10 ... 8127 MULTIPOINT (1.83962 42.29330)
2 65 8.127000e + 10 ... 8127 MULTIPOINT (1.86962 42.29330)
3 66 8.127000e + 10 ... 8127 MULTIPOINT (1.89962 42.29330)
4 67 8.127000e + 10 ... 8127 MULTIPOINT (1.92962 42.29330)
Мне нужно получить атрибуты «поли» в в «сетку». Я пытаюсь это:
grid_att = gpd.sjoin(grid,
poly,
how="inner",
op='intersects')
Но я получаю эту ошибку:
Traceback (последний последний вызов):
File "", строка 4, в операторе = 'intersects')
Файл "/Users/anitasancho/opt/anaconda3/lib/python3.7/site-packages/geopandas/tools/sjoin.py", строка 136, в sjoin lambda x : list (tree_idx.intersection (x)), если не x == () else []
File "/Users/anitasancho/opt/anaconda3/lib/python3.7/site-packages/pandas /core/series.py ", строка 4042, в apply mapped = lib.map_infer (значения, f, convert = convert_dtype)
Файл" pandas / _libs / lib.pyx ", строка 2228, в pandas ._ libs.lib.map_infer
Файл "/Users/anitasancho/opt/anaconda3/lib/python3.7/site-packages/geopandas/tools/sjoin.py", строка 136, в лямбде x: list (tree_idx.intersection (x)), если не x == () else []
AttributeError: объект 'NoneType' не имеет атрибута 'пересечение'