Проецировать (Управление данными (Data Management))
Краткая информация
Проецирует пространственные данные из одной системы координат в другую.
Использование
Если входной класс объектов или набор данных имеет Неизвестную (Unknown) или не заданную систему координат, ее можно задать с помощью параметра Входная система координат (Input Coordinate System). Это позволит задать систему координат для данных без необходимости изменять входные данные (что иногда невозможно сделать, если входные данные имеют формат только для чтения). Также можно присвоить набору данных постоянную систему координат, используя инструмент Задать проекцию (Define Projection).
-
Все типы классов пространственных объектов (feature classes) (класс объектов базы геоданных, класс объектов покрытия, класс пространственных объектов SDC и шейп-файл), наборы классов (feature datasets) в базе геоданных и слои объектов (feature layers) в приложениях ArcGIS (ArcMap, ArcScene и ArcGlobe) являются корректными входными данными.
-
Покрытия, покрытия VPF, наборы растровых данных и каталоги растров не поддерживаются этим инструментом в качестве входных данных. Чтобы спроецировать Покрытие (Coverage), следует использовать инструмент Проецировать (Project) в наборе инструментов Покрытие (Coverage). Используйте инструмент Проецировать растр (Project Raster), чтобы спроецировать наборы растровых данных.
Параметр инструмента Географическое преобразование (Geographic Transformation) является дополнительным. Когда не требуется географического преобразования или преобразования датума, параметр будет содержать пустой, не раскрывающийся список. Если преобразование необходимо, будет создан раскрывающийся список, содержащий входные и выходные датумы, и будет выбрано преобразование по умолчанию.
- Например, географическое преобразование не обязательно при проецировании из GCS_North_American_1983 в NAD_1983_UTM_Zone_12N, поскольку и входная и выходная системы координат имеют датум NAD_1983. Однако при проецировании из GCS_North_American_1983 в WGS_1984_UTM_Zone_12N требуется географическое преобразование, поскольку входная система координат использует датум NAD_1983, в то время, как выходная система координат использует датум WGS_1984.Подсказка:
Преобразования производятся в оба направления. Например, при конвертации данных из WGS 1984 в NAD 1927, можно выбрать преобразование под названием NAD_1927_to_WGS_1984_3, и инструмент применит его корректно.
- Список преобразований и сферы их использования см. в следующей статье базы знаний: 21327 (http://resources.arcgis.com/content/kbase?fa=articleShow&d=21327)
- Например, географическое преобразование не обязательно при проецировании из GCS_North_American_1983 в NAD_1983_UTM_Zone_12N, поскольку и входная и выходная системы координат имеют датум NAD_1983. Однако при проецировании из GCS_North_American_1983 в WGS_1984_UTM_Zone_12N требуется географическое преобразование, поскольку входная система координат использует датум NAD_1983, в то время, как выходная система координат использует датум WGS_1984.
-
in_memory не подходит в качестве рабочей области для выходного набора данных. Выходные данные должны быть записаны в класс пространственных объектов на диск.
-
При проецировании сложных типов данных, перечисленных ниже, с итоговыми данными нужно будет произвести определенные операции.
- Набор классов, содержащий набор сетевых данных: набор сетевых данных необходимо перестроить.
- Набор классов, содержащий топологию: повторно проверить весь экстент топологии.
-
Если входные данные участвуют в классах отношений (как в случае со связанной с объектами аннотацией), класс отношений будет перенесен в выходные данные. Исключением из этого правила служат автономные таблицы.
-
В зависимости от координат входного объекта и горизонта (правильный экстент) выходной системы координат, мультиточка, линия и полигон могут быть вырезаны или разбиты на несколько частей в ходе своей проекции.
Классы объектов, участвующие в геометрической сети, не могут быть спроецированы изолированно – необходимо проецировать весь набор классов объектов, содержащих сеть.
Многие инструменты геообработки учитывают установки выходной системы координат (output coordinate system), и во многих рабочих процессах можно использовать эти настройки с помощью инструмента Проецировать (Project). Например, инструмент Объединение (Union) учитывает настройки выходной системы координат, а значит можно объединить несколько классов объектов, имеющих разные системы координат, вместе и записать объединенные выходные данные в класс объектов в совершенно другой системе координат.
Этот инструмент не поддерживает выборку и определяющий запрос для слоев: все объекты в наборе данных, на которые ссылается слой, будут спроецированы. Если нужно спроецировать только выбранные объекты, можно использовать инструмент Копировать объекты (Copy Features). Инструмент Копировать объекты (Copy Features) копирует только выбранные объекты и учитывает настройки выходной системы координат (output coordinate system).
Когда в качестве входных данных используется класс объектов внутри набора классов, выходные данные не могут быть записаны в тот же набор классов объектов. Это происходит потому, что все классы объектов внутри набора классов должны иметь одинаковую систему координат. В этом случае выходной класс объектов будет записан в базу геоданных, содержащую набор классов.
Синтаксис
Параметр | Объяснение | Тип данных |
in_dataset |
Проецируемые класс пространственных объектов, векторный слой или набор классов объектов. | Feature Layer; Feature Dataset |
out_dataset |
Выходной набор данных, в который будут записаны результаты. | Geodataset |
out_coor_system | Корректными значениями являются: Объект пространственной привязки (Spatial Reference object), файл с расширением .prj и строковое представление системы координат. | Coordinate System |
transform_method (дополнительно) | Этот метод может использоваться для конвертации данных между двумя географическими системами координат или датумами. Этот дополнительный параметр может потребоваться, если входная и выходная системы координат содержат разные датумы. Подсказка: Преобразования производятся в оба направления. Например, при конвертации данных из WGS 1984 в NAD 1927, можно выбрать преобразование под названием NAD_1927_to_WGS_1984_3, и инструмент применит его корректно. | String |
in_coor_system (дополнительно) |
Система координат входного класса пространственных объектов или набора данных. Параметр активируется, когда входные данные имеют Неизвестную (Unknown) или не заданную систему координат. Это позволяет задавать систему координат для данных без необходимости изменять входные данные (что иногда невозможно сделать, если входные данные имеют формат только для чтения). | Coordinate System |
Пример кода
Пример скрипта Python для выполнения функции Проецировать (Project) с запуском из окна Python в ArcGIS.
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)
Пример скрипта Python для выполнения функции Проецировать (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])