2010-11-18 35 views
6

Tôi đang tìm cách lấy một Shapefile ESRI hiện có có một bộ tính năng của 200 quốc gia. Mỗi quốc gia có một thuộc tính của "NAME". Mục tiêu của tôi là tạo một kịch bản Python để thêm một thuộc tính bổ sung tùy ý (cho bây giờ), nói "POPULATION".Thêm thuộc tính Tính năng tùy chỉnh vào ESRI Shapefile bằng Python

Tất nhiên tôi đã cài đặt mô-đun OSGeo và GeoDjango. Tôi ở xa:

from osgeo import ogr 

infile = ogr.Open('sample.shp', 1) #'sample.shp' is a pre-existing ESRI shapefile described above 
inlyr = infile.GetLayerByIndex(0) 

Tôi có thiếu chức năng OGR cho phép tôi chèn trường thuộc tính Tính năng vào Shapefile hiện có không?

Trả lời

5

Để thêm một lĩnh vực, bạn phải tạo ra một OGRFieldDefn và sau đó gọi inlyr.CreateField

fieldDefn = ogr.FieldDefn('POPULATION', ogr.OFTReal) 
fieldDefn.SetWidth(14) 
fieldDefn.SetPrecision(6) 
inlyr.CreateField(fieldDefn) 
+0

Thank you very much. – mattdeboard

+0

Sau đó, sau đó tôi cần phải gọi một Destroy() để ghi dữ liệu? – mattdeboard

+2

Để đóng tệp, bạn nên sử dụng 'infile = None' –

Các vấn đề liên quan