GDAL读取Shp问题解决:Unable to open EPSG support file gcs.csv
在GIS軟件的開發中,經常用到開源庫GDAL讀取Shp數據,當shp數據中包含投影信息時,可能會遇到“Unable to open EPSG support file gcs.csv”錯誤提示,該錯誤是由于沒有設置“GDAL_DATA”引起的。
1.Shpefile文件組成
Shapefile文件指的是一種文件存儲的方法,實際上該種文件格式是由多個文件組成的。其中,要組成一個Shapefile,有三個文件是必不可少的,它們分別是".shp", ".shx"與 ".dbf" 文件。表示同一數據的一組文件其文件名前綴應該相同。例如,存儲一個關于湖的幾何與屬性數據,就必須有lake.shp,lake.shx與 lake.dbf三個文件。而其中“真正”的Shapefile的后綴為shp,然而僅有這個文件數據是不完整的,必須要把其他兩個附帶上才能構成一組完 整的地理數據。除了這三個必須的文件以外,還有八個可選的文件,使用它們可以增強空間數據的表達能力。所有的文件名都必須遵循MS DOS的8.3文件名標準(文件前綴名8個字符,后綴名3個字符,如shapefil.shp),以方便與一些老的應用程序保持兼容性,盡管現在許多新的程序都能夠支持長文件名。此外,所有的文件都必須位于同一個目錄之中。
必須的文件:
- .shp?— 圖形格式,用于保存元素的幾何實體。
- .shx?— 圖形索引格式。幾何體位置索引,記錄每一個幾何體在shp文件之中的位置,能夠加快向前或向后搜索一個幾何體的效率。
- .dbf?— 屬性數據格式,以dBase IV的數據表格式存儲每個幾何形狀的屬性數據。
其他可選的文件:
- .prj?— 投影格式,用于保存地理坐標系統與投影信息,是一個存儲well-known text投影描述符的文本文件。
- .sbn?and?.sbx?— 幾何體的空間索引
- .fbn?and?.fbx?— 只讀的Shapefiles的幾何體的空間索引
- .ain?and?.aih?— 列表中活動字段的屬性索引。
- .ixs?— 可讀寫Shapefile文件的地理編碼索引
- .mxs?— 可讀寫Shapefile文件的地理編碼索引(ODB格式)
- .atx?—?.dbf文件的屬性索引,其文件名格式為shapefile.columnname.atx?(ArcGIS 8及之后的版本)
- .shp.xml?— 以XML格式保存元數據。
- .cpg?— 用于描述.dbf文件的代碼頁,指明其使用的字符編碼。
2.檢查編譯的GDAL或者下載的dll是否包含“Data”
筆者編譯的GDAL目錄,如下圖所示(其中“GdalData”目錄名稱可自行指定):
該目錄內容如下所示:
3.設置“GDAL_DATA”選項
設置“GDAL_DATA”有兩種方法:
(1)在環境變量中設置
具體步驟:
右鍵我的電腦-屬性-高級系統設置-選項“高級”-【環境變量】-“用戶變量”-【新建】
(2)在程序中讀取Shp數據時設置
具體代碼如下(其中路徑也可設置為相對路徑):
OSGeo.GDAL.Gdal.AllRegister();OSGeo.OGR.Ogr.RegisterAll();OSGeo.GDAL.Gdal.SetConfigOption("GDAL_DATA", @"D:\GDAL\GDAL\GDAL232\GdalData");OSGeo.OGR.Driver dr = OSGeo.OGR.Ogr.GetDriverByName("ESRI shapefile");OSGeo.OGR.DataSource ds = dr.Open(path, 0);注:gdal2.3.2不支持中文路徑的設置,該路徑必須為全英文路徑(若大家解決該問題,歡迎告知)。
?
轉載于:https://www.cnblogs.com/aizai846/p/10894314.html
總結
以上是生活随笔為你收集整理的GDAL读取Shp问题解决:Unable to open EPSG support file gcs.csv的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OA系统文档
- 下一篇: 一阶电路误差分析_PDE有限差分方法(1