Сводка
Проецирует пространственные данные из одной системы координат в другую.
Использование
Если входной класс объектов или набор данных имеет неизвестную или не заданную систему координат, ее можно задать с помощью параметра Входная система координат. Это позволит задать систему координат для данных без необходимости изменять входные данные (что иногда невозможно сделать, если входные данные имеют формат только для чтения). Также можно присвоить набору данных постоянную систему координат, используя инструмент Определить проекцию.
Покрытия, покрытия VPF, наборы растровых данных и каталоги растров не поддерживаются этим инструментом в качестве входных данных. Используйте инструмент Проецировать растр, чтобы спроецировать наборы растровых данных.
Чтобы спроецировать покрытие, следует использовать инструмент Проецировать из набора инструментов Покрытие.
Параметр инструмента Географическое преобразование является дополнительным. Когда не требуется географического преобразования или преобразования датума, параметр будет содержать пустой, не раскрывающийся список. Если преобразование необходимо, будет создан раскрывающийся список, содержащий входные и выходные датумы и будет выбрано преобразование по умолчанию.
- Например, географическое преобразование не обязательно при проецировании из GCS_North_American_1983 в NAD_1983_UTM_Zone_12N, поскольку и входная и выходная системы координат имеют датум NAD_1983. Однако при проецировании из GCS_North_American_1983 в WGS_1984_UTM_Zone_12N требуется географическое преобразование, поскольку входная система координат использует датум NAD_1983, в то время, как выходная система координат использует датум WGS_1984.
- Список географических преобразований и область применения для каждого см. в статье базы знаний: How To: Select the correct geographic (daturm) transformation when projecting between datums.
Рабочая область in_memory не поддерживается как выходное местоположение для записи набора данных.
При проецировании сложных типов данных, перечисленных ниже, с итоговыми данными нужно будет произвести определенные операции:
- Набор классов объектов, содержащий набор сетевых данных: набор сетевых данных необходимо
- Набор классов объектов, содержащий топологию: необходимо повторно проверить всю
Если входные данные участвуют в классах отношений (как в случае со связанной с объектами аннотацией), класс отношений будет перенесен в выходные данные. Исключение - это участие автономных таблиц.
В зависимости от координат входного объекта и горизонта (правильный экстент) выходной системы координат, мультиточки, линии и полигоны могут быть вырезаны или разбиты на несколько частей в ходе своей проекции. Объекты, которые полностью попадают за линию горизонта, будут записаны в выходной класс объектов с нулевой геометрией. Их можно удалить с помощью инструмента Восстановить геометрию.
Классы объектов, участвующие в геометрической сети, не могут быть спроецированы изолированно – необходимо проецировать весь набор классов объектов, содержащих сеть.
Многие инструменты геообработки учитывают параметр среды Выходная система координат, и во многих рабочих процессах можно использовать этот параметр среды вместо инструмента Проецировать. Например, инструмент Объединение учитывает настройки выходной системы координат, а значит можно объединить несколько классов объектов, имеющих разные системы координат, вместе и записать объединенные выходные данные в класс объектов в совершенно другой системе координат.
Этот инструмент не поддерживает выборки и определяющие запросы для слоев: все объекты в наборе данных, на которые ссылается слой, будут спроецированы. Чтобы спроецировать только выбранные объекты, воспользуйтесь инструментом Копировать объекты, чтобы создать временный набор данных, в котором содержатся только выбранные объекты, а затем примените к нему инструмент Проецировать.
Когда в качестве входных данных используется класс объектов внутри набора классов, выходные данные не могут быть записаны в тот же набор классов объектов. Это происходит потому, что все классы объектов внутри набора классов должны иметь одинаковую систему координат. В этом случае выходной класс объектов будет записан в базу геоданных, содержащую набор классов.
Если отмечен параметр Сохранить форму, выходные объекты более точно соответствуют их истинному местоположению в проекции. Параметр Сохранить форму особенно полезен в случаях, когда линия или граница полигона оцифрована как длинная прямая линия с несколькими вершинами. Если параметр Сохранить форму не отмечен, существующие вершины входных линий или границ полигонов будут спроецированы, в результате, форма объекта может быть передана не совсем точно в новой проекции. Если параметр Сохранить форму отмечен (preserve_shape="PRESERVE_SHAPE" в Python), то перед проецированием объекта к нему будут добавлены дополнительные вершины. Дополнительные вершины помогут сохранить форму объекта при перепроецировании. Параметр Максимальное отклонение смещения определяет, как много дополнительных вершин будет добавлено, его значение соответствует максимальному расстоянию, на которое проецируемый объект может быть сдвинут относительно текущего местоположения, рассчитанного инструментом. Чем меньше значение, тем больше вершин добавляется. Выберите значение, которое вам подходит. Например, если вы выполняете перепроецирование для отображения в мелком масштабе, лучше задать большее значение. И наоборот, для крупных масштабов лучше задавать небольшую величину отклонения.
Чтобы выполнить вертикальное преобразование, отметьте дополнительный параметр Вертикально в диалоговом окне. По умолчанию, параметр Вертикально недоступен и становится доступным только, когда входная и выходная системы координат содержат Вертикальную систему координат (ВСК) и координаты входных классов объектов содержат z-значения. Также, в систему необходимо установить дополнительные данные (данные систем координат).
Когда вы выбираете выходную систему координат, вы можете выбрать как географическую систему координат или систему координат проекции, так и вертикальную систему координат (ВСК). Если входная и выходная ВСК отличаются, доступны соответствующие вертикальные преобразования и дополнительные преобразования географических систем (датумов). Если трансформация должны быть применена в направлении, обратном ее определению, выберите запись с тильдой (~) перед именем.
Синтаксис
arcpy.management.Project(in_dataset, out_dataset, out_coor_system, {transform_method}, {in_coor_system}, {preserve_shape}, {max_deviation}, {vertical})
Параметр | Объяснение | Тип данных |
in_dataset | Проецируемые класс пространственных объектов, векторный слой или набор классов объектов. | Feature Layer; Feature Dataset |
out_dataset | Выходной набор данных, в который будут записаны результаты. | Feature Class; Feature Dataset |
out_coor_system | Допустимыми значениями являются: объект SpatialReference, файл с расширением .prj или строковое представление системы координат. | Coordinate System |
transform_method [transform_method,...] (Дополнительный) | Этот метод может использоваться для преобразования данных между двумя географическими системами координат или датумами. Этот дополнительный параметр может потребоваться, если входная и выходная системы координат содержат разные датумы. Для получения списка доступных преобразований используйте метод arcpy.ListTransformations. Наилучшим образом обычно подходит первая в списке трансформация. Список отсортирован по количеству совпадений данных в зависимости от областей использования преобразований. Если два или больше преобразований одинаково перекрываются с данными, значения точности преобразования используется используются в качестве вторичного параметра сортировки. | String |
in_coor_system (Дополнительный) | Система координат входного класса пространственных объектов или набора данных. Когда система координат входных данных неизвестна или не задана, можно задать систему координат для данных без необходимости изменения входных данных (что иногда невозможно сделать, если входные данные имеют формат только для чтения). | Coordinate System |
preserve_shape (Дополнительный) | Определяет, будут ли вершины добавляться к выходным линиям или полигонам, повышая точность выходной геометрии.
| Boolean |
max_deviation (Дополнительный) | Расстояние, на котором спроецированная линия или полигон может находиться от истинного местоположения, если для параметра preserve_shape задано PRESERVE_SHAPE. Значение по умолчанию равно значению допуска по x,y для набора данных в пространственной привязке, умноженному на 100. | Linear Unit |
vertical (Дополнительный) | Указывает, будет ли применено вертикальное преобразование. Этот параметр включается только тогда когда входная и выходная системы координат имеют вертикальную систему координат и координаты входных классов объектов содержат Z-значения. Также, для многих вертикальных преобразований требуются дополнительные файлы данных, которые должны быть установлены с помощью пакета установки ArcGIS Coordinate Systems Data. Эта опция не совместима с параметром preserve_shape.
| Boolean |
Пример кода
Project, пример 1 (окно Python)
Пример скрипта окна Python для использования функции Project в режиме прямого запуска.
import arcpy
# input data is in NAD 1983 UTM Zone 11N coordinate system
input_features = r"C:/data/Redlands.shp"
# output data
output_feature_class = r"C:/data/Redlands_Project.shp"
# create a spatial reference object for the output coordinate system
out_coordinate_system = arcpy.SpatialReference('NAD 1983 StatePlane California V FIPS 0405 (US Feet)')
# run the tool
arcpy.Project_management(input_features, output_feature_class, out_coordinate_system)
Project, пример 2 (автономный скрипт)
Этот автономный скрипт демонстрирует пример использования инструмента Project.
# Name: Project_Example2.py
# Description: Project all feature classes in a geodatabase
# Requirements: os module
# Import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data/Redlands.gdb"
arcpy.env.overwriteOutput = True
# Set local variables
outWorkspace = "C:/data/Redlands_utm11.gdb"
try:
# Use ListFeatureClasses to generate a list of inputs
for infc in arcpy.ListFeatureClasses():
# Determine if the input has a defined coordinate system, can't project it if it does not
dsc = arcpy.Describe(infc)
if dsc.spatialReference.Name == "Unknown":
print('skipped this fc due to undefined coordinate system: ' + infc)
else:
# Determine the new output feature class path and name
outfc = os.path.join(outWorkspace, infc)
# Set output coordinate system
outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 11N')
# run project tool
arcpy.Project_management(infc, outfc, outCS)
# check messages
print(arcpy.GetMessages())
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])
Параметры среды
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да
Связанные разделы
- Обзор группы инструментов Проекции и преобразования
- О картографических проекциях
- Поддерживаемые картографические проекции
- Что такое географические системы координат?
- Что такое системы координат проекции?
- Что должны знать ГИС профессионалы об основных картографических проекциях
- Пространственная привязка и геообработка