2012-05-16 16 views
6

Pythonでいくつかの点を指定してマップを作成したいと思います。このためには、matplotlibのBasemapを使います。それはうまくいくが、私は適切なバックグラウンドマップを得る方法を知らない。座標付きのpng-osm-mapを描画する方法

OSMマップをインポートするにはどうすればよいですか?あるいは、別のマッピングパッケージを使用する必要がありますか?ラスタマップを作成してpngとして保存したいだけです。

+0

重複:http://stackoverflow.com/questions/9482335/draw-a-map-with-gps-markers-and-save-this-image-to-file/9485409#9485409 – ChrisP

+1

ブログの投稿リンク私はPhotoshop/gimpで2つのイメージ(マップとポイント)を組み合わせるように強制するソリューションについてしか説明していませんが、私は完全自動化ソリューション – teGuy

+0

teGuyが必要です...解決策を(可能な限り詳細で)回答として投稿してください...それを受け入れる。あなた自身の質問に答えることは大丈夫です:http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ – Yann

答えて

2

これは私の解決策ではありません。質問者が自分の質問に答えるために十分な評判を持っていないので、質問から貼り付けました。

私は解決策を見つけた:ベースマップ内imshowを使用

は、背景画像としてプロットにPNGを含みます。右の背景画像を得るために、私はベースマップ コンストラクタから取られた境界と export feature of OSMを使用:

m = Basemap(llcrnrlon=7.4319, urcrnrlat=52.0632, urcrnrlon=7.848, llcrnrlat=51.8495, 
     resolution='h', projection='merc') 

im = plt.imread('background.png') 
m.imshow(im, interpolation='lanczos', origin='upper') 
2

私はNASA GIBSのtileserverからいくつかのアクセスベースマップ画像を発見しました。他のタイルサーバーでも同じ方法を使用できます。

http://earthdata.nasa.gov/wiki/main/index.php/GIBS_Supported_Clients#Script-level_access_to_imagery

ティは、PythonのサブシェルでGDALのgdal_translateを使用します:あなたにもXMLをインライン化できますが

import subprocess 
import matplotlib.pyplot 
import mpl_toolkits.basemap 

l,u,r,d=(7.4319,52.0632,7.848,51.8495) 

subprocess.call ('gdal_translate -of GTiff -outsize 400 400 -projwin {l} {u} {r} {d} TERRA.xml Background.tif'.format(l=l,u=u,r=r,d=d),shell=True) 

im=matplotlib.pyplot.imread('Background.tif') 

m = mpl_toolkits.basemap.Basemap(llcrnrlon=l, urcrnrlat=u, urcrnrlon=r, llcrnrlat=d, 
    resolution='h', projection='merc') 
m.imshow(im, interpolation='lanczos', origin='upper') 

matplotlib.pyplot.show() 

これは、上記のリンクからTERRA.xmlファイルを必要とします。

関連する問題