GDAL1 11版本號對SHP檔案索引加速測試

2021-09-07 05:26:15 字數 1767 閱讀 5954

gdal庫中對於向量資料的讀取中能夠設定一些過濾器來對向量圖形進行篩選。對於shapefile格式來說。假設資料量太大,設定這個過濾器時間慢的簡直無法忍受。好在gdal1.10版本號開始支援讀取shapefile檔案的空間索引檔案(.sbn / .sbx)來進行加速。以下就相同的資料相同的**來對gdal1.9.0和gdal1.11.0兩個版本號進行測試時間,比較下速度(看到結果你肯定會張大嘴巴的~~)。

首先是測試**,功能非常easy。兩個shp檔案。乙個點檔案,乙個面檔案。面檔案非常大。須要依據點檔案裡的點來查詢到相應的面檔案裡的圖形。

在此感謝「午夜風」提供的資料進行測試。圖1是使用arcmap開啟兩個資料顯示的效果,圖2是兩個資料的資料量以及要素個數。

圖1 使用arcmap開啟的效果

圖2 兩個資料的資料量和要素個數

以下是測試**,僅僅貼出來關鍵部分的函式。

void searchsampledatafromshp_liml()

ogrfeature::destroyfeature(ppntfeature);

ogrfeature::destroyfeature(pplgfeature);

} ogrdatasource::destroydatasource(ppntds);

ogrdatasource::destroydatasource(pplgds);

}

以下是main函式以及輸出時間的乙個小函式。

void showtime()

int _tmain(int argc, _tchar* argv)

首先來看看使用gdal1.9.0版本號的時間。處理時間如圖3所看到的。(注意。以下測試時間所有使用release版本號進行測試所得)

圖3 使用gdal1.9.0所用時間

再看看gdal1.11.0所用的時間,處理時間如圖4所看到的。

圖4 使用gdal1.11.0所用時間

由上面兩個處理時間能夠看到,在gdal1.11.0版本號處理時間大幅度提高(100倍啊)。所以用到了空間索引這塊的同學還是將gdal的版本號更新一下吧。

我們知道shapefile檔案一般必須的是3個檔案,字尾名是shp、dbf和shx。假設資料有投影資訊的話再加乙個prj檔案。這樣的標準的shp檔案是我們經常使用的,使用gdal建立的話也會生成這麼幾個檔案。可是當用arcmap開啟的時候,會自己主動多出來幾個檔案。字尾名是sbn和sbx。可能還有個xml檔案。如圖2所看到的。這兩個檔案就是arcmap自己主動生成的空間索引檔案(esri spatial index files)。

依照gdal的官方文件說明,眼下gdal庫僅僅支援讀取空間索引檔案,還不支援建立,所以假設要處理大資料量的shp檔案,能夠先用arcmap開啟讓其建立好空間索引檔案再用gdal處理。

此外gdal還支援讀寫umn mapserver使用的四叉樹索引檔案(.qix)。

詳細能夠參考gdal官網中的shapefile格式頁面(**是:

GDAL1 11版本對SHP檔案索引加速測試

gdal庫中對於向量資料的讀取中可以設定一些過濾器來對向量圖形進行篩選,對於shapefile格式來說,如果資料量太大,設定這個過濾器時間慢的簡直無法忍受。好在gdal1.10版本開始支援讀取shapefile檔案的空間索引檔案 sbn sbx 來進行加速。下面就同樣的資料同樣的 來對gdal1.9...

檢視SQL Server 2005版本號

要確定所執行的 sql server 2005 的版本,請使用 sql server management studio 連線到sql server 2005 然後執行以下 transact sql 語句 select serverproperty productversion serverprop...

Win10版本號區分

版本號內部版本號 universalapicontract 首個正式版 1507 10240 1首個重大更新 1511 10586 2一週年更新 anniversary update 1607 14393 3創意者更新 creators update 1703 15063 4秋季創意者更新 fall...