2017-08-08 4 views
0

私たちは活動の標準化されたレポートを開発しています。私が必要とする最後のグラフは、活動の地理的エリアを表示することです(100カ所近くにあります)。軸1-3のための標準化されたレポートのためにOSMまたは他のシェープファイルとmatplotloibを使用してマップをプロットする

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) 

内容やレイアウトが定住し、素晴らしい仕事されています。これらのレポートのための

出力レポートはmplotlibの図は、ある

PDF文字またはA4サイズです。しかし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() 

しかし、私は、オープンストリートマップやGISから働く形状ファイルを得ることに成功していません。

また、openstreetmapsからデータを変換する正しいプロセスを特定していません。

OSM/xml文書または変換されたGeoJSON文書からその情報を抽出するプロセスを特定していません。

理想的には、openstreetmapsから境界ボックス情報を取得し、マップを直接生成したいと考えています。

.readshapefile()呼び出しで動作するシェイプファイルを取得するプロセスとは何ですか?

また、定義されたマップをMatplotlib軸にどうやって取得できますか?

答えて

1

cartopy.io.img_tilesモジュールを使用するのが最も簡単な場合があります。このモジュールは、cartopyで使用するOSMタイルを自動的に引き出します。事前レンダリングされたタイルを使用すると、個々のシェイプファイル/ XMLを処理したりスタイリングする手間がなくなります。

これらのタイルをcartopy内で使用することについては、cartopy docsを参照してください。

+0

ありがとうございます。 –

関連する問題