2017-10-09 3 views
0

ガス放出のグローバルマップをプロットしようとしています。しかし、私のデータ(NH3idx)をアンプにプロットできないようです。緯度経度座標から写像射影座標への変換が間違っているのか、私がプロットしたいデータを読み取ることができないのか分かりません。私のデータをベースマップ上にcountourマップとしてプロットできません

import numpy as np 
import pylab as plt 
import math 
from mpl_toolkits.basemap import Basemap 
import csv 


dlat = 0.1 
dlon = 0.1 
nlat = 1800 
nlon = 3600 

longrid = -180 + np.arange(nlon) * dlon 
latgrid = -90 + np.arange(nlat) * dlat 

NH3idx = np.zeros([nlon,nlat]) 

with open ('NH3_2008.txt') as csvfile: 
    plots = csv.reader(csvfile, delimiter=';') 
    for row in plots: 
     inlon = float(row[1]) 
     inlat = float(row[0]) 
     lonidx = int(abs(inlon + 180)/dlon) 
     latidx = int(abs(inlat +90)/dlat) 
     NH3idx[lonidx,latidx] = float(row[2]) 

plt.figure(figsize=(20,10)) 
m = Basemap(projection='cyl', llcrnrlat=-90,urcrnrlat=90,\ 
     llcrnrlon=-180,urcrnrlon=180,resolution='l') 

y,x = np.meshgrid(latgrid, longrid) 


m.drawcoastlines() 
m.drawmeridians(np.arange(-180.,180.,20.)) 
m.drawparallels(np.arange(-90.,90.,20.)) 
m.drawmapboundary(fill_color='white')  

plt.contourf(x,y,NH3idx) 
plt.colorbar() 

plt.show() 

と私のデータのようになります。あなたは、最初のベースマップに自分の座標を変換する必要が

the columns are lat, lon, emissions

答えて

0

X,Y = m(x,y) 

を座標あなたはおそらくベースマップcountour機能を使用したいです

m.contourf(X,Y,NH3idx) 
関連する問題