matplotlib.mlab.griddata very slow and returns array of nan when valid data is input

后端 未结 4 716
予麋鹿
予麋鹿 2021-02-10 00:23

I am trying to map an irregularly gridded dataset (raw satellite data) with associated latitudes and longitudes to a regularly gridded set of latitudes and longitudes given by <

4条回答
  •  栀梦
    栀梦 (楼主)
    2021-02-10 01:10

    It looks like the mlab.griddata routine may introduce additional constraints on your output data that may not be necessary. While the input locations may be anything, the output locations must be a regular grid - since your example is in lat/lon space, your choice of map projection may violate this (i.e. regular grid in x/y is not a regular grid in lat/lon).

    You might try the interpolate.griddata routine from SciPy as an alternative - you'll need to combine your location variables into a single array, though, since the call signature is different: something like

    import scipy.interpolate
    data_locations = np.vstack(datalon.ravel(), datalat.ravel()).T
    grid_locations = np.vstack(gridlon.ravel(), gridlat.ravel()).T
    grid_data      = scipy.interpolate.griddata(data_locations, val.ravel(),
                                                grid_locations, method='nearest')
    

    for nearest-neighbor interpolation. This gets the locations into an array with 2 columns corresponding to your 2 dimensions. You may also want to perform the interpolation in the transformed space of your map projection.

提交回复
热议问题