[Gdal-dev] Advice on Raster Formats
Bill Binko
bill at binko.net
Tue Aug 30 13:40:28 EDT 2005
Thank you Frank, Ed and everyone else for your input.
As mentioned, perhaps I should back up and explain my problem a bit more.
I will have DOQQs for the entire state of Florida at 1m (or 3 ft,
depending on the area) accuracy. Currently, I have 2/3 of the state, and
it's taking about 30GB compressed, which is completely reasonable.
However, with a 10:1 decompression rate (at least on the MrSIDS), the
400GB needed for a full decompressed set (plus the overview size), it
rapidly becomes untenable.
Certainly the hard-drive space can be overcome: 400GB drives can be had
for $229, and decent SCSI drives at that size are only twice that price.
However, there are other issues w/the uncompressed files that are
troublesome:
1) Backups become more difficult as you either need to a) compress the
files or b) use very expensive tapes or c) use additional (portable) hard
drives.
2) As my site will be colocated, I will not be able to update the DOQQs
over the network, and will have to take a portable drive down to the colo
center.
3) While the GeoTIFFs are far (far!) faster to load, when mapserver
pointed to the limited set I created, I saw a marked increase in io
utilization (which is I suppose expected). With multiple concurrent
users, I think this may move my bottleneck to the drives.
With all that said, I am certainly open to upgrading my drives if that's
the best solution.
Now, as to the actual performance problem.
When I zoom into a DOQQ (to the street level or so), the performance is
fine with both ECW and MrSIDs. As I zoom out _even within the same DOQQ_,
it rapidly slows down to the point of being unusable. When I get to the
point where I'm at four tiles, ECW is still standing (about 1 minute
render time), and MrSID is a joke (I haven't waited for it). I generally
have to go kill the mapserv processes when I mistakenly start a
large-scale render on the MrSIDs.
Now, I thought that I would create some overviews with gdaladdo, but that
doesn't really help. ECWs have "built-in" overviews that you can't seem
to tweak, and MrSIDs are not writeable. Perhaps there's a way to create
external overviews for MrSIDs, but I have not found one.
So, my next approach was to create pyramid layers that the mapserver
process would switch between as it zoomed in and out. This would reduce
both the decompression time and the resampling time. So I started writing
a script to build those pyramids using python and gdal. I have made
progress, but have run into some issues. I can work past all of them (I
think) with some help from you wonderful people, but I would like to know
the target: which formats should I be creating these overview layers in.
I hope I haven't been too long-winded, and that this is a bit clearer.
Thanks again,
Bill
PS: regarding the "lossless" MrSIDs -- I am just quoting the agency I got
the DOQQs from. I can post the output of gdalinfo if you think it's
pertinent.
More information about the Gdal-dev
mailing list