ArcGIS for Desktop

  • Документация
  • Стоимость
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS for Desktop

Полноценная профессиональная ГИС

ArcGIS for Server

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Стоимость
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • Главная
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительно...

Переход от команд администрирования ArcSDE

  • Администрирование базы геоданных
  • Управление данными

Для администрирования баз геоданных и управления данными, которые вы выполняли командами администрирования ArcSDE, используйте инструменты геообработки, скрипты Python или инструменты администрирования баз геоданных в ArcGIS for Desktop.

В следующих разделах описывается, как выполнять обычные операции администрирования баз геоданных и управления данными для многопользовательских баз геоданных.

Администрирование базы геоданных

Некоторые задачи администрирования требуют подключения из-под администратора баз геоданных; некоторые – подключения из-под администратора баз данных. Во многих случаях, если вы будете записывать в скрипте задачи администрирования, потребуется создать файл подключения к базе данных (.sde), который создает подключение как для обязательного пользователя. Чтобы создать файл, используйте инструмент геообработки Создать Подключение базы данных (Create Database Connection) или диалоговое окно Подключение к базе данных в ArcGIS for Desktop.

Создание базы геоданныхИнструмент

Создание базы геоданных в Microsoft SQL Server, Oracle или PostgreSQL

Инструмент геообработки Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) или Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase)

Создание базы геоданных в IBM DB2 или IBM Informix

Инструмент геообработки Включить многопользовательскую базу геоданных (Enable Enterprise Geodatabase)

Контроль конфигурации базы геоданныхИнструмент

Добавление ключевых слов и редактирование параметров в DBTUNE

Инструменты геообработки Экспортировать ключевые слова конфигурации баз геоданных (Export Geodatabase Configuration Keywords) и Импортировать ключевые слова конфигурации баз геоданных (Import Geodatabase Configuration Keywords)

Изменение конфигурации таблиц файлов журнала

Инструмент геообработки Настроить таблицы файлов журнала базы геоданных (Configure Geodatabase Log File Tables)

Удаление схемы базы геоданных из Oracle

Инструмент геообработки Удалить схему базы геоданных (Delete Schema Geodatabase)

Обновление базы геоданных

Инструмент геообработки Обновить базу геоданных

Управление версионными базами геоданныхИнструмент

Создание версии базы геоданных

Инструмент геообработки Создать версию (Create Version) или диалоговое окно Менеджер версий (Version Manager) в ArcGIS for Desktop

Согласование версии

Инструмент геообработки Согласовать версии (Reconcile Versions) или с помощью функции Согласовать (Reconcile) в ArcMap

Закрепление изменений в родительской версии

Инструмент геообработки Закрепить версию (Post Version) или с помощью функции Закрепить (Post) в ArcMap

Сжатие версионной базы геоданных

Инструмент геообработки Сжать (Compress) или функция Сжать базу данных (Compress Database) в ArcGIS for Desktop

Удаление версии базы геоданных

Инструмент геообработки Удалить версию (Delete Version) или диалоговое окно Менеджер версий (Version Manager) в ArcGIS for Desktop

Диагностика и восстановление версии таблиц метаданных и системных таблиц

Инструменты геообработки Диагностировать метаданные версии (Diagnose Version Metadata), Восстановить метаданные версии (Repair Version Metadata), Диагностировать таблицы версии (Diagnose Version Tables) и Восстановить таблицы версии (Repair Version Tables)

Обновление индексов для версии системных таблиц

Откройте инструмент геообработки Перестроить индексы (Rebuild Indexes)

Обновление статистики для версии системных таблицах

Инструмент геообработки Анализировать наборы данных (Analyze Datasets)

Управление подключениямиИнструмент

Получение списка текущих подключений баз геоданных

На закладке Подключения (Connections) в диалоговом окне Администрирование базы геоданных в ArcGIS for Desktop или с помощью функции Python ListUser

Можно просмотреть все блокировки для подключений на закладке Блокировки (Locks) диалогового окна Администрирование базы геоданных.

Сброс подключений из базы геоданных

На закладке Подключения (Connections) в диалоговом окне Администрирование базы геоданных в ArcGIS for Desktop или с помощью функции Python DisconnectUser

Временная блокировка подключений к базе геоданных и повторное включение подключений

На закладке Подключения (Connections) в диалоговом окне Свойства базы данных в ArcGIS for Desktop или с помощью функции Python AcceptConnections

