错误000212:无法创建XY事件源无法执行(MakeXYEventLayer)?


10

我有一个133mb的csv文件,并且有130万行数据。每行数据都有自己的纬度/经度,我想知道在ArcGIS Desktop 10中基于纬度/经度显示这些点并将其最终转换为点shapefile的最佳方法是什么?

到目前为止,我已经尝试了“制作XY事件图层”工具,但这种方法一直失败...

错误000212:无法创建XY事件源无法执行(MakeXYEventLayer)。

csv文件的格式正确,纬度/经度字段是数字,因此我不知道为什么它会不断崩溃。

这是CSV的前两行的样子,第一行应该是标题:

"LAT","LONG","CUSTOMER_MASTER_ID","STORE_NBR","TRANSACTION_DT","SKU_DIVISION_ID","SKU_DEPARTMENT_ID","SKU_CLASS_ID","SKU_CATEGORY_ID","SKU_NBR","SALES_AMT"
"32.363544","-110.969778","2000000792627","2940","8/11/2010","2060","3920","5120","84021","5127866","13.99"

有任何想法吗?


2
您将需要将文件分解-甚至最好将其加载到数据库中-最小化文件地理数据库-gis.stackexchange.com/questions/4414/…–
Mapperz

我有一个渔网,我想将其切成大于2GB的大小。知道如何在ArcGIS中进行操作吗?这将非常有帮助。谢谢,伊贝
伊贝

感谢您的指点。还有一个问题:QGIS中是否有一种将栅格转换为shapefile的方法(shapefile的大小再次将大于2gb)?
Ibe

Answers:


7

可能有些复杂,但是如果我的两分钱不值钱(并且如果您使用的是MS Office产品),则建议将.csv作为表格导入到MS Access .mdb数据库中。(注意:.mdb数据库的大小上限为2GB)。

然后,您可以将该Access .mdb表添加到ArcMap文档中,然后右键单击>“显示x,y数据”:

点击一下

通过将数据保存在数据库中并从该表中读取以显示x,y数据点,您可以对数据进行更改,这些更改将在下次刷新地图显示时自动反映在x,y数据点中。不必每次都创建一个新的shapefile或图层视图。这似乎也是管理如此大量数据的更可靠的方法。

结果x,y数据点


2
2 GB是MS Access和Personal GeoDatabase的最大限制-接近此限制时要小心,因为在编辑中的个人地理数据库大于未编辑的地理数据库。
Mapperz

@Mapperz,是的,.mdb数据库的大小限制为2 GB,无论它是否由Arc创建。我说错了。我有几个正在占用2 GB的大小(但没有超过),我曾经在美国东南部绘制水位记录站的地图。
杰森

太好了,我将其加载到mdb中,然后将其导出到File GeoDatabase中,并且效果很好,谢谢!
福隆

12

由于“纬度”和“长整数”字段的值前后"32.363544","-110.969778"都带有引号,因此它们实际上并没有被视为数字。

显示xy数据需要x和y字段为数字。

删除周围的引号,它应该起作用。如果您可以访问grep / sed Unix机器,请确保将使此工作更容易。这些工具也有Windows端口。

另外,我将避免使用“ Long”作为字段名称-在某些情况下,它会被视为保留字。


1
正确的“ 32”是字符串,需要为数字
Mapperz

2

CSV文件中是否有标题行,这可能会混淆ArcGIS?

另外,尝试仅从CSV复制一行,然后查看它是否有效-这样就可以消除格式错误。使用能够打开大型文本文件的文本编辑器(如UltraEdit或Notepad ++)来复制示例行。

我不知道ArcGIS导入器的工作方式,但是您可能会发现文件太大而无法应付,因此可能需要拆分成多个块。


2

如果您有SQL Server Express,则可以在那里进行一些繁琐的工作。

这是通过几个不同的查询(其中经/纬度为文本字段)拼凑而成的:

SELECT 
CONVERT(float,[latitude]) lat
,CONVERT(float,[longitude]) long
INTO TEMPPTS
FROM
OPENROWSET ('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\temp;',
'SELECT * from GPSQuery.txt') g
WHERE longitude IS NOT NULL AND len(longitude) > 0
and [latitude] IS NOT NULL AND len([latitude]) > 0

您可能需要为临时分布式查询配置sql server。

sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

一份工作可能有点过分,但如果您经常处理许多不同的文件,则值得这么做。尽管文件很大,但您可能需要查看bcp.exe(http://msdn.microsoft.com/zh-cn/library/aa174646 (v=sql.80 ) .aspx)进行批量导入。


0

如果只想从中创建shapefile,请尝试QGIS www.qgis.org。QGIS可以加载的Delimited文本插件使此操作变得容易。如果随后要将其引入ArcMap,只需先通过ArcCatalog确保投影。


0

还要确保标题没有空格。例如,“ UTM区域”应为“ UTM_Zone”。请记住,因为导入时这对我来说是个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.