如何避免TopoJSON内存错误

时间:2013-05-03 02:46:12

标签: javascript d3.js gis topojson

我正在尝试创建美国学区的TopoJSON文件。我的工作流程如下:

  1. 从人口普查局下载并解压缩个别TIGER形状文件(24 ESD,19 SSD,56 USD)
  2. 将这99个文件与ogr2ogr
  3. 一起批量合并
  4. 将合并的shapefile转换为GeoJSON
  5. 将GeoJSON转换为TopoJSON(理想情况下,我也会在此处向文件添加状态边界)
  6. 第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时更好地管理内存的方法,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

使用node --max_old_space_size=999 topojson.js ...增加node.js可用的内存。

如果您正在使用node.js二进制文件,则需要64位二进制文​​件。 32位的限制为1GB。 https://code.google.com/p/v8/issues/detail?id=847