2015-12-14 7 views
2

У меня есть кадр данных Pandas, содержащий данные о широте и долготе для обилия точек, и я хотел бы закрепить их в шейп-файле; т.е.: все, что выходит за пределы шейп-файла, отбрасывается.Обрезание кадра данных Pandas в шейп-файл с использованием Python

Есть ли способ достичь этого в пакете Python, таком как MatPlotLib?

Я искал в Google, но «обрезание», по-видимому, относится к данным, обрезанным легендами/осями карты, а не тем, что я описываю.

Это изображение отображает то, что мне нужно - я сделал это в ArcMap, но вам нужно автоматизировать процесс. Серые точки представляют весь кадр данных, а красные точки «обрезаны» в зеленый шейп-файл ниже.

Clipped points (Red)

Вот код, я бегу к чрезмерному лежал точки в случае, если какой-либо пользы:

f, ax = plt.subplots(1, figsize=(12, 12)) 
ax.plot(Easting,Northing, 'bo', markersize=5) 
IMD.plot(column='imd_score', colormap='Blues', linewidth=0.1, axes=ax) 
locs, labels = plt.xticks() 
plt.setp(labels, rotation=90) 
plt.axis('equal') 

ответ

1

Вы можете попробовать geopandas. Это очень хорошая библиотека, которая работает в основном с файловыми кадрами pandas, но геолокализуется, т. Е. Содержит столбец геометрии. Вы можете импортировать экспортируемые шейп-файлы непосредственно внутри него и, наконец, сделать что-то вроде Intersection.