我正在尝试创建美国学区的TopoJSON文件。我已经奠定了我的工作流程如下:如何避免TopoJSON内存错误
- 下载并解压缩从人口普查局TIGER个人形文件(24 ESD,19 SSD,56美元)
- 这些批处理文件99与ogr2ogr 合并在一起
- 转换合并shape文件到GeoJSON的
- 转换以GeoJSON到TopoJSON(理想情况下我想补充的州边界的文件在这里也一样)
第4步是什么原因造成了我的问题,我现在用的是以下批处理脚本:
call topojson^
-o SDs11_Topo.json^
-p NAME^
--simplify-proportion .1^
--id-property GEOID^
--^
ESDs11.json^
SSDs11.json^
USDs11.json
pause
但我看到下面的致命内存错误:
FATAL ERROR: CALL_AND_RETRY_0 Allocation failed - process out of memory
这给我留下的一点就如何继续亏损,我将不胜感激,如果有人可以上一个更好的建议工作流程或转换为topojson时更好地管理内存的方法。谢谢。
这些输入的GeoJSON文件有多大?如果它们接近〜1GB,则必须使用shapefile输入而不是GeoJSON,因为shapefile更加紧凑并且可以流式传输。 (Node.js的最大缓冲区大小为1GB,这使得解析JSON文件时比较困难)。您还可以使用'node --max-old-space-size = XXXX bin/topojson',其中XXXX是大量的兆字节。 – mbostock 2013-05-03 04:55:58
谢谢,使用shapefile作为输入似乎已经解决了这个问题(json文件是365,39和18 MB文件)不幸的是,我现在提出了一个不同的错误:'ReferenceError:distance is not defined',我会为此 – Josh 2013-05-03 17:21:32
后续问题创建一个单独的问题http://stackoverflow.com/q/16364671/1332731 – Josh 2013-05-03 17:39:48