D3.js, trouble initiating shp2json - encoding-indexes error

288 Views Asked by At

I'm trying to follow the tutorial Mike Bostock did for Command Line Cartography (which is a great help). Right after installing shapefile and running the shp2json step [shp2json cb_2014_06_tract_500k.shp -o ca.json] I get this error message: “error: Decoder not present. Did you forget to include encoding-indexes.js first?” an error message which originates from the text-encoding package from NPM.

In trying to diagnoise the problem, I figured I should manually install text-encoding as it's in the shp2json dependency list but, didn't appear to be loading. I also reinstalled node to downgrade from 7.3.0 to 6.9.2 and a number of other things (my hacking around looking for a solution for a few hours) but, am stuck. Is this just a matter of updating a package.json?

I’m using Windows7, the env variables is set I believe correctly to \Users\myAccount\AppData\Roaming\npm. I’ve installed all packages globally as well. Thanks for any insight.

1

There are 1 best solutions below

0
On BEST ANSWER

I had the same problem when running the "#prepublish" script here. Then I noticed that Mike's shapefile repo has this information in the README:

# shp2json --encoding *encoding*

Specify the dBASE table file character encoding. Defaults to “windows-1252”.

So I experimented and changed that script to:

shp2json --encoding utf-8 cb_${YEAR}_${STATE}_tract_500k.shp

Note that in this line above my state and year variables had been defined higher in the script (I was using Texas[48], not California[06]).

Also, I was getting another error asking for d3-array. So I installed that, too.

Problem solved (at least in terms of processing the data and getting it to render in the browser). Others issues, like projection, remain. Obviously.