From our Blog

ArcMap - "Cannot map metafile into memory"

"Cannot map metafile into memory. Not Enough Memory" - does that look familiar? There is certainly a lot of literature about on the net. So what does it mean?. Well according to the ESRI:

"When ArcMap prints or exports to any format, an EMF file is created. Windows attempts to allocate enough memory to read the entire EMF metafile. If it cannot allocate a large enough contiguous block of memory, Windows returns a NULL or '0' EMF handle, and ArcMap displays the error message."

What I do find interesting about this error, is the proposed solutions as indicated on the ESRI knowledge Base. Now before I begin, I must make it clear, that although I find their proposed solution absolutely ridiculous, my intention is by no means to slate ArcMap as a product (well maybe a littleWinking). In fact, I started out in GIS with ArcINFO 7 and ArcView 1 and 2, and still use it today. Anyway...on to the proposed solution.

As it currently stands, ArcMap is by far the best desktop product for cartography (although I cannot comment on Manifold), so one would expect it to handle printing and exporting seamlessly. Then again, ArcView has always had a problem printing, or they would not have felt the need to introduce an extension called "ArcPress". The problem is, when printing or exporting I have continuously encountered the dreaded metafile error, so lets step through the proposed solution on the ESRI knowledge Base:

  1. Eliminate transparencies, picture fill symbols, and picture marker symbols from the map. This reduces the amount of raster data in the output - Sure I can understand bitmap markers and fills, but if they don't want us to use transparency, then don't offer it to us as an option in the first place.
  2. Simplify and generalize the map data. Try to reduce the usage of raster data. Use the clip tools in ArcToolbox to generate new data that focuses on just the data required for the layout - Sure! lets reduce the precision and accuracy of our data just to make a map, and if that doesn't work then we can always clutter up our data with project specific clips! As for reducing raster..if we need a raster map, we need a raster map, we cannot get rid of it!
  3. Reduce the display quality of all raster layers - Again, a solution that tells you to reduce the quality of your data - please give us another option ESRI!
  4. Increase the virtual memory to the maximum usable by the Windows operating system - Well that does seem logical... but the only problem is that ArcMap hardly (never?) uses more than 700Mb of available memory
  5. Restart the computer and, without running any other applications, immediately open and export the MXD document - Can you imagine trying to do this with all you programs you use daily. And it has nothing to do with the size of data being interacted with, graphic artists and video producers work under similar conditions. That said, I have tried this, and yes it did work occasionally...but not always
  6. Discontinue using highly-compressed raster formats such as MrSID or ECW, which must be completely uncompressed during the output process and can consume a lot of computer resources - you got to be kidding me!
  7. Remove layers symbolized with transparency or BMP/picture marker symbology from group layers that are turned on and currently being displayed - Ok chaps you have already mentioned that
  8. Change the output size limit setting in the registry to generate smaller temporary metafile (EMF) draw files - Tried this and it did absolutely nothing except clutter my Registry some more

And that's it! some really insightful solutions there. So what is the real solution??

The Real Solution

After trying some of their solutions, and getting nowhere, I figured the only possible solution was to give Point #6 a try, "decompress compressed imager such as ECW or MrSID". I get shivers down my spine just thinking that this could be a solution, but lets give it bash. I painfully decompressed the imagery while I watched my hard drive space disappear, then fired up my project, added the new Geotiff's and hit the print button..... Voila! 10 minutes later and my print was finished. Sure I was pleased, but surely not....that cannot be the real solution. ECW and MrSID formats have been around for close on 10 years now, and were defiantly around way before ArcMap was even a concept. So why on God's green earth are they not "compatible" with the latest release of ArcMap? The world is introduced to formats that will reduce the storage of their imagery 10 fold, but yet we still need to resort to the tiff format. It is a bit like trying to persuade someone to store their music collection as WAV's when there is a perfectly good mp3 format out there!

Final Thoughts

Writing this blog, I began to ponder what the big players are actually doing to keep their products in line with the latest technology. We all have to use them to do high level GIS, but how could they be making our lives easier.

ArcMap : Lets face it ArcMap is extremely sluggish and a resource hog, and there are definite improvements that could be made to the interface. Hands up those whole still fire up Arcview 3.1 to do basic things or just look at data?. A product upgrade should render previous versions useless, but yet we all still have Arcview 3 at hand. ArcMap does also not have a real handle on the latest technologies and data formats. I thin their saving grace is the market share, and an extremely active user base. What really makes it useable is the fact that someone has almost always already written a tool or script to do something.

Mapinfo: Mapinfo is definitely faster than ArcMap, both in data processing and application running. The tools available do the job well and, as I said, fast. The only problem is the user interface needs drastic improvement. While the SQL driven process can be quite handy sometimes, it also makes doing simple things a real pain. Instead of just highlighting a column and choosing "sort ascending", the user has to fire up SQL Select and set up a query just to sort a table. I have also noticed that their market share is diminishing slowly over time .

GeoMedia: I last used it about 3 years ago, so I cannot really comment properly, but then, the interface was intuitive and the application processed data relatively fast. I suppose their major problem is their product footprint. Perhaps they should focus a bit on marketing?

Manifold: Who really knows, It is touted to be the best thing since sliced cheese, but I cannot even try it out without buying it. but I am not sure their sales policy is going to work (lets wait and see). I also find Dmitri extremely arrogant and a bit abrasive. Could be in their favour....could not. I suppose we will wait and see.

PostgreSQL PostGIS: Ok, it is not really a desktop solution, but I find I am turning to it more and more to do high level processing. There has been situations where PostGIS has completed an analysis in 20 minutes, whereas ArcMap took overnight and crashed trying to do the same thing. Now if only there was a reliable plugin to read PostgreSQL so that I could store all my data in a database........(without having to buy Oracle or ArcSDE!)


2 comment(s) for “ArcMap - "Cannot map metafile into memory"”

  1. Gravatar of Dave
    Dave Says:

    Found your site while looking for my own solution. *Feeble laughing*

    ....I like your annotations. I just wish it hadn't happened to me in the middle of a major modeling project. T_T


  2. Gravatar of Kathi
    Kathi Says:

    This blog was posted two years ago, and the problem is still unsolved, with ESRI not doing the slightest thing to provide any kind of true solution.

    what a sad story!


Leave comment: