前提・実現したいこと
basemapを用いて、下の図にあるようなファイル名から緯度経度のみを抜き出し(例:25s100eだったら南緯25°東経100°)、その位置を地図上にプロットしたい。
発生している問題・エラーメッセージ
東経のデータは地図上に表示されるが、西経のデータが表示されない。
該当のソースコード
Python
1ソースコード 2```ここに言語を入力 3import matplotlib.pyplot as plt 4from mpl_toolkits.basemap import Basemap 5import glob 6import re 7 8path = '0117/data/' 9fname = 'met*_10m.ascii.txt' 10flist = path + fname 11flist = glob.glob(flist) 12len = len(flist) 13 14fig = plt.figure(figsize=(15,10)) 15 16south = -30 17north = 30 18west = 0 19east = 360 20 21m = Basemap(llcrnrlat=south,urcrnrlat=north, llcrnrlon=west,urcrnrlon=east,resolution='c') 22m.drawcoastlines( linewidth=0.5, color='k' ) 23m.fillcontinents(color='black',lake_color='#ddeeff') 24m.drawparallels(np.arange(south, north+0.1, 30), labels=[1,0,0,0], fontsize=14,linewidth=0.5,color='black') 25m.drawmeridians(np.arange(west,east+0.1, 60), labels=[0,0,0,1], fontsize=14,linewidth=0.5,color='black') 26 27 28for list in flist: 29 30 loc = re.findall(r'\d+',list) 31 lats = int(loc[1]) 32 lons = int(loc[2]) 33 34 35 locs = re.findall(r'\D+',list) 36 if locs[1] == 'n': 37 lats = lats 38 else: 39 lats = -(lats) 40 41 if locs[2] == 'e_': 42 lons = lons 43 else: 44 lons = 360 - lons 45 46 m.scatter(lons,lats,s=50,marker='o',color='red',latlon=True) 47 48plt.show() 49
試したこと
下の画像の180°の位置を超えた瞬間にデータがプロットされないみたいです。(確認済み)
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー