построение карт с использованием OSM или других шейп-файлов и matplotloib для стандартизированного отчета

Мы разрабатываем стандартизированный отчет по своей деятельности. Последний график, который мне нужен, - это отображение географической области деятельности (всего около 100 локаций).

Эти отчеты выводятся в формате PDF Letter или A4.

Отчет представляет собой фигуру mplotlib, где:

fig = plt.figure(figsize=(8.5, 11))

rect0 = 0, .7,, 0.18, 0.3
rect1 = .3, .7, .18, .3
rect2 = .8, .29, .2, .7
rect3 = 0, 0, .8, .4

ax1 = fig.add_axes(rect0)
ax2 = fig.add_axes(rect1)
ax3 = fig.add_axes(rect2)
ax4 = fig.add_axes(rect3)

Содержимое и компоновка для осей 1-3 согласованы и отлично работают. Однако в Ax4 (в идеале) будет отображаться содержимое карты.

Я надеялся сделать что-то вроде этого:

map1 = Basemap(llcrnrlon=6.819087, llcrnrlat=46.368452, urcrnrlon=6.963978,
               urcrnrlat=46.482906, resolution = 'h', projection='tmerc',
               lon_0=6.88, lat_0=46.42, ax=4)

map1.readshapefile('a valid shape file that works') #<----- this is the sticking point


map1.draw(insert locator coordinates)
plt.savefig(report to be inserted to document)
plt.show()

Однако мне не удалось получить файл формы, который работал бы с открытыми картами улиц или ГИС.

Я также не определил правильный процесс преобразования данных из openstreetmaps.

Я также не идентифицировал процесс извлечения этой информации из документа OSM / xml или преобразованного документа GeoJSON.

В идеале я хотел бы получить информацию об ограничивающей рамке из openstreetmaps и напрямую сгенерировать карту.

Как получить шейп-файл, который работает с вызовом .readshapefile ()?

Или, альтернативно, как мне получить определенную карту в осях Matplotlib?


person Roger Erismann    schedule 08.08.2017    source источник


Ответы (1)


Возможно, проще всего использовать модуль cartopy.io.img_tiles, который автоматически извлекает плитки OSM для использования с cartopy. Использование предварительно отрисованных плиток устранит проблемы с обработкой и стилизацией отдельных шейп-файлов / XML.

См. документацию по картографии по использованию этих плиток в cartopy .

person Logan Byers    schedule 08.08.2017
comment
Спасибо, попробуем. - person Roger Erismann; 09.08.2017