PostGIS vs ArcSDE: raster load speed test (part 3)
30.06.2009 10:14 · GIS · postgis, wktraster
ArcSDE was tested on the same machine using the same dataset (see PostGIS test). The discs were formatted before the test, and the system was restored from the snapshot. As I could not get ArcSDE to work with my self-compiled PostgreSQL 8.3.7, I tested it on its bundled PostgreSQL 8.3.0 + ArcGIS 9.3 SP1 (build 1850) + ArcSDE 9.3.
As in the PostGIS test, the database cluster was located on a separate 80 GB disc. For the purity of the experiment, the original image in MrSID format was converted to ERDAS IMAGINE using ArcGIS tools. Loading and all other operations were done using ArcGIS Python scripts, not ArcCatalog.
The conversion to the ERDAS IMAGINE format has been carried out with the following script:
import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.CopyRaster_management("N-38-45.sid", "N-38-45.img", "#", "0", "#", "NONE", "NONE", "#")
and it took 1202 s (~20 min), the resulting file has the same size as when using gdal_translate
, i.e. ~4.7 Gb. Now let’s build pyramids
import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.BuildPyramids_management("N-38-45.img")
Building the pyramids took 451 s (~7 min.) Before loading the raster into the database, we need to create a RasterDataset
for it:
import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.CreateRasterDataset_management("Database Connections/raster.sde", "N_38_45", "14.25", "8_BIT_UNSIGNED", "#", 3, "#", "PYRAMIDS -1 CUBIC", "128 128", "LZ77", "#")
This operation took exactly 2 seconds :-). The time is so small that it can be neglected. Now we can load the raster into the created dataset:
import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.workspace = "d:\raster"
gp.CreateRasterDataset_management("N-38-45.img","Database Connections/raster.sde","LAST","FIRST","0","#","NONE","0","NONE")
The raster loading process was quite fast, taking only 1337 s (~22 min). After loading the image, the database cluster grew from 42,495,444 bytes (~40.5 MB) to 6,934,776,988 bytes (~6.45 GB).