Управление данными

При загрузке данных в много пользовательскую базу геоданных пользователь, из-под которого вы подключаетесь, будет владельцем данных в базе геоданных. Некоторые задачи управления базой геоданных, например, назначение прав доступа или перестроение индексов, можно выполнять, только являясь владельцем данных. До выполнения этих задач убедитесь, что был создан файл подключения к базе данных (.sde), который подключается с под правильным пользователем.

В большинстве случаев для загрузки данных или управления использовались скрипты, содержащие команды администрирования ArcSDE; поэтому для задач управления данными, перечисленных в следующих разделах, приведены примеры скриптов.

Если вы желаете, чтобы создание файла подключения к базе данных было частью каждого скрипта, используйте CreateDatabaseConnection_management.

Экспорт ресурсов базы геоданных в переносимом файле.

Описание: Экспорт схемы базы геоданных, отношений, поведения и данных в XML-документы рабочей области для общего доступа к ним. Вы можете также экспортировать поднабор ресурсов базы геоданных в XML-документ рабочей области.

Используемый инструмент: Экспорт в XML-документ рабочей области (Export XML Workspace Document)

Пример скрипта:

""" Export geodatabase contents to a portable file """

import arcpy
import sys


def ExportXMLWorkspaceDocument(in_data, out_file, export_type=None, storage_type=None, export_metadata=None):
    """ Export geodatabase contents to a portable file """
    try:
        arcpy.ExportXMLWorkspaceDocument_management(in_data,
                                                    out_file,
                                                    export_type,
                                                    storage_type,
                                                    export_metadata)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ExportXMLWorkspaceDocument(*arguments)

Импорт новых ресурсов в базу геоданных

Описание: XML-документы рабочей области, включающие схему базы геоданных, отношения, поведение, а также данные. Вы можете импортировать XML-документ рабочей области, который содержит только схему базы геоданных, а затем загрузить ваши собственные данные в эту схему. Или вы можете создать шаблонную базу геоданных, экспортировать схему и отношения из базы геоданных в XML-документ рабочей области, и затем выполнить импорт этого документа в новую базу геоданных.

Используемый инструмент: Импорт в XML-документ рабочей области (Import XML Workspace Document)

Пример скрипта:

""" Import new gdb contents """

import arcpy
import sys


def ImportXMLWorkspaceDocument(target_geodatabase, in_file, import_type=None, config_keywords=None):
    """ Import new gdb contents """
    try:
        arcpy.ImportXMLWorkspaceDocument_management(target_geodatabase,
                                                    in_file,
                                                    import_type,
                                                    config_keywords)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportXMLWorkspaceDocument(*arguments)

Импорт ресурсов с перезаписью старых

Описание: XML-документы рабочей области, включающие схему базы геоданных, отношения, поведение, а также данные. Описание: XML-документы рабочей области, включающие схему базы геоданных, отношения, поведение, а также данные. Выполняется, если вы получили обновленные данные проекта из другого источника и хотите внести самые свежие данные и определения.

Используемые инструменты Удалить вместе с Импорт XML-документа рабочей области (Import XML Workspace Document)

Пример скрипта:

""" Imports contents to overwrite old contents """

import arcpy
import sys
from xml.etree import ElementTree
import re


def FindDatasets(xml_file):
    """ Open xml file and identify datasets """
    xmldoc = ElementTree.ElementTree()
    xmldoc.parse(xml_file)
    root = xmldoc.getroot()

    contents = []
    for i in root.findall('WorkspaceDefinition/DatasetDefinitions/DataElement'):
        contents.append(i.findtext('Name'))

        for j in i.findall('./Children/DataElement/CatalogPath'):
            contents.append('/'.join(re.split(r'/[a-z|A-Z]*=', j.text)[1:]))

    contents.reverse()
    return contents


def DeleteDatasets(database, datasets):
    """ Delete dataset in database """
    for ds in datasets:
        try:
            arcpy.Delete_management(os.path.join(database, datasets))
        except:
            print('Unable to delete {}'.format(ds))


def ImportXML(database, xml_file):
    """ Import XML workspace document """
    arcpy.ImportXMLWorkspaceDocument_management(database, xml_file)


if __name__ == "__main__":
    xml_file = sys.argv[1]
    database = sys.argv[2]

    datasets = FindDatasets(xml_file)
    DeleteDatasets(database, datasets)
    ImportXML(database, xml_file)
    arcpy.ImportXMLWorkspaceDocument_management(database, xml_file)

Импорт одного шейп-файла или покрытия и полей карты

Описание: Укажите, какие поля из импортируемого шейп-файла или покрытия соответствуют каким полям в выходном классе пространственных объектов базы геоданных.

Используемые инструменты: ListFields и FeatureClassToFeatureClass_conversion и FieldMappings

Пример скрипта:

import arcpy
import os

arcpy.env.overwriteOutput = True

input_features = r'C:\Users\davi4075\Documents\ArcGIS\lakes.shp'
out_fc = r'C:\Users\davi4075\Documents\ArcGIS\mexico.gdb\out_lakes'

fms = arcpy.FieldMappings()
fms.fieldValidationWorkspace = os.path.dirname(out_fc)

# Cycle through input field to transfer
for field in arcpy.ListFields(input_features):

    # Exclude geometry and objectid fields
    if field.type not in ['Geometry', 'OID']:
        fm = arcpy.FieldMap()
        fm.addInputField(input_features, field.name)

        # if altering field properties, need to push updated field back
        # to FieldMap
        field.name = field.name.upper()
        fm.outputField = field

        # Insert FieldMap into FieldMappings
        fms.addFieldMap(fm)

arcpy.FeatureClassToFeatureClass_conversion(
    input_features, os.path.dirname(out_fc), os.path.basename(out_fc),
    field_mapping=fms)

Импорт множества шейп-файлов или покрытий сразу

Описание: Импорт множества шейп-файлов или покрытий одновременно

Используемые инструменты: Класс объектов в базу геоданных (Feature Class To Geodatabase)

Пример скрипта:

""" Import multiple shapefiles or coverages at one time """

import arcpy
import sys


def ImportMultiple(input_features, output_database):
    """
    Import multiple shapefiles or coverages at one time

    input_features -- semi-colon delimited string of shapefiles and/or coverages
    """
    try:
        arcpy.FeatureClassToGeodatabase_conversion(input_features, output_database)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportMultiple(*arguments)

Импорт множества шейп-файлов или покрытий и назначение прав доступа к новым классам пространственных объектов для существующих групп баз данных

Описание: Импорт множества шейп-файлов или покрытий и назначение прав доступа к выходным классам пространственных объектов для существующих групп баз данных так, чтобы участники групп обладали правами доступа к новым классам.

Используемые инструменты: Класс объектов в базу геоданных (Feature Class To Geodatabase) вместе с Изменить права доступа (Change Privileges)

Пример скрипта:

"""
Import multiple shapefiles or coverages and grant privileges on new feature
classes to existing groups or users
"""

import arcpy
import sys


def ImportMultipleAndGrantPrivileges(input_features, output_database, user, view=None, edit=None):
    """
    Import multiple shapefiles or coverages and grant privileges on new feature
    classes to existing groups or users
    """
    try:
        feature_classes = input_features.split(';')
        for fc in feature_classes:
            out_fc = arcpy.CreateUniqueName(fc, output_database)
            arcpy.FeatureClassToFeatureClass_conversion(fc, out_fc)
            arcpy.ChangePrivileges_management(out_fc, user, view, edit)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportMultipleAndGrantPrivileges(*arguments)

Комбинирования множества шейп-файлов в один класс пространственных объектов

Описание: Применяется, если у вас есть шейп-файлы с одним и тем же типом данных, и вы хотите скомбинировать их в один класс объектов в вашей базе геоданных. Например, у вас есть шейп-файлы точек, местоположений школ по различным округам, вы можете импортировать эти шейп-файлы в один класс пространственных объектов Школы в вашу базу геоданных.

Используемые инструменты: Геометрическое соединение (Append) вместе с Слияние (Merge)

Пример скрипта:

""" Combine multiple shapefiles into one feature class """

import arcpy
import sys


def CombineMultipleFeatureClasses(input_features, output_or_target):
    """ Combine multiple shapefiles into one feature class """
    try:
        feature_classes = input_features.split(';')
        if arcpy.Exists(output_or_target):
            arcpy.Append_management(feature_classes, output_or_target)
        else:
            arcpy.Merge_management(feature_classes, output_or_target)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    CombineMultipleFeatureClasses(*arguments)

Импорт множества таблиц

Описание: Импорт множества таблиц dBASE, INFO, VPF, OLE DB или таблиц базы геоданных в вашу многопользовательскую базу геоданных одновременно

