Dodanie wartości UUID do tabeli atrybutów pliku .shp

Dodanie wartości UUID do tabeli atrybutów pliku .shp
Clytra
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0

Witam serdecznie,

Jak w temacie, chcę dodać do tabeli pliku wektorowego shapefile, unikalną wartość GUID/UUID.
Na ten moment udało mi się dodać kolumny do pliku shp (w tym kolumna GUID).
Do utworzonej kolumny chcę wstawić dla każdego rekordu wartość UUID (najlepiej randomowa uuid4).
Przyznaję, że nie wiem za bardzo, jak się za to zabrać. Raczkuję w Pythonie, a tym bardziej, jeśli chodzi o operowanie na danych geometrycznych.

Dotychczas udało mi się napisać kod, dodający do każdej z warstw .shp kolumny do tabeli atrybutów: guid, add_date i mod_date. Chciałabym z automatu wygenerować dla każdego rekordu wartość uuid i wstawić do kolumny guid.

Kopiuj
        source = ogr.Open(path, update=True)
        layer = source.GetLayer()
        layer_defn = layer.GetLayerDefn()
        field_names = [layer_defn.GetFieldDefn(i).GetName() for i in range(layer_defn.GetFieldCount())]
        guid_field = ogr.FieldDefn('guid', ogr.OFTString)
        layer.CreateField(guid_field)
        addDate_field = ogr.FieldDefn('add_date', ogr.OFTString)
        layer.CreateField(addDate_field)
        modDate_field = ogr.FieldDefn('mod_date', ogr.OFTString)
        layer.CreateField(modDate_field)
        source = None

zmienna path, została zdefiniowana wcześniej w kodzie. Zawiera po prostu stringa/lokalizację do katalogu z danymi shp.

Korzystam z bibliotek osgeo i uuid.

Z góry dziękuję za wszelkie wskazówki, jak się do tego zabrać :(.

Clytra
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0
Clytra napisał(a):

Witam serdecznie,

Jak w temacie, chcę dodać do tabeli pliku wektorowego shapefile, unikalną wartość GUID/UUID.
Na ten moment udało mi się dodać kolumny do pliku shp (w tym kolumna GUID).
Do utworzonej kolumny chcę wstawić dla każdego rekordu wartość UUID (najlepiej randomowa uuid4).
Przyznaję, że nie wiem za bardzo, jak się za to zabrać. Raczkuję w Pythonie, a tym bardziej, jeśli chodzi o operowanie na danych geometrycznych.

Dotychczas udało mi się napisać kod, dodający do każdej z warstw .shp kolumny do tabeli atrybutów: guid, add_date i mod_date. Chciałabym z automatu wygenerować dla każdego rekordu wartość uuid i wstawić do kolumny guid.

Kopiuj
        source = ogr.Open(path, update=True)
        layer = source.GetLayer()
        layer_defn = layer.GetLayerDefn()
        field_names = [layer_defn.GetFieldDefn(i).GetName() for i in range(layer_defn.GetFieldCount())]
        guid_field = ogr.FieldDefn('guid', ogr.OFTString)
        layer.CreateField(guid_field)
        addDate_field = ogr.FieldDefn('add_date', ogr.OFTString)
        layer.CreateField(addDate_field)
        modDate_field = ogr.FieldDefn('mod_date', ogr.OFTString)
        layer.CreateField(modDate_field)
        source = None

zmienna path, została zdefiniowana wcześniej w kodzie. Zawiera po prostu stringa/lokalizację do katalogu z danymi shp.

Korzystam z bibliotek osgeo i uuid.

Z góry dziękuję za wszelkie wskazówki, jak się do tego zabrać :(.

Temat rozwiązany. Także w razie czego, nie musicie się wysilać ;) :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.