3

次のコードがあります。

from mpl_toolkits.basemap import Basemap
map = Basemap(projection='merc', lat_0=50, lon_0=4,
    resolution = 'l', area_thresh = 0.1,
    llcrnrlon=4, llcrnrlat=50,
    urcrnrlon=40, urcrnrlat=60)

map.drawcoastlines(linewidth=0.15)
map.drawcountries(linewidth=0.15)
map.fillcontinents(color='brown',lake_color='white')
map.drawmapboundary(fill_color='white')

ここに画像の説明を入力

そして、このマップの上に、1 つのポリゴンだけで構成されるシェープファイルを表示したいと考えています。多角形は閉じた領域を定義します。手動でポリゴンを追加したり、シェープファイルから複数のポリゴンをプロットしたりする方法に関するさまざまなチュートリアルを見つけましたが、私の場合はそれを行うことができません。シェープファイルの属性テーブルは、' c ' と ' area 'の 2 つのフィールドのみで構成されています。

とりあえずここまでたどり着きました

import shapefile

s = shapefile.Reader(filepath,'c',drawbounds=False)
shapes = s.shapes()
records = s.records()
for record, shape in zip(records,shapes):
    lons,lats = zip(*shape.points)
    data = np.array(map(lons, lats)).T
x, y =map(lons,lats) 
4

1 に答える 1

1

同じ問題がありましたが、非常に単純なので、多くのチュートリアルやモジュール、およびネット上の同様の問題でそれを行うことを考えたことはありませんでした:

map.readshapefile('luthuania', 'any_name_you_like', drawbounds=True)

あなたの例では:

from mpl_toolkits.basemap import Basemap
map = Basemap(projection='merc', lat_0=50, lon_0=4,
    resolution = 'l', area_thresh = 0.1,
    llcrnrlon=4, llcrnrlat=50,
    urcrnrlon=40, urcrnrlat=60)

map.readshapefile('luthuania', 'any_name_you_like', drawbounds=True, linewidth=2, color='b')

map.drawcoastlines(linewidth=0.15)
map.drawcountries(linewidth=0.15)
map.fillcontinents(color='brown',lake_color='white')
map.drawmapboundary(fill_color='white')

どちらが与える

リトアニア

ちなみに、モジュール shapefile は Basemap の内部で使用されています: C:\Python33\Lib\site-packages\mpl_toolkits\basemap\shapefile.py を参照してください。

于 2013-12-11T07:03:02.070 に答える