Pergunta

Estou buscando uma maneira de pegar um arquivo de forma de ESRI existente que possui um conjunto de recursos de 200 países. Cada recurso do país tem um atributo de "nome". Meu objetivo é criar um script python que adiciona um atributo adicional arbitrário (por enquanto), digamos, "população".

Claro que tenho os módulos OSGEO e Geodjango instalados. Estou tão longe quanto:

from osgeo import ogr

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

Estou perdendo uma função OGR que me permitirá inserir campos de atributo de recurso em um shapefile existente?

Foi útil?

Solução

Para adicionar um campo, você precisa criar um OgFieldDefn e depois ligar para Inlyr.createfield

fieldDefn = ogr.FieldDefn('POPULATION', ogr.OFTReal) 
fieldDefn.SetWidth(14) 
fieldDefn.SetPrecision(6)
inlyr.CreateField(fieldDefn)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top