Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I have a question concerning the maximum size of TIFF files Mathematica can handle. According to the TIFF 6.0 specification -revision 6.0 (see: http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf) the maximum size of TIFF files is determined by the 32 Bit offsets used by this format. Thus, the theoretical maximum file size of a TIFF file should be about 4 GB.

I am dealing with huge TIFF files that I need to import, process and export with Mathematica. Using Mathematica's Import and Export functions, I cannot import a TIFF file larger than 2 GB nor can I export a TIFF file that exceeds the 2 GB limit.

Consider the following example i created:

data = ConstantArray[Image[ConstantArray[0, {1000, 1000}], "Bit16"], 
   1500];

Export["test.tif", data];

I create 1500 black images with a bit depth of 16. When i export the data, the export stops at about 2 GB. When I open the file with other software, the file only contains 1073 images.

My first guess was that somehow one Bit is used to determine the sign, but I cannot figure out how to show that. Does anybody have a solution how to import and export TIFF files larger than 2 GB?

Thanks in advance!

System specification

  • OS: Windows 7 Professional, Service Pack 1 (64-bit)
  • Processor: Intel Xeon CPU E5630 @ 2.53 GHz (2 Processors)
  • Installed memory: 96 GB
  • Mathematica 9.0
  • Java version 1.7.0_07

Edit

Since I did not find any other solution, I tried reinstalling Mathematica 8 on my computer. Surprisingly, with Mma 8 it was no problem to export and import the testset. I am wondering why this is not possible with the new version.

If you have any ideas, please let me know.

share|improve this question
    
my 'test.tif' (MacOS X, Mathematica 9) says it's "3,001,404,008 bytes (3 GB on disk)", but I've no software which can open it... –  cormullion Jan 8 '13 at 14:58
    
I usually open the files with FIJI or ImageJ, respectively. Both are open source. Could this be a OS problem? I am using Windows 7... –  g3kk0 Jan 8 '13 at 15:07
    
For me (Linux 64 bit, Mathematica 9) it's a 2.8GB file and I can read it with ImageJ. –  b.gatessucks Jan 8 '13 at 19:25
    
Thanks for your comments. On Windows 7 (64 Bit) I am not able to export the file. Do you know of any options or settings in Mathematica that may cause this behavior? –  g3kk0 Jan 9 '13 at 7:56
    
I can export test.tif (around 2.79G) on 64bit Windows 7 with Mathematica 8. –  Tuku Jan 9 '13 at 19:48
add comment

2 Answers 2

This is a bug in Mathematica 9, it is already fixed and is just waiting for the next Mathematica release. Unfortunately we learnt about it a bit late and it had to miss the recent 9.0.1 release as well.

share|improve this answer
2  
Thanks for posting this here Shadi! It's good to know that this will be working again in the next release. –  Szabolcs Feb 22 '13 at 21:34
    
I must have overlooked this informative answer. Thanks Shadi for providing us this information. Hope version 10 is out soon ... ;) –  g3kk0 Jul 27 '13 at 11:12
add comment

I am not sure this will help with TIFF import but it solved my Excel import problem. Also the answer applies to 32-bit Windows, but maybe also to 64-bit. They said there were working to solve the problem. I had a similar problem constructing large TreePlots. Excerpt from WRI Tech support:

We have seen this on 32 bit windows. The issue is that the default size of the java code used by the import is insufficient to load the entire file.

You may be able to import this by raising the java heap size from 256MB to some larger value:

Needs["JLink`"]
ReinstallJava[JVMArguments -> "-Xmx2000m"]

where "-Xmx2000m" indicates how much RAM to allocate, in this case 2000MB or 2GB.

Unfortunately with a 32 bit systems you do have a limited amount of RAM that is allocatable (typically 2GB). This will limit the size of the XLSX files you can handle. There is unfortunately nothing we can do.

share|improve this answer
    
Thank you for your answer. I tried reinstalling the java link with different settings for the default amount of memory Java can allocate. I also tried to set it up to 4000 MB. After each reinstall, I restarted Mathematica. Unfortunately, this did not solve my problem. I also verified that the file size is limited by 2GB by testing different numbers of images. The export does not export more than 2GB and no error message is generated. –  g3kk0 Jan 10 '13 at 8:48
3  
This is sometimes helpful for Java based converters, (XLS, JPEG2000, etc), but won't help TIFF. –  Joshua Martell Jan 17 '13 at 2:40
    
@AlexanderSchmitz I strongly believe that you should NOT restart Mathematica after using ReinstallJava. Contrary to what its name may imply ReinstallJava works for the current session only and does not persist any custom options across Mathematica sessions. This is what I remember from the time I used NETLink to integrate .NET/WCF network services seamlessly: equivalent Uninstall/Install/Reinstall functions in NETLink work for the current session only; I had two separate Mathematica processes on the same machine and I could keep reinstalling NETLink in one without affecting the other ... –  Cetin Sert Feb 20 '13 at 5:52
    
@AlexanderSchmitz ... or any options passed to .*[Ii]nstall.* functions being persisted across Mathematica sessions / restarts. See InstallJava: launches the Java runtime and prepares it to be used from Mathematica. –  Cetin Sert Feb 20 '13 at 5:53
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.