描述
将 KML、KMZ、shapefile、Excel 工作表、表格文本文件、GeoJSON 和 GPX 文件的目录导入到存储在单个地理数据库中的要素类。
使用方法
默认情况下,对于 KML (.kml)、KMZ (.kmz)、shapefile (.shp)、Excel 工作表(.xlsx 和 .xls)、表格文本文件(.csv、.txt 和 .tab)、GeoJSON 文件 (.geojson) 和 GPX 文件 (.gpx),将递归搜索其输入数据位置。过滤器参数可用于限制导入哪些文件。
KML 或 KMZ 文件中包含的栅格或地面叠加层将转换为目标地理数据库中的镶嵌数据集。镶嵌数据集引用的源栅格以其原生格式存储在以镶嵌数据集命名的子文件夹中。其位置与目标地理数据库相同。这些文件以目标地理数据库命名,并在名称后追加 _Rasters。例如,如果您的目标地理数据库为 C:\Data\OperationalData.gdb,则会在 C:\Data 下创建一个名为 OperationalData_Rasters 的文件夹。
如果要将文件导入到企业级地理数据库,请确保数据库连接文件 (.sde) 被指定为目标地理数据库参数中的 UNC 路径,且企业级地理数据库可访问该路径。
通常支持开放地理空间联盟 KML 标准中 KMZ 2.2 版本以下的 KML 和 KMZ 输入。不支持使用地址选项卡(按地理编码方式)的点位置。源 KML 内需要有效的经度和纬度位置。
扩展名为 .csv 或 .txt 的表格文本文件的标准分隔符是逗号,扩展名为 .tab 的表格文本文件的标准分隔符是制表符。要使用包含非标准分隔符的输入表,必须使用 schema.ini 文件指定分隔符。有关详细信息,请参阅 Microsoft 文档中的 Schema.ini 文件(文本文件驱动程序)。
对于输入 Excel 工作表和表格文本文件,仅支持点几何。
GeoJSON 规范支持多种几何类型。将使用命名约定 SourceGeoJSONFile_GeometryType 为输入 GeoJSON 文件中的每个几何类型创建单独的要素类。例如,如果 GeoJSON 文件命名为 World Airports.geojson,且包含点、多点、折线和面几何类型,则要素类将命名为 World Airports_Points、World Airports_Multipoint、World Airports_Polylines 和 World Airports_Polygons。
运行此工具时,坐标系具有以下注意事项:
- 对于 shapefile、KML、KMZ、GeoJSON 和 GPX 文件,输出数据集与输入数据集的坐标系相同。KML 和 GPX 规范要求输入数据集的坐标系为 GCS WGS1984。
- 对于 Excel 工作簿和表格文本文件,输入坐标系假定为 GCS WGS1984,且经纬度坐标值采用十进制度。
如果要素的任何输入经度或纬度坐标无效(空值或非数字值),则相应要素将具有空几何。检查几何工具可用于检查输出中的空几何。
表格文本文件(.csv、.txt 和 .tab)和 Excel 工作表必须具有经度和纬度列。有效的经度列包括:longitude、long、lon、x_coordinate、x_coord 和 x。有效的纬度列包括:latitude、lat、y_coordinate、y_coord 和 y。如果源具有多个有效的经度和纬度列,则使用第一个有效列。
将导入 Excel 工作簿中的所有工作表。
将根据如下源数据文件中的符号系统向添加到地图中的输出图层应用相应的符号系统:
注:
在工具执行时,ArcGIS Pro 工程中必须存在活动地图,以保留符号系统。如果工具在 ArcGIS Pro 工程之外运行(即,通过独立 Python 脚本运行),则不会保留符号系统。- 对于从 KML 或 KMZ 文件创建的输出图层,将从源 KML 或 KMZ 文件中提取符号系统并将其应用于输出图层。可以在与源 KML 或 KMZ 文件相同的文件夹中提供一个图层文件(.lyrx 或 .lyr)以覆盖此符号系统。图层文件与源数据文件必须具有相同的基本名称,并在名称后追加下划线 (_) 和要覆盖图层的几何类型(点、折线或面)。例如,如果 KML 文件命名为 World Airports.kml 且包含点、线和面要素,并且您希望覆盖所有几何类型的符号系统,则图层文件将命名为 World Airports_Points.lyrx、World Airports_Polylines.lyrx 和 World Airports_Polygons.lyrx。几何类型值区分大小写。如果给定的几何类型不存在图层文件,则会将源 KML 或 KMZ 文件中的符号系统应用到输出图层。
- 对于从 KML 或 KMZ 文件以外的源创建的输出图层,如果在与源数据文件相同的文件夹中存在图层文件(.lyrx 或 .lyr),则会将符号系统应用到输出图层。图层文件与源数据文件必须具有相同的基本名称(Excel 工作表和 GeoJSON 文件除外)。对于 Excel 工作表,图层文件的名称必须与源数据文件的基本名称相同,且名称后追加有下划线 (_) 和工作表名称。例如,如果 Excel 文件命名为 World.xlsx 且包含名为 Cities (2018) 的工作表,则图层文件必须命名为 World_Cities (2018).lyrx 或 World_Cities (2018).lyr。对于 GeoJSON 文件,图层文件的名称必须与源数据文件的基本名称相同,且名称后追加有下划线 (_) 和输出几何类型(点、多点、折线和面)。如果图层文件不存在,则会对输出图层应用默认符号。
语法
arcpy.intelligence.BatchImportData(in_data, target_gdb, {filter}, {include_sub_folders}, {include_groundoverlay})
参数 | 说明 | 数据类型 |
in_data [in_data,...] | 包含要转换为地理数据库要素类的数据文件的目录。 | Folder |
target_gdb | 将存储输出要素类的目标地理数据库。 | Workspace |
filter (可选) | 被添加到地理数据库的数据的过滤器。过滤器的通配符适用于输入数据的完整路径,并在下方列出:
以下是过滤器示例:
| String |
include_sub_folders (可选) | 指定是否递归搜索子文件夹。
| Boolean |
include_groundoverlay (可选) | 指定是否在输出中包含 KML 或 KMZ 地面叠加层(栅格、航空照片等)。 KMZ 指向提供栅格影像的服务时,请谨慎使用。该工具将尝试按所有可用比例转换栅格影像。此过程也许会较漫长且可能超出服务能力范围。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
out_geodatabase | 已更新的目标地理数据库。 | 工作空间 |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 BatchImportData 函数。
import arcpy
arcpy.BatchImportData_intelligence("c:/data/sourcedata", "c:/data/output.gdb", "", "SUBFOLDERS", "NO_GROUNDOVERLAY")
以下 Python 脚本演示了如何在独立脚本中使用 BatchImportData 函数:
# Name: BatchImportData_Example2.py
# Description: Imports all shapefiles with 'airport' in the file name or file
# path within a directory to feature classes in a single geodatabase.
# Requirements: Standard or Advanced license
# Import system modules
import arcpy
# Set local variables
in_data = ["c:/data/sourcedata"]
target_gdb = r"\\data\operationaldata.sde"
filter = "*airports*.shp"
include_sub_folders = "NO_SUBFOLDERS"
# Execute BatchImportData
arcpy.BatchImportData_intelligence(in_data, target_gdb, filter, include_sub_folders)
环境
许可信息
- Basic: 否
- Standard: 是
- Advanced: 是