[OSGeo-Discuss] methods for programatically adding fields to shapefiles
Alex Mandel
tech_dev at wildintellect.com
Wed Oct 29 16:56:11 PDT 2008
Tyler Erickson wrote:
> I am interested in approaches for adding a populated field to a shapefile
> (for example, adding a new field named 'source_url' with the value
> 'http://somewebsite.com'). I would like to do this for several thousand
> files.
>
> At first I thought that I might be able to accomplish it using ogr2org with
> a sql clause, such as:
>
> ogr2ogr -sql "select *, 'http://somewebsite.com' as source_url from infile"
> outfile.shp infile.shp
>
> but that didn't work since ogr2ogr supports a limited set of SQL, described
> at:
> http://www.gdal.org/ogr/ogr_sql.html
>
> Any ideas on how to accomplish this? (I would prefer suggestions that can be
> scripted with python.)
>
> - Tyler
Open a data connection the dbf with python, add a field to the
properties of the table and populate the field.
There are several ways to connect to a dbf depending on the OS, you
could use an ODBC connector, or use some other type of dbf driver.
I haven't looked closely but there might be a dbf driver in the ogr
python bindings already.
I think my quick fix was to use python windows tools to wrap the dbf com
object as a python object I could call, but that was a quick a dirty
solution on windows.
The other thing I've done is to create a blank shapefile with the exact
same scheme + one field. Do an ogr2ogr -f "ESRI Shapefile" -a (append)
of the blank shapefile and your existing one, and now you have a new field.
Alex
More information about the Discuss
mailing list