Return to Ferret FAQ


Limit on Storage for Coordinates


Question:

How do I get around the Ferret error message:

**TMAP ERR: limit on storage for coordinates has been reached: MAX= 250000 ?

Example:

> Does FERRET have limitation on storage for coordinate? I have a netCDF
> file containing a time series with a large number of time steps. When I tried
> to use FERRET, use metero.cdf, I got " **TMAP ERR: limit on storage for
> coordinates has been reached   MAX= 250000".  Then I made a test by cutting
> the data down to 5000 time levels, FERRET is OK to work on this short time
> series.
>
> Can somebody tell me how to go around this problem?

Explanation:

Yes, Ferret does have a limit of 250000 coordinate points; and note that this includes storage both for the coordinate points and the edges of the grid cells. But generally this limit need not get in your way. It is only really a limit if you have 250K unevenly spaced coordinate points -- this is rarely the case.

Your NetCDF file needs to TELL Ferret that the time points are regularly spaced. Ferret is attempting to read them so it can check the spacing. Having determined that the points were evenly spaced it would retain only the start, end, and delta values (freeing up the space), but it isn't getting that far.

Solution:

From chapter 9 in the Ferret Users Guide:
3.5.4 Evenly spaced coordinates (long axes), see "memory, NetCDF" in the Users Guide index.

If the coordinate axes are evenly spaced, the attribute "point spacing" should be used:

slat: point_spacing = "even" ;

When used, this attribute will improve memory use efficiency in Ferret. This is especially important for very large axes--10,000 points or more.

There is a single command way to add an attribute to a netCDF file. This will take your computer a few minutes ... but it won't take much time for you!

To add

     TEMP:point_spacing = "even" ;

to your file, just

     % ncdump temp.cdf | sed -e '/TEMP:units/a\\
                TEMP:point_spacing = "even" ;'  | ncgen -o new_temp.cdf
Use the output of "ncdump -h yourfile.cdf" to guide you. You'll need to replace "TEMP" with the name of your time axis.


Last modified: May 28, 1997