我正在尝试将包含在地理数据库文件( .gdb )中的shapefiles读入R中。.gdb包含两个特征数据集,每个特征集中包含多个特征类。
问题只是正在读取的两个功能数据集中的一个。具体来说,我使用NHD数据集对所有州ftp://nhdftp.usgs.gov/DataSets/Staged/States/FileGDB/HighResolution/在每个州.gdb是两个特征数据集,'WBD‘和’水文‘。只有“WBD”正在被阅读。使用ogrListLayers只返回'WBD‘中的层。如何指定“水文”数据集并访问其中的特征类?
如有任何建议,将不胜感激。R版本3.2.0。OSX诉10.10.3
编辑06/16/15:当我运行orgListLayers时,它返回:
ogrListLayers('NHDH_VI.gdb')
[1] "ExternalCrosswalk" "NHDFCode" "NHDFeatureToMetadata"
[4] "NHDFlow" "NHDFlowlineVAA" "NHDMetadata"
[7] "NHDProcessingParameters" "NHDReachCodeMaintenance" "NHDReachCrossReference"
[10] "NHDSourceCitation" "NHDStatus" "NHDVerticalRelationship"
[13] "WBDHU14" "WBDHU8" "WBDHU2"
[16] "WBDHU4" "WBDHU6" "WBDHU10"
[19] "WBDHU12" "WBDHU16" "HYDRO_NET_Junctions"
这21层与Mike和hrbrmstr表达不同。具体来说,我正在寻找:图层名称: NHDWaterbody。
当我从终端运行ogrinfo -ro NHDH_VI.gdb
时。
ERROR 1: Error: Failed to open Geodatabase (This release of the GeoDatabase is either invalid or out of date.)
FAILURE: Unable to open datasource `NHDH_VI.gdb' with the following drivers.
-> FileGDB
-> OpenFileGDB
...
发布于 2015-06-16 03:57:25
您可能正在使用ESRI文件地理数据库(OpenFileGDB)驱动程序读取文件。OGR不保留或使用功能数据集,因此所有特性类都混合在同一个平面命名空间中。看(例如)NHDH_VI.gdb in ArcCatalog:
然后使用ogrinfo -ro NHDH_VI.gdb
从命令行提示符中读取相同的文件。
INFO: Open of `NHDH_VI.gdb'
using driver `OpenFileGDB' successful.
1: NHDPoint (Point)
2: NHDFlowline (Multi Line String)
3: NHDLine (Multi Line String)
4: NHDArea (Multi Polygon)
5: NHDWaterbody (Multi Polygon)
6: NHDAreaEventFC (Multi Polygon)
7: NHDLineEventFC (Multi Line String)
8: NHDPointEventFC (Point)
9: WBDLine (Multi Line String)
10: NonContributingDrainageArea (Multi Polygon)
11: NWISBoundary (Multi Line String)
12: NWISDrainageArea (Multi Polygon)
13: WBDHU14 (Multi Polygon)
14: WBDHU8 (Multi Polygon)
15: WBDHU2 (Multi Polygon)
16: WBDHU4 (Multi Polygon)
17: WBDHU6 (Multi Polygon)
18: WBDHU10 (Multi Polygon)
19: WBDHU12 (Multi Polygon)
20: WBDHU16 (Multi Polygon)
21: HYDRO_NET_Junctions (Point)
这也可以从R中获得:
> library(rgdal)
> ogrListLayers("NHDH_VI.gdb")
[1] "NHDPoint" "NHDFlowline"
[3] "NHDLine" "NHDArea"
[5] "NHDWaterbody" "NHDAreaEventFC"
[7] "NHDLineEventFC" "NHDPointEventFC"
[9] "WBDLine" "NonContributingDrainageArea"
[11] "NWISBoundary" "NWISDrainageArea"
[13] "WBDHU14" "WBDHU8"
[15] "WBDHU2" "WBDHU4"
[17] "WBDHU6" "WBDHU10"
[19] "WBDHU12" "WBDHU16"
[21] "HYDRO_NET_Junctions"
attr(,"driver")
[1] "OpenFileGDB"
attr(,"nlayers")
[1] 21
因此,您需要手动过滤ArcCatalog层次结构中的数据集,以便从OGR中找到数据集。并非所有的类都可用于OGR (例如,非空间表、关系类)。
发布于 2015-06-15 19:04:02
这不是一个答案,但需要更多的空间来澄清,因为“任择议定书”没有提供一个可重复的例子。一旦执行部分Q更完整,我将删除它。
当我在ogrinfo
上运行NHDH_CT.gdb
(较小的档案之一)时,我得到:
Layer name: NHDPoint
Layer name: NHDFlowline
Layer name: NHDLine
Layer name: NHDArea
Layer name: NHDWaterbody
Layer name: NHDAreaEventFC
Layer name: NHDLineEventFC
Layer name: NHDPointEventFC
Layer name: WBDLine
Layer name: NonContributingDrainageArea
Layer name: NWISBoundary
Layer name: NWISDrainageArea
Layer name: WBDHU14
Layer name: WBDHU8
Layer name: WBDHU2
Layer name: WBDHU4
Layer name: WBDHU6
Layer name: WBDHU10
Layer name: WBDHU12
Layer name: WBDHU16
Layer name: HYDRO_NET_Junctions
匹配:
> ogrListLayers("NHDH_CT.gdb")
[1] "NHDPoint" "NHDFlowline" "NHDLine"
[4] "NHDArea" "NHDWaterbody" "NHDAreaEventFC"
[7] "NHDLineEventFC" "NHDPointEventFC" "WBDLine"
[10] "NonContributingDrainageArea" "NWISBoundary" "NWISDrainageArea"
[13] "WBDHU14" "WBDHU8" "WBDHU2"
[16] "WBDHU4" "WBDHU6" "WBDHU10"
[19] "WBDHU12" "WBDHU16" "HYDRO_NET_Junctions"
你期待看到什么?你的ogrinfo
显示了什么?(注:夏威夷提供了类似的产量)。
https://stackoverflow.com/questions/30851510
复制相似问题