De KML a capa (Conversión)

Resumen

Convierte un archivo KML o KMZ en clases de entidad y un archivo de capa. El archivo de capa mantiene la simbología que se encuentra en el archivo KMZ o KML original.

Obtenga más información sobre la compatibilidad KML en ArcGIS

Uso

  • Esta herramienta crea una geodatabase de archivos que contiene una clase de entidad dentro de un dataset de entidades. El nombre de clase de entidad se denominará point, line, polígono o multipatches, en función de las entidades originales del archivo KML. A nivel de la misma carpeta que la geodatabase de archivos habrá un archivo de capa que se puede agregar a un mapa para dibujar las entidades. Este archivo de capa se dibuja las entidades basadas en su esquema de punto, de línea o de polígono, mientras mantiene la simbología original de KML.

    Cada clase de entidad creada tendrá atributos que mantienen la información sobre el archivo KML original. La estructura de carpeta original, el nombre y la información emergente, así como los campos que ayudarán a definir la forma en que las entidades se sitúan en una superficie, conforman los atributos de cada entidad.

  • Los rásteres o las superposiciones terrestres se convertirán en un dataset de mosaico dentro de la geodatabase de archivos. El ráster de origen en su formato nativo está disponible en una carpeta de GroundOverlays en el mismo nivel que la geodatabase de archivos de salida. Las superposiciones terrestres no se convierten de forma predeterminada. Utilice la opción Incluir la superposición de terrenos para crear rásteres.

    Nota:

    Las superposiciones de conversión que utilizan la herramienta De KML a capa pueden tomar un tiempo prolongado, dependiendo de los datos de origen. Todos los rásteres y superposiciones disponibles dentro del KML se convierten. Todas las imágenes se convertirán si un KML hace referencia a un servicio que proporciona imágenes. Las imágenes muy detalladas pueden tomar un tiempo prolongado para convertirse debido al tamaño del archivo.

  • La salida se generará en el sistema de coordenadas WGS84. Las entidades de salida se pueden volver a proyectar en otro sistema de coordenadas si así lo desea con la herramienta Proyectar.

  • Por lo general, es compatible con la entrada de KMZ hasta la versión 2.2 de OGC KML estándar. Las ubicaciones de puntos que utilizan la etiqueta de dirección (a modo de geocodificación) no son compatibles. Se requiere de valores válidos de latitud y longitud de la ubicación dentro del KML de origen.

  • En la versión 1.3 de ArcGIS Pro se introduce soporte nativo para KML y KMZ como fuentes de datos. Para realizar operaciones de geoprocesamiento en una capa KML, estas deben convertirse a entidades dentro de una geodatabase de archivos. Utilizando la herramienta De KML a capa, seleccione la capa KML en el menú Contenido y arrástrela al parámetro Archivo KML de entrada de la herramienta. Después de realizar la conversión, realice las operaciones de geoprocesamiento en la salida nueva.

Sintaxis

KMLToLayer(in_kml_file, output_folder, {output_data}, {include_groundoverlay})
ParámetroExplicaciónTipo de datos
in_kml_file

El archivo KML o KMZ a traducir.

File; KML Layer
output_folder

Carpeta de destino para la geodatabase de archivos y el archivo de capa (.lyrx).

Folder
output_data
(Opcional)

El nombre de la geodatabase de archivos de salida y el archivo de capa. El valor predeterminado es el nombre del archivo KML de entrada.

String
include_groundoverlay
(Opcional)

Incluye la superposición terrestre (ráster, fotografías aéreas y así sucesivamente). Tenga precaución si el KMZ apunta a un servicio de imágenes ráster. La herramienta intentará traducir las imágenes ráster en todas las escalas disponibles. Este proceso podría ser prolongado y posiblemente desbordar el servicio.

  • GROUNDOVERLAYLas superposiciones terrestres se incluirán en la salida.
  • NO_GROUNDOVERLAYLas superposiciones terrestres no se incluirán en la salida. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
output_layer

El archivo de capa de salida.

Grupo de capas
out_geodatabase

La geodatabase de salida que contiene una clase de entidad dentro de un dataset de entidades.

Espacio de trabajo

Muestra de código

Ejemplo 1 de KMLToLayer (ventana de Python)

Convierte un archivo KMZ en una geodatabase de archivos desde la ventana Python.

import arcpy

arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
Ejemplo 2 de KMLToLayer (script independiente)

El siguiente script convertirá una carpeta de archivos KML y KMZ en sus respectivas geodatabases de archivos. Las clases de entidad contenidas en esas geodatabases de archivos se consolidarán en una sola geodatabase de archivos.

Nota:
Este script no mantiene los archivos de capa desde la herramienta KMLToLayer.

# Name: BatchKML_to_GDB.py
# Description: Converts a directory of KMLs and copies the output into a single 
#              fGDB. A 2 step process: first convert the KML files, and then 
#              copy the feature classes.
# Import system modules
import arcpy
import os
# Set workspace (where all the KMLs are)
arcpy.env.workspace = "C:/VancouverData/KML"
# Set local variables and location for the consolidated file geodatabase
out_location = "C:/WorkingData/fGDBs"
gdb = 'AllKMLLayers.gdb'
gdb_location = os.path.join(out_location, gdb)
# Create the master FileGeodatabase
arcpy.CreateFileGDB_management(out_location, gdb)
# Convert all KMZ and KML files found in the current workspace
for kmz in arcpy.ListFiles('*.KM*'):
    print("CONVERTING: {0}".format(os.path.join(arcpy.env.workspace, kmz)))
    arcpy.KMLToLayer_conversion(kmz, out_location)
# Change the workspace to fGDB location
arcpy.env.workspace = out_location
# Loop through all the FileGeodatabases within the workspace
wks = arcpy.ListWorkspaces('*', 'FileGDB')
# Skip the Master GDB
wks.remove(gdb_location)
for fgdb in wks:  
    # Change the workspace to the current FileGeodatabase
    arcpy.env.workspace = fgdb
    # For every Featureclass inside, copy it to the Master and use the name 
    # from the original fGDB  
    feature_classes = arcpy.ListFeatureClasses('*', '', 'Placemarks')
    for fc in feature_classes:
        print("COPYING: {} FROM: {}".format(fc, fgdb))
        fcCopy = os.path.join(fgdb, 'Placemarks', fc)
        arcpy.FeatureClassToFeatureClass_conversion(
            fcCopy, gdb_location, fgdb[fgdb.rfind(os.sep) + 1:-4])

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados