Open leorrose opened 1 year ago
I think I found the problem. imageio which is used to read data uses PIL as backend. PIL limits image size for security reasons (Decompression bomb protection) which causes an error when reading panoramas of very large size.
The solution is to change the max pixel setting in PIL:
from PIL import Image
Image.MAX_IMAGE_PIXELS = 1000000000
Also maybe it will be wise to change the readimc code to give more description of errors. For example in this case we could print the error and see that it's an issue with image size and not a corrupted mcd file.
Correct, this is due to PIL's max. image size. Unfortunately, it is not straight-forward to catch this specific error in the readimc
code, which is why we haven't done that. Also, imageio may switch to other backends in the future (out of our control). But if you have a suggestion where/how to improve things, that would be great! PRs welcome :-)
Keeping this issue open as a reminder to document this
What can be done is catch the exception, and geometrically keep on extending the MAX_IMAGE_PIXELS with a warning / logging; .24 GB limit set by PIL is too low for images these days. One can easily go as high as, let's say, 5 GB these days before giving up (of course, after checking that there is that much free disk space).
I have a mcd file with 3 panoramas. While trying to read the panoramas I get an error :
This is not an expected behavior because if I use MCD Viewer I'm able to read everything an nothing is corrupted.
Any suggestion what can cause this? (unfortunately I cannot share the data itself)