Используемые инструменты: Таблица в базу геоданных (Table To Geodatabase)

Пример скрипта:

""" Import multiple nonspatial tables """

import arcpy
import sys


def ImportTables(in_tables, target_database):
    """
    Export data to a shapefile

    in_tables -- semi-colon delimited string of tables
    target_database -- the database were tables will be added
    """
    try:
        tables = in_tables.split(";")
        arcpy.TableToGeodatabase_conversion(tables, target_database)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportTables(*arguments)

Сокращение таблицы или класса объектов и присоединение полей

Описание: Если вы получили обновленные данные из стороннего источника, вы можете защитить свою существующую таблицу и права доступа, указанные для нее, с помощью сокращения таблицы и присоединения обновленных данных.

Используемые инструменты: Сократить таблицу (Truncate Table) вместе с Геометрическое соединение (Append)

Пример скрипта:

""" Truncate table or feature class and append records """

import arcpy
import sys


def TruncateTableOrFeatureClass(in_table, target_table):
    """ Truncate table or feature class and append records """
    try:
        arcpy.TruncateTable_management(target_table)
        arcpy.Append_management(in_table, target_table, schema_type="NO_TEST")
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    TruncateTableOrFeatureClass(*arguments)

Сокращение таблицы или класса объектов, присоединение записей и обновление статистики базы данных

Описание: Если вы получили обновленные данные из стороннего источника, вы можете защитить свою существующую таблицу и права доступа, указанные для нее, с помощью сокращения таблицы и присоединения обновленных данных. Если таблица содержит большое число записей, вам может потребоваться обновить статистику базы данных, чтобы она включала обновления в таблице.

Используемые инструменты: Сократить таблицу (Truncate Table) вместе с Геометрическое соединение (Append), вместе с Анализировать наборы данных (Analyze Datasets)

Пример скрипта:

"""
Truncate table or feature class, append records, and update
database statistics
"""

import arcpy
import sys
import os


def TruncateTableOrFeatureClass(in_table, target_table):
    """
    Truncate table or feature class, append records, and update
    database statistics
    """
    try:
        arcpy.TruncateTable_management(target_table)
        arcpy.Append_management(in_table, target_table)

        descr = arcpy.Describe(os.path.dirname(target_table))
        if getattr(descr, 'connectionProperties', None):
            conn = os.path.dirname(target_table)
        else:
            conn = os.path.dirname(os.path.dirname(target_table))

        arcpy.AnalyzeDatasets_management(conn)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    TruncateTableOrFeatureClass(*arguments)

Создание непространственного представления базы данных

Описание: Представление базы данных, которое может комбинировать данные из множества таблиц и ограничивать атрибуты, получаемые из исходных таблиц.

Используемые инструменты: Создать представление базы данных (Create Database View)

Пример скрипта:

""" Create nonspatial view """

import arcpy
import sys


def CreateNonspatialView(input_database, view_name, view_definition):
    """ Create nonspatial view """
    try:
        arcpy.CreateDatabaseView_management(input_database, view_name, view_definition)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    CreateNonspatialView(*arguments)

Создание представления базы данных, которое содержит столбец типа геометрии SQL

Описание: Представление базы данных, которое комбинирует данные из множества таблиц или классов пространственных объектов и ограничивает атрибуты, которые поступают из исходных таблиц или классов. Вы можете включать один столбец типа геометрии SQL в представление, пространственные данные могут отображаться в ArcGIS.

Используемые инструменты: Создать представление базы данных (Create Database View)

Пример скрипта:

""" Create view containing SQL geometry type column """

import arcpy
import sys


def CreateSpatialView(input_database, view_name, view_definition):
    """ Create view containing SQL geometry type column """
    try:
        arcpy.CreateDatabaseView_management(input_database, view_name, view_definition)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    CreateSpatialView(*arguments)

Удалить таблицы

Описание: Вы можете удалять несколько таблиц из базы геоданных одновременно. Это можно использовать при работе с временными файлами, например, специфичными для проекта, или при размещении данных, полученных от стороннего источника.

Используемые инструменты: Удалить

Пример скрипта:

""" Delete nonspatial tables """

import arcpy
import sys


def DeleteNonspatialTables(in_data):
    """
    Delete nonspatial tables

    in_data -- semi-colon delimited string of tables
    """
    try:
        tables = in_data.split(';')
        for table in tables:
            arcpy.Delete_management(table)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    DeleteNonspatialTables(sys.argv[1])

Удаление класса пространственных объектов

Описание: Вы можете удалять несколько классов пространственных объектов из базы геоданных одновременно. Это можно использовать при работе с временными файлами, например, специфичными для проекта, или при размещении данных, полученных от стороннего источника.

Используемые инструменты: Удалить

Пример скрипта:

""" Delete feature classes """

import arcpy
import sys


def DeleteFeatureClasses(in_data):
    """
    Delete feature classes

    in_data -- semi-colon delimited string of feature classes
    """
    try:
        feature_classes = in_data.split(';')
        for fc in feature_classes:
            arcpy.Delete_management(fc)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    DeleteFeatureClasses(sys.argv[1])

Экспорт данных в шейп-файл

Описание: Экспорт класса объектов в шейп-файл.

Используемые инструменты: Класс объектов в шейп-файл (Feature Class To Shapefile)

Пример скрипта:

""" Export data to a shapefile """

import arcpy
import sys


def ExportToAShapefile(in_table, target_shp):
    """ Export data to a shapefile """
    try:
        if arcpy.Exists(target_shp):
            arcpy.Append_management(in_table, target_shp, schema_type="NO_TEST")
        else:
            arcpy.CopyRows_management(in_table, target_shp)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ExportToAShapefile(*arguments)

Согласование, закрепление и сжатие версионной базы геоданных

Описание: Создается версия данных и вашей базы геоданных для рабочих процессов редактирования, которые включают одновременную правку на нескольких рабочих местах в течение длительного временного периода. Для выполнения требуется определенная поддержка базы геоданных. Она включает согласование версионных данных с родительской версией, чтобы вносить изменения, закрепление изменений из дочерней версии в родительской версии и сжатие базы геоданных, чтобы удалить нетребуемые статусы версий.

Используемые инструменты: Согласовать версии (Reconcile Versions) вместе с Сжать (Compress)

Пример скрипта:

""" Reconcile, post, and compress versioned geodatabase """

import arcpy
import sys


def ReconcilePostAndCompress(input_database, reconcile_mode):
    """
    Reconcile, post, and compress versioned geodatabase
    """
    try:
        arcpy.ReconcileVersions_management(input_database, reconcile_mode)
        arcpy.Compress_management(input_database)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ReconcilePostAndCompress(*arguments)

См. также Использование скриптов Python для пакетного согласования и закрепления версий

Весионные таблицы или классы объектов, добавление к ним global ID и создание реплик

Описание: Таблицы или классы объектов должны быть зарегистрированы как версионные и содержать столбец global ID, чтобы участвовать в репликации.

Используемые инструменты: Зарегистрировать как версионные вместе с Добавить GlobalID вместе с Создать реплику

Пример скрипта:

""" Version tables, add global IDs to tables, and create a replica """

import arcpy
import sys


def VersionTablesEtc(in_tables, in_type=None, out_geodatabase=None, out_name=None):
    """ Version tables, add global IDs to tables, and create a replica """
    try:
        tables = in_tables.split(';')
        for table in tables:
            arcpy.RegisterAsVersioned_management(table)
        arcpy.AddGlobalIDs_management(tables)

        if 'CreateReplica' in dir(arcpy.management):
            arcpy.CreateReplica_management(tables, in_type, out_geodatabase, out_name)

    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    VersionTablesEtc(*arguments)

Регистрация сторонней таблицы в базе геоданных

Описание: Если вы используете сторонние приложения или SQL для создания таблиц (и пространственных,и не пространственных) в базе данных, где храниться ваша база геоданных, то вы можете зарегистрировать эти таблицы в базе геоданных. При этом в системные таблицы базы геоданных добавляется информация о данных таблицах, и они могут затем участвовать в функциональности базы геоданных.

Используемые инструменты: Зарегистрировать в базе геоданных (Register With Geodatabase)

Пример скрипта:

""" Register third-party tables with the geodatabase """

import arcpy
import sys


def RegisterThirdPartyTables(in_tables):
    """
    Register third-party tables with the geodatabase

    in_tables -- semi-colon delimited string of tables
    """
    try:
        tables = in_tables.split(';')
        for table in tables:
            arcpy.RegisterWithGeodatabase_management(table)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    RegisterThirdPartyTables(sys.argv[1])
Отзыв по этому разделу?

ArcGIS for Desktop

  • На главную
  • Документация
  • Стоимость
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация