> > I ran the example on my machine (which is a 64-bit Linux box with 8 GB > of > > RAM; Python 2.7, matplotlib 1.3.1) and it runs fine. However, it does > use > > around 2 GB of memory, perhaps slightly more. I think the memory usage > > might be a problem for you if you are using 32-bit Windows. I'm not > > familiar with the details but I believe the memory available to a single > > 32-bit process on Win32 may be only 2 GB. I'm also not familiar with the > > data you provided, but is it possible to reduce to number of points in > > order to test if memory limitations are the underlying problemhere? > > Nod, your suspicion is correct. The python interpreter bails out once the > memory footprint reaches 2GBytes. That leaves us with the question if this > is a quality of implementation issue - using up 2GBytes of main memory for > 1 million node elements seems to be a bit excessive... > > Thanks everybody for verifying anyways!
Just to round that issue up - I tried running this using Python 2.7 (64Bit) and it does not crash anymore. The memory requirement grows up to almost 4GByte. I will verify whether I can get the results I hope for and will report back. Thanks again! Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu > > Regards Hartmut > --------------- > http://boost-spirit.com > http://stellar.cct.lsu.edu > > > > > > > > > On 11 August 2014 14:54, Hartmut Kaiser <hartmut.kai...@gmail.com> > wrote: > > Ian, > > > > > I'm running into a crash while trying to construct a > > > tri.LinearTriInterpolator. Here is the short version of the code: > > > > > > import netCDF4 > > > import matplotlib.tri as tri > > > > > > var = netCDF4.Dataset('filename.cdf').variables > > > x = var['x'][:] > > > y = var['y'][:] > > > data = var['zeta_max'][:] > > > elems = var['element'][:, :]-1 > > > > > > triang = tri.Triangulation(x, y, triangles=elems) > > > > > > # this crashes the python interpreter > > > interp = tri.LinearTriInterpolator(triang, data) > > > > > > The data arrays (x, y, data, elems) are fairly large (>1 mio > elements), > > > all > > > represented as numpy arrays (as returned by netCDF4). The 'data' array > > is > > > a > > > masked array and contains masked values. > > > > > > If somebody cares, I'd be able to post a link to the netCDF data file > > > causing this. > > > > > > All this happens when using matplotlib 1.3.1, Win32, Python 2.7. > > > > > > Any help would be highly appreciated! > > > Regards Hartmut > > > > > > Hartmut, > > > That is an excellent issue report; all the relevant information and > > > nothing extraneous. Hence the quick response. > > > The second argument to TriLinearInterpolator (and other > TriInterpolator > > > classes), i.e. your 'data' array, is expected to be an array of the > same > > > size as the 'x' and 'y' arrays. It is not expecting a masked > array. If > > a > > > masked array is used the mask will be ignored, and so the values > behind > > > the mask will be used as though they were real values. If my memory > of > > > netCDF is correct, this will be whatever 'FillValue' is defined for > the > > > file, but it may depend on what is used to generate the netCDF file. > > > I would normally expect the code to work but produce useless > output. A > > > crash is possible though. It would be best if you could post a link > to > > > the netCDF file and I will take a closer look to check there is not > > > something else going wrong. > > Thanks for the quick response! > > > > Here is the data file: http://tinyurl.com/ms7vzxw. I did some more > > experiments. The picture stays unchanged, even if I fill the masked > values > > in the array with some real numbers (I'm not saying that this would give > > me any sensible results...): > > > > import netCDF4 > > import matplotlib.tri as tri > > var = netCDF4.Dataset('maxele.63.nc').variables > > x = var['x'][:] > > y = var['y'][:] > > data = var['zeta_max'][:] > > elems = var['element'][:, :]-1 > > > > triang = tri.Triangulation(x, y, triangles=elems) > > data = data.filled(0.0) > > > > # this still crashes the python interpreter > > interp = tri.LinearTriInterpolator(triang, data) > > > > Thanks again! > > Regards Hartmut > > --------------- > > http://boost-spirit.com > > http://stellar.cct.lsu.edu > > > > > > > > ------------------------------------------------------------------------ > -- > > ---- > > _______________________________________________ > > Matplotlib-users mailing list > > Matplotlib-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > > > > > > > -- > > Dr Andrew Dawson > > Atmospheric, Oceanic & Planetary Physics > > Clarendon Laboratory > > Parks Road > > Oxford OX1 3PU, UK > > Tel: +44 (0)1865 282438 > > Email: daw...@atm.ox.ac.uk > > Web Site: http://www2.physics.ox.ac.uk/contacts/people/dawson ------------------------------------------------------------------------------ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users