Пространственное соединение двух геоджонов python ошибка - PullRequest
0 голосов
/ 02 мая 2020

У меня есть два геоджона. У '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' не имеет атрибута 'пересечение'

...