コマンドラインの記録は、SHPファイルのレコードを読み取る-python

図1は、spatialRef投影情報、layerDefn層定義情報、geomType幾何学的なオブジェクトタイプ、fieldDefnフィールド定義情報を含む、以下シェープメイン読み取りを読み出します。geomlist各WKT geometryRefの特徴は、点の形で表現座標にした後、reclistは最後のname属性によって各機能のすべてのフィールドの情報を取得しました。

2、

#読むのArcGISシェープファイルの例
OSGEOインポートOGRのから
ファイル名=「cntry98.shp」

#読み取り専用やり方オープンSHPファイル(読み取り専用、読み取りトゥルー/書き込み偽)
DS = ogr.Open(ファイル名、偽)

#層入手
層= ds.GetLayer(0)

#投影情報
spatialref = layer.GetSpatialRef()

レイヤ#定義情報
lydefn = layer.GetLayerDefn()

#幾何オブジェクトタイプ(wkbPoint、wkbLineString、wkbPolygon)
geomtype = lydefn.GetGeomType()

#获取字段列表(字段类型、OFTInteger、OFTReal、OFTString、OFTDateTime)
フィールドリスト= []
のIの範囲内(lydefn.GetFieldCount()):
     fddefn = lydefn.GetFieldDefn(I)
     fddict = { 'name'のfddefn.GetName ()、 'タイプ':fddefn.GetType()、 '幅':fddefn.GetWidth()、 '小数':fddefn.GetPrecision()}
     フィールドリスト+ = [fddict]

#SFデータレコード - 取得ジオメトリオブジェクトとその対応するプロパティ

geomlist、reclist = []、[]

#最初のSFの取得
機能を= layer.GetNextFeature()
機能ではなく、一方のnoneである:
     GEOM = feature.GetGeometryRef()
     geomlist + = [geom.ExportToWkt()]
     REC = {}
     FDのためのフィールドリスト内:
         REC [FD [「名前'] = feature.GetField(FD ['名前「])
     reclist + = [REC]
     機能layer.GetNextFeature =()
は、データソース閉じ
ds.Destroy()
フィールドの#リストをジオメトリと属性値
>>> LEN (のFieldList)
13が
LEN(geomlist)>>>
254
>>>プリント(spatialRef)
GEOGCS [ "WGS 84"、
    DATUM [ "WGS_1984"、
        SPHEROID [ "WGS 84"、6378137,298.257223563、
            AUTHORITY [ "EPSG"、 " 7030「]]、
        AUTHORITY [ "EPSG"、 "6326"]]、
    PRIMEM [ "グリニッジ"、0、
        AUTHORITY [ "EPSG"、 "8901"]]、
    単位[ "度"、0.0174532925199433、
        AUTHORITY [ "EPSG"、 "9122"]]、
    AUTHORITY [ "EPSG"、 "4326"] ]
>>>プリント(geomtype)
3
>>>プリント(フィールドリスト[0])
{ '名前': 'FIPS_CNTRY'、 'タイプ':4 '幅':2 '小数':0}
>>>印刷(geomlist [0])
POLYGON((-69.8822326660156 12.4111099243164、-69.94694519042
97 12.4366655349731、-70.0561218261719 12.5344429016113、-70.0
594482421875 12.5380554199219、12.544166564 -70.0602874755859
9414、-70.0633392333984 12.6216659545898、-70.0630645751953 12
0.6286106109619、-70。0588989257813 12.6311092376709、-70.053344
7265625 12.6297206878662、-70.0352783203125 12.6197204589844、
-70.0311126708984 12.616943359375、-69.9322357177734 12.52805
519104、-69.8969573974609 12.4808330535889、-69.8914031982422
12.4722213745117、-69.8855590820313 12.4577770233154、-69.8739
013671875 12.4219436645508、-69.8733367919922 12.415833473205
6、-69.8761138916016 12.4116649627686、-69.8822326660156 12.41
11099243164))

>>>プリント(reclist [0] [フィールドリスト[0] [ '名前']])
AA

>>>プリント(reclist [0])
{ 'FIPS_CNTRY': 'A'、 'GMI_CNTRY': 'ABW'、 'ISO_2DIGIT': 'AW'、 'ISO_3DIGIT': 'ABW'、 'CNTRY_NAME': 'アルバ' 、 'S
OVEREIGN': 'オランダ'、 'POP_CNTRY':67074、 'SQKM_CNTRY':182.926、 'SQMI_CNTRY':70.628、 'CURR_TYPE': 'のF1
オリン'、 'CURR_CODE': 'AWG'、 '内陸': ' N」、 'のcolor_map': '1'}

おすすめ

転載: www.cnblogs.com/vividautumn/p/11553371.html