Reputation: 1182
I have a csv file which contains more than 200 000 lines of meteo data. When I want to model the data with matplotlib
, this error appears:
Traceback (most recent call last):
File "try4.py", line 19, in <module>
X,Y = meshgrid( data_x,data_y )
File "C:\Python27\lib\site-packages\numpy\lib\function_base.py", line 3378, in meshgrid
mult_fact = np.ones(shape, dtype=int)
File "C:\Python27\lib\site-packages\numpy\core\numeric.py", line 148, in ones
a = empty(shape, dtype, order)
ValueError: array is too big.
I found out that a file with 5000 lines max can be processed. How can I bypass the error in order to process all the file of 200000 lines? Here is my code :
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from pylab import *
# read CSV as a numpy array
data = mlab.csv2rec('datasets/mix.csv')
# print CSV file headers
print data.dtype.names
# load columns as vectors
data_x = data['longitude']
data_y = data['latitude']
data_u = data['x']
data_v = data['y']
X,Y = meshgrid( data_x,data_y )
U = cos(data_u)
V = sin(data_v)
# plot raw data
Q = quiver( X, Y, U, V, units='width')
qk = quiverkey(Q, 0.5, 0.92, 2, '.', labelpos='W',
fontproperties={'weight': 'bold'})
title('Current Surface')
plt.show()
Upvotes: 2
Views: 2721
Reputation: 87496
why are you using meshgrid
(doc)? It well generate a 200k by 200k array which will not match the dimensions of your u
and v
data. I think you want to do this
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from pylab import *
# read CSV as a numpy array
data = mlab.csv2rec('datasets/mix.csv')
# print CSV file headers
print data.dtype.names
# load columns as vectors
data_x = data['longitude']
data_y = data['latitude']
data_u = data['x']
data_v = data['y']
U = cos(data_u)
V = sin(data_v)
# plot raw data
Q = quiver(data_x, data_y, U, V, units='width')
qk = quiverkey(Q, 0.5, 0.92, 2, '.', labelpos='W',
fontproperties={'weight': 'bold'})
title('Current Surface')
Upvotes: 2