[gdal-dev] Inquire mapped column names for conversion to shapefile

Even Rouault even.rouault at spatialys.com
Mon Apr 29 07:31:00 PDT 2024


Hi,

Something like:


from osgeo import ogr
original_field_names = [ "toolongforshapefile1", "toolongforshapefile2"]
map_to_shp = {}
tmpfilename = "/vsimem/temp.shp"
ds = ogr.GetDriverByName("ESRI Shapefile").CreateDataSource(tmpfilename)
lyr = ds.CreateLayer("temp")
lyr_defn = lyr.GetLayerDefn()
for name in original_field_names:
     lyr.CreateField(ogr.FieldDefn(name))
     shp_field_name = lyr_defn.GetFieldDefn(lyr_defn.GetFieldCount() - 
1).GetNameRef()
     map_to_shp[name] = shp_field_name
ds = None
ogr.GetDriverByName("ESRI Shapefile").DeleteDataSource(tmpfilename)
print(map_to_shp)

Even

Le 29/04/2024 à 16:23, Jan Heckman via gdal-dev a écrit :
> Hi everyone,
> I want to make a map of original (let's say postgresql/postgis) column 
> names to those used in a shapefile after conversion; assuming that at 
> least some column names in postgis will be over 10 characters in 
> length, and shortening may produce conflicts. Basically I know how 
> this is done, appending _<n>, but I hope that there is preferably a 
> python method available in Qgis python to get the list of column names 
> used in the shapefile.
> Any help or pointers are welcome!
> Thanks,
> Jan
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev

-- 
http://www.spatialys.com
My software is free, but my time generally not.



More information about the gdal-dev mailing list