Объекты данных¶
Разные типы данных обобщены одним абстрактным типом
axipy.da.DataObject
. Он образует иерархию объектов данных различного
типа: таблица, растр, грид, чертеж, панорама, и так далее.
Провайдеры данных¶
За каждый тип данных отвечает провайдер данных axipy.da.ProviderManager
.
Провайдер владеет информацией о том, как представлять конкретный тип объектов
данных и как ими манипулировать. Класс axipy.da.ProviderManager
содержит
все зарегистрированные провайдеры данных.
Каждый провайдер имеет свои особенности и возможности, но общие концепции,
такие как открытие и создание, выделены в общий интерфейс
axipy.da.DataProvider
. В то же время конкретный провайдер может иметь
дополнительные функции и параметры, свойственные только ему.
Для получения списка загруженных провайдеров есть функция axipy.da.ProviderManager.loaded_providers()
.
Например:
provider_manager.loaded_providers()
{'CsvDataProvider': 'Файловый провайдер: Текст с разделителями',
'DwgDgnFileProvider': 'Провайдер DWG и DGN',
'GdalDataProvider': 'Растровый провайдер GDAL',
'MifMidDataProvider': 'Провайдер данных MIF-MID',
'OgrDataProvider': 'Векторный провайдер OGR',
'ShapeDataProvider': 'Shapefile',
'PgDataProvider': 'PostgreSQL',
'OracleDataProvider': 'oracle',
'MsSqlDataProvider': 'MS SQL Server',
'RestDataProvider': 'ArcGIS REST',
'SqliteDataProvider': 'Векторный провайдер sqlite',
'TabDataProvider': 'MapInfo',
'TmsDataProvider': 'Тайловые сервисы',
'WfsDataProvider': 'Web Feature Service',
'WmsDataProvider': 'Web Map Service',
'WmtsDataProvider': 'Web Map Tile Service',
'XlsDataProvider': 'Провайдер чтения файлов Excel'}
Для открытия разных источников данных может потребоваться разная информация.
Например, для подключения к базе данных нужно указать имя пользователя и пароль
и прочее. Поэтому для большинства провайдеров данных определены функции задания
источников данных axipy.da.DataProvider.get_source()
с дополнительными
параметрами. Например, axipy.da.CsvDataProvider.get_source()
,
axipy.da.PostgreDataProvider.get_source()
и другие.
Например:
source = provider_manager.csv.get_source('path/to/mydata.csv', delimiter=';')
table = source.open()
Что эквивалентно:
table = provider_manager.csv.open('path/to/mydata.csv', delimiter=';')
Или:
table = provider_manager.openfile('path/to/mydata.csv', delimiter=';')
См.также
Подробнее в документации axipy.da.ProviderManager
.