2014-09-12 35 views
0

我有几列要导入到ArcMap的XY数据。要手动执行此操作,我在转换工具下运行Excel To Table脚本,然后右键单击表并选择显示XY数据,对每对XY值重复。我建立了一个模型,将“Excel to Table”脚本的输出提供给“Make XY Event Layer”工具的输入。问题是我不能在没有导入任何电子表格的情况下选择任何X字段或Y字段,但是当我运行它时,我会得到“无X字段值”和“无Y字段值”错误。然后,我建立了一个模型,将“Excel to Table”脚本的输出提供给我编写的用于显示XY数据的脚本。当我运行这个模型时,我得到:“ExecuteError:无法执行,参数无效ERROR 000728:字段Latitude_decimal_degrees_在表内不存在”。这个过程可以用Python或Model Builder来完成,如果是这样,怎么做?使用Python或模型构建器创建XY图层

+0

你的脚本是什么样子的?你的意思是'不按我想要的方式工作'? – GISGe 2014-09-12 13:12:01

+0

确保您的字段名称实际存在,它们是有效的(不是用数字表示,没有空格),并且Excel字段格式由ArcGIS以数字形式读取。添加具有唯一ID的字段有时也有帮助。 – GISGe 2014-09-12 13:30:57

+0

在哪个版本的Excel中提供原始数据?您还使用了哪种版本的ArcMap。根据您的Excel文件的版本,ArcMap可能会支持也可能不支持。我知道在ArcMap 10.1和更高版本中,不支持2007年及以后的Excel文件。 – Ashatz11 2014-09-18 18:35:11

回答

0

我的理解是,您拥有一个包含多个坐标字段的地理数据库表或DBF,并且您希望为每个XY坐标对创建多个功能图层。如果是这样,在Python的Python窗口中运行它,它应该做的伎俩:

import arcpy 
Table= r"C:\SomeDataPath\MyTable" 
# Replace 'X' and 'Y' in each sublist with the name of the respective X and Y 
# field for each coordinate pair in the table and replace 'lyrName' with the 
# name you want to give to the FeatureLayer to be created. 
# Expand with more sublists as needed 
CoordinateFields = [ 
        ["X", "Y", "lyrName"], 
        ["X", "Y", "lyrName"], 
        ["X", "Y", "lyrName"] 
        ] 
SR = arcpy.SpatialReference("Name of the Projection used by coordinates") 
for CoordinatePair in CoordinateFields: 
    arcpy.MakeXYEventLayer_management(Table, 
             CoordinatePair[0], 
             CoordinatePair[1], 
             CoordinatePair[2], 
             SR) 

享受!