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
- Откуда: Иркутск
Сообщение
Ivor » 17 мар 2021, 16:28
Так lyr (и lyrx тож) не содержат данные, а только оформление и ссылку на собственно данные. Сами то файлы данных (shp аль база геоданных) у вас имеется и лежит там, куда указывает lyrx?
-
Herber
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 17 сен 2020, 11:18
- Репутация: 0
- Откуда: Махачкала
Сообщение
Herber » 17 мар 2021, 17:01
Есть
.tbx
.gdb (папка)
.aprx
-
Herber
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 17 сен 2020, 11:18
- Репутация: 0
- Откуда: Махачкала
Сообщение
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
- Откуда: Иркутск
Сообщение
Ivor » 18 мар 2021, 10:09
Завести курсор и итерацией по нему. Сейчас вот прямо код не воспроизведу, но он в помощи практически сразу ищется
-
Skywalker
- Участник
- Сообщения: 79
- Зарегистрирован: 01 май 2013, 22:38
- Репутация: 30
- Откуда: Сыктывкар
Сообщение
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))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей