Problem
Using this block as an example can be problematic because it does not use a projection. The example uses a preprojected topojson that has its coordinates in pixel coordinate space - it is designed to be shown over a 900 x 600 pixel window and the range of coordinate values in the input file are within the bounding box of [0,0] and [900,600]. For this reason, the example does not use a geographic projection.
Geographic coordinates will not fall entirely in this range.
Why Does Nothing Draw?
Your topojson features, unlike the example, contain geographic coordinates - latitudes and longitudes.
To project geographic features in d3 or any other framework or program, a projection must be applied to convert geographic coordinates in three dimensional coordinate space to planar Cartesian coordinates fit to be displayed on a two dimensional svg or canvas grid.
You are not applying a necessary projection to your features. When you use a geoPath you generally need to specify a geoProjection:
var path = d3.geoPath().projection(d3.geoProjection)
However, you don't use a projection, so d3 defaults to a null projection. For each coordinate in your topojson/geojson, the x and y values of the input are taken as pixel coordinates, no transform/translate/scaling is done.
Since your features are located in the Western hemisphere, the x (longitude) values are negative. Pixels with negative x values are located off screen to the left.
Values in the Southern hemisphere have negative values, so they too will be drawn off screen. In this case above the svg or canvas - because y values start at zero at the top of the screen and increase as one moves down.
Lastly, If you had any features in the North-Eastern quadrant of the globe, they would appear as their coordinates would be positive (assuming your svg was at 90 pixels high and 180 pixels wide). But, they would be upside down, as y values increase as one moves "up" a map, but in svg/canvas coordinate space they decrease as one moves "up" a map.
Fixing the Issue
You will need to use a projection. The most basic setup might be using a simple projection like a Mercator and using fitSize or fitExtent to automatically scale and center the features you want to show. To do so you could use something like:
var projection = d3.geoMercator();
var path = d3.geoPath().projection(projection);
// once topojson is loaded:
projection.fitSize([width,height],geojson object);
How do you get the geojson? You already are:
topojson.feature(aisp, aisp.objects.convert) // convert topojson to geojson.
You need to pass the geojson object, not the array of features it contains, hence why we wouldn't use topojson.feature(aisp, aisp.objects.convert).features
with .fitSize.
FitSize takes a width and height and sets the projection's scale and translate to appropriate values. FitExtent takes two points marking the top left and bottom right of a bounding box for the features: projection.fitExtent([[x1,y1],[x2,y2]],geojson);
This approach doesn't set the more complex parameters of the projection such as rotation or for conical projections such as an Albers, parallels, but it is sufficient in many cases.
Example
Here's an example of your map with fitSize (I changed the file name).