Resumen
Proyecta datos espaciales de un sistema de coordenadas a otro.
Uso
Si el dataset o la clase de entidad de entrada tiene un sistema de coordenadas desconocido o no especificado, puede especificar el sistema de coordenadas del dataset de entrada con el parámetro Sistema de coordenadas de entrada. Esto le permite especificar el sistema de coordenadas de datos sin tener que modificar los datos de entrada (lo que puede no ser posible si la entrada es un formato solo de lectura). También puede usar la herramienta Definir proyección para asignarle de manera permanente un sistema de coordenadas al dataset.
Las coberturas, coberturas VPF, datasets ráster y catálogos de ráster no son compatibles como entrada de esta herramienta. Utilice la herramienta Proyectar ráster para proyectar los datasets ráster.
El parámetro Transformación geográfica es opcional. Si no se requiere la transformación de datum o geográfica, no aparecerá ninguna lista desplegable en el parámetro y se deja en blanco. Si se requiere una transformación, se generará una lista desplegable basada en los datums de entrada y salida y se seleccionará una transformación predeterminada.
- Por ejemplo, no se requiere una transformación geográfica cuando se proyecta de GCS_North_American_1983 a NAD_1983_UTM_Zone_12N porque los sistemas de coordenadas de entrada y de salida tienen el datum NAD_1983. Sin embargo, proyectar desde GCS_North_American_1983 a WGS_1984_UTM_Zone_12N requiere una transformación geográfica porque el sistema de coordenadas de entrada utiliza el datum NAD_1983, mientras que el sistema de coordenadas de salida utiliza el datum WGS_1984.
Sugerencia:
Las transformaciones son bidireccionales. Por ejemplo, si se convierten datos de WGS 1984 a NAD 1927, puede elegir una transformación denominada NAD_1927_to_WGS_1984_3 y la herramienta la aplicará correctamente.
- Para obtener una lista de transformaciones y sus áreas de uso, consulte el artículo de la Base de conocimiento: Cómo: Seleccionar la transformación geográfica (de datum) correcta al proyectar entre datums.
- Por ejemplo, no se requiere una transformación geográfica cuando se proyecta de GCS_North_American_1983 a NAD_1983_UTM_Zone_12N porque los sistemas de coordenadas de entrada y de salida tienen el datum NAD_1983. Sin embargo, proyectar desde GCS_North_American_1983 a WGS_1984_UTM_Zone_12N requiere una transformación geográfica porque el sistema de coordenadas de entrada utiliza el datum NAD_1983, mientras que el sistema de coordenadas de salida utiliza el datum WGS_1984.
El espacio de trabajo in_memory no se admite como ubicación para escribir el dataset de salida.
Al proyectar los tipos de datos complejos que aparecen a continuación, se deben realizar determinadas operaciones en los datos resultantes:
- Dataset de entidades que contiene un dataset de red: el dataset de red se debe reconstruir
- Dataset de entidades que contiene una topología: la topología debe volver a validarse
Si la entrada participa en clases de relación (como con la anotación vinculada a entidad), la clase de relación será transferida a la salida. La excepción son las tablas independientes participantes.
Según las coordenadas de la entidad de entrada y el horizonte (extensión válida) del sistema de coordenadas de salida, es posible que los multipuntos, las líneas y los polígonos estén recortados o divididos en más de una parte cuando se proyectan. Las entidades que quedan completamente fuera del horizonte se escribirán en la salida con una forma nula. Pueden eliminarse utilizando la herramienta Reparar geometría.
Las clases de entidad que participan en una red geométrica no se pueden proyectar independientemente: es necesario proyectar todo el dataset de entidades que contiene la red.
Muchas herramientas de geoprocesamiento respetan la configuración de entorno Sistema de coordenadas de salida y, en muchos flujos de trabajo, es posible utilizar esta configuración del entorno en vez de la herramienta Proyectar. Por ejemplo, la herramienta Combinación respeta la configuración de entorno Sistema de coordenadas de salida, lo que significa que puede combinar varias clases de entidad, que están en un sistema de coordenadas diferente, y escribir la salida combinada en una clase de entidad de un sistema de coordenadas diferente.
Esta herramienta ignora la selección y las consultas de definición sobre capas: todas las entidades del dataset al que hace referencia la capa se proyectarán. Para proyectar únicamente las entidades seleccionadas, considere la opción de utilizar la herramienta Copiar entidades para crear un dataset temporal que solo contenga las entidades seleccionadas y use este dataset intermedio como entrada para la herramienta Proyectar.
Cuando una clase de entidad dentro de un dataset de entidades se utiliza como entrada, la salida no se puede escribir en el mismo dataset de entidades. Esto es porque las clases de entidad dentro de un dataset de entidades deben tener el mismo sistema de coordenadas. En este caso, la clase de entidad de salida se escribirá en la geodatabase que contiene el dataset de entidades.
Si se activa el parámetro Mantener forma, se crean entidades de salida que representan de forma precisa su verdadera ubicación proyectada. Mantener forma es particularmente útil en casos donde el límite de una línea o polígono está digitalizado como una línea larga y recta con pocos vértices. Si Mantener forma no está activado, los vértices existentes del límite de la línea o polígono de entrada se proyectan, y el resultado puede ser una entidad que no está ubicada correctamente en la nueva proyección. Cuando Mantener forma está activado (preserve_shape = "PRESERVE_SHAPE" en Python), se agregan vértices extra a la entidad antes de proyectarla. Estos vértices extra conservan la forma proyectada de la entidad. El parámetro Desviación máxima de desplazamiento controla cuántos vértices extra se agregan; su valor es la distancia máxima que la entidad proyectada puede desplazarse desde su ubicación proyectada exacta según el cálculo de la herramienta. Cuando el valor es pequeño, se agregan más vértices. Elija un valor que se ajuste a sus necesidades. Por ejemplo, si la salida proyectada es para una visualización cartográfica general a pequeña escala, puede ser aceptable una gran desviación. Si va a utilizar su salida proyectada en un análisis de un área pequeña a gran escala, es posible que necesite una desviación más pequeña.
Para realizar una transformación vertical, active el parámetro opcional Vertical. De forma predeterminada, el parámetro Vertical está inactivo y solo se activa cuando los sistemas de coordenadas de entrada y salida tienen un sistema de coordenadas verticales (VCS) y las coordenadas de la clase de entidad de entrada cuentan con valores z. Además, es necesario instalar en el sistema la configuración de datos adicionales (datos del sistema de coordenadas).
Cuando selecciona el sistema de coordenadas de salida, puede elegir el sistema de coordenadas proyectadas o geográficas y un VCS. Si los VCS de entrada y salida son diferentes, habrá disponibilidad de transformaciones geográficas (de datum) opcionales y verticales adecuadas. En el caso de que deba aplicarse una transformación en la dirección opuesta a su definición, elija la entrada que tenga la virgulilla (~) delante del nombre.
Las estructuras de parcelas se proyectan mediante la proyección del dataset de entidades que contiene la estructura de parcelas. No es posible proyectar por separado clases de entidad individuales controladas por la estructura de parcelas. Las unidades lineales, las unidades de área y las coordenadas de punto se actualizan para que coincidan con las unidades y las coordenadas de la referencia espacial de destino.
Sintaxis
arcpy.management.Project(in_dataset, out_dataset, out_coor_system, {transform_method}, {in_coor_system}, {preserve_shape}, {max_deviation}, {vertical})
Parámetro | Explicación | Tipo de datos |
in_dataset | La clase de entidad, capa de entidades, dataset de entidades, capa de escena o paquete de capas de escena que se va a proyectar. | Feature Layer; Feature Dataset; Scene Layer; Building Scene Layer; File |
out_dataset | El dataset de salida en el que se escribirán los resultados. | Feature Layer; Feature Dataset; Scene Layer; Building Scene Layer; File |
out_coor_system | Los valores válidos son un objeto de SpatialReference, un archivo con una extensión .prj o una representación de cadena de caracteres de un sistema de coordenadas. | Coordinate System |
transform_method [transform_method,...] (Opcional) | Este método se puede utilizar para convertir los datos entre dos sistemas de coordenadas geográficas o datums. Este parámetro opcional puede ser necesario si los sistemas de coordenadas de entrada y de salida tienen datums diferentes. Para obtener una lista de las transformaciones válidas, use el método arcpy.ListTransformations. La transformación más adecuada suele ser la primera de la lista que se devuelve. La lista se ordena por cantidad de superposición de los datos frente a las áreas de uso de las transformaciones. Si dos o más transformaciones presentan la misma cantidad de superposición con los datos, los valores de precisión de la transformación se usan como parámetro de ordenación secundario. Sugerencia:Las transformaciones son bidireccionales. Por ejemplo, si se convierten datos de WGS 1984 a NAD 1927, puede elegir una transformación denominada NAD_1927_to_WGS_1984_3 y la herramienta la aplicará correctamente. Si no se proporciona ninguna transformación, se utiliza la transformación predeterminada. Esta transformación predeterminada es adecuada para aplicaciones generales de representación cartográfica pero puede que no sea adecuada para aplicaciones que requieren una veracidad de ubicación precisa. | String |
in_coor_system (Opcional) | El sistema de coordenadas del dataset o clase de entidad de entrada. Cuando la entrada tiene un sistema de coordenadas desconocido o no especificado, es posible especificar el sistema de coordenadas de los datos sin tener que modificar los datos de entrada (lo que puede no ser posible si la entrada está en formato de solo lectura). | Coordinate System |
preserve_shape (Opcional) | Especifica si se agregarán vértices a las líneas o polígonos de salida de modo que la forma proyectada sea más precisa.
| Boolean |
max_deviation (Opcional) | La distancia que una línea o un polígono proyectado se puede desviar de su ubicación proyectada exacta cuando el parámetro preserve_shape tiene el valor PRESERVE_SHAPE. El valor predeterminado es 100 veces la tolerancia x,y de la referencia espacial del dataset de salida. | Linear Unit |
vertical (Opcional) | Especifica si se aplicará la transformación vertical. Este parámetro solo se habilita cuando los sistemas de coordenadas de entrada y salida tienen un sistema de coordenadas verticales y las coordenadas de la clase de entidad de entrada tienen valores z. Asimismo, varias transformaciones verticales requieren archivos de datos adicionales que se deben instalar utilizando el paquete de instalación de ArcGIS Coordinate Systems Data. Este parámetro no es compatible con el parámetro preserve_shape.
| Boolean |
Muestra de código
El siguiente script de la ventana de Python demuestra cómo utilizar la función Project en modo inmediato.
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)
El siguiente script independiente muestra cómo utilizar la función Project en un script independiente.
# 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])
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí