Как получить таблицу свойств?

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Herber
Интересующийся
Сообщения: 16
Зарегистрирован: 17 сен 2020, 11:18
Репутация: 0
Откуда: Махачкала

Как получить таблицу свойств?

Сообщение Herber » 17 мар 2021, 16:07

У меня есть .lyrx файлы. Хочу оттуда вытянуть таблицу аттрибутов через питон. Пробую данным способом, но поля пустые.

Код: Выделить всё

import arcpy
import os

lyrFile = arcpy.mp.LayerFile( os.path.join(path,"Счётчики.lyrx"))
for lyr in lyrFile.listLayers():
    print(lyr.name)
    desc = arcpy.Describe(lyr)
    try:
        fields =  desc.fields
        for field in fields:
            print(field)
    except:
        pass

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Как получить таблицу свойств?

Сообщение Ivor » 17 мар 2021, 16:28

Так lyr (и lyrx тож) не содержат данные, а только оформление и ссылку на собственно данные. Сами то файлы данных (shp аль база геоданных) у вас имеется и лежит там, куда указывает lyrx?

Herber
Интересующийся
Сообщения: 16
Зарегистрирован: 17 сен 2020, 11:18
Репутация: 0
Откуда: Махачкала

Re: Как получить таблицу свойств?

Сообщение Herber » 17 мар 2021, 17:01

Есть
.tbx
.gdb (папка)
.aprx

Herber
Интересующийся
Сообщения: 16
Зарегистрирован: 17 сен 2020, 11:18
Репутация: 0
Откуда: Махачкала

Re: Как получить таблицу свойств?

Сообщение Herber » 18 мар 2021, 09:52

Код: Выделить всё

desc = arcpy.Describe('Счетчики')
for f in desc.fields:
    print(f.name)
Я получил все заголовки таблиц. А вот само содержимое как получить?

OID
Shape
Name
FolderPath
SymbolID
AltMode
Base
TimeSpan
TimeStamp
BeginTime
EndTime
Snippet
PopupInfo
HasLabel
LabelID

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Как получить таблицу свойств?

Сообщение Ivor » 18 мар 2021, 10:09

Завести курсор и итерацией по нему. Сейчас вот прямо код не воспроизведу, но он в помощи практически сразу ищется

Skywalker
Участник
Сообщения: 79
Зарегистрирован: 01 май 2013, 22:38
Репутация: 30
Откуда: Сыктывкар

Re: Как получить таблицу свойств?

Сообщение Skywalker » 18 мар 2021, 10:38

Попробуйте таким образом:

Код: Выделить всё

import arcpy
fgdb = 'C:/geodatabase.gdb/table'
field = 'field1'
cursor = arcpy.SearchCursor(fgdb)
for row in cursor:
    print(row.getValue(field))

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot], Bing [Bot] и 8 гостей