matplotlib.mlab.griddata очень медленный и возвращает массив нан при вводе действительных данных

Я пытаюсь сопоставить набор данных с нерегулярной сеткой (необработанные спутниковые данные) с соответствующими широтами и долготами в набор широт и долгот с регулярной сеткой, заданный функцией basemap.makegrid () . Я использую matplotlib.mlab.griddata с установленным mpl_toolkits.natgrid . Ниже приведен список переменных, используемых в качестве вывода whos в ipython, и некоторые статистические данные по переменным:

Variable   Type       Data/Info
-------------------------------
datalat    ndarray    666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb)
datalon    ndarray    666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb)
gridlat    ndarray    1200x1000: 1200000 elems, type `float64`, 9600000 bytes (9 Mb)
gridlon    ndarray    1200x1000: 1200000 elems, type `float64`, 9600000 bytes (9 Mb)
var        ndarray    666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb)

In [11]: var.min()
Out[11]: -30.0

In [12]: var.max()
Out[12]: 30.0

In [13]: datalat.min()
Out[13]: 27.339874

In [14]: datalat.max()
Out[14]: 47.05302

In [15]: datalon.min()
Out[15]: -137.55658

In [16]: datalon.max()
Out[16]: -108.41629

In [17]: gridlat.min()
Out[17]: 30.394031556984299

In [18]: gridlat.max()
Out[18]: 44.237140350357713

In [19]: gridlon.min()
Out[19]: -136.17646180595321

In [20]: gridlon.max()
Out[20]: -113.82353819404671

datalat и datalon - координаты исходных данных

gridlat и gridlon - координаты для интерполяции в

var содержит фактические данные

Используя эти переменные, когда я вызываю griddata (datalon, datalat, var , gridlon, gridlat) для выполнения потребовалось 20 минут, и он возвращает массив nan . Глядя на данные, широта и долгота кажутся правильными с исходными координатами, перекрывающими часть новой области, и несколькими точками данных, лежащими за пределами новой области. У кого-нибудь есть предложения? Значения nan предполагают, что я делаю что-то глупое ...

5
задан Carl F. 15 September 2011 в 01:17
поделиться