public void Build()
    {
	//setup output units as 2D map
	outputNeurons = new Neuron[mapWidth][mapWidth];

	for (int i = 0; i < mapWidth; i++)
	{
	    for (int j = 0; j < mapWidth; j++)
	    {
		//create the output neuron
		outputNeurons[i][j] = new Neuron(i, j, mapWidth);

		//setup the number of connections for the neuron,
		//each of which requires a weighting.
		//For the planetary data in the application,
		//there are 7 attributes.
		outputNeurons[i][j].weights = new double[attributes];

		//For each connection, initialise a random connection
		// weight.
		for (int k = 0; k < attributes; k++)
		{
		    outputNeurons[i][j].weights[k] = randomGenerator.nextDouble();
		}
	    }
	}
